3个不稳定版本
0.1.1 | 2023年8月5日 |
---|---|
0.1.0 | 2023年8月5日 |
0.0.0 | 2022年12月1日 |
#4 in #university
59KB
945 行
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
无法正常工作,鼓励用户报告问题以便解决。
这个库是否操作私有信息?
不,这个库仅操作任何人都可以轻松访问的公共信息。没有涉及专有或机密数据源。
依赖关系
~10–21MB
~275K SLoC