@@ -163,39 +163,44 @@ object RequestHandlerService : AbstractPluginManagedService(Dispatchers.IO) {
163163 Database .suspendQuery<Unit > {
164164 val user = User .find { Users .qq eq request.qq }
165165 suspend fun syncFromServer (createNew : Boolean ) {
166- SuperCourseApiService .loginViaPassword(user.first().account, AESUtils .decrypt(user.first().password, SuperCourseApiService .pkey)).also { loginDTO ->
167- when (loginDTO) {
168- is Either .Left -> {
169- val scheduledTimetable = loginDTO.value.data.student.attachmentBO.myTermList.first { termList ->
170- termList.beginYear == TimeProviderService .currentSemesterBeginYear && termList.term == TimeProviderService .currentSemester
171- // 这超级课表是什么傻逼,妈的还带空字符串
172- }.courseTimeList.courseTimeBO.filter { it.beginTimeStr.isNotEmpty() }.joinToString(" |" ) { time ->
173- " ${time.beginTimeStr.substring(0 .. 1 )} :${time.beginTimeStr.substring(2 .. 3 )} -${time.endTimeStr.substring(0 .. 1 )} :${time.endTimeStr.substring(2 .. 3 )} "
174- }
175- if (createNew) {
176- SchoolTimetable .new {
177- schoolId = loginDTO.value.data.student.schoolId
178- schoolName = loginDTO.value.data.student.schoolName
179- beginYear = TimeProviderService .currentSemesterBeginYear
180- semester = TimeProviderService .currentSemester
181- scheduledTimeList = scheduledTimetable
182- timeStampWhenAdd = TimeProviderService .currentTimeStamp.toString()
183- weekPeriodWhenAdd = 1
166+ when (val loginDTO = SuperCourseApiService .loginViaPassword(user.first().account, AESUtils .decrypt(user.first().password, SuperCourseApiService .pkey))) {
167+ is Either .Left -> {
168+ val scheduledTimetable = loginDTO.value.data.student.attachmentBO.myTermList.first { termList ->
169+ termList.beginYear == TimeProviderService .currentSemesterBeginYear && termList.term == TimeProviderService .currentSemester
170+ // 这超级课表是什么傻逼,妈的还带空字符串
171+ }.courseTimeList.courseTimeBO.run {
172+ if (isNotEmpty()) {
173+ filter { it.beginTimeStr.isNotEmpty() }.joinToString(" |" ) { time ->
174+ " ${time.beginTimeStr.substring(0 .. 1 )} :${time.beginTimeStr.substring(2 .. 3 )} -${time.endTimeStr.substring(0 .. 1 )} :${time.endTimeStr.substring(2 .. 3 )} "
184175 }
185176 } else {
186- SchoolTimetable .find {
187- (SchoolTimetables .schoolId eq user.first().schoolId) and
188- (SchoolTimetables .beginYear eq TimeProviderService .currentSemesterBeginYear) and
189- (SchoolTimetables .semester eq TimeProviderService .currentSemester)
190- }.first().scheduledTimeList = scheduledTimetable
177+ // empty default
178+ " 08:10-08:55|09:05-09:50|10:10-10:55|11:05-11:50|13:40-14:25|14:35-15:20|15:30-16:15|16:25-17:10|18:05-18:50|19:00-19:45|19:55-20:40|20:50-21:35"
191179 }
192- TimeProviderService .immediateUpdateSchoolWeekPeriod()
193180 }
194- // 用户记录在User的密码有误或者其他问题(网络问题等)
195- is Either .Right -> {
196- error(" Failed to sync user ${request.qq} 's school timetable, reason: ${loginDTO.value.data.errorStr} " )
197- BotEventRouteService .sendMessageNonBlock(request.qq," 无法从服务器同步学校时间表信息,可能是因为你已经修改了超级课表的密码。\n 具体原因:${loginDTO.value.data.errorStr} " )
181+ if (createNew) {
182+ SchoolTimetable .new {
183+ schoolId = loginDTO.value.data.student.schoolId
184+ schoolName = loginDTO.value.data.student.schoolName
185+ beginYear = TimeProviderService .currentSemesterBeginYear
186+ semester = TimeProviderService .currentSemester
187+ scheduledTimeList = scheduledTimetable
188+ timeStampWhenAdd = TimeProviderService .currentTimeStamp.toString()
189+ weekPeriodWhenAdd = 1
190+ }
191+ } else {
192+ SchoolTimetable .find {
193+ (SchoolTimetables .schoolId eq user.first().schoolId) and
194+ (SchoolTimetables .beginYear eq TimeProviderService .currentSemesterBeginYear) and
195+ (SchoolTimetables .semester eq TimeProviderService .currentSemester)
196+ }.first().scheduledTimeList = scheduledTimetable
198197 }
198+ TimeProviderService .immediateUpdateSchoolWeekPeriod()
199+ }
200+ // 用户记录在User的密码有误或者其他问题(网络问题等)
201+ is Either .Right -> {
202+ error(" Failed to sync user ${request.qq} 's school timetable, reason: ${loginDTO.value.data.errorStr} " )
203+ BotEventRouteService .sendMessageNonBlock(request.qq," 无法从服务器同步学校时间表信息,可能是因为你已经修改了超级课表的密码。\n 具体原因:${loginDTO.value.data.errorStr} " )
199204 }
200205 }
201206 }
0 commit comments