Files
ai6-m3/jokes-bot-v3.0/README.md
2026-01-23 12:21:26 +03:00

7.4 KiB

Step-by-Step Complete Setup Guide 📋 Before We Start - Check Your Python Installation

  1. Open PowerShell: Press Windows + R

Type powershell

Press Enter

  1. Check Python Version: powershell python --version

Should show: Python 3.x.x

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

Create a new folder using format: [firstname]_[surname initial]

Example if your name is Ivan Lim:

mkdir ivan_l

Go into your new folder

cd ivan_l

Verify location

pwd 🎯 Get the Template Repository 4. Access the Template Repository: Go to: https://gitea.techshare.cc/technolyceum/ai6-m3

Find the template named: [firstname]_[surname initial]_ai6-m3

Click on the template

Click the "Clone" button and copy the URL

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

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

  1. 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"

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

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

  1. Edit Jokes Using DB Browser: Click on a joke in the table

Click inside any field

Change the text

Click Apply to save changes

  1. Delete Jokes Using DB Browser: Click on a joke row

Click Delete Record button (or press Delete key)

Click Apply to confirm

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