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()