# AI-Enhanced Joke Bot v4.0 Welcome to the AI-Enhanced Joke Bot! This application combines humor with artificial intelligence to deliver jokes and analyze their sentiment. ## 📋 Project Structure ``` v4.0/ ├── database.py # Creates the SQLite database and jokes table with user sentiment tracking ├── jokes.py # Main application with AI sentiment analysis and user rating ├── jokes.db # SQLite database containing jokes and user sentiments ├── sample_data.sql # Sample jokes to populate the database ├── populate_db.py # Script to populate the database with sample data ├── check_db.py # Utility to check database content ├── upgrade_db.py # Utility to upgrade existing databases with new schema └── README.md # This file ``` ## 🚀 Quick Start ### 1. Install Dependencies First, make sure you have Python installed and then install the required packages: ```bash # Create and activate virtual environment (recommended) python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install required packages pip install textblob # Download required corpora for textblob python -m textblob.download_corpora ``` ### 2. Set Up the Database Run the database creation script: ```bash python database.py ``` This creates the `jokes.db` file with the proper table structure, including a table for user sentiments. ### 3. (Optional) Upgrade Existing Database If you have an existing database from a previous version, run the upgrade script: ```bash python upgrade_db.py ``` This adds the `user_sentiments` table to your existing database. ### 4. Populate the Database with Sample Jokes To add sample jokes to your database: ```bash python populate_db.py ``` Alternatively, you can use the SQL file directly: ```bash sqlite3 jokes.db < sample_data.sql ``` ### 5. Run the Application Start the Joke Bot: ```bash python jokes.py ``` ## 🔧 Troubleshooting ### No Jokes in Database If you're getting "No jokes in the database" message: 1. Make sure you've run `python database.py` to create the database 2. Run `python populate_db.py` to add sample jokes to the database 3. Verify the database content with `python check_db.py` ### Missing Dependencies If you get an ImportError for textblob: ```bash pip install textblob python -m textblob.download_corpora ``` ## ⚙️ Features - **Random Joke Generator**: Get a random joke from the database - **AI Sentiment Analysis**: Analyzes the sentiment of jokes using TextBlob - **User Sentiment Rating**: After each joke, rate it with thumbs up/down/neutral - **Community Ratings**: See how other users rated each joke - **Mood-Based Joke Selection**: Filter jokes by sentiment (positive, negative, neutral) - **Add New Jokes**: Contribute your own jokes to the database - **Joke Management**: View all jokes in the database with community ratings ## 💡 Usage Tips - Choose option 1 to get a random joke, then rate it with U(p)/D(own)/N(eutral) - Choose option 2 to add a new joke with automatic sentiment analysis and rating - Choose option 3 to analyze the sentiment of any text - Choose option 4 to get jokes based on mood - Choose option 5 to view all jokes in the database with community ratings - Choose option 6 to exit the application ## 🗂️ Database Schema The application uses two tables: - `jokes`: Contains the joke text, contributor, publication date, and AI-analyzed sentiment - `user_sentiments`: Tracks user ratings for each joke with timestamps Enjoy the AI-enhanced humor experience with community feedback!