const axios = require('axios'); const { Telegraf } = require('telegraf'); const express = require('express'); const app = express(); const token = process.env.BOT_TOKEN; const yetkiliUserIds = process.env.YETKILI_USER_IDS.split(','); const bot = new Telegraf(token); app.get('/', (req, res) => res.send('Telegram: t.me/JoaquinGuzmans')); app.listen(process.env.PORT, () => console.log('BOT Çalışıyor! Port Ayarlandı: ' + process.env.PORT)); require('dotenv').config(); let chatIds = []; let message = 'Bu bir otomatik mesajdır.'; const url = `https://api.telegram.org/bot${token}/sendMessage`; let intervalId; let intervalTime = 60000; const sendMessage = (chatId, text, parseMode = 'Markdown') => { axios.post(url, { chat_id: chatId, text, parse_mode: parseMode }) .then(response => console.log(response.data)) .catch(error => console.error(error)); }; const start = () => { console.log("Otomatik mesajlar başlatıldı."); if (!intervalId) { intervalId = setInterval(() => chatIds.forEach(chatId => sendMessage(chatId, message)), intervalTime); } }; const stop = () => { console.log("Otomatik mesajlar durduruldu."); if (intervalId) { clearInterval(intervalId); intervalId = null; } }; const changeMessage = (msg) => { message = msg; console.log("Otomatik mesaj değiştirildi!"); }; // Başlatma Komutu const onBaslatCommand = (ctx) => { const allowedUserIds = yetkiliUserIds.map(Number); if (allowedUserIds.includes(ctx.from.id)) { 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.replyWithMarkdown('*Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir. Bu komutu botu satın aldıktan sonra kullanabilirsin. \n\n Satın almak için /start komutunu kullan ve bizimle iletişime geç.*'); } }; // Durdurma Komutu function onDurdurCommand(ctx) { const allowedUserIds = yetkiliUserIds.map(id => parseInt(id)); if (allowedUserIds.includes(ctx.from.id)) { stop(); ctx.reply('Otomatik mesaj botunuz durduruldu.'); } else { ctx.replyWithMarkdown('*Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir. Bu komutu botu satın aldıktan sonra kullanabilirsin. \n\n Satın almak için /start komutunu kullan ve bizimle iletişime geç.*'); } } // Süre Ayarlama Komutu function onSureCommand(ctx) { const allowedUserIds = yetkiliUserIds.map(id => parseInt(id)); if (allowedUserIds.includes(ctx.from.id)) { const args = ctx.message.text.split(' '); if (args.length === 2 && !isNaN(args[1])) { const newIntervalTime = parseInt(args[1]) * 1000; if (newIntervalTime >= 6000) { intervalTime = newIntervalTime; if (intervalId) { clearInterval(intervalId); intervalId = setInterval(() => { chatIds.forEach(chatId => { sendMessage(chatId, message); }); }, intervalTime); } ctx.replyWithMarkdown(`Mesaj gönderme süresi *${args[1]}* saniye olarak ayarlandı.`); } else { ctx.reply('Lütfen en az 60 saniye olarak bir süre girin.'); } } else { ctx.replyWithMarkdown('Geçersiz komut. /sure *saniye* olacak şekilde kullanın.'); } } else { ctx.replyWithMarkdown('*Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir. Bu komutu botu satın aldıktan sonra kullanabilirsin. \n\n Satın almak için /start komutunu kullan ve bizimle iletişime geç.*'); } } // Mesaj Değiştirme Komutu function onDegistirCommand(ctx) { const allowedUserIds = yetkiliUserIds.map(id => parseInt(id)); if (allowedUserIds.includes(ctx.from.id)) { const args = ctx.message.text.split(' '); if (args.length >= 2) { args.shift(); const newMessage = args.join(' '); changeMessage(newMessage); ctx.replyWithMarkdown('*Otomatik mesaj değiştirildi.*'); } else { ctx.replyWithMarkdown('Geçersiz komut. /degistir *yeni_mesaj* şeklinde kullanın.'); } } else { ctx.replyWithMarkdown('*Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir. Bu komutu botu satın aldıktan sonra kullanabilirsin. \n\n Satın almak için /start komutunu kullan ve bizimle iletişime geç.*'); } } // Grup Ekleme Komutu function onEkleCommand(ctx) { const allowedUserIds = yetkiliUserIds.map(id => parseInt(id)); if (allowedUserIds.includes(ctx.from.id)) { 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.replyWithMarkdown(`*Grup(lar) başarıyla eklendi:* ${addedChatIds.join(', ')}.`); } else { ctx.reply('Verilen grup(lar) zaten ekli.'); } } else { ctx.replyWithMarkdown('Geçersiz komut. /ekle *grup_chat_id* şeklinde kullanın. Birden fazla grup eklemek için boşlukla ayrılarak yazabilirsiniz.'); } } else { ctx.replyWithMarkdown('*Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir. Bu komutu botu satın aldıktan sonra kullanabilirsin. \n\n Satın almak için /start komutunu kullan ve bizimle iletişime geç.*'); } } // Çıkar Komutu function onCikarCommand(ctx) { const allowedUserIds = yetkiliUserIds.map(id => parseInt(id)); if (allowedUserIds.includes(ctx.from.id)) { 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.replyWithMarkdown(`*Grup(lar) başarıyla çıkarıldı:* ${removedChatIds.join(', ')}.`); } else { ctx.reply('Verilen grup(lar) zaten listede yok.'); } } else { ctx.replyWithMarkdown('Geçersiz komut. /cikar *grup_chat_id* şeklinde kullanın. Birden fazla grup çıkarmak için boşlukla ayrılarak yazabilirsiniz.'); } } else { ctx.replyWithMarkdown('*Üzgünüm, bu komutu sadece yetkili kişiler kullanabilir. Bu komutu botu satın aldıktan sonra kullanabilirsin. \n\n Satın almak için /start komutunu kullan ve bizimle iletişime geç.*'); } } // BOT Welcome Message const wMessageFunctions = require('./functions/WMessage'); bot.start(wMessageFunctions.onWelcomeCommand); // BOT Komut -> /kurulum const setupFunctions = require('./functions/Setup'); bot.command('kurulum', (ctx) => { setupFunctions.kurulumCommand(ctx, allowedUserIds); }); // BOT Komut -> /grupbilgi const groupInfoFunctions = require('./functions/GroupInfo'); bot.command('gbilgi', (ctx) => { groupInfoFunctions.gbilgiCommand(ctx, allowedUserIds); }); // BOT Komut -> /botbilgi const botInfoFunctions = require('./functions/BotInfo'); bot.command('durum', (ctx) => { botInfoFunctions.onDurumCommand(ctx, allowedUserIds, intervalId, chatIds, intervalTime, message); }); // BOT Komut -> /bilgi const allowedUserIds = yetkiliUserIds.map(id => parseInt(id)); const infoFunctions = require('./functions/Info'); bot.command('kbilgi', (ctx) => { infoFunctions.onKBilgiCommand(ctx, intervalId, chatIds, intervalTime, allowedUserIds); }); // BOT Komut -> /komutlar require('./functions/Commands')(bot); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 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('ekle', (ctx) => onEkleCommand(ctx)); bot.command('cikar', (ctx) => onCikarCommand(ctx)); bot.launch();