Skip to content

Latest commit

 

History

History
65 lines (40 loc) · 2.99 KB

README.md

File metadata and controls

65 lines (40 loc) · 2.99 KB

edu_parser

这是一个为ScheduleX提供的教务系统课程表解析源。

背景

以这种方式来实现课表解析主要有两个目的:

  • 动态更新与维护
  • 开源与共享

第一点不用多说了,借助于github的服务与存储可以实现解析器的线上更新(虽说这种模式用于生产环境还是挺奇怪的),如果有变更等 就可以无需发版直接更新。

第二点也是建立此仓库的重要原因,在经历了ScheduleX这么多版本迭代和看到市面上这么多的课程表对于教务系统解析这件事的"苦恼" 终于在schedule_flutter发布的前n个月,整理了一套js解析方案并开源,可供有设计课程表想法的同学使用,借助于这个仓库,您可以只关心 那些更有特色的功能、好看的UI即可,使用本仓库提供的解析器即可保证稳定的解析服务。

当然最最最重要的,希望您能尽微薄之力为此仓库做贡献。在此表示感谢!

适配指南

DOM解析支持下面两种方式:

  • 原生DOM解析
  • jQuery DOM解析

只需要一点点代码就可以完成您的学校教务的适配,如果您没有JS基础,参考下面的操作步骤相信也会完成这项任务的!

开发

  1. 首先Fork本仓库到您的github账户下,这一步是为后续PR做准备,可以看到仓库的主体内容除了一些必要的基础js脚本,其他的便是以学校名称 命名的文件夹,搜索一下这些文件夹如果没有您的学校,您就可以新建一个自己学校的,然后开始愉快的开发了。
  2. 适配目录下应该包含几个文件
    • parse.js: 解析主文件,主函数function parser(){}
    • parse_config.json: 用于客户端解析具体的信息
    • xxx.html: 用于Code Reviewer核对和检查解析器的准确性,且存档。注意抹掉隐私信息
  3. 当我们有了这三个文件之后就可以进入coding状态了,coding及测试指南请参考:https://www.yuque.com/hysteria/og4g68/yky3i4

PR

当您准备好了您的代码,可以通过github发起PR,我会尽快处理的PR请求。

目标分支:main

当您的PR请求通过之后,线上用户可以直接访问到适配成功的信息。

接入指南

这一个环节是给想要使用本仓库做解析源的App开发者准备的。首先我们来了解一下教务解析源的工作原理。

  1. 当客户端配置解析服务器为本仓库文件源地址的时候,会按照解析器正则路径规则匹配到对应学校的parse.json文件,下载此文件从其中的json文本中获取适配状态 和具体的适配函数路径,在真正开始解析的时候,根据此函数路径下载对应的解析js脚本,然后注入给端WebView,从而获取到解析后的数据。所有的读取解析操作 将转交给js完成,客户端不做特殊处理。
  2. 为了支持jQuery,客户端需要统一提前向WebView注入jQuery脚本,否则会出现不兼容的问题。

// todo

后续计划

// todo

支持该项目

// todo