mirror of
https://github.com/szkolny-eu/szkolny-android.git
synced 2025-01-31 13:48:20 +01:00
[API/Edudziennik] Add getting teachers and *change endpoint IDs.*
This commit is contained in:
parent
04103d1c84
commit
70de47408a
@ -138,4 +138,8 @@ object Regexes {
|
|||||||
val EDUDZIENNIK_CLASS_DETAIL_NAME by lazy {
|
val EDUDZIENNIK_CLASS_DETAIL_NAME by lazy {
|
||||||
"""<a id="Klass_detail".*?>(.*?)</a>""".toRegex(DOT_MATCHES_ALL)
|
"""<a id="Klass_detail".*?>(.*?)</a>""".toRegex(DOT_MATCHES_ALL)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val EDUDZIENNIK_TEACHERS by lazy {
|
||||||
|
"""<div class="teacher">.*?<p>(.+?) (.+?)</p>""".toRegex(DOT_MATCHES_ALL)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,18 +92,15 @@ class DataEdudziennik(app: App, profile: Profile?, loginStore: LoginStore) : Dat
|
|||||||
val schoolEndpoint: String
|
val schoolEndpoint: String
|
||||||
get() = "Schools/$schoolId/"
|
get() = "Schools/$schoolId/"
|
||||||
|
|
||||||
val schoolClassEndpoint: String
|
|
||||||
get() = "Schools/$classId/"
|
|
||||||
|
|
||||||
val studentAndClassEndpoint: String
|
val studentAndClassEndpoint: String
|
||||||
get() = "Students/$studentId/Klass/$classId/"
|
get() = "Students/$studentId/Klass/$classId/"
|
||||||
|
|
||||||
val courseEndpoint: String
|
|
||||||
get() = "Course/$studentId/"
|
|
||||||
|
|
||||||
val timetableEndpoint: String
|
val timetableEndpoint: String
|
||||||
get() = "Plan/$studentId/"
|
get() = "Plan/$studentId/"
|
||||||
|
|
||||||
|
val studentAndTeacherClassEndpoint: String
|
||||||
|
get() = "Students/$studentId/Teachers/$classId/"
|
||||||
|
|
||||||
fun getSubject(longId: String, name: String): Subject {
|
fun getSubject(longId: String, name: String): Subject {
|
||||||
val id = longId.crc32()
|
val id = longId.crc32()
|
||||||
return subjectList.singleOrNull { it.id == id } ?: run {
|
return subjectList.singleOrNull { it.id == id } ?: run {
|
||||||
|
@ -8,17 +8,22 @@ import pl.szczodrzynski.edziennik.data.api.*
|
|||||||
import pl.szczodrzynski.edziennik.data.api.models.Feature
|
import pl.szczodrzynski.edziennik.data.api.models.Feature
|
||||||
|
|
||||||
const val ENDPOINT_EDUDZIENNIK_WEB_START = 1000
|
const val ENDPOINT_EDUDZIENNIK_WEB_START = 1000
|
||||||
const val ENDPOINT_EDUDZIENNIK_WEB_TIMETABLE = 1001
|
const val ENDPOINT_EDUDZIENNIK_WEB_TEACHERS = 1001
|
||||||
const val ENDPOINT_EDUDZIENNIK_WEB_EXAMS = 1002
|
const val ENDPOINT_EDUDZIENNIK_WEB_GRADES = 1011
|
||||||
const val ENDPOINT_EDUDZIENNIK_WEB_ATTENDANCE = 1003
|
const val ENDPOINT_EDUDZIENNIK_WEB_TIMETABLE = 1012
|
||||||
const val ENDPOINT_EDUDZIENNIK_WEB_GRADES = 1004
|
const val ENDPOINT_EDUDZIENNIK_WEB_EXAMS = 1013
|
||||||
const val ENDPOINT_EDUDZIENNIK_WEB_LUCKY_NUMBER = 1010
|
const val ENDPOINT_EDUDZIENNIK_WEB_ATTENDANCE = 1014
|
||||||
|
const val ENDPOINT_EDUDZIENNIK_WEB_LUCKY_NUMBER = 1030
|
||||||
|
|
||||||
val EdudziennikFeatures = listOf(
|
val EdudziennikFeatures = listOf(
|
||||||
Feature(LOGIN_TYPE_EDUDZIENNIK, FEATURE_STUDENT_INFO, listOf(
|
Feature(LOGIN_TYPE_EDUDZIENNIK, FEATURE_STUDENT_INFO, listOf(
|
||||||
ENDPOINT_EDUDZIENNIK_WEB_START to LOGIN_METHOD_EDUDZIENNIK_WEB
|
ENDPOINT_EDUDZIENNIK_WEB_START to LOGIN_METHOD_EDUDZIENNIK_WEB
|
||||||
), listOf(LOGIN_METHOD_EDUDZIENNIK_WEB)),
|
), listOf(LOGIN_METHOD_EDUDZIENNIK_WEB)),
|
||||||
|
|
||||||
|
Feature(LOGIN_TYPE_EDUDZIENNIK, FEATURE_TEACHERS, listOf(
|
||||||
|
ENDPOINT_EDUDZIENNIK_WEB_TEACHERS to LOGIN_METHOD_EDUDZIENNIK_WEB
|
||||||
|
), listOf(LOGIN_METHOD_EDUDZIENNIK_WEB)),
|
||||||
|
|
||||||
Feature(LOGIN_TYPE_EDUDZIENNIK, FEATURE_TIMETABLE, listOf(
|
Feature(LOGIN_TYPE_EDUDZIENNIK, FEATURE_TIMETABLE, listOf(
|
||||||
ENDPOINT_EDUDZIENNIK_WEB_TIMETABLE to LOGIN_METHOD_EDUDZIENNIK_WEB
|
ENDPOINT_EDUDZIENNIK_WEB_TIMETABLE to LOGIN_METHOD_EDUDZIENNIK_WEB
|
||||||
), listOf(LOGIN_METHOD_EDUDZIENNIK_WEB)),
|
), listOf(LOGIN_METHOD_EDUDZIENNIK_WEB)),
|
||||||
|
@ -40,6 +40,14 @@ class EdudziennikData(val data: DataEdudziennik, val onSuccess: () -> Unit) {
|
|||||||
data.startProgress(R.string.edziennik_progress_endpoint_data)
|
data.startProgress(R.string.edziennik_progress_endpoint_data)
|
||||||
EdudziennikWebStart(data, onSuccess)
|
EdudziennikWebStart(data, onSuccess)
|
||||||
}
|
}
|
||||||
|
ENDPOINT_EDUDZIENNIK_WEB_TEACHERS -> {
|
||||||
|
data.startProgress(R.string.edziennik_progress_endpoint_teachers)
|
||||||
|
EdudziennikWebTeachers(data, onSuccess)
|
||||||
|
}
|
||||||
|
ENDPOINT_EDUDZIENNIK_WEB_GRADES -> {
|
||||||
|
data.startProgress(R.string.edziennik_progress_endpoint_grades)
|
||||||
|
EdudziennikWebGrades(data, onSuccess)
|
||||||
|
}
|
||||||
ENDPOINT_EDUDZIENNIK_WEB_TIMETABLE -> {
|
ENDPOINT_EDUDZIENNIK_WEB_TIMETABLE -> {
|
||||||
data.startProgress(R.string.edziennik_progress_endpoint_timetable)
|
data.startProgress(R.string.edziennik_progress_endpoint_timetable)
|
||||||
EdudziennikWebTimetable(data, onSuccess)
|
EdudziennikWebTimetable(data, onSuccess)
|
||||||
@ -52,10 +60,6 @@ class EdudziennikData(val data: DataEdudziennik, val onSuccess: () -> Unit) {
|
|||||||
data.startProgress(R.string.edziennik_progress_endpoint_attendance)
|
data.startProgress(R.string.edziennik_progress_endpoint_attendance)
|
||||||
EdudziennikWebAttendance(data, onSuccess)
|
EdudziennikWebAttendance(data, onSuccess)
|
||||||
}
|
}
|
||||||
ENDPOINT_EDUDZIENNIK_WEB_GRADES -> {
|
|
||||||
data.startProgress(R.string.edziennik_progress_endpoint_grades)
|
|
||||||
EdudziennikWebGrades(data, onSuccess)
|
|
||||||
}
|
|
||||||
ENDPOINT_EDUDZIENNIK_WEB_LUCKY_NUMBER -> {
|
ENDPOINT_EDUDZIENNIK_WEB_LUCKY_NUMBER -> {
|
||||||
data.startProgress(R.string.edziennik_progress_endpoint_lucky_number)
|
data.startProgress(R.string.edziennik_progress_endpoint_lucky_number)
|
||||||
EdudziennikWebLuckyNumber(data, onSuccess)
|
EdudziennikWebLuckyNumber(data, onSuccess)
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) Kacper Ziubryniewicz 2019-12-25
|
||||||
|
*/
|
||||||
|
|
||||||
|
package pl.szczodrzynski.edziennik.data.api.edziennik.edudziennik.data.web
|
||||||
|
|
||||||
|
import pl.szczodrzynski.edziennik.MONTH
|
||||||
|
import pl.szczodrzynski.edziennik.data.api.Regexes.EDUDZIENNIK_TEACHERS
|
||||||
|
import pl.szczodrzynski.edziennik.data.api.edziennik.edudziennik.DataEdudziennik
|
||||||
|
import pl.szczodrzynski.edziennik.data.api.edziennik.edudziennik.ENDPOINT_EDUDZIENNIK_WEB_TEACHERS
|
||||||
|
import pl.szczodrzynski.edziennik.data.api.edziennik.edudziennik.data.EdudziennikWeb
|
||||||
|
import pl.szczodrzynski.edziennik.get
|
||||||
|
|
||||||
|
class EdudziennikWebTeachers(override val data: DataEdudziennik,
|
||||||
|
val onSuccess: () -> Unit) : EdudziennikWeb(data) {
|
||||||
|
companion object {
|
||||||
|
private const val TAG = "EdudziennikWebTeachers"
|
||||||
|
}
|
||||||
|
|
||||||
|
init { data.profile?.also { profile ->
|
||||||
|
webGet(TAG, data.studentAndTeacherClassEndpoint + "grid") { text ->
|
||||||
|
EDUDZIENNIK_TEACHERS.findAll(text).forEach {
|
||||||
|
val lastName = it[1].trim()
|
||||||
|
val firstName = it[2].trim()
|
||||||
|
data.getTeacher(firstName, lastName)
|
||||||
|
}
|
||||||
|
|
||||||
|
data.setSyncNext(ENDPOINT_EDUDZIENNIK_WEB_TEACHERS, MONTH)
|
||||||
|
onSuccess()
|
||||||
|
}
|
||||||
|
} ?: onSuccess() }
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user