package schedule
import (
"fmt"
"log"
"os"
"git.inkling.su/mrqiz/schedule-poll/internal/config"
"git.inkling.su/mrqiz/schedule-poll/internal/telegram"
)
func PollSchedule() {
flagFilePath := config.AppConfig.FlagfilePath
if _, fileErr := os.Stat(flagFilePath); fileErr == nil {
return
}
facultyId := config.AppConfig.Schedule.FacultyId
groupId := config.AppConfig.Schedule.GroupId
date := config.AppConfig.Schedule.StartDate
week, err := GetWeek(groupId, date)
if err != nil {
log.Panicln("Failed to get week data", err)
}
days := len(week.Days)
if days != 0 {
siteUrl := GetScheduleUrl(facultyId, groupId, date)
msg := fmt.Sprintf(
"❗ Опубликовано расписание на новый семестр!\n\n"+
"Появились занятия на неделе с %s\n"+
"Доступно дней: %d\n\n"+
"Неделя на сайте расписания\n",
date,
days,
siteUrl)
err = telegram.SendMessage(config.AppConfig.Telegram.ChatId, msg)
if err != nil {
log.Panicln("Unable to send message: ", err)
}
os.WriteFile(flagFilePath, []byte(msg), os.FileMode(0777))
log.Printf("Found %d days", len(week.Days))
}
}