diff --git a/app/src/main/java/agzam/vyatsu/data/remote/FacultyNames.kt b/app/src/main/java/agzam/vyatsu/data/remote/FacultyNames.kt new file mode 100644 index 0000000..a19c666 --- /dev/null +++ b/app/src/main/java/agzam/vyatsu/data/remote/FacultyNames.kt @@ -0,0 +1,36 @@ +package agzam.vyatsu.data.remote + +/** + * Справочник сокращённых названий факультетов ВятГУ. + * Вынесен из GroupsParser, так как TeachersParser использует те же сокращения. + */ +object FacultyNames { + + private val parenthesized = Regex("""\(.*?\)\s?""") + + private val shorthands = mapOf( + "Институт биологии и биотехнологии (факультет)(ОРУ)" to "ИББТ", + "Институт химии и экологии (факультет) (ОРУ)" to "ИнХимЭк", + "Факультет автоматики и вычислительной техники (ОРУ)" to "ФАВТ", + "Факультет истории, политических наук и культурологии (ОРУ)" to "ФИПНК", + "Факультет компьютерных и физико-математических наук (ОРУ)" to "ФКФМН", + "Факультет лингвистики (ОРУ)" to "ФЛ", + "Факультет менеджмента и сервиса (ОРУ)" to "ФМиС", + "Факультет педагогики и психологии (ОРУ)" to "ФПП", + "Факультет строительства и архитектуры (ОРУ)" to "ФСА", + "Факультет технологий, инжиниринга и дизайна (ОРУ)" to "ФТИД", + "Факультет физической культуры и спорта (ОРУ)" to "ФФКС", + "Факультет филологии и медиакоммуникаций (ОРУ)" to "ФФМ", + "Факультет экономики и финансов (ОРУ)" to "ФЭиФ", + "Электротехнический факультет (ОРУ)" to "ЭТФ", + "Юридический институт (факультет) (ОРУ)" to "ЮИ" + ) + + fun shortname(name: String): String { + val stripped = removeParenthesized(name) + val sh = shorthands[name] + return if (sh != null) "$sh ($stripped)" else stripped + } + + fun removeParenthesized(name: String): String = name.replace(parenthesized, "").trim() +} \ No newline at end of file diff --git a/app/src/main/java/agzam/vyatsu/data/remote/GroupsParser.kt b/app/src/main/java/agzam/vyatsu/data/remote/GroupsParser.kt index 10dae46..3ed5fdd 100644 --- a/app/src/main/java/agzam/vyatsu/data/remote/GroupsParser.kt +++ b/app/src/main/java/agzam/vyatsu/data/remote/GroupsParser.kt @@ -14,30 +14,11 @@ object GroupsParser { private val groupPattern = Regex("""/reports/schedule/Group/(\d{4,})_([12])_(\d{8})_(\d{8})\.pdf""") private val grpIdPattern = Regex("""data-grp_period_id="(\d+)"""") - private val parenthesized = Regex("""\(.*?\)\s?""") private const val CHUNK_SIZE = 8192 private const val MAX_SLICE = 1 shl 16 // 64 KiB — защита от аномально длинных единиц private const val MAX_PENDING = 1 shl 20 // 1 MiB — жёсткий потолок буфера - private val shorthands = mapOf( - "Институт биологии и биотехнологии (факультет)(ОРУ)" to "ИББТ", - "Институт химии и экологии (факультет) (ОРУ)" to "ИнХимЭк", - "Факультет автоматики и вычислительной техники (ОРУ)" to "ФАВТ", - "Факультет истории, политических наук и культурологии (ОРУ)" to "ФИПНК", - "Факультет компьютерных и физико-математических наук (ОРУ)" to "ФКФМН", - "Факультет лингвистики (ОРУ)" to "ФЛ", - "Факультет менеджмента и сервиса (ОРУ)" to "ФМиС", - "Факультет педагогики и психологии (ОРУ)" to "ФПП", - "Факультет строительства и архитектуры (ОРУ)" to "ФСА", - "Факультет технологий, инжиниринга и дизайна (ОРУ)" to "ФТИД", - "Факультет физической культуры и спорта (ОРУ)" to "ФФКС", - "Факультет филологии и медиакоммуникаций (ОРУ)" to "ФФМ", - "Факультет экономики и финансов (ОРУ)" to "ФЭиФ", - "Электротехнический факультет (ОРУ)" to "ЭТФ", - "Юридический институт (факультет) (ОРУ)" to "ЮИ" - ) - /** * Стриминговый парсер страницы групп: читает тело ответа по чанкам и * разбирает его на лету, не материализуя весь HTML в память. @@ -80,8 +61,7 @@ object GroupsParser { else -> minOf(divAt, aAt) } if (tagStart < 0) { - // хвостовой текст без div-тегов — обычный текст страницы - pos = pending.length + pos = keepPartialTagTail(pending, pos) break } if (tagStart > pos) { @@ -101,13 +81,13 @@ object GroupsParser { val content = pending.substring(tagEnd + 1, closeDiv) if (isFakName) { val name = content.trim() - if (name.isNotEmpty()) faculty = shortname(name) + if (name.isNotEmpty()) faculty = FacultyNames.shortname(name) } else { val m = grpIdPattern.find(tagText) if (m != null) { groups += Group( id = m.groupValues[1].dropLast(1), - name = removeParenthesized(content), + name = FacultyNames.removeParenthesized(content), faculty = faculty ) } @@ -153,13 +133,22 @@ object GroupsParser { return -1 } - private fun shortname(name: String): String { - val stripped = removeParenthesized(name) - val sh = shorthands[name] - return if (sh != null) "$sh ($stripped)" else stripped + /** + * Хвост буфера может содержать неполное начало тега (
+
+
+ 
| + |
+ Дирекция ОП Пединститута (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Институт биологии и биотехнологии (факультет)(ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Институт химии и экологии (факультет) (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет автоматики и вычислительной техники (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет истории, политических наук и культурологии (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет компьютерных и физико-математических наук (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет лингвистики (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет международного образования (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет менеджмента и сервиса (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет педагогики и психологии (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет русского языка, литературы и медиакоммуникаций (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет строительства и архитектуры (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет технологий, инжиниринга и дизайна (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет физической культуры и спорта (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет экономики и финансов (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Электротехнический факультет (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Юридический институт (факультет) (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет автоматики и вычислительной техники (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет технологий, инжиниринга и дизайна (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет экономики и финансов (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Юридический институт (факультет) (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Дирекция ОП Пединститута (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Институт биологии и биотехнологии (факультет)(ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Институт химии и экологии (факультет) (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет автоматики и вычислительной техники (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет истории, политических наук и культурологии (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет компьютерных и физико-математических наук (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет лингвистики (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет международного образования (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет менеджмента и сервиса (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет педагогики и психологии (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет русского языка, литературы и медиакоммуникаций (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет строительства и архитектуры (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет технологий, инжиниринга и дизайна (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет экономики и финансов (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Электротехнический факультет (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Юридический институт (факультет) (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| + |
+ Институт биологии и биотехнологии (факультет)(ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||
| + |
+ Институт химии и экологии (факультет) (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет автоматики и вычислительной техники (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет истории, политических наук и культурологии (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет компьютерных и физико-математических наук (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет менеджмента и сервиса (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет педагогики и психологии (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет русского языка, литературы и медиакоммуникаций (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет строительства и архитектуры (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет технологий, инжиниринга и дизайна (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет физической культуры и спорта (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||
| + |
+ Факультет экономики и финансов (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||
| + |
+ Электротехнический факультет (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||
| + |
+ Юридический институт (факультет) (ОРУ)
+
+
+
|
+ ||||||||||||||||||||||||||||||||||||||||
Шаг 1. Выбираете уровень получаемого образования (бакалавриат, специалитет, магистратура, аспирантура) и свой институт или факультет.
+ +Шаг 2. Находите свой курс и номер группы. Кликаете на номер своей группы и смотрите расписание учебных занятий на соответствующий период.
+ +В отношении каждого учебного занятия указывается:
+ +С адресами учебных корпусов можно ознакомиться по ссылке
+ +ВНИМАНИЕ!!!
+Расписание учебных занятий очной формы обновляется на сайте каждый день после 24.00.
Расписание учебных занятий размещено на сайте в формате pdf. Для его просмотра необходимо установить расширение браузера по умолчанию для pdf или программу по умолчанию для просмотра pdf файлов в операционной системе.
+ ++ +
+ +
Подписка на новости
+ +ВятГУ в интернете
+ +Мы используем файлы cookies для анализа пользовательской активности с помощью сервиса «Яндекс Метрика» и улучшения работы нашего Сайта. Продолжая использовать Сайт, Вы подтверждаете свое согласие на обработку персональных данных и соглашаетесь с политикой обработки персональных данных.
+|
+
+ Кафедра алгоритмов и программ
+
+ |
+
+
+ Кафедра технологий и конструирования машин и аппаратов
+
+
+ |
+
|
+
+ Кафедра философии
+
+ |
+
+
+ Кафедра логики и методологии науки
+
+ |
+