Takipçi, abonelik, bağış gibi olaylar için uyarı mesajları, sesler ve görseller ayarlayın.
🎉 Alert Ayarları
Her olay türü için gösterilecek mesajı, sesi ve görseli buradan ayarlayabilirsiniz.
twitch_go_live">
Twitch Yayına Başlayınca
Değişkenler: {user}, {title}, {category}, {url}
twitch_follow">
Twitch Takipçi
Değişkenler: {user}
twitch_subscription">
Twitch Abonelik
Değişkenler: {user}, {tier}
twitch_subscription_message">
Twitch Yenileme (Re-Sub)
Değişkenler: {user}, {months}, {message}, {tier}
twitch_subscription_gift">
Twitch Hediye Abonelik
Değişkenler: {user}, {count}
twitch_cheer">
Twitch Bits
Değişkenler: {user}, {amount}, {message}
channel.followed">
Yeni Takipçi
channel.subscription.new">
Yeni Abone
channel.subscription.renewal">
Abonelik Yenileme
channel.subscription.gifts">
Hediye Abonelik
kicks.gifted">
Kicks Bağışı
moderation.banned">
Kullanıcı Yasaklama
livestream.metadata.updated">
Yayın Bilgisi Güncelleme
🎨 Özel Dosyalar (Tier 3)
❌ Bağlantı Hatası
Kick token'ınız geçersiz veya süresi dolmuş. Bu, Kick şifrenizi değiştirdiğinizde veya botun izinlerini iptal ettiğinizde olur.
Botunuz şu anda çalışmıyor. Lütfen 'Çıkış Yap' butonuna basın ve botu yeniden yetkilendirmek için tekrar 'Kick ile Giriş Yap' butonunu kullanın.
📊
Genel Bakış
Sistem Aktif
🎮 Aktif Oyunlar
Yükleniyor...
📈 Kullanım İstatistikleri
0MB / 50MB
500 Puan
🔧 Hızlı İşlemler
🎮
Oyun Ayarları
🃏 Blackjack
🎯 Quiz
💰 Bahis
🦋 Kelebek Yakalama
🤖
Özel Komutlar
Sohbette yazıldığında botun otomatik olarak yanıt vermesini istediğiniz özel komutlar oluşturun.
Kullanabileceğiniz değişkenler: $kullanici (komutu yazan kişinin adı), $puan (komutu yazan kişinin puanı).
🛡️
Moderasyon Ayarları
Tier 3 Gerekli
🤖 AI Moderasyon
📝 Kelime Filtreleri
⚙️ Genel Ayarlar
🎭
Görsel Overlayler
🎯 !Atla Oyunu
🎉 Alert Overlayler
🔗
Platform Bağlantıları
🛡️
Moderasyon
Değişkenler: {user}, {title}, {category}, {url}
twitch_follow">
Twitch Takipçi
Değişkenler: {user}
twitch_subscription">
Twitch Abonelik
Değişkenler: {user}, {tier}
twitch_subscription_message">
Twitch Yenileme (Re-Sub)
Değişkenler: {user}, {months}, {message}, {tier}
twitch_subscription_gift">
Twitch Hediye Abonelik
Değişkenler: {user}, {count}
twitch_cheer">
Twitch Bits
Değişkenler: {user}, {amount}, {message}
channel.followed">
Yeni Takipçi
channel.subscription.new">
Yeni Abone
channel.subscription.renewal">
Abonelik Yenileme
channel.subscription.gifts">
Hediye Abonelik
kicks.gifted">
Kicks Bağışı
moderation.banned">
Kullanıcı Yasaklama
livestream.metadata.updated">
Yayın Bilgisi Güncelleme
🎨 Özel Dosyalar (Tier 3)
🔗
Platform Bağlantıları
🎯 Kick (Ana Platform)
✅ Bağlı
Ana platform bağlantınız aktif.
📺 Twitch
✅ Bağlı
Cross-platform moderasyon için gerekli.
💬 Birleşik Chat Paneli
Tüm platformlarınızın sohbetini tek yerden yönetin.
⚙️
Sistem Ayarları
🎫 Üyelik Kodu
Hediye kodunuz veya üyelik kodunuz varsa kullanın.
💾 Sistem Durumu
Redis Bağlantısı
Aktif
Veritabanı
Aktif
📸 Instagram Story Entegrasyonu
Kendi Instagram hesabınızdan otomatik story paylaşımı.
Instagram Bağlantısı
Kontrol ediliyor...
Story Şablonu
Yükleniyor...
🔄 İşlemler
// ============================================
// INSTAGRAM STORY FONKSİYONLARI
// ============================================
async function loadInstagramStatus() {
try {
const response = await fetch('/api/instagram/settings');
const data = await response.json();
if (data.success) {
const config = data.data;
// Instagram bağlantı durumu
const instagramStatus = elements.instagramStatus;
const statusDot = instagramStatus.querySelector('.dot');
const statusText = instagramStatus.querySelector('span');
if (config.connected) {
instagramStatus.className = 'status-indicator status-online';
statusText.textContent = 'Bağlandı';
elements.connectInstagramBtn.textContent = '🔄 Yeniden Bağla';
elements.connectInstagramBtn.className = 'btn btn-warning';
} else {
instagramStatus.className = 'status-indicator status-offline';
statusText.textContent = 'Bağlı değil';
elements.connectInstagramBtn.textContent = '🔗 Instagram Bağla';
elements.connectInstagramBtn.className = 'btn btn-success';
}
// Template durumu
const templateStatus = elements.instagramTemplateStatus;
const templateDot = templateStatus.querySelector('.dot');
const templateText = templateStatus.querySelector('span');
if (config.has_template) {
templateStatus.className = 'status-indicator status-online';
templateText.textContent = 'Hazır';
} else {
templateStatus.className = 'status-indicator status-warning';
templateText.textContent = 'Şablon gerekli';
}
}
} catch (error) {
console.error('Instagram durumu yüklenirken hata:', error);
showInstagramStatus('Instagram durumu kontrol edilemedi', 'danger');
}
}
function connectInstagramOAuth() {
// TEST MODU: Instagram OAuth devre dışı
alert('Çok Yakında!');
return;
/* TEST MODU KAPALI OLDUĞUNDA AÇILACAK KOD:
// Instagram OAuth başlat
window.location.href = '/api/auth/instagram';
*/
}
function openStoryDesigner() {
// Story tasarım sayfasını yeni sekmede aç
const designUrl = '/design.html';
window.open(designUrl, '_blank');
}
async function testInstagramStory() {
if (!confirm('Instagram story paylaşımı test edilsin mi? Bu gerçek bir story paylaşacaktır.')) {
return;
}
showInstagramStatus('Story test ediliyor...', 'info');
try {
const response = await fetch('/api/instagram/share-story', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
streamUrl: `https://twitch.tv/test-${Date.now()}`
})
});
const result = await response.json();
if (result.success) {
showInstagramStatus('✅ Test başarılı! Instagram story paylaşıldı.', 'success');
} else {
showInstagramStatus(`❌ Test başarısız: ${result.message}`, 'danger');
}
} catch (error) {
console.error('Instagram test hatası:', error);
showInstagramStatus('❌ Test sırasında hata oluştu: ' + error.message, 'danger');
}
}
function openInstagramGuide() {
// Kurulum kılavuzunu göster
const guideContent = `
# Instagram Story Entegrasyonu Kurulum Kılavuzu
## 1. Meta Developer Hesabı Oluşturun
- https://developers.facebook.com/ adresine gidin
- Yeni uygulama oluşturun (Business type)
- Instagram Business hesabınızla bağlayın
## 2. Gerekli İzinler
Aşağıdaki izinleri etkinleştirin:
- \`instagram_basic\` - Temel Instagram erişimi
- \`instagram_content_publish\` - İçerik yayınlama
- \`pages_read_engagement\` - Sayfa etkileşimi
- \`pages_show_list\` - Sayfa listesi
## 3. Access Token Alın
- Developer Console'dan uzun süreli token alın
- Token'ı .env dosyasına ekleyin:
\`\`\`
INSTAGRAM_ACCESS_TOKEN=your_token_here
INSTAGRAM_ACCOUNT_ID=your_account_id_here
\`\`\`
## 4. Story Tasarlayın
- "Story Tasarla" butonuna tıklayın
- Görsel yükleyin ve yayın linkinizi ekleyin
- Şablonu kaydedin
## 5. Otomatik Paylaşım
Yayın başladığında story otomatik paylaşılır!
Daha detaylı bilgi için: \`instagram_integration_guide.md\`
`;
// Modal veya alert ile göster
alert(guideContent);
}
function showInstagramStatus(message, type) {
const statusMsg = elements.instagramStatusMsg;
statusMsg.textContent = message;
statusMsg.className = `upload-status alert-${type}`;
statusMsg.style.display = 'block';
setTimeout(() => {
statusMsg.style.display = 'none';
}, 5000);
}
function checkInstagramOAuthResult() {
const urlParams = new URLSearchParams(window.location.search);
// Instagram OAuth success
if (urlParams.has('instagram_success')) {
showInstagramStatus('✅ Instagram hesabı başarıyla bağlandı!', 'success');
// URL'den parametreyi temizle
const newUrl = window.location.pathname;
window.history.replaceState({}, document.title, newUrl);
// Instagram durumunu yeniden yükle
setTimeout(() => loadInstagramStatus(), 1000);
}
// Instagram OAuth error
if (urlParams.has('instagram_error')) {
const errorMsg = decodeURIComponent(urlParams.get('instagram_error'));
showInstagramStatus(`❌ Instagram bağlantı hatası: ${errorMsg}`, 'danger');
// URL'den parametreyi temizle
const newUrl = window.location.pathname;
window.history.replaceState({}, document.title, newUrl);
}
}
// Sayfa yüklendiğinde Instagram durumunu kontrol et
document.addEventListener('DOMContentLoaded', () => {
// ... mevcut kod ...
loadInstagramStatus();
});
📸 Instagram Hesabı Bağla
Instagram Business hesabınızdan story paylaşabilmek için Access Token ve Account ID'nizi girmeniz gerekiyor.
Meta Developer Console'dan aldığınız uzun süreli token