Skip to content

ThatOneFBIAgent/Flurazida

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

187 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Flurazide

Build Status License Python Version Release Platform Color

Flurazide is a feature-rich, multi-purpose Discord bot designed to enhance community engagement through a robust economy system, advanced image manipulation, and comprehensive moderation tools. Built with discord.py, it offers a seamless experience for both administrators and users.


πŸ“‹ Table of Contents


πŸ“– About / Overview

Flurazide exists to provide a "one-stop shop" for Discord server utility and entertainment. Its core philosophy is to blend complex database-driven functions (like a persistent economy and automated backups) with lighthearted, high-quality fun commands. Whether you're looking to moderate your server, simulate a virtual economy, or create memes on the fly, Flurazide is built to handle it with style and efficiency.


✨ Features

πŸ–ΌοΈ Image Manipulation

  • Forced GIFs: Convert static images or links into GIF format for easy sharing.
  • Dynamic Captions: Add impact-font captions to the top or bottom of images and GIFs.
  • Artifacting: Apply recursive JPEG artifacting for that "fried" look.
  • Profile Tools: Easily grab high-resolution avatars and banners from users.

πŸ’° Economy & Gambling

  • Persistent Currency: Earn, spend, and trade virtual currency across commands.
  • Virtual Shop: Purchase the set of items available in the store.
  • Casino Games: Test your luck with virtual betting (no real money involved).

πŸ› οΈ Moderation & Utility

  • Automated Sanctions: Efficiently manage bans, kicks, and message clearing.
  • Backup System: Automated database backups to Google Drive via service account integration.
  • Server Metrics: Detailed /serverinfo and /info commands for deep insights.

🎲 Miscellaneous & Fun

  • Interactive Games: 8-ball, dice rolling with advanced expression support (/roll 1d20+5), and simulated "hacks".
  • External APIs: Integration with PokΓ©API, XKCD, random cat/dog image providers and so much more.

πŸ–ΌοΈ Screenshots / Demo

Command Overview

Command List

Image Manipulation Example

Caption Demo

Economy Interaction

Economy Interaction


πŸš€ Installation

Prerequisites

  • Python 3.10 or higher
  • A Discord Bot Token (via Discord Developer Portal)
  • (Optional) Google Cloud Service Account for backups

Quick Install

  1. Clone the repository:

    git clone https://github.com/ThatOneFBIAgent/Flurazida.git
    cd Flurazida
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run the initialization helper:

    python startbot.py

    Follow the interactive prompts to set up your environment.

  4. Start the bot:

    python src/main.py

🚒 Deployment

🐳 Local Docker Build

Run the bot locally in a containerized environment:

  1. Build the image:
    docker build -t flurazide-bot .
  2. Run the container: (Ensure your .env file is in the current directory)
    docker run --env-file .env flurazide-bot

⚑ Railway Deployment

Deploying to Railway is streamlined via the included Dockerfile and Procfile:

  1. Connect Repository: Link your GitHub repo to a new Railway project.
  2. Detection: Railway will automatically detect the Dockerfile.
  3. Environment: Add your BOT_TOKEN and other .env variables in the Railway dashboard.
  4. Service Process: If prompted, ensure the service is set to use the worker process defined in the Procfile.

πŸ•ΉοΈ Usage

Basic Commands

  • /ping: Check bot latency and Cloudflare RTT.
  • /help: Opens a paginated menu of all available commands.
  • /roll dice: 2d20+5: Advanced dice roller with expansion support.

Image Manipulation

  • /image caption caption: "When the bot works" image: [Upload]: Captions an image.
  • /image jpegify recursions: 5: Crushes an image with artifacts.

Moderation

  • /moderator ban target: @User reason: "Violation of rules": Bans a user.

βš™οΈ Configuration

Environment Variables

Create a .env file (or use the .env/ directory) with the following:

Variable Description
BOT_TOKEN Your Discord Bot Token (Required)
DRIVE_TOKEN_B64 Base64 encoded Google Drive token (Optional for backups)

Internal Configuration

Modify src/extraconfig.py for advanced settings:

  • BOT_OWNER: Your Discord User ID.
  • BACKUP_FOLDER_ID: Google Drive folder ID for automated database backups.
  • FORBIDDEN_GUILDS/FORBIDDEN_USERS: Blacklist management.

πŸ“‚ Project Structure

Flurazide/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main.py            # Entry point
β”‚   β”œβ”€β”€ config.py          # Core configuration
β”‚   β”œβ”€β”€ database.py        # SQLite & Backup logic
β”‚   β”œβ”€β”€ logger.py          # Custom event logging
β”‚   β”œβ”€β”€ commands/          # Bot modules (Cogs)
β”‚   β”‚   β”œβ”€β”€ economy.py     # Currency & Shop
β”‚   β”‚   β”œβ”€β”€ fun.py         # Games & APIs
β”‚   β”‚   β”œβ”€β”€ image.py       # PIL processing
β”‚   β”‚   └── moderator.py   # Admin tools
β”‚   └── utils/             # Helper functions
β”œβ”€β”€ resources/             # Assets (Fonts, etc.)
β”œβ”€β”€ requirements.txt       # Dependencies
└── LICENSE                # AGPLv3 License

πŸ—ΊοΈ Roadmap

  • Phase 0: Clean up codebase and add tests.
  • Phase 1: Migration from SQLite to MySQL for better scalability.
  • Phase 2: Website dashboard for configurations.
  • Phase 3: Higher efficiency image manipulation.
  • Phase 4: Localization support.

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes (git commit -m 'Add AmazingFeature').
  4. Push to the branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

Standards: Refer to PEP 8 for coding style expectations.


πŸ§ͺ Testing

Unfortunately Flurazide does not come with any preinstalled tests (via Pytest). A major overhaul of the codebase for cleanups will be set in place.


❓ FAQ

Q: Can I use this for real-money gambling? A: No. All economy features are purely virtual and for entertainment purposes only.

Q: Why do image commands take a few seconds? A: Large images or GIFs are processed locally using PIL and may be temporarily uploaded to catbox for it's high size. High-recursion JPEG artifacting is CPU-intensive.


πŸ“„ License

This project is licensed under the GNU Affero General Public License v3.0. See the LICENSE file for details.


πŸ’– Acknowledgements


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages