shokollm af8eb90563 feat(adapter): implement JSON file storage adapter
Add JsonFileRoomStorage and JsonFileTrackingStorage implementations
that implement the RoomStorage and TrackingStorage ports.

- Stores room data at ~/.jigaido/data/<room_id>.json
- Stores tracking data at ~/.jigaido/tracking/<room_id>_<user_id>.json
- Implements all port methods: load, save, add_bounty, update_bounty,
  delete_bounty, get_bounty for rooms; load, save, track_bounty,
  untrack_bounty for tracking

Fixes #9
2026-04-03 08:06:51 +00:00
2026-04-01 08:05:10 +00:00
2026-04-01 08:05:10 +00:00

JIGAIDO

Named after Nanami Kento's Cursed Technique restriction. Suppresses power during normal hours, exerts it during overtime.

A bounty tracking platform. Currently ships with a Telegram bot for managing and tracking bounties in groups and DMs.

Apps

  • Telegram Bot — Group and personal bounty tracking via Telegram commands, with due date reminders

Overview

  • Group bounties: Each Telegram group has its own bounty list
  • Personal bounties: Private DM bounty list for individuals
  • Admin-only posting: Only group admins can add/update/delete bounties
  • Universal tracking: Any member can track bounties to their personal list
  • Due date reminders: Daily cron notifies users when bounties are due within 7 days
  • Free-form dates: Natural language due dates ("tomorrow", "in 3 days", "april 15")
  • Link deduplication: No duplicate links within the same group

Project Structure

jigaido/
├── apps/
│   └── telegram-bot/   ← first app (Python)
│       ├── bot.py
│       ├── commands.py
│       ├── cron.py
│       ├── db.py
│       └── requirements.txt
└── SPEC.md             ← full design specification

License

MIT

Description
Bounty tracker powered by Telegram — Nanami-style cursed technique for tracking obligations and overtime.
Readme 759 KiB
Languages
Python 99.1%
Shell 0.9%