-
Notifications
You must be signed in to change notification settings - Fork 16
Home
Null edited this page May 11, 2018
·
8 revisions
该项目后端使用了Node.js和Mongodb, 前端使用了bootstrap和Vue。
向bilibili的以下接口发送请求以修改弹幕屏蔽列表:
- https://api.bilibili.com/x/dm/filter/user?jsonp=jsonp 获取用户当前屏蔽词
-
https://api.bilibili.com/x/dm/filter/user/add 添加屏蔽词
- type:0/1/2 普通/正则/用户
- filter:值
- jsonp:"jsonp"
- csrf: cookies["bili_jct"]
登录:利用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": ...}, ...]
}