Skip to content

Commit 604b818

Browse files
committed
bug fixes:
- fix: not convenient 302 on ehall apps - chore: remove useless currentStartDay in setting - fix: only number keyboard are allowed in partner classtable
1 parent 92587d2 commit 604b818

File tree

7 files changed

+39
-62
lines changed

7 files changed

+39
-62
lines changed

lib/page/classtable/class_page/classtable_page.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -457,8 +457,6 @@ class _ClassTablePageState extends State<ClassTablePage> {
457457
content: TextField(
458458
autofocus: true,
459459
controller: controller,
460-
keyboardType:
461-
TextInputType.number,
462460
maxLines: 1,
463461
decoration: InputDecoration(
464462
hintText: FlutterI18n.translate(

lib/repository/network_session.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ class NetworkSession {
3535
contentType: Headers.formUrlEncodedContentType,
3636
headers: {
3737
HttpHeaders.userAgentHeader:
38-
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
38+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
3939
"AppleWebKit/537.36 (KHTML, like Gecko) "
40-
"Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
40+
"Chrome/130.0.0.0 Safari/537.36",
4141
},
4242
),
4343
)

lib/repository/preference.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ enum Preference {
5353
color(key: "color", type: "int"), // 颜色索引
5454
brightness(key: "brightness", type: "int"), // 深浅色模式
5555
currentSemester(key: "currentSemester", type: "String"), // 当前学期编码
56-
currentStartDay(key: "currentStartDay", type: "String"), // 当前学期编码
56+
//currentStartDay(key: "currentStartDay", type: "String"), // 当前学期编码
5757
role(key: "role", type: "bool"), // 是否为研究生
5858
simplifiedClassTimeline(
5959
key: "simplifiedClassTimeline",

lib/repository/xidian_ids/classtable_session.dart

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,11 @@ class ClassTableFile extends EhallSession {
126126
.startOf(Unit.day)
127127
.format(pattern: "yyyy-MM-dd HH:mm:ss");
128128

129-
if (preference.getString(preference.Preference.currentStartDay) !=
130-
termStartDay) {
129+
if (preference.getString(preference.Preference.currentSemester) !=
130+
semesterCode) {
131131
preference.setString(
132-
preference.Preference.currentStartDay,
133-
termStartDay,
132+
preference.Preference.currentSemester,
133+
semesterCode,
134134
);
135135

136136
/// New semenster, user defined class is useless.
@@ -301,6 +301,10 @@ class ClassTableFile extends EhallSession {
301301
preference.Preference.currentSemester,
302302
semesterCode,
303303
);
304+
305+
/// New semenster, user defined class is useless.
306+
var userClassFile = File("${supportPath.path}/$userDefinedClassName");
307+
if (userClassFile.existsSync()) userClassFile.deleteSync();
304308
}
305309

306310
log.info(
@@ -314,17 +318,6 @@ class ClassTableFile extends EhallSession {
314318
'XQ': semesterCode.split('-')[2]
315319
},
316320
).then((value) => value.data['datas']['cxjcs']['rows'][0]["XQKSRQ"]);
317-
if (preference.getString(preference.Preference.currentStartDay) !=
318-
termStartDay) {
319-
preference.setString(
320-
preference.Preference.currentStartDay,
321-
termStartDay,
322-
);
323-
324-
/// New semenster, user defined class is useless.
325-
var userClassFile = File("${supportPath.path}/$userDefinedClassName");
326-
if (userClassFile.existsSync()) userClassFile.deleteSync();
327-
}
328321
log.info(
329322
"[getClasstable][getEhall] "
330323
"Will get $semesterCode which start at $termStartDay.",

lib/repository/xidian_ids/ehall_session.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,11 @@ class EhallSession extends IDSSession {
108108
"[ehall_session][useApp] "
109109
"Transfer address: ${value.headers['location']![0]}.",
110110
);
111-
return value.headers['location']![0];
111+
112+
return value.headers['location']![0].replaceAll(
113+
RegExp(r';jsessionid=(.*)\?'),
114+
"?",
115+
);
112116
});
113117
}
114118
}

lib/repository/xidian_ids/exam_session.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,12 @@ class ExamSession extends EhallSession {
6565
}
6666

6767
Future<ExamData> getExamEhall() async {
68-
var firstPost = await useApp("4768687067472349");
69-
await dioEhall.get(firstPost);
68+
String? location = await useApp("4768687067472349");
69+
while (location != null) {
70+
var response = await dio.get(location);
71+
log.info("[ExamFile][getExamEhall] Received location: $location.");
72+
location = response.headers[HttpHeaders.locationHeader]?[0];
73+
}
7074

7175
String semester = pref.getString(pref.Preference.currentSemester);
7276

lib/repository/xidian_ids/personal_info_session.dart

Lines changed: 17 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -93,33 +93,27 @@ class PersonalInfoSession extends EhallSession {
9393
"[ehall_session][getInformation] "
9494
"Get the semester information.",
9595
);
96-
String get = await useApp("4770397878132218");
97-
await dioEhall.post(get);
98-
String semesterCode = await dioEhall
96+
String? location = await checkAndLogin(
97+
target: "https://yjspt.xidian.edu.cn/gsapp/"
98+
"sys/wdkbapp/*default/index.do#/xskcb",
99+
sliderCaptcha: (String cookieStr) =>
100+
SliderCaptchaClientProvider(cookie: cookieStr).solve(null),
101+
);
102+
103+
while (location != null) {
104+
var response = await dio.get(location);
105+
log.info("[getClasstable][getYjspt] Received location: $location.");
106+
location = response.headers[HttpHeaders.locationHeader]?[0];
107+
}
108+
109+
var semesterCode = await dio
99110
.post(
100-
"https://ehall.xidian.edu.cn/jwapp/sys/wdkb/modules/jshkcb/dqxnxq.do",
111+
"https://yjspt.xidian.edu.cn/gsapp/sys/wdkbapp/modules/xskcb/kfdxnxqcx.do",
101112
)
102-
.then((value) => value.data['datas']['dqxnxq']['rows'][0]['DM']);
103-
104-
log.info(
105-
"[ehall_session][getInformation] "
106-
"Get the day the semester begin.",
107-
);
108-
String termStartDay = await dioEhall.post(
109-
'https://ehall.xidian.edu.cn/jwapp/sys/wdkb/modules/jshkcb/cxjcs.do',
110-
data: {
111-
'XN': '${semesterCode.split('-')[0]}-${semesterCode.split('-')[1]}',
112-
'XQ': semesterCode.split('-')[2]
113-
},
114-
).then((value) => value.data['datas']['cxjcs']['rows'][0]["XQKSRQ"]);
115-
preference.setString(
116-
preference.Preference.currentStartDay,
117-
termStartDay,
118-
);
119-
List<String> semester = semesterCode.split("-");
113+
.then((value) => value.data["datas"]["kfdxnxqcx"]["rows"][0]["WID"]);
120114
preference.setString(
121115
preference.Preference.currentSemester,
122-
semester.first + semester.last,
116+
semesterCode,
123117
);
124118
}
125119

@@ -238,22 +232,6 @@ class PersonalInfoSession extends EhallSession {
238232
preference.Preference.currentSemester,
239233
semesterCode,
240234
);
241-
242-
log.info(
243-
"[ehall_session][getInformation] "
244-
"Get the day the semester begin.",
245-
);
246-
String termStartDay = await dioEhall.post(
247-
'https://ehall.xidian.edu.cn/jwapp/sys/wdkb/modules/jshkcb/cxjcs.do',
248-
data: {
249-
'XN': '${semesterCode.split('-')[0]}-${semesterCode.split('-')[1]}',
250-
'XQ': semesterCode.split('-')[2]
251-
},
252-
).then((value) => value.data['datas']['cxjcs']['rows'][0]["XQKSRQ"]);
253-
preference.setString(
254-
preference.Preference.currentStartDay,
255-
termStartDay,
256-
);
257235
}
258236

259237
return detailed["data"]["SJH"] ?? "02981891206";

0 commit comments

Comments
 (0)