43 lines
1.7 KiB
Python
43 lines
1.7 KiB
Python
from telegram import Update
|
|
from telegram.ext import Application, CommandHandler, MessageHandler, filters
|
|
import sqlite3
|
|
|
|
TOKEN = "7864875699:AAEWf6ff1DYNzPvW6Dbn7D2W5aavg9KPhgY"
|
|
|
|
waiting = {} # Track who's adding jokes
|
|
|
|
async def start(update, context):
|
|
await update.message.reply_text("🤣 Joke Bot!\n/joke - get joke\n/addjoke - add joke")
|
|
|
|
async def joke(update, context):
|
|
conn = sqlite3.connect('jokes.db')
|
|
conn.execute('CREATE TABLE IF NOT EXISTS jokes (text TEXT, user TEXT, name TEXT)')
|
|
joke = conn.execute("SELECT text FROM jokes ORDER BY RANDOM() LIMIT 1").fetchone()
|
|
conn.close()
|
|
await update.message.reply_text(joke[0] if joke else "No jokes! /addjoke to add one")
|
|
|
|
async def addjoke(update, context):
|
|
waiting[update.effective_user.id] = True
|
|
await update.message.reply_text("📝 Type your joke:")
|
|
|
|
async def handle_text(update, context):
|
|
user_id = update.effective_user.id
|
|
if user_id in waiting:
|
|
conn = sqlite3.connect('jokes.db')
|
|
conn.execute('CREATE TABLE IF NOT EXISTS jokes (text TEXT, user TEXT, name TEXT)')
|
|
conn.execute("INSERT INTO jokes VALUES (?, ?, ?)",
|
|
(update.message.text, user_id, update.effective_user.first_name))
|
|
conn.commit()
|
|
conn.close()
|
|
del waiting[user_id]
|
|
await update.message.reply_text("✅ Saved!")
|
|
else:
|
|
await update.message.reply_text("Try /start")
|
|
|
|
app = Application.builder().token(TOKEN).build()
|
|
app.add_handler(CommandHandler("start", start))
|
|
app.add_handler(CommandHandler("joke", joke))
|
|
app.add_handler(CommandHandler("addjoke", addjoke))
|
|
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_text))
|
|
print("Bot running!")
|
|
app.run_polling() |