解决高校学生和教授黑板难的对策
bb-unsucked的Python项目详细描述
黑板未锁定
crummy用于修复crummy软件的名称
如果你是ODU的学生或教员,我相信你并不陌生 每天浪费2-3个小时试图通过黑板找到或张贴作业。
我很关心学生的看法,但我希望这个实验能 证明对教授也有用。目标是围绕现有的 黑板基础设施,并提供一个cli api来访问所有重要的功能 它通常被困在4-5个链接和总共20-30秒的浏览器加载时间之后。
具体目标
- [X]登录BB
- [X]仅列出当前学期的课程(隐藏不相关的课程)
- [X]列出所有公告
- [X]列出给定班级的作业
- 当教授们把作业放在不同的地方时,这必须是一种聪明的做法
- []提交作业文件
- []查看/张贴到讨论板
- []缓存和后台程序操作,以防止大多数数据访问都必须访问网络
依赖关系
Python3 requests
,和BeautifulSoup
,两者都可以是
通过pip3
用法
最快的设置是在某个地方保存最近黑板会话的.har
文件,
然后运行
# Install the package pip3 install --user bb_unsucked # Read authentication details from .har python3 -m bb_unsucked build-cache downloads/my-session.har # use the __main__.py program to list all of your classes python3 -m bb_unsucked ls
在脚本中
文件demo_usage_in_script.py
有更多示例,但hello world是:
importbb_unsuckedbb=bb_unsucked.BBUnsucked()formy_classinbb.classes():print(f"I am in {my_class.course_id}")
身份验证
要执行身份验证步骤,最可靠的方法是
保存最近黑板会话的.har
文件。bb_unsucked
是
能够从文件recent_request.har
中解析身份验证会话cookie。
配置
bb-unsucked
首先从/etc/bb-unsucked/config.ini
读取配置指令
然后从$HOME/.bb-unsucked/config.ini
开始。两个文件都不需要存在,
但如果要重写参数,默认配置内容将是
[DEFAULT]
base_domain = https://www.blackboard.odu.edu
cookies_file = /j/.bb-unsucked/cookies.bin
agressive_caching = False
courses_cache_file = /j/.bb-unsucked/courses-cache.bin
courses_max_cache_s = 604800
announcements_cache_file = /j/.bb-unsucked/announcements-cache.bin
announcements_max_cache_s = 21600
如您所见,base_domain
默认为odu的黑板实例,
但这可以更改为指向任何黑板实例。
我的配置将各种缓存文件列在/j/
(我的主目录)下
因为当使用默认值时bb-unsucked
将动态生成
值为cookies_file
、courses_cache_file
和announcements_cache_file
。
编译cython二进制文件
一些速度演示者希望尽可能优化性能,特别是。
如果bb-unsucked
将在其他脚本中使用。此回购协议包含
执行make bb-unsucked
时生成二进制文件bb-unsucked
。
在读取时,二进制文件的性能比python模块更好
不需要网络访问的缓存数据。它通过插入一些代码来实现这一点,
cython_main_interpose.c
,在cython输出的生成的.c
文件中。
此代码负责尝试在没有 需要跳转到python运行时。很好的例子是打印帮助文本和列表类, 这个模块需要200毫秒,二进制代码需要2毫秒。