polybar跑马灯实时推送up最新动态

原理分析
polybar可支持自定义module添加script并展示print返回值,利用python脚本轮番获取B站up的最新动态,检测到最新动态对应的时间戳发生改变则判定为更新动态,print最新动态内容。但原生polybar的自定义模块不支持跑马灯效果,仅可展示静态内容,但可以,利用模块的刷新间隔每次切割定长字符串来达到跑马灯的效果。
环境要求
polybar(通常搭配WM使用),python(pip)
具体实现
B站web端动态更新利用ajax技术,ajax 即 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),ajax 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。
通过分析可得到B站历史动态api接口为:https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/space_history
请求方式:get
请求参数:
请求参数 | 备注 | 值 |
---|---|---|
host_uid | 获取对应up的uid | 必选 |
offset_dynamic_id | 每页偏移量 | 默认为0 |
visitor_uid | 访问的uid | 可选 |
platform | 访问的平台 | 可选 |
安装json,requests模块
1 | pip install json |
通过requests模块发送get请求获得网页内容,通过json模块将字符串信息转化为字典数据进行处理。
String ==> Dict json.loads()
Dict ==> String json.dumps()
将请求到的长文本保存至文本文件,每次读取show = [n:n+m]一共m个字符串,则还需另外引入计数器n,当长度show.len()小于一最小值时,计数器归零,polybar每次刷新返回show的值。
评论
评论插件加载失败
正在加载评论插件