50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
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(
|
||
"❗ <b>Опубликовано расписание на новый семестр!</b>\n\n"+
|
||
"Появились занятия на неделе с <code>%s</code>\n"+
|
||
"Доступно дней: <code>%d</code>\n\n"+
|
||
"<a href=\"%s\">Неделя на сайте расписания</a>\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))
|
||
}
|
||
}
|