cat << ‘EOF’ > ~/Desktop/setup_raybots.py
import os
save_path = os.path.expanduser(“~/Desktop/telegram-bots”)
os.makedirs(save_path, exist_ok=True)
bots = {
“texcoolbot.py”: ”’
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
BOT_TOKEN = ‘7464269358:AAEcUuwyX77QOAh6i_NJyPcYfNfhLreu3Lw’ PAYMENT_LINK = ‘https://ray2407.github.io/texcool/‘
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(“đž Welcome to TEXCOOLBot!\\n/pay â Show payment link”)
async def pay(update: Update, context: ContextTypes.DEFAULT_TYPE): await update.message.reply_text(f”Pay here: {PAYMENT_LINK}”)
def main():
app = ApplicationBuilder().token(BOT_TOKEN).build()
app.add_handler(CommandHandler(“start”, start))
app.add_handler(CommandHandler(“pay”, pay))
app.run_polling()
if __name__ == ‘__main__’:
main()
”’,
“ray2fb_bot.py”: ”’
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
BOT_TOKEN = ‘8056349243:AAH7CVgBx5_ese73xjCg3ah71T6-NlrOeaI’ FB_LANDING_LINK = ‘https://ray2407.github.io/ray2fb/‘
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(“đ Ray2FB Bot\\n/funnel â Launch Facebook funnel”)
async def funnel(update: Update, context: ContextTypes.DEFAULT_TYPE): await update.message.reply_text(f”đ {FB_LANDING_LINK}”)
def main():
app = ApplicationBuilder().token(BOT_TOKEN).build()
app.add_handler(CommandHandler(“start”, start))
app.add_handler(CommandHandler(“funnel”, funnel))
app.run_polling()
if __name__ == ‘__main__’:
main()
”’,
“my0724_bot.py”: ”’
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
BOT_TOKEN = ‘7355656881:AAEe3hHYjDAlg6aVQ8Iw8M125qxqBxlnYK4’ DAILY_LINK = ‘https://ray2407.github.io/0724/‘
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): await update.message.reply_text(“đ 0724 Bot\\n/daily â Todayâs link”)
async def daily(update: Update, context: ContextTypes.DEFAULT_TYPE): await update.message.reply_text(f”đ {DAILY_LINK}”)
def main():
app = ApplicationBuilder().token(BOT_TOKEN).build()
app.add_handler(CommandHandler(“start”, start))
app.add_handler(CommandHandler(“daily”, daily))
app.run_polling()
if __name__ == ‘__main__’:
main()
”’,
“rayhackettbot.py”: ”’
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
BOT_TOKEN = ‘6827724397:AAHAnz_77_IYZRZTT8VULEhyal1oJBe_Muw’ DAD_LINK = ‘https://ray2407.github.io/rayhackett/‘
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(“đ Ray Hackett Bot\\n/dadvice â Daily insight”)
async def dadvice(update: Update, context: ContextTypes.DEFAULT_TYPE): await update.message.reply_text(f”đŹ {DAD_LINK}”)
def main():
app = ApplicationBuilder().token(BOT_TOKEN).build()
app.add_handler(CommandHandler(“start”, start))
app.add_handler(CommandHandler(“dadvice”, dadvice))
app.run_polling()
if __name__ == ‘__main__’:
main()
”’
}
# Save bot files
for filename, content in bots.items():
with open(os.path.join(save_path, filename), “w”) as f:
f.write(content.strip())
# Save requirements.txt
with open(os.path.join(save_path, “requirements.txt”), “w”) as f: f.write(“python-telegram-bot==20.3\n”)
# Save launcher.sh
with open(os.path.join(save_path, “launcher.sh”), “w”) as f: f.write(“””#!/bin/bash
cd “$(dirname “$0″)”
echo “đ Launching all RayBots…”
python3 texcoolbot.py > texcoolbot.log 2>&1 &
python3 ray2fb_bot.py > ray2fb_bot.log 2>&1 &
python3 my0724_bot.py > my0724_bot.log 2>&1 &
python3 rayhackettbot.py > rayhackettbot.log 2>&1 &
echo “â
All bots running. Logs are saved.”
“””)
# Save stop_all.sh
with open(os.path.join(save_path, “stop_all.sh”), “w”) as f: f.write(“””#!/bin/bash
echo “đ Stopping all RayBots…”
pkill -f texcoolbot.py
pkill -f ray2fb_bot.py
pkill -f my0724_bot.py
pkill -f rayhackettbot.py
echo “â
All bots stopped.”
“””)
# Save status.sh
with open(os.path.join(save_path, “status.sh”), “w”) as f:
f.write(“””#!/bin/bash
echo “đ Checking bot status…”
for bot in texcoolbot ray2fb_bot my0724_bot rayhackettbot
do
if pgrep -f “$bot.py” > /dev/null; then
echo “â
$bot.py is RUNNING”
else
echo “â $bot.py is NOT running”
fi
done
“””)
# Save autobot.sh
with open(os.path.join(save_path, “autobot.sh”), “w”) as f:
f.write(“””#!/bin/bash
echo “đ Auto-restarting bots if they crash…”
while true; do
for bot in texcoolbot ray2fb_bot my0724_bot rayhackettbot
do
if ! pgrep -f “$bot.py” > /dev/null; then
echo “â ïž Restarting $bot…”
python3 $bot.py > $bot.log 2>&1 &
fi
done
sleep 10
done
“””)
# Make all .sh files executable
for shfile in [“launcher.sh”, “stop_all.sh”, “status.sh”, “autobot.sh”]: os.chmod(os.path.join(save_path, shfile), 0o755)
print(“â
Everything created in ~/Desktop/telegram-bots”)
EOF
python3 ~/Desktop/setup_raybots.py