@@ -124,6 +124,7 @@ object RequestHandlerService : AbstractPluginManagedService(Dispatchers.IO) {
124124 crs[semester] = TimeProviderService .currentSemester
125125 } } }
126126 info(" Sync user ${request.qq} 's courses successfully." )
127+ ScheduleListenerService .restartUserNotification(request.qq)
127128 BotEventRouteService .sendMessageNonBlock(request.qq,"""
128129 课程同步成功!
129130 你将在每节课上课前 ${PluginData .advancedTipOffset[request.qq] ? : PluginConfig .advancedTipTime} 分钟收到课程提醒。
@@ -219,7 +220,15 @@ object RequestHandlerService : AbstractPluginManagedService(Dispatchers.IO) {
219220 BotEventRouteService .sendMessageNonBlock(request.qq, " 已修正学校时间表,将影响学校的其他用户。" )
220221 }
221222 User .find { Users .schoolId eq user.first().schoolId }.forEach {
222- if (it.qq != request.qq) BotEventRouteService .sendMessageNonBlock(it.qq, " 您所在的学校时间表已经被同校用户 ${request.qq} 同步/修正,请输入\" 查看时间表\" 查看。\n 若修改有误或恶意修改,请联系对方。" , 60000L )
223+ if (request.alsoSyncCourses) {
224+ if (it.qq != request.qq) BotEventRouteService .sendMessageNonBlock(it.qq,
225+ " 您所在的学校 ${TimeProviderService .currentSemesterBeginYear} 学年第 ${TimeProviderService .currentSemester} 学期的时间表已经被同校用户 ${request.qq} 从服务器同步。\n 请输入\" 查看时间表\" 查看。\n 正在自动为你同步当前学期课程..." ,
226+ 60000L )
227+ sendRequest(Request .SyncCourseRequest (it.qq))
228+ } else {
229+ if (it.qq != request.qq) BotEventRouteService .sendMessageNonBlock(it.qq, " 您所在的学校时间表已经被同校用户 ${request.qq} 同步/修正,请输入\" 查看时间表\" 查看。\n 若修改有误或恶意修改,请联系对方。" , 60000L )
230+ }
231+
223232 }
224233 } else if (schoolTimeTable.empty()) {
225234 // 首次从服务器同步时间表
@@ -259,13 +268,16 @@ object RequestHandlerService : AbstractPluginManagedService(Dispatchers.IO) {
259268 timeStampWhenAdd = TimeProviderService .currentTimeStamp.toString()
260269 weekPeriodWhenAdd = 1
261270 }
262- BotEventRouteService .sendMessageNonBlock(request.qq, " 已将 ${TimeProviderService .currentSemesterBeginYear} 学年第 ${TimeProviderService .currentSemester} 学期的课表设置为沿用上个学期/学年,输入\" 查看时间表\" 查看。" )
271+ BotEventRouteService .sendMessageNonBlock(request.qq, " 已将 ${TimeProviderService .currentSemesterBeginYear} 学年第 ${TimeProviderService .currentSemester} 学期的课表设置为沿用上个学期/学年,输入\" 查看时间表\" 查看。\n 正在自动为你同步当前学期课程... " )
263272 TimeProviderService .immediateUpdateSchoolWeekPeriod()
264273 ScheduleListenerService .onChangeSchoolTimetable(user.first().schoolId)
265274 User .find { Users .schoolId eq user.first().schoolId }.forEach {
266- if (it.qq != request.qq) BotEventRouteService .sendMessageNonBlock(it.qq,
267- " 您所在的学校 ${TimeProviderService .currentSemesterBeginYear} 学年第 ${TimeProviderService .currentSemester} 学期的时间表已经被同校用户 ${request.qq} 设置为与上学期/学年相同,请输入\" 查看时间表\" 查看。\n 若当前学期和上学期的时间表有出入,请发送\" 修改时间表\" 手动修改。" ,
268- 60000L )
275+ if (it.qq != request.qq) {
276+ BotEventRouteService .sendMessageNonBlock(it.qq,
277+ " 您所在的学校 ${TimeProviderService .currentSemesterBeginYear} 学年第 ${TimeProviderService .currentSemester} 学期的时间表已经被同校用户 ${request.qq} 设置为与上学期/学年相同。\n 请输入\" 查看时间表\" 查看。\n 若当前学期和上学期的时间表有出入,请发送\" 修改时间表\" 手动修改。\n 正在自动为你同步当前学期课程..." ,
278+ 60000L )
279+ }
280+ sendRequest(Request .SyncCourseRequest (it.qq))
269281 }
270282 } else BotEventRouteService .sendMessageNonBlock(request.qq, " 未找到上个学期/学年的时间表,请尝试从服务器同步。" )
271283 } else {
@@ -375,9 +387,10 @@ sealed class Request {
375387 class SyncSchoolTimetableRequest (
376388 val qq : Long ,
377389 val newTimetable : List <Pair <String , String >>? = null ,
378- val forceUpdate : Boolean = false
390+ val forceUpdate : Boolean = false ,
391+ val alsoSyncCourses : Boolean = false ,
379392 ) : Request() {
380- override fun toString () = " SyncSchoolTimetableRequest(qq=$qq ,newTimetable=${newTimetable?.joinToString(" ," ) { " [${it.first} ->${it.second} ]" } ? : " <syncFromServer>" } ,forceUpdate=$forceUpdate )"
393+ override fun toString () = " SyncSchoolTimetableRequest(qq=$qq ,newTimetable=${newTimetable?.joinToString(" ," ) { " [${it.first} ->${it.second} ]" } ? : " <syncFromServer>" } ,forceUpdate=$forceUpdate ,alsoSyncCourses= $alsoSyncCourses )"
381394 }
382395 /* *
383396 * SyncSchoolWeekPeriod:同步这个学校当前学期的周数,
0 commit comments