How alkali210/xmu-rollcall-bot works
XMU Rollcall Bot automates Tronclass attendance through either a Python CLI monitor or a browser userscript. The CLI workflow selects an account, polls for pending rollcalls, waits for configured classmate participation, then submits numeric or radar attendance and reports the outcome. The repository also includes a standalone browser schedule-to-ICS exporter. Some wiring is documented but its implementation was not sampled, so uncertain links are omitted.
Main entry points: monitor.py Rollcall monitor · rollcall_handler.py Rollcall handler · cli.py CLI commands · jw-schedule-export.user.js Schedule exporter
Components 17
CLI workflow
- CLI commands
xmu-rollcall-cli/xmu_rollcall/cli.py - Rollcall monitor
xmu-rollcall-cli/xmu_rollcall/monitor.py - Retry policy
xmu-rollcall-cli/xmu_rollcall/network.py - Terminal interface
xmu-rollcall-cli/xmu_rollcall/tui.py
Attendance handling
- Rollcall handler
xmu-rollcall-cli/xmu_rollcall/rollcall_handler.py - Attendance submission
xmu-rollcall-cli/xmu_rollcall/verify.py
Account state
- Account configuration
xmu-rollcall-cli/xmu_rollcall/config.py - Encrypted account store
xmu-rollcall-cli/xmu_rollcall/secure_store.py - Activity logs
xmu-rollcall-cli/xmu_rollcall/logging_config.py
Browser tools
- Rollcall userscript
scripts/rollcall/xmu-rollcall.user.js - Schedule exporter
scripts/schedule/jw-schedule-export.user.js - ICS calendar file
Other components
- Student
- Tronclass service
- Class attendance data
- Browser user
- XMU teaching system
Connections 20
- Student → CLI commands: runs commands
- CLI commands → Account configuration: manages accounts
- CLI commands → Rollcall monitor: starts monitoring
- CLI commands → Terminal interface: presents menus
- Account configuration → Encrypted account store: stores credentials
- Rollcall monitor → Tronclass service: polls rollcalls
- Rollcall monitor → Retry policy: classifies failures
- Rollcall monitor → Rollcall handler: dispatches detected rollcalls
- Rollcall monitor → Terminal interface: updates dashboard
- Rollcall monitor → Activity logs: records activity
- Rollcall handler → Account configuration: reads answer settings
- Rollcall handler → Class attendance data: fetches signed counts
- Rollcall handler → Attendance submission: submits attendance
- Rollcall handler → Terminal interface: updates rollcall status
- Attendance submission → Tronclass service: requests codes and submits
- Browser user → Rollcall userscript: runs helper
- Rollcall userscript → Tronclass service: polls and submits codes
- Browser user → Schedule exporter: exports schedule
- Schedule exporter → XMU teaching system: reads course schedule
- Schedule exporter → ICS calendar file: downloads calendar