const axios = require('axios'); const { Telegraf, Markup, Extra } = require('telegraf'); require('dotenv').config(); const express = require('express') const app = express() app.get('/', (req, res) => res.send('Bot Aktif!')) // sitenize girdiğinde görebilirsiniz. app.listen(process.env.PORT, () => console.log('Port ayarlandı: ' + process.env.PORT)) const token = process.env.BOT_TOKEN; let chatIds = []; let message = 'Merhaba! Bu bir otomatik mesajdır.'; const url = `https://api.telegram.org/bot${token}/sendMessage`; let intervalId; let intervalTime = 30000; function send_message(chatId, text) { axios.get(url, { params: { chat_id: chatId, text } }) .then(response => console.log(response.data)) .catch(error => console.error(error)); } function start() { console.log("Otomatik mesajlar başlatıldı."); if (!intervalId) { intervalId = setInterval(() => { chatIds.forEach(chatId => { send_message(chatId, message); }); }, intervalTime); // Mesaj Gönderme Süresi } } function stop() { console.log("Otomatik mesajlar durduruldu."); if (intervalId) { clearInterval(intervalId); intervalId = null; } } function changeMessage(msg) { message = msg; console.log("Otomatik mesaj değiştirildi:", message); } function resetToDefaults() { clearInterval(intervalId); intervalId = null; intervalTime = 30000; message = 'Merhaba! Bu bir otomatik mesajdır.'; console.log("Değişkenler varsayılana çekildi."); } // Başlatma Komutu function onBaslatCommand(ctx) { if (ctx.from.id === 5186426925) { if (chatIds.length === 0) { ctx.reply('Otomatik Mesaj Botu\n\nBotunuz başlatılamıyor. En az bir grup eklemelisiniz. /ekle komutunu kullanarak grup ekleyebilirsiniz.'); } else { start(); ctx.reply('Otomatik mesaj botunuz başlatıldı. Mesajlar ayarladığınız süre sonunda gruplara gönderilmeye başlayacaktır. Dilerseniz daha sonra mesaj gönderme süresini /sure komutu ile ayarlayabilirsiniz. Ayrıca tekrar eden mesajı /degistir komutu ile istediğiniz zamanda değiştirebilirsiniz. Daha sonradan eklemek istediğiniz grupları /ekle , çıkarmak istediğiniz grupları ise /cikar komutu ile değiştirebilirsiniz.'); } } else { ctx.reply('Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir.'); } } // Durdurma Komutu function onDurdurCommand(ctx) { if (ctx.from.id === 5186426925) { stop(); ctx.reply('Otomatik mesaj botunuz durduruldu.'); } else { ctx.reply('Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir.'); } } // Süre Ayarlama Komutu function onSureCommand(ctx) { if (ctx.from.id === 5186426925) { const args = ctx.message.text.split(' '); if (args.length === 2 && !isNaN(args[1])) { const newIntervalTime = parseInt(args[1]) * 1000; // Çünkü interval saniye cinsinden çalışıyor if (newIntervalTime >= 5000) { intervalTime = newIntervalTime; if (intervalId) { clearInterval(intervalId); intervalId = setInterval(() => { chatIds.forEach(chatId => { send_message(chatId, message); }); }, intervalTime); } ctx.reply(`Mesaj gönderme süresi ${args[1]} saniye olarak ayarlandı.`); } else { ctx.reply('Lütfen en az 5 saniye olarak bir süre girin.'); } } else { ctx.reply('Geçersiz komut. /sure *saniye* olacak şekilde kullanın.'); } } else { ctx.reply('Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir.'); } } // Mesaj Değiştirme Komutu function onDegistirCommand(ctx) { if (ctx.from.id === 5186426925) { const args = ctx.message.text.split(' '); if (args.length >= 2) { args.shift(); const newMessage = args.join(' '); changeMessage(newMessage); ctx.reply('Otomatik mesaj değiştirildi.'); } else { ctx.reply('Geçersiz komut. /degistir *yeni_mesaj* şeklinde kullanın.'); } } else { ctx.reply('Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir.'); } } // Sıfırlama Komutu function onResetleCommand(ctx) { if (ctx.from.id === 5186426925) { resetToDefaults(); ctx.reply('Bot ayarları varsayılana çekildi. Bot tekrar başlatıldığında hoşgeldin mesajı gösterecektir.'); } else { ctx.reply('Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir.'); } } // Hoşgeldin Mesajı function onWelcomeCommand(ctx) { const welcomeMessage = `♥️ Hey @${ctx.from.username} Dostum, Naber? 💎 Sende bu muhteşem bota sahip olmak istiyorsan, üyelik & fiyat veya teklifler için aşağıdaki butondan bana ulaşabilirsin. İyi değil en iyisiyiz. 👑`; ctx.reply(welcomeMessage, Markup.inlineKeyboard([ Markup.button.url('🟢 7/24 Online İletişim 🟢', 'https://t.me/AltanXC') ])); } // Grup Ekleme Komutu function onEkleCommand(ctx) { if (ctx.from.id === 5186426925) { const args = ctx.message.text.split(' '); if (args.length >= 2) { args.shift(); let addedChatIds = []; args.forEach((chatId) => { if (!chatIds.includes(chatId)) { chatIds.push(chatId); addedChatIds.push(chatId); } }); if (addedChatIds.length > 0) { ctx.reply(`Grup(lar) başarıyla eklendi: ${addedChatIds.join(', ')}.`); } else { ctx.reply('Verilen grup(lar) zaten ekli.'); } } else { ctx.reply('Geçersiz komut. /ekle *grup_chat_id* şeklinde kullanın. Birden fazla grup eklemek için boşlukla ayrılarak yazabilirsiniz.'); } } else { ctx.reply('Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir.'); } } // ... Diğer Kodlar ... async function grupbilgiCommand(ctx) { if (ctx.from.id === 5186426925) { try { const chatList = await ctx.telegram.getChat(ctx.message.chat.id); ctx.reply(`🆔 Grup ID: ${chatList.id}\n🔠 Grup Adı: ${chatList.title}`); } catch (error) { console.error(error); ctx.reply('Grupları alırken bir hata oluştu.'); } } else { ctx.reply('Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir.'); } } function kurulumCommand(ctx) { const allowedUserIds = [5186426925]; // Yetkili Kişilerin ID Listesi const userId = ctx.from.id; if (allowedUserIds.includes(userId)) { const kurulumMesaji = ` Merhaba! ♥️ @${ctx.from.username} ╭────────────────╮ │🔸Kuruluma Hoşgeldin🔸│ ╰────────────────╯ ╭──────────────────────── │ ⚙️ Mesaj göndereceğin grupları ekle. ├──────────────────────── │ Örn: /ekle -1001234567890 │ Örn: /ekle -1001234567890 -1000987654321 ╰──────────────────────── ╭──────────────────────── │⚙️ Göndereceğin mesajı değiştir. ├──────────────────────── │Örn: /degistir Merhaba! ╰──────────────────────── ╭──────────────────────── │⚙️ Mesaj tekrar etme süresini ayarla. ├──────────────────────── │Örn: /sure 300 (Saniye Cinsinden) ╰──────────────────────── ╭──────────────────────── │✅ Her şey hazır, artık botu başlatalım. ├──────────────────────── │ >> /baslat << Tıkla ve Çalıştır! ╰──────────────────────── ℹ️ /grupbilgi - Komutunu reklam yapmak istediğiniz grupta botu ekleyerek kullandığınızda o grubun chat id bilgisini gösterir. Böylece /ekle komutunu kullanarak o grubu botun veritabanına ekleyebilirsin. ℹ️ /komutlar - Bu komutla bottaki tüm komutları ve açıklamalarını okuyabilirsiniz. (Çok Yakında!) `; ctx.reply(kurulumMesaji); } else { ctx.reply('Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir.'); } } // Çıkar Komutu function onCikarCommand(ctx) { if (ctx.from.id === 5186426925) { const args = ctx.message.text.split(' '); if (args.length >= 2) { args.shift(); let removedChatIds = []; args.forEach((chatId) => { const index = chatIds.indexOf(chatId); if (index !== -1) { chatIds.splice(index, 1); removedChatIds.push(chatId); } }); if (removedChatIds.length > 0) { ctx.reply(`Grup(lar) başarıyla çıkarıldı: ${removedChatIds.join(', ')}.`); } else { ctx.reply('Verilen grup(lar) zaten listede yok.'); } } else { ctx.reply('Geçersiz komut. /cikar *grup_chat_id* şeklinde kullanın. Birden fazla grup çıkarmak için boşlukla ayrılarak yazabilirsiniz.'); } } else { ctx.reply('Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir.'); } } // Bot Bilgi Komutu function onBotBilgiCommand(ctx) { if (ctx.from.id === 5186426925) { const chatInfo = chatIds.length > 0 ? chatIds.join(', ') : 'Hiçbir Grup Ekli Değil'; const userInfo = `Kullanıcı Adı: @${ctx.from.username}\nID: ${ctx.from.id}`; const botStatus = intervalId ? 'Çalışıyor 🟢' : 'Çalışmıyor 🔴'; const totalMessages = intervalId ? chatIds.length * (intervalTime / 1000) : 0; const bilgiMessage = ` ╭──────────────────────── │ ⚙️ Bot Durumu: ⬇️ ╰──────────────────────── ${botStatus} ╭──────────────────────── │⏱️ Otomatik Mesaj Süresi: ⬇️ ╰──────────────────────── ${intervalTime / 1000} Saniye ╭──────────────────────── │ ✉️ Gönderilen Mesaj Sayısı: ⬇️ ╰──────────────────────── Toplam ${totalMessages} Mesaj ╭──────────────────────── │👥 Botun Mesaj Gönderdiği Gruplar: ⬇️ ╰──────────────────────── ${chatInfo} ╭──────────────────────── │ 🔄 Otomatik Gönderilen Mesaj: ⬇️ ╰──────────────────────── ${message} `; ctx.reply(bilgiMessage); } else { ctx.reply('Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir.'); } } // Bilgi Komutu const allowedUserIds = [5186426925]; function onBilgiCommand(ctx) { const userId = ctx.from.id; const userInfo = ctx.from; const botStatus = intervalId ? 'Çalışıyor 🟢' : 'Çalışmıyor 🔴'; const totalMessages = intervalId ? chatIds.length * (intervalTime / 1000) : 0; const isAuthorized = allowedUserIds.includes(userId); const bilgiMessage = ` 👤 Kullanıcı Adı: @${userInfo.username || "Belirtilmemiş"} 🆔 ID Numarası: ${userId} 🔐 Yetkili Durumu: ${isAuthorized ? "Yetkili ✅" : "Yetkili Değil ❌"} `; ctx.reply(bilgiMessage); } // Botun bulunduğu grupları almak için API isteği gönderen fonksiyon async function getBotGroups() { try { const response = await axios.get(`https://api.telegram.org/bot${token}/getUpdates`); const updates = response.data.result; const groupIds = new Set(); // Botun bulunduğu grup ID'lerini topluyoruz updates.forEach(update => { if (update.message && update.message.chat && update.message.chat.type === 'group') { groupIds.add(update.message.chat.id); } }); return Array.from(groupIds); // Set'i bir diziye çeviriyoruz } catch (error) { console.error('Bot gruplarını alırken bir hata oluştu:', error); return []; } } // /ginfo Komutu function onGinfoCommand(ctx) { if (ctx.from.id === 5186426925) { // Yetkili kişinin ID'sini güncelleyin if (chatIds.size > 0) { const groupList = Array.from(chatIds).join(', '); // Set'i bir dizeye dönüştür ctx.reply(`Botun bulunduğu gruplar:\n${groupList}`); } else { ctx.reply("Bot şu anda herhangi bir grupta bulunmuyor."); } } else { ctx.reply('Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir.'); } }; // ... Komutlar ... const bot = new Telegraf(token); bot.command('start', (ctx) => onWelcomeCommand(ctx)); bot.command('baslat', (ctx) => onBaslatCommand(ctx)); bot.command('durdur', (ctx) => onDurdurCommand(ctx)); bot.command('sure', (ctx) => onSureCommand(ctx)); bot.command('degistir', (ctx) => onDegistirCommand(ctx)); bot.command('resetle', (ctx) => onResetleCommand(ctx)); bot.command('ekle', (ctx) => onEkleCommand(ctx)); bot.command('cikar', (ctx) => onCikarCommand(ctx)); bot.command('bilgi', (ctx) => onBilgiCommand(ctx)); bot.command('botbilgi', (ctx) => onBotBilgiCommand(ctx)); bot.command('grupbilgi', (ctx) => grupbilgiCommand(ctx)); bot.command('kurulum', (ctx) => kurulumCommand(ctx)); bot.command('ginfo', (ctx) => onGinfoCommand(ctx)); bot.launch();