Files
YYeTsBot/DEVELOPMENT.md
2021-04-24 20:51:03 +08:00

3.7 KiB
Raw Blame History

项目手册

部署运行

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

6. 网站部署运行方式

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

添加新的资源网站

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

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

bot无响应

有时不知为何遇到了bot卡死无任何反馈。😂这个时候需要client api了😂

原因找到了是因为有时爬虫会花费比较长的时间然后pytelegrambotapi默认只有两个线程那么后续的操作就会被阻塞住。

临时的解决办法是增加线程数量长期的解决办法是使用celery分发任务。

网站开发手册

接口列表

  • /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可以使用如下网址下载数据