mirror of
https://github.com/szkolny-eu/szkolny-android.git
synced 2025-02-07 16:44:37 +01:00
[API/Idziennik] Add getting lucky number from website. Fix API lucky number date.
This commit is contained in:
parent
209f98594f
commit
010f7fa1fe
@ -109,6 +109,10 @@ object Regexes {
|
|||||||
val IDZIENNIK_MESSAGES_RECIPIENT_PARENT by lazy {
|
val IDZIENNIK_MESSAGES_RECIPIENT_PARENT by lazy {
|
||||||
"""(.+?)\s\((.+)\)""".toRegex()
|
"""(.+?)\s\((.+)\)""".toRegex()
|
||||||
}
|
}
|
||||||
|
/*<span id="ctl00_spanSzczesliwyLos">Szczęśliwy los na dzisiaj to <b>19</b>. Los na jutro to <b>22</b></span>*/
|
||||||
|
val IDZIENNIK_WEB_LUCKY_NUMBER by lazy {
|
||||||
|
"""dzisiaj to <b>([0-9]+)</b>""".toRegex()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ class IdziennikApiCurrentRegister(override val data: DataIdziennik,
|
|||||||
|
|
||||||
val luckyNumberObject = LuckyNumber(
|
val luckyNumberObject = LuckyNumber(
|
||||||
data.profileId,
|
data.profileId,
|
||||||
Date.getToday(),
|
luckyNumberDate,
|
||||||
luckyNumber
|
luckyNumber
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -13,9 +13,12 @@ import pl.szczodrzynski.edziennik.MINUTE
|
|||||||
import pl.szczodrzynski.edziennik.data.api.*
|
import pl.szczodrzynski.edziennik.data.api.*
|
||||||
import pl.szczodrzynski.edziennik.data.api.edziennik.idziennik.DataIdziennik
|
import pl.szczodrzynski.edziennik.data.api.edziennik.idziennik.DataIdziennik
|
||||||
import pl.szczodrzynski.edziennik.data.api.models.ApiError
|
import pl.szczodrzynski.edziennik.data.api.models.ApiError
|
||||||
|
import pl.szczodrzynski.edziennik.data.db.entity.LuckyNumber
|
||||||
|
import pl.szczodrzynski.edziennik.data.db.entity.Metadata
|
||||||
import pl.szczodrzynski.edziennik.get
|
import pl.szczodrzynski.edziennik.get
|
||||||
import pl.szczodrzynski.edziennik.getUnixDate
|
import pl.szczodrzynski.edziennik.getUnixDate
|
||||||
import pl.szczodrzynski.edziennik.utils.Utils
|
import pl.szczodrzynski.edziennik.utils.Utils
|
||||||
|
import pl.szczodrzynski.edziennik.utils.models.Date
|
||||||
|
|
||||||
class IdziennikLoginWeb(val data: DataIdziennik, val onSuccess: () -> Unit) {
|
class IdziennikLoginWeb(val data: DataIdziennik, val onSuccess: () -> Unit) {
|
||||||
companion object {
|
companion object {
|
||||||
@ -69,6 +72,29 @@ class IdziennikLoginWeb(val data: DataIdziennik, val onSuccess: () -> Unit) {
|
|||||||
data.apiBearer = cookies.singleOrNull { it.name() == "Bearer" }?.value() ?: return@run ERROR_LOGIN_IDZIENNIK_WEB_NO_BEARER
|
data.apiBearer = cookies.singleOrNull { it.name() == "Bearer" }?.value() ?: return@run ERROR_LOGIN_IDZIENNIK_WEB_NO_BEARER
|
||||||
data.loginExpiryTime = response.getUnixDate() + 30 * MINUTE /* after about 40 minutes the login didn't work already */
|
data.loginExpiryTime = response.getUnixDate() + 30 * MINUTE /* after about 40 minutes the login didn't work already */
|
||||||
data.apiExpiryTime = response.getUnixDate() + 12 * HOUR /* actually it expires after 24 hours but I'm not sure when does the token refresh. */
|
data.apiExpiryTime = response.getUnixDate() + 12 * HOUR /* actually it expires after 24 hours but I'm not sure when does the token refresh. */
|
||||||
|
|
||||||
|
data.profile?.let { profile ->
|
||||||
|
Regexes.IDZIENNIK_WEB_LUCKY_NUMBER.find(text)?.also {
|
||||||
|
val number = it[1].toIntOrNull() ?: return@also
|
||||||
|
val luckyNumberObject = LuckyNumber(
|
||||||
|
data.profileId,
|
||||||
|
Date.getToday(),
|
||||||
|
number
|
||||||
|
)
|
||||||
|
|
||||||
|
data.luckyNumberList.add(luckyNumberObject)
|
||||||
|
data.metadataList.add(
|
||||||
|
Metadata(
|
||||||
|
profile.id,
|
||||||
|
Metadata.TYPE_LUCKY_NUMBER,
|
||||||
|
luckyNumberObject.date.value.toLong(),
|
||||||
|
true,
|
||||||
|
profile.empty,
|
||||||
|
System.currentTimeMillis()
|
||||||
|
))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return@run null
|
return@run null
|
||||||
}?.let { errorCode ->
|
}?.let { errorCode ->
|
||||||
data.error(ApiError(TAG, errorCode)
|
data.error(ApiError(TAG, errorCode)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user