Added sql

This commit is contained in:
2026-01-27 10:13:16 +03:00
parent 25eda8015b
commit 05aea043b6
9 changed files with 37 additions and 123 deletions

View File

@@ -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.

Binary file not shown.

View 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!")

View File

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

View File

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