Remove API.kt and UNNApp.kt from .ui
This commit is contained in:
parent
a417d74154
commit
da7498bf02
@ -5,7 +5,7 @@
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
||||
<application
|
||||
android:name=".ui.UNNApp"
|
||||
android:name=".UNNApp"
|
||||
android:allowBackup="true"
|
||||
android:label="@string/app_name"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
|
@ -1,4 +1,4 @@
|
||||
package ru.sweetbread.unn.ui
|
||||
package ru.sweetbread.unn
|
||||
|
||||
import io.ktor.client.request.forms.submitForm
|
||||
import io.ktor.client.request.get
|
||||
@ -8,7 +8,6 @@ import io.ktor.client.statement.bodyAsText
|
||||
import io.ktor.http.parameters
|
||||
import org.json.JSONArray
|
||||
import org.json.JSONObject
|
||||
import ru.sweetbread.unn.R
|
||||
import ru.sweetbread.unn.ui.layout.LoginData
|
||||
import ru.sweetbread.unn.ui.layout.client
|
||||
import java.time.LocalDate
|
||||
@ -39,7 +38,8 @@ enum class LecturerRank(val id: Int) {
|
||||
AProfessor(R.string.aprofessor)
|
||||
}
|
||||
|
||||
class ScheduleUnit(val oid: Int,
|
||||
class ScheduleUnit(
|
||||
val oid: Int,
|
||||
val auditorium: Auditorium,
|
||||
val date: LocalDate,
|
||||
val discipline: Discipline,
|
||||
@ -47,32 +47,45 @@ class ScheduleUnit(val oid: Int,
|
||||
val lecturers: ArrayList<Lecturer>,
|
||||
val stream: String,
|
||||
val begin: LocalTime,
|
||||
val end: LocalTime)
|
||||
val end: LocalTime
|
||||
)
|
||||
|
||||
class Auditorium( val name: String,
|
||||
class Auditorium(
|
||||
val name: String,
|
||||
val oid: Int,
|
||||
val floor: Int,
|
||||
val building: Building)
|
||||
class Building( val name: String,
|
||||
val building: Building
|
||||
)
|
||||
|
||||
class Building(
|
||||
val name: String,
|
||||
val gid: Int,
|
||||
val oid: Int)
|
||||
val oid: Int
|
||||
)
|
||||
|
||||
class Discipline( val name: String,
|
||||
class Discipline(
|
||||
val name: String,
|
||||
val oid: Int,
|
||||
val type: Int)
|
||||
val type: Int
|
||||
)
|
||||
|
||||
class KindOfWork( val name: String,
|
||||
class KindOfWork(
|
||||
val name: String,
|
||||
val oid: Int,
|
||||
val uid: String,
|
||||
val complexity: Int)
|
||||
val complexity: Int
|
||||
)
|
||||
|
||||
class Lecturer( val name: String,
|
||||
class Lecturer(
|
||||
val name: String,
|
||||
val rank: LecturerRank,
|
||||
val email: String,
|
||||
val unnId: Int,
|
||||
val uid: String)
|
||||
val uid: String
|
||||
)
|
||||
|
||||
class User (val unnId: Int?,
|
||||
class User(
|
||||
val unnId: Int?,
|
||||
val bitrixId: Int,
|
||||
val userId: Int,
|
||||
val type: Type,
|
||||
@ -81,7 +94,8 @@ class User (val unnId: Int?,
|
||||
val nameEn: String,
|
||||
val isMale: Boolean,
|
||||
val birthday: LocalDate,
|
||||
val avatar: ImageSet)
|
||||
val avatar: ImageSet
|
||||
)
|
||||
|
||||
class Post(
|
||||
val id: Int,
|
||||
@ -89,18 +103,25 @@ class Post(
|
||||
val enableComments: Boolean,
|
||||
val numComments: Int,
|
||||
val date: LocalDateTime,
|
||||
val content: String)
|
||||
val content: String
|
||||
)
|
||||
|
||||
class ImageSet(val original: String,
|
||||
class ImageSet(
|
||||
val original: String,
|
||||
val thumbnail: String,
|
||||
val small: String)
|
||||
val small: String
|
||||
)
|
||||
|
||||
/**
|
||||
* Authorize user by [login] and [password]
|
||||
*
|
||||
* Also defines local vars [PHPSESSID] and [ME]
|
||||
*/
|
||||
suspend fun auth(login: String = LoginData.login, password: String = LoginData.password, forced: Boolean = false): Boolean {
|
||||
suspend fun auth(
|
||||
login: String = LoginData.login,
|
||||
password: String = LoginData.password,
|
||||
forced: Boolean = false
|
||||
): Boolean {
|
||||
if (!forced) {
|
||||
if (::PHPSESSID.isInitialized and ::ME.isInitialized)
|
||||
return true
|
||||
@ -115,7 +136,8 @@ suspend fun auth(login: String = LoginData.login, password: String = LoginData.p
|
||||
}
|
||||
)
|
||||
if (r.status.value == 302) {
|
||||
PHPSESSID = """PHPSESSID=([\w\d]+)""".toRegex().find(r.headers["Set-Cookie"]!!)!!.groupValues[1]
|
||||
PHPSESSID =
|
||||
"""PHPSESSID=([\w\d]+)""".toRegex().find(r.headers["Set-Cookie"]!!)!!.groupValues[1]
|
||||
getMyself(login)
|
||||
getCSRF()
|
||||
return true
|
||||
@ -133,7 +155,7 @@ private suspend fun getMyself(login: String) {
|
||||
|
||||
val user = JSONObject(
|
||||
client.get("$vuzapiURL/user") {
|
||||
header("Cookie", "PHPSESSID=${PHPSESSID}")
|
||||
header("Cookie", "PHPSESSID=$PHPSESSID")
|
||||
}.bodyAsText()
|
||||
)
|
||||
|
||||
@ -229,8 +251,14 @@ suspend fun getSchedule(
|
||||
),
|
||||
lecturers = lecturers,
|
||||
stream = unit.getString("stream"),
|
||||
begin = LocalTime.parse(unit.getString("beginLesson"), DateTimeFormatter.ofPattern("HH:mm")),
|
||||
end = LocalTime.parse(unit.getString("endLesson"), DateTimeFormatter.ofPattern("HH:mm"))
|
||||
begin = LocalTime.parse(
|
||||
unit.getString("beginLesson"),
|
||||
DateTimeFormatter.ofPattern("HH:mm")
|
||||
),
|
||||
end = LocalTime.parse(
|
||||
unit.getString("endLesson"),
|
||||
DateTimeFormatter.ofPattern("HH:mm")
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
@ -239,7 +267,7 @@ suspend fun getSchedule(
|
||||
|
||||
suspend fun getCSRF() {
|
||||
val r = client.get("$restURL/log.blogpost.get") {
|
||||
header("Cookie", "PHPSESSID=${PHPSESSID}")
|
||||
header("Cookie", "PHPSESSID=$PHPSESSID")
|
||||
parameter("sessid", "")
|
||||
}
|
||||
CSRF = JSONObject(r.bodyAsText()).getString("sessid")
|
||||
@ -247,7 +275,7 @@ suspend fun getCSRF() {
|
||||
|
||||
suspend fun getBlogposts(): ArrayList<Post> {
|
||||
val r = client.get("$restURL/log.blogpost.get") {
|
||||
header("Cookie", "PHPSESSID=${PHPSESSID}")
|
||||
header("Cookie", "PHPSESSID=$PHPSESSID")
|
||||
parameter("sessid", CSRF)
|
||||
}
|
||||
val json = JSONObject(r.bodyAsText())
|
||||
@ -275,7 +303,7 @@ suspend fun getBlogposts(): ArrayList<Post> {
|
||||
|
||||
suspend fun getUserByBitrixId(id: Int): User {
|
||||
val userId = JSONObject(client.get("$vuzapiURL/user/bx/$id") {
|
||||
header("Cookie", "PHPSESSID=${PHPSESSID}")
|
||||
header("Cookie", "PHPSESSID=$PHPSESSID")
|
||||
}.bodyAsText()).getInt("id")
|
||||
return getUser(userId)
|
||||
}
|
||||
@ -283,7 +311,7 @@ suspend fun getUserByBitrixId(id: Int): User {
|
||||
suspend fun getUser(id: Int): User {
|
||||
val json = JSONObject(
|
||||
client.get("$vuzapiURL/user/$id") {
|
||||
header("Cookie", "PHPSESSID=${PHPSESSID}")
|
||||
header("Cookie", "PHPSESSID=$PHPSESSID")
|
||||
}.bodyAsText()
|
||||
)
|
||||
|
@ -1,4 +1,4 @@
|
||||
package ru.sweetbread.unn.ui
|
||||
package ru.sweetbread.unn
|
||||
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
@ -6,7 +6,6 @@ import org.acra.config.httpSender
|
||||
import org.acra.data.StringFormat
|
||||
import org.acra.ktx.initAcra
|
||||
import org.acra.sender.HttpSender
|
||||
import ru.sweetbread.unn.BuildConfig
|
||||
|
||||
class UNNApp : Application() {
|
||||
override fun attachBaseContext(base: Context) {
|
@ -47,14 +47,14 @@ import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import org.kefirsf.bb.BBProcessorFactory
|
||||
import org.kefirsf.bb.TextProcessor
|
||||
import ru.sweetbread.unn.ImageSet
|
||||
import ru.sweetbread.unn.Post
|
||||
import ru.sweetbread.unn.R
|
||||
import ru.sweetbread.unn.ui.ImageSet
|
||||
import ru.sweetbread.unn.ui.Post
|
||||
import ru.sweetbread.unn.ui.Type
|
||||
import ru.sweetbread.unn.ui.User
|
||||
import ru.sweetbread.unn.ui.getBlogposts
|
||||
import ru.sweetbread.unn.ui.getUserByBitrixId
|
||||
import ru.sweetbread.unn.ui.portalURL
|
||||
import ru.sweetbread.unn.Type
|
||||
import ru.sweetbread.unn.User
|
||||
import ru.sweetbread.unn.getBlogposts
|
||||
import ru.sweetbread.unn.getUserByBitrixId
|
||||
import ru.sweetbread.unn.portalURL
|
||||
import ru.sweetbread.unn.ui.theme.UNNTheme
|
||||
import java.time.LocalDate
|
||||
import java.time.LocalDateTime
|
||||
|
@ -41,15 +41,15 @@ import com.kizitonwose.calendar.compose.WeekCalendar
|
||||
import com.kizitonwose.calendar.compose.weekcalendar.rememberWeekCalendarState
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import ru.sweetbread.unn.Auditorium
|
||||
import ru.sweetbread.unn.Building
|
||||
import ru.sweetbread.unn.Discipline
|
||||
import ru.sweetbread.unn.KindOfWork
|
||||
import ru.sweetbread.unn.Lecturer
|
||||
import ru.sweetbread.unn.LecturerRank
|
||||
import ru.sweetbread.unn.R
|
||||
import ru.sweetbread.unn.ui.Auditorium
|
||||
import ru.sweetbread.unn.ui.Building
|
||||
import ru.sweetbread.unn.ui.Discipline
|
||||
import ru.sweetbread.unn.ui.KindOfWork
|
||||
import ru.sweetbread.unn.ui.Lecturer
|
||||
import ru.sweetbread.unn.ui.LecturerRank
|
||||
import ru.sweetbread.unn.ui.ScheduleUnit
|
||||
import ru.sweetbread.unn.ui.getSchedule
|
||||
import ru.sweetbread.unn.ScheduleUnit
|
||||
import ru.sweetbread.unn.getSchedule
|
||||
import ru.sweetbread.unn.ui.theme.UNNTheme
|
||||
import java.time.DayOfWeek
|
||||
import java.time.LocalDate
|
||||
|
@ -38,7 +38,7 @@ import androidx.compose.ui.unit.dp
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import ru.sweetbread.unn.R
|
||||
import ru.sweetbread.unn.ui.auth
|
||||
import ru.sweetbread.unn.auth
|
||||
import ru.sweetbread.unn.ui.theme.UNNTheme
|
||||
import splitties.activities.start
|
||||
import splitties.preferences.Preferences
|
||||
|
Loading…
x
Reference in New Issue
Block a user