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

原理分析

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
2
pip install json
pip install requests

通过requests模块发送get请求获得网页内容,通过json模块将字符串信息转化为字典数据进行处理。

String ==> Dict json.loads()

Dict ==> String json.dumps()

将请求到的长文本保存至文本文件,每次读取show = [n:n+m]一共m个字符串,则还需另外引入计数器n,当长度show.len()小于一最小值时,计数器归零,polybar每次刷新返回show的值。

 评论
评论插件加载失败
正在加载评论插件