diff --git a/database.py b/jokes-bot-v3.0/database.py similarity index 100% rename from database.py rename to jokes-bot-v3.0/database.py diff --git a/jokes-bot-v3.0/debug_app.py b/jokes-bot-v3.0/debug_app.py deleted file mode 100644 index 8bebe7f..0000000 --- a/jokes-bot-v3.0/debug_app.py +++ /dev/null @@ -1,75 +0,0 @@ -# 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() diff --git a/jokes-bot-v3.0/jokes.db b/jokes-bot-v3.0/jokes.db index d267d9d..a699084 100644 Binary files a/jokes-bot-v3.0/jokes.db and b/jokes-bot-v3.0/jokes.db differ diff --git a/jokes-bot-v3.0/jokes.db-journal b/jokes-bot-v3.0/jokes.db-journal new file mode 100644 index 0000000..34c22e8 Binary files /dev/null and b/jokes-bot-v3.0/jokes.db-journal differ diff --git a/jokes-bot-v3.0/starter_app.py b/jokes-bot-v3.0/jokes_v1.py similarity index 100% rename from jokes-bot-v3.0/starter_app.py rename to jokes-bot-v3.0/jokes_v1.py diff --git a/jokes-bot-v3.0/app.py b/jokes-bot-v3.0/jokes_v2.py similarity index 100% rename from jokes-bot-v3.0/app.py rename to jokes-bot-v3.0/jokes_v2.py diff --git a/jokes-bot-v3.0/jokes_v3.py b/jokes-bot-v3.0/jokes_v3.py new file mode 100644 index 0000000..130706d --- /dev/null +++ b/jokes-bot-v3.0/jokes_v3.py @@ -0,0 +1,33 @@ +# simple_joke_menu.py +import sqlite3 +import random + +db = sqlite3.connect('jokes.db') + +while True: + print("\n1. Get joke") + print("2. Add joke") + print("3. Quit") + + choice = input("Your choice: ") + + if choice == "1": + joke = db.execute("SELECT joke FROM jokes ORDER BY RANDOM() LIMIT 1").fetchone() + if joke: + print(f"\n๐Ÿคฃ {joke[0]}") + else: + print("No jokes yet!") + + elif choice == "2": + new = input("Your joke: ") + if new: + name = input("Your name: ") or "Friend" + db.execute("INSERT INTO jokes (joke, contributor) VALUES (?, ?)", (new, name)) + db.commit() + print("Saved!") + + elif choice == "3": + break + +db.close() +print("Bye!") \ No newline at end of file diff --git a/sample_jokes.sql b/jokes-bot-v3.0/sample_jokes.sql similarity index 92% rename from sample_jokes.sql rename to jokes-bot-v3.0/sample_jokes.sql index 83d29a8..b1f9f4d 100644 --- a/sample_jokes.sql +++ b/jokes-bot-v3.0/sample_jokes.sql @@ -1,16 +1,16 @@ --- jokes_database.sql --- Create and populate jokes table +-- jokes_database_fixed.sql +-- Create and populate jokes table with column name 'joke' -- Step 1: Create the jokes table CREATE TABLE IF NOT EXISTS jokes ( id INTEGER PRIMARY KEY AUTOINCREMENT, - joke_text TEXT NOT NULL, + joke TEXT NOT NULL, -- CHANGED FROM 'joke_text' TO 'joke' contributor TEXT, published DATE DEFAULT CURRENT_DATE ); -- Step 2: Insert 25 sample jokes -INSERT INTO jokes (joke_text, contributor, published) VALUES +INSERT INTO jokes (joke, contributor, published) VALUES -- CHANGED COLUMN NAME HERE ('Why don''t scientists trust atoms? Because they make up everything!', 'Science Fan', '2024-01-15'), ('Why did the scarecrow win an award? He was outstanding in his field!', 'Farm Humor', '2024-01-16'), ('What do you call a fake noodle? An impasta!', 'Italian Chef', '2024-01-17'), diff --git a/jokes-bot-v3.0/simple_test.py b/jokes-bot-v3.0/simple_test.py deleted file mode 100644 index 65191e6..0000000 --- a/jokes-bot-v3.0/simple_test.py +++ /dev/null @@ -1,44 +0,0 @@ -import asyncio -import logging -from telegram import Update -from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes - -logging.basicConfig(level=logging.INFO) - -BOT_TOKEN = "7864875699:AAEWf6ff1DYNzPvW6Dbn7D2W5aavg9KPhgY" - -async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): - await update.message.reply_text("โœ… Simple test works!") - -async def main(): - print("๐Ÿงช Testing Telegram connection...") - try: - app = ApplicationBuilder()\ - .token(BOT_TOKEN)\ - .read_timeout(30)\ - .write_timeout(30)\ - .connect_timeout(30)\ - .pool_timeout(30)\ - .build() - - app.add_handler(CommandHandler("start", start)) - - print("๐Ÿค– Starting bot...") - await app.initialize() - await app.start() - print("โœ… Bot started! Type /start in Telegram to test.") - print("โณ Running for 15 seconds...") - - # Run for 15 seconds - await asyncio.sleep(15) - - await app.stop() - await app.shutdown() - print("โœ… Test complete - no network errors!") - - except Exception as e: - print(f"โŒ Error: {e}") - print("\n๐Ÿ’ก Try: pip install python-telegram-bot==13.15") - -if __name__ == "__main__": - asyncio.run(main())