Files
YYeTsBot/DEVELOPMENT.md
2021-05-31 22:13:01 +08:00

4.6 KiB
Raw Blame History

项目手册

bot 部署运行

docker-compose

# 启动数据库
docker-compose up -d mongo
# 导入数据库
docker cp db.tgz 1234da:/tmp
# 进入容器
docker-compose exec mongo bash
tar xf db.tgz
mongorestore
exit
# 开启服务
docker-compose up -d

常规方式

1. 环境

推荐使用Python 3.6+,环境要求

  • redis
  • 可选MongoDB
pip install -r requirements.txt

2. 配置TOKEN

修改config.py,根据需求修改如下配置项

  • TOKENbot token
  • USERNAME人人影视的有效的用户名
  • PASSWORD :人人影视的有效的密码
  • MAINTAINER维护者的Telegram UserID
  • REDISredis的地址一般为localhost
  • MONGODB: mongodb的地址

3. 导入数据(可选)

如果使用yyets那么需要导入数据到MongoDB。可以在将数据导入到MySQL之后使用如下脚本导入数据到MongoDB

python3 web/prepare/convert_db.py

4. 运行

python /path/to/YYeTsBot/yyetsbot/bot.py

5. systemd 单元文件

参考 yyets.service

网站部署运行方式

参考 workerweb目录下的 README。需要注意cf worker已经停止开发。

添加新的资源网站

欢迎各位开发提交新的资源网站!方法非常简单,重写 BaseFansub,实现search_previewsearch_result,按照约定的格式返回数据。

然后把类名字添加到 FANSUB_ORDER 就可以了!是不是很简单!

网站开发手册

接口列表

  • /api/resource?id=3 GET 获取id=3的资源
  • /api/resource?kw=逃避 GET 搜索关键词
  • /api/top GET 获取大家都在看
  • /api/name GET 所有剧集名字
  • /api/name?human=1 GET 人类可读的方式获取所有剧集名字
  • /api/metrics GET 获取网站访问量
  • /api/user POST登录PATCH添加/取消收藏
  • /api/grafana grafana相关接口
  • /api/blacklist 黑名单信息

防爬

1. referer

网站使用referer验证请求

2. 加密headers

使用headers ne1 进行加密验证,详细信息可以参考这里

3. rate limit

404的访问会被计数超过10次会被拉入黑名单持续3600秒再次访问会持续叠加。

持续部署

使用Docker Hub Webhook (顺便吐槽一句这是个什么垃圾文档……自己实现validation吧)

参考listener Webhook listener

归档资源下载

Telegram 频道分享

  • 包含了2021年1月11日为止的人人影视最新资源MySQL为主。有兴趣的盆友可以用这个数据进行二次开发戳我查看详情
  • 字幕侠离线数据库 从这里下载,这个数据比较粗糙,并且字幕侠网站还在,因此不建议使用这个

本地下载

如果无法访问Telegram可以使用如下网址下载数据

评论API

1. 获取评论

GET /api/comments

分页支持URL参数

  • resource_id: 资源id
  • size: 每页评论数量默认5或者其他数值
  • page: 当前页

返回

{
    "data": [
        {
            "date": "2018-09-18 11:12:15",
            "username": "uuua2",
            "content": "tdaadd",
            "id": 2
        },
        {
            "date": "2018-09-01 11:12:15",
            "username": "abcd",
            "content": "tdaadd",
            "id": 1
        }
    ],
    "count": 2,
    "resource_id": 39301
}

2. 获取验证码

GET /api/captcha?id=1234abcid是随机生成的字符串 API 返回字符串,形如 data:image/png;base64,iVBORw0KGgoAAA....

3. 提交评论

POST /api/comments 只有登录用户才可以发表评论检查cookie username 是否为空来判断是否为登录用户;未登录用户提示“请登录后发表评论”

body resource_id 从URL中获取id是上一步验证码的那个id captcha 是用户输入的验证码

{
    "resource_id": 39301,
    "content": "评论内容",
    "id": "1234abc",
    "captcha": "38op"
}

返回 HTTP 201添加评论成功403/401遵循HTTP语义

{
    "message": "评论成功/评论失败/etc"
}