This commit is contained in:
2026-01-23 12:21:26 +03:00
parent 7332f83c31
commit 758461132c
2191 changed files with 381215 additions and 1899 deletions

View File

@@ -1,45 +1,344 @@
# Telegram Joke Bot
Step-by-Step Complete Setup Guide
📋 Before We Start - Check Your Python Installation
1. Open PowerShell:
Press Windows + R
A simple Telegram bot that tells jokes when you send it the `/joke` command.
Type powershell
## Setup Instructions
Press Enter
1. **Install required packages**
```bash
pip install -r requirements.txt
```
2. Check Python Version:
powershell
python --version
# Should show: Python 3.x.x
2. **Get a bot token**
- Talk to [@BotFather](https://t.me/BotFather) on Telegram
- Create a new bot with `/newbot`
- Copy the token provided by BotFather
# If that doesn't work, try:
python3 --version
# Or on some systems:
py --version
📁 Create Your Project Folder
3. Navigate to Documents and Create Folder:
powershell
# Go to Documents folder
cd Documents
3. **Set your bot token**
You can set your bot token in two ways:
Option A: Set as environment variable
```bash
export BOT_TOKEN="your_token_here"
```
Option B: Replace "YOUR_BOT_TOKEN_HERE" in jokes.py with your actual token
# Create a new folder using format: [firstname]_[surname initial]
# Example if your name is Ivan Lim:
mkdir ivan_l
4. **Run the bot**
```bash
python jokes.py
```
# Go into your new folder
cd ivan_l
## Bot Commands
# Verify location
pwd
🎯 Get the Template Repository
4. Access the Template Repository:
Go to: https://gitea.techshare.cc/technolyceum/ai6-m3
- `/start` - Start the bot and get welcome message
- `/joke` - Get a random joke
- `/help` - Show help message
Find the template named: [firstname]_[surname initial]_ai6-m3
## Features
Click on the template
- Sends random jokes from a predefined list
- Easy to add more jokes to the collection
- Simple and lightweight implementation
Click the "Clone" button and copy the URL
5. Clone the Repository:
powershell
# Clone using the copied URL
git clone https://gitea.techshare.cc/technolyceum/ai6-m3/[firstname]_[surname initial]_ai6-m3.git
# Go into the cloned folder
cd [firstname]_[surname initial]_ai6-m3
🐍 Set Up Virtual Environment
6. Create and Activate Virtual Environment:
powershell
# Create virtual environment
python -m venv venv
# Activate it
.\venv\Scripts\Activate.ps1
# If you see a security warning:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
.\venv\Scripts\Activate.ps1
✅ Success: You should see (venv) at the start of your command line!
📝 Type Your Bot Code
7. Open Python IDLE:
powershell
# Open IDLE from PowerShell
python -m idlelib
8. Create app.py in IDLE:
In IDLE: Click File → New File
TYPE the following code line by line:
python
from telegram import Update
from telegram.ext import Application, CommandHandler, MessageHandler, filters
import sqlite3
TOKEN = "TEACHER_WILL_PROVIDE_THIS"
waiting = {}
async def start(update, context):
await update.message.reply_text("🤣 Joke Bot!\n/joke - get joke\n/addjoke - add joke")
async def joke(update, context):
conn = sqlite3.connect('jokes.db')
conn.execute('CREATE TABLE IF NOT EXISTS jokes (text TEXT, user TEXT, name TEXT)')
joke = conn.execute("SELECT text FROM jokes ORDER BY RANDOM() LIMIT 1").fetchone()
conn.close()
await update.message.reply_text(joke[0] if joke else "No jokes! /addjoke to add one")
async def addjoke(update, context):
waiting[update.effective_user.id] = True
await update.message.reply_text("📝 Type your joke:")
async def handle_text(update, context):
user_id = update.effective_user.id
if user_id in waiting:
conn = sqlite3.connect('jokes.db')
conn.execute('CREATE TABLE IF NOT EXISTS jokes (text TEXT, user TEXT, name TEXT)')
conn.execute("INSERT INTO jokes VALUES (?, ?, ?)",
(update.message.text, user_id, update.effective_user.first_name))
conn.commit()
conn.close()
del waiting[user_id]
await update.message.reply_text("✅ Saved!")
else:
await update.message.reply_text("Try /start")
app = Application.builder().token(TOKEN).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(CommandHandler("joke", joke))
app.add_handler(CommandHandler("addjoke", addjoke))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_text))
print("Bot running!")
app.run_polling()
Click File → Save As
Navigate to your project folder
Save as: app.py
Click Save
📦 Install Dependencies
9. Install Required Package:
powershell
# Make sure venv is activated
pip install python-telegram-bot
# Check installation
pip show python-telegram-bot
10. Create requirements.txt:
powershell
pip freeze > requirements.txt
Get-Content requirements.txt
🗄️ Explore SQLite Database Using GUI
11. First, Create the Database File:
powershell
# Run your bot once to create the database
python app.py
# You'll see an error about the token - that's OK
# Press Ctrl+C to stop it after 2 seconds
12. Install DB Browser for SQLite:
Go to: https://sqlitebrowser.org/dl/
Download the standard installer for Windows
Run the installer
Follow installation steps (just click Next)
Keep all default options
13. Open Your Database in DB Browser:
Open File Explorer (Windows key + E)
Navigate to your project folder:
text
C:\Users\YourName\Documents\[firstname]_[surname initial]\[firstname]_[surname initial]_ai6-m3
Find jokes.db file
Double-click jokes.db
It should open in DB Browser for SQLite
If it doesn't, open DB Browser first, then click "Open Database"
14. Explore Database in DB Browser:
Tab 1: Database Structure
See the jokes table
See the 3 columns: text, user, name
Check data types: TEXT, TEXT, TEXT
Tab 2: Browse Data
Click "Browse Data" tab
Select table: jokes
See any jokes already in the table
Table will be empty at first
15. Add Jokes Using DB Browser:
Click "Browse Data" tab
Click New Record button (or press Insert key)
Fill in the fields:
text: Your joke (e.g., "Why did the chicken cross the road?")
user: Your user ID number (e.g., 12345)
name: Your name (e.g., "Ivan")
Click Apply button to save
Add 2-3 jokes this way
16. Edit Jokes Using DB Browser:
Click on a joke in the table
Click inside any field
Change the text
Click Apply to save changes
17. Delete Jokes Using DB Browser:
Click on a joke row
Click Delete Record button (or press Delete key)
Click Apply to confirm
18. Run SQL Queries in DB Browser:
Click "Execute SQL" tab
Type SQL commands:
sql
-- See all jokes
SELECT * FROM jokes;
-- Count jokes
SELECT COUNT(*) FROM jokes;
-- See specific user's jokes
SELECT * FROM jokes WHERE name = 'Ivan';
-- Add a joke via SQL
INSERT INTO jokes VALUES ('What do you call a bear with no teeth? A gummy bear!', 999, 'SQLUser');
Click Execute (play button) to run
Click Write Changes to save
🔍 Quick Database Exploration Tasks
Task 1: View Empty Database
Open DB Browser
Open jokes.db
Check "Browse Data" tab
Table should be empty
Task 2: Add Jokes via GUI
Click "New Record"
Add 3 different jokes
Use different names for each
Save all with "Apply"
Task 3: View What You Added
Stay in "Browse Data" tab
Scroll to see all jokes
Notice each row has a rowid (automatic number)
Task 4: Edit a Joke
Click on any joke
Change the text
Click "Apply"
Task 5: Delete a Joke
Click on a joke row
Click "Delete Record"
Click "Apply"
Task 6: Use SQL Tab
Go to "Execute SQL" tab
Type: SELECT COUNT(*) FROM jokes;
Click "Execute"
See result in bottom pane
🎯 What You Should See in DB Browser
Database Structure:
Tables: 1 table (jokes)
Columns: text, user, name (all TEXT type)
Row count: Shows at bottom
After Adding Jokes:
Each row shows in table
Can sort by clicking column headers
Can filter using "Filter" box
File Size Growth:
Each joke adds to file size
File updates instantly when you click "Apply"
💡 Tips for DB Browser
Always click "Apply" after changes
"Write Changes" saves to disk
"Revert Changes" undoes unsaved changes
Use filter to find specific jokes
Export data if you want to backup
🔧 If Something Goes Wrong
Database won't open:
powershell
# Delete and recreate
Remove-Item jokes.db -ErrorAction SilentlyContinue
# Run bot to create fresh
python app.py
# Press Ctrl+C after error
# Now open in DB Browser
DB Browser not installed:
Go to https://sqlitebrowser.org/dl/
Download and install
Or use online SQLite viewer
Remember: DB Browser is the easiest way to see your database. No coding needed!
Note: Teacher will provide the Telegram bot token later. For now, practice adding and viewing jokes in DB Browser.