How yzansawadi/web_seeker_bot works
This repository is an Arabic Telegram assistant for building and viewing IUST course schedules. Students choose courses or request an optimized schedule; the bot loads course and meeting data, formats a text/PDF result, and can refresh the source schedule. Separate capabilities cover all-course schedule PDFs and usage tracking with owner-facing administration. The graph reflects the documented workflow and sampled code; some bot handlers are omitted from the excerpts, so uncertain internal links are not shown.
Main entry points: bot.py Bot workflow · notifier.py User tracking · schedule_data.py Course loader · extract_schedule.py Schedule scraper
Components 18
Student scheduling
- Bot workflow
bot.py - Best-schedule search
schedule_optimizer.py
Schedule data
- Course-year map
subjects.xlsx - Meeting data
IUST_schedule_full.xlsx - Course loader
schedule_data.py - Schedule scraper
extract_schedule.py
Schedule output
- Schedule PDF renderer
pdf_export.py - Selected-course PDF
selected_schedule_pdf.py - Arabic text shaping
arabic_text.py - Arabic font
fonts
Usage tracking
- Redis storage
- User tracking
notifier.py - Owner commands
notifier_admin.py
Other components
- Student
- Telegram
- University schedule site
- Bot owner
- Activity dashboard
Connections 23
- Student → Telegram: sends requests
- Telegram → Bot workflow: delivers updates
- Bot workflow → Telegram: sends results
- Bot workflow → Course loader: loads courses
- Course loader → Course-year map: reads mapping
- Course loader → Meeting data: reads meetings
- Bot workflow → Best-schedule search: requests optimization
- Bot workflow → Schedule PDF renderer: renders schedule PDF
- Bot workflow → Selected-course PDF: renders selected PDF
- Schedule PDF renderer → Arabic text shaping: shapes Arabic text
- Selected-course PDF → Arabic text shaping: shapes Arabic text
- Schedule PDF renderer → Arabic font: loads font
- Selected-course PDF → Arabic font: loads font
- Bot workflow → Schedule scraper: starts refresh
- Schedule scraper → University schedule site: fetches schedule
- Schedule scraper → Meeting data: replaces data
- Bot workflow → User tracking: records activity
- User tracking → Redis storage: reads and writes
- User tracking → Activity dashboard: sends activity
- Bot owner → Telegram: sends commands
- Telegram → Owner commands: delivers commands
- Owner commands → User tracking: reviews records
- Owner commands → Telegram: replies with reports