A new type of irc robot coded in Python
Find a file
2025-10-17 12:59:27 +03:00
core added timer for autoupdate restart 2025-10-17 12:59:20 +03:00
logs Create demo 2025-07-07 15:06:53 +03:00
modules Delete modules/modules 2025-06-10 14:36:20 +03:00
BlackBoT.py modified things. 2025-10-17 12:45:53 +03:00
BlackBoT_RuN.sh # now starter runs in background 2025-07-06 20:29:20 +03:00
changes solved issues regarding memory use and performance improvement 2025-10-16 15:36:38 +03:00
LICENSE Initial commit 2023-10-20 11:58:28 +03:00
README.md Update README.md 2025-10-17 11:05:38 +03:00
requirements.txt # modified the way the bot starts, added bash file to create python enviroment and install packages 2025-07-06 19:41:46 +03:00
settings.py modified things. 2025-10-17 12:45:53 +03:00
Starter.py # modified the way the bot starts, added bash file to create python enviroment and install packages 2025-07-06 19:41:46 +03:00
VERSION modified things. 2025-10-17 12:56:41 +03:00

🤖 BlackBoT

BlackBoT is a powerful and modular IRC bot built with Python and Twisted, featuring channel moderation, user authentication, role-based access control, and automatic update support via GitHub.

⚠️ This project is currently in progress and may contain bugs or unfinished features.


📦 Features

  • Multi-server support with automatic failover
  • User authentication system with password hashing
  • Role-based permissions with per-channel and global flags
  • Channel management: op, voice, kick, join/leave
  • Auto-update from GitHub with setting preservation
  • SQLite database backend for persistent user and channel data
  • Modular command architecture
  • Threaded workers with stop/reset for background tasks
  • Advanced status reporting (CPU, RAM, threads, uptime, system info)
  • CTCP support (VERSION reply)
  • Flexible hostmask formats for user management
  • Caching with TTL and memory limits
  • Extensible module system (e.g., YouTube fetcher)
  • Cross-platform support (Linux/Windows)

🚀 Getting Started

Clone the repository:

git clone https://github.com/tclscripts/BlackBoT.git
cd BlackBoT

Edit the configuration file:
nano settings.py

Use the Bash script (Linux)
  - The repo also includes a helper script BlackBoT_RuN.sh which:
  - Creates a virtual environment
  - Installs the required Python packages
  - Starts the bot automatically

Run it as:
bash BlackBoT_RuN.sh

Requirements
Python 3.8+
Linux or Windows (Linux recommended for BlackBoT_RuN.sh or directly Starter.py for Windows)
Internet connection (for auto-update and external modules)

Dependencies are listed in requirements.txt and will be installed automatically if you use the Bash script.

📂 File Structure

  BlackBoT/
├── core/ # Core package with internal logic
│ ├── commands.py # Implementation of commands (auth, access, uptime, etc.)
│ ├── commands_map.py # Command mapping to IDs, flags, and descriptions
│ ├── log.py # Logging module (can be wired to Python's logging)
│ ├── SQL.py # SQLite wrapper (connections, queries, WAL mode)
│ ├── sql_manager.py # SQL manager singleton (initializes DB and tables)
│ ├── threading_utils.py # ThreadWorker with stop/reset and global events
│ ├── update.py # Auto-update mechanism from GitHub
│ └── Variables.py # Global variables: roles, settings, access lists
│
├── BlackBoT.py # Main bot implementation (Twisted IRCClient)
├── BlackBoT_RuN.sh # Bash script for setup and running on Linux
├── Starter.py # Python entry point for launching the bot
├── settings.py # Bot configuration (server, nick, passwords, etc.)
├── requirements.txt # Python dependencies
└── VERSION # Current version file