How wezlem/fansub-yonetim-sistemi works
Fansub Yönetim Sistemi is a Discord bot for assigning anime crews and coordinating each episode’s translation, editing, encoding, and completion. Administrators configure crews; the release poller opens deduplicated jobs and notifies translators. Staff submit .ass files in stage channels, where the message handler parses episode metadata, checks the responsible person and stage, advances the job, and alerts the next worker. Completion announcements or manual episode reporting archive jobs; users can also inspect active work and completion-time statistics. The graph reflects README-documented capabilities, with implementation detail limited to sampled files.
Main entry points: gorevInstanceStorage.js Jobs and archive · messageCreate.js Message handler · bolumTakip.js Release polling · commands Slash commands
Components 22
Discord runtime
- Bot runtime
index.js - Interaction dispatcher
events/interactionCreate.js - Message handler
events/messageCreate.js - Slash commands
commands - Ready event
events/ready.js
Episode workflow
- Crew assignment
commands/gorevekle.js - Release polling
services/bolumTakip.js - ASS metadata parser
utils/assParser.js - Stage configuration
utils/gorevAsamaYapilandirmasi.js - Announcement completion
services/otomatikGorevTamamlama.js - Active task notices
services/aktifGorevBildirim.js
Workflow state
- Crew records
utils/gorevStorage.js - Jobs and archive
utils/gorevInstanceStorage.js
Reporting and help
- Active task list
commands/aktifgorevler.js - Task statistics
commands/istatistik.js - Statistics calculation
utils/istatistikHesapla.js - Episode announcement
commands/episode.js - Anime metadata
utils/mal.js - Help and task controls
commands
Other components
- Staff and admins
- Discord
- SubsPlease
Connections 32
- Staff and admins → Discord: submits commands and files
- Discord → Bot runtime: delivers events
- Bot runtime → Interaction dispatcher: dispatches interactions
- Bot runtime → Message handler: dispatches messages
- Interaction dispatcher → Slash commands: invokes command
- Slash commands → Crew assignment: runs crew setup
- Crew assignment → Crew records: saves crew
- Crew assignment → Release polling: checks current releases
- Ready event → Release polling: starts polling
- Release polling → SubsPlease: fetches releases
- Release polling → Crew records: looks up crew
- Release polling → Jobs and archive: checks and opens jobs
- Release polling → Discord: announces new episode
- Message handler → Announcement completion: checks announcement
- Announcement completion → Jobs and archive: matches and archives job
- Message handler → Stage configuration: selects channel stage
- Message handler → ASS metadata parser: reads attached file
- ASS metadata parser → Message handler: returns episode metadata
- Message handler → Jobs and archive: matches and advances job
- Message handler → Discord: alerts next worker
- Interaction dispatcher → Jobs and archive: handles task selection and completion
- Slash commands → Jobs and archive: reads and manages jobs
- Active task list → Jobs and archive: reads active jobs
- Ready event → Active task notices: starts notices
- Active task notices → Jobs and archive: reads active jobs
- Active task notices → Discord: posts periodic list
- Task statistics → Jobs and archive: reads archive
- Task statistics → Statistics calculation: calculates durations
- Episode announcement → Anime metadata: fetches anime details
- Episode announcement → Jobs and archive: matches and archives completed job
- Episode announcement → Discord: posts episode announcement
- Slash commands → Discord: replies with help and controls