- Python 98.5%
- Dockerfile 1.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| .vscode | ||
| jarvis_tasks | ||
| tests | ||
| .dockerignore | ||
| .flake8 | ||
| .gitattributes | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| Dockerfile | ||
| LICENSE | ||
| PRIVACY.md | ||
| pyproject.toml | ||
| README.md | ||
| requirements.precommit.txt | ||
| run.py | ||
| sample.env | ||
| TERMS.md | ||
| uv.lock | ||
JARVIS tasks
JARVIS background processes and synchronizations. Runs alongside jarvis-bot against the same MongoDB, using a REST-only Discord client.
Versions
jarvis-bot, jarvis-tasks and jarvis-core are released together and share a version number: 3.x of each work with 3.x of the others. A change that needs matching releases of the other two bumps the major version of all three.
Current Modules
🔨 Ban
Lifts temporary bans when they expire, unless the user has been banned again since
🔒 Lock and Lockdown
Restores channel and @everyone permissions when a lock or server lockdown expires
⏰ Reminder
Delivers reminders by DM, falling back to the channel they were set in
🎭 Temporary Role
Removes temporary roles when they expire
⚠️ Warning
Expires warnings after their duration
👢 Autokick
Kicks members who still have the unverified role a configured number of days after joining
Configuration
Copy sample.env to .env and fill in TOKEN and the MONGO_* values.
Development
Requires Python 3.11+ and uv.
uv sync
uv run python run.py
uv run pytest
Tests that need a database run against a real MongoDB and are skipped otherwise. Every collection in the test database is dropped before and after each test:
export JARVIS_TEST_MONGO_URI="mongodb://user:pass@localhost:27017/?authSource=admin"
export JARVIS_TEST_MONGO_DB="jarvis_test"
uv run pytest