Added sql
This commit is contained in:
@@ -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()
|
|
||||||
Binary file not shown.
BIN
jokes-bot-v3.0/jokes.db-journal
Normal file
BIN
jokes-bot-v3.0/jokes.db-journal
Normal file
Binary file not shown.
33
jokes-bot-v3.0/jokes_v3.py
Normal file
33
jokes-bot-v3.0/jokes_v3.py
Normal file
@@ -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!")
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
-- jokes_database.sql
|
-- jokes_database_fixed.sql
|
||||||
-- Create and populate jokes table
|
-- Create and populate jokes table with column name 'joke'
|
||||||
|
|
||||||
-- Step 1: Create the jokes table
|
-- Step 1: Create the jokes table
|
||||||
CREATE TABLE IF NOT EXISTS jokes (
|
CREATE TABLE IF NOT EXISTS jokes (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
joke_text TEXT NOT NULL,
|
joke TEXT NOT NULL, -- CHANGED FROM 'joke_text' TO 'joke'
|
||||||
contributor TEXT,
|
contributor TEXT,
|
||||||
published DATE DEFAULT CURRENT_DATE
|
published DATE DEFAULT CURRENT_DATE
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Step 2: Insert 25 sample jokes
|
-- 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 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'),
|
('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'),
|
('What do you call a fake noodle? An impasta!', 'Italian Chef', '2024-01-17'),
|
||||||
@@ -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())
|
|
||||||
Reference in New Issue
Block a user