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
|
||||
-- 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'),
|
||||
@@ -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