novariusirc (0.1.0)
Installation
pip install --index-url novariusircAbout this package
Modular, multilingual IRC bot/daemon inspired by Eggdrop
NovariusIRC
NovariusIRC is a modular, multilingual IRC bot/daemon in the classic Eggdrop style. One process connects to exactly one IRC network; multi-network setups run multiple instances (or containers). The project targets Python 3.12+, ships a Poetry configuration, and exposes a CLI entry point novariusirc.
Status
This repository contains the first MVP skeleton: async IRC core with reconnect logic, config loading and validation, structured logging, i18n hooks, a command registry with role checks, a feed engine, and sample modules for moderation (warn-only) and RSS announcements. Worker pools use ProcessPoolExecutor with an optional aioprocessing extra for long-lived workers.
Quickstart
- Install dependencies (optionally enable extras
uvloop,journald,workers):poetry install - Copy
config.example.tomltoconfig.tomland adjust values or environment variables. - Optional features: create files next to
config.tomlnamedfeeds.toml,moderation.toml, orworkers.toml(samples inconfig/*.example.toml). They are loaded automatically if present. - Run the bot:
poetry run novariusirc --config ./config.toml --profile default
Project Layout
novariusirc/core: core services (client, config, auth, commands, logging, i18n, feeds, plugins, workers)novariusirc/modules: built-in modules (moderation, rss_announcer)novariusirc/__main__.py: CLI entry pointconfig.example.toml: starter configurationconfig/*.example.toml: optional feature snippets (feeds, moderation, workers)licenses/Novara-Software-Freedom-License-EN.md: project license text
Notes
- Structured STDOUT logging plus rotating files under
logs/; optional journald if installed. - Secrets can be read from environment variables referenced in the config.
- Feed engine caches ETag/Last-Modified, tracks seen item ids per feed, supports custom templates (
{feed},{title},{summary},{link},{published}) and User-Agent rotation/TLS settings (seeconfig/feeds.example.toml). - Moderation module operates in warn-only mode for the MVP.
Requirements
Requires Python: >=3.12,<4.0