76 lines
2.5 KiB
Python
76 lines
2.5 KiB
Python
# Debug version with logging
|
||
from telegram import Update
|
||
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
|
||
from database import JokeDatabase
|
||
import os
|
||
import logging
|
||
|
||
# Enable detailed logging
|
||
logging.basicConfig(
|
||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||
level=logging.DEBUG # Changed to DEBUG
|
||
)
|
||
logger = logging.getLogger(__name__)
|
||
|
||
BOT_TOKEN = "7864875699:AAEWf6ff1DYNzPvW6Dbn7D2W5aavg9KPhgY"
|
||
db = JokeDatabase()
|
||
|
||
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
|
||
logger.info(f"📱 /start from user: {update.effective_user.username}")
|
||
await update.message.reply_text("🤖 Hi! I'm your Joke Bot!\nCommands: /joke, /addjoke")
|
||
|
||
async def get_random_joke(update: Update, context: ContextTypes.DEFAULT_TYPE):
|
||
logger.info(f"🎲 /joke from user: {update.effective_user.username}")
|
||
joke = db.get_random_joke()
|
||
|
||
if not joke:
|
||
await update.message.reply_text("No jokes yet! Use /addjoke to add one.")
|
||
return
|
||
|
||
await update.message.reply_text(joke['joke_text'])
|
||
|
||
async def add_new_joke(update: Update, context: ContextTypes.DEFAULT_TYPE):
|
||
logger.info(f"➕ /addjoke from user: {update.effective_user.username}")
|
||
logger.info(f" Args: {context.args}")
|
||
|
||
if not context.args:
|
||
await update.message.reply_text("Usage: /addjoke [your joke]")
|
||
return
|
||
|
||
joke_text = " ".join(context.args)
|
||
user = update.effective_user
|
||
|
||
logger.info(f" User ID: {user.id}, Username: {user.username}")
|
||
logger.info(f" Joke text (first 50 chars): {joke_text[:50]}...")
|
||
|
||
# Add to database
|
||
joke_id = db.add_joke(joke_text, user.id, user.username or user.first_name)
|
||
logger.info(f" Database returned joke_id: {joke_id}")
|
||
|
||
await update.message.reply_text("✅ Joke added to database!")
|
||
|
||
def main():
|
||
print("🔍 DEBUG MODE - Starting bot with detailed logs...")
|
||
print(f"📊 Database: {os.path.abspath('jokes.db')}")
|
||
|
||
app = ApplicationBuilder()\
|
||
.token(BOT_TOKEN)\
|
||
.read_timeout(30)\
|
||
.write_timeout(30)\
|
||
.connect_timeout(30)\
|
||
.pool_timeout(30)\
|
||
.build()
|
||
|
||
app.add_handler(CommandHandler("start", start))
|
||
app.add_handler(CommandHandler("joke", get_random_joke))
|
||
app.add_handler(CommandHandler("addjoke", add_new_joke))
|
||
|
||
print("✅ Debug bot is running! Check logs below...")
|
||
print("📱 Test in Telegram with /addjoke test joke")
|
||
print("🛑 Press Ctrl+C to stop")
|
||
|
||
app.run_polling()
|
||
|
||
if __name__ == "__main__":
|
||
main()
|