2 个版本
0.1.1 | 2023 年 8 月 5 日 |
---|---|
0.1.0 | 2023 年 8 月 5 日 |
#6 in #schedules
用于 ubs
43KB
754 行
ubs
是一个旨在提供布法罗大学课程表实时访问的库,为每个课程提供大量信息。这包括:class open/closed
,start/end date
,start/end time
,class type
,class id
,section
,room
,instructor
,seats open/closed
,等等。
安装
Cargo
$ cargo install ubs
示例
以下是一个使用 tokio 和高级 API 获取实时课程信息的代码片段。
use futures::stream::TryStreamExt;
use ubs_lib::{Career, Course, Semester};
#[tokio::main]
async fn main() -> Result<(), ubs_lib::Error> {
let mut schedule_iter = ubs_lib::schedule_iter(
Course::Cse115,
Semester::Spring2023,
).await?;
while let Some(schedule) = schedule_iter.try_next().await? {
for group in schedule?.group_iter() {
for class in group.class_iter() {
// do stuff
}
}
}
Ok(())
}
常见问题解答
它是如何工作的?
该过程涉及向目标 URL 发送一系列精心设计的网络请求。收到请求后,生成的 HTML 将被缓存,直到用户请求特定信息,此时将按照规范进行解析,并使用正则表达式提取内部值。
我能否从其他语言使用此库?
是的。虽然从其他语言直接访问核心库可能还不行(尚不支持),但库提供了一个命令行界面,可以输出所需格式的数据。
这个库的稳定性如何?
有一定的稳定性。在使用此库时,请注意,底层 API 未来可能会发生变化。因此,不建议将此库用于关键代码。然而,库有一个全面的持续集成系统,每天运行,以早期捕捉潜在问题。如果 API 发生变化且 ubs
无法正常工作,鼓励用户报告问题以便解决。
这个库是否操作私有信息?
不是,此库仅操作任何人都可轻松获取的公共信息。没有涉及专有或机密数据源。
依赖关系
~8–19MB
~264K SLoC