该项目后端使用了Node.js和Mongodb, 前端使用了bootstrap和Vue。
向bilibili的以下接口发送请求以修改弹幕屏蔽列表:
登录:利用bilibili的OAuth接口
GET https://passport.bilibili.com/qrcode/getLoginUrl 获取OAuthKey和登录URL,用有cookie的浏览器打开登录URL确认登录即可。
POST https://passport.bilibili.com/qrcode/getLoginInfo 参数 {"oauthKey": oauthkey} 获取登录状态。如果成功登录则带cookie的url(应该也返回了cookie)。
bilibili的cookie只储存在浏览器本地,不在服务器保存。
服务器对于每个用户都会在users里储存一条数据{"uid":Int, "token":String}。其中,token是在每一次用户登录时随机生成的,范围从0~100000000000的随机数。token会通过cookie返回给用户。
对于每一条用户分享规则,数据库存储为(注:这一块变化可能较大,请以实际为准):
{ "uid": ..., "name": "...", "description": "...", "filters": [{"type": ..., "filter": ...}, ...], "time": new Date().getTime(), "vote": 0, "usage": 0, "comments": [{"uid": ..., "content": ...}, ...] }