Documentation ¶
Index ¶
- Variables
- func CheckGroupOrTeacher(db *xorm.Engine, sh WeekShedule) (bool, error)
- func Compare(new []database.Lesson, old []database.Lesson) ([]database.Lesson, []database.Lesson)
- func Diff(jeden []database.Lesson, dzwa []database.Lesson) []database.Lesson
- func GenerateUri(id int64, isGroup bool) string
- func GetSheduleInfo(doc *goquery.Document, sh *WeekShedule)
- func Hash(s database.Lesson) string
- func ParseTeacherName(fullName string) database.Teacher
- func UpdateSchedule(db *xorm.Engine, sh WeekShedule) ([]database.Lesson, []database.Lesson, error)
- type Lesson
- type Page
- type Pair
- type SearchResults
- type WeekShedule
Constants ¶
This section is empty.
Variables ¶
var HeadURL = "https://ssau.ru"
Адрес основного сайта (прод или тестовый)
Functions ¶
func CheckGroupOrTeacher ¶
func CheckGroupOrTeacher(db *xorm.Engine, sh WeekShedule) (bool, error)
Проверка наличия группы или преподавателя в БД и добавление при необходимости Возвращает истину, если группы/преподавателя раньше не было TODO: Добавить проверку изменений в полях данных
func GenerateUri ¶
Создать URI по ID и условию группа/преподаватель
func GetSheduleInfo ¶
func GetSheduleInfo(doc *goquery.Document, sh *WeekShedule)
Получить полный номер группы и название специальности (ФИО и место работы для преподавателей)
func ParseTeacherName ¶
func UpdateSchedule ¶
Согласование недельного расписания с БД Возвращает соответственно добавленные и удалённые занятия
Types ¶
type Lesson ¶
type Lesson struct { Type string Name string Place string TeacherId []int64 GroupId []int64 Comment string SubGroup []int Hash []byte }
Отдельные занятия внутри пары
type Page ¶
Страница с расписанием и служебными хвостами
func DownloadShedule ¶
Загрузка страницы с расписанием из ssau.ru/rasp по URI и номеру недели (в семестре)
type SearchResults ¶
Результаты поиска
func SearchInRasp ¶
func SearchInRasp(query string) (SearchResults, error)
Поиск расписания группы или преподавателя через ssau.ru/rasp/search
type WeekShedule ¶
type WeekShedule struct { IsGroup bool SheduleId int64 FullName string SpecName string Week int // Номер недели в семестре WeekBegin int // Номер недели в году начала семестра Lessons [][]Pair // Таблица пар в форме недельного расписания Uncovered []database.Lesson // Раскрытый список всех занятий для дальнейшей обработки в БД }
Недельное расписание
func (*WeekShedule) Download ¶
func (sh *WeekShedule) Download(uri string, week int, uncover bool) error
Загрузка, парсинг и раскрытие расписания в одной функции по URI и номеру недели
func (*WeekShedule) DownloadById ¶
func (sh *WeekShedule) DownloadById(uncover bool) error
Загрузка, парсинг и раскрытие расписания в одной функции Обязательно наличие IsGroup, SheduleId, Week в объекте
func (*WeekShedule) Parse ¶
func (sh *WeekShedule) Parse(p Page, uncover bool) error
Парсинг страницы с расписанием
func (*WeekShedule) UncoverShedule ¶
func (sh *WeekShedule) UncoverShedule()
Раскрытие недельного расписания в список занятий для базы данных и сравнения