26 lines
865 B
Dart
26 lines
865 B
Dart
import 'json_schedule_import.dart';
|
|
import '../domain/course.dart';
|
|
import '../features/school/school_page_adapter.dart';
|
|
import '../features/school/undergraduate/timetable_adapter.dart';
|
|
|
|
class ScheduleFileImport {
|
|
static ImportDraft parse(String content) {
|
|
final trimmed = content.replaceFirst('\uFEFF', '').trimLeft();
|
|
if (trimmed.startsWith('<')) {
|
|
if (trimmed.contains('manualArrangeCourseTable')) {
|
|
return UndergraduateTimetableAdapter.extract(
|
|
trimmed,
|
|
Uri.parse('https://eams.uestc.edu.cn/eams/courseTableForStd.action'),
|
|
source: CourseSource.file,
|
|
);
|
|
}
|
|
return SchoolPageAdapter().extract(
|
|
trimmed,
|
|
Uri.parse('https://yjsjy.uestc.edu.cn/pyxx/pygl/xskbcx/index/1'),
|
|
source: CourseSource.file,
|
|
);
|
|
}
|
|
return JsonScheduleImport.parse(trimmed);
|
|
}
|
|
}
|