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

134 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 项目手册
# 部署运行
## docker-compose
* 参见 [这里](https://github.com/tgbot-collection/BotsRunner)
* 本目录下的 `docker-compose.yml` 也可以作为参考
* nginx reverse proxy可以[参考这里](https://github.com/BennyThink/WebsiteRunner)
* [参考这里获取数据库](web/README.md)
```shell
# 启动数据库
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
```bash
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
```shell
python3 web/prepare/convert_db.py
```
**不再兼容旧版本数据**
### 4. 运行
```bash
python /path/to/YYeTsBot/yyetsbot/bot.py
```
### 5. systemd 单元文件
参考 `yyets.service`
### 6. 网站部署运行方式
参考 `worker``web`目录下的 `README`。需要注意cf worker已经停止开发。
## 添加新的资源网站
欢迎各位开发提交新的资源网站!方法非常简单,重写 `BaseFansub`,实现`search_preview``search_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` 进行加密验证,详细信息可以[参考这里](https://t.me/mikuri520/726)
### 3. rate limit
404的访问会被计数超过10次会被拉入黑名单持续3600秒再次访问会持续叠加。
# 持续部署
使用[Docker Hub Webhook](https://docs.docker.com/docker-hub/webhooks/)
(顺便吐槽一句这是个什么垃圾文档……自己实现validation吧)
参考listener [Webhook listener](https://github.com/tgbot-collection/Webhook)
# 归档资源下载
## Telegram 频道分享
* 包含了2021年1月11日为止的人人影视最新资源MySQL为主。有兴趣的盆友可以用这个数据进行二次开发[戳我查看详情](https://t.me/mikuri520/668)
* 字幕侠离线数据库 [从这里下载](https://t.me/mikuri520/715),这个数据比较粗糙,并且字幕侠网站还在,因此不建议使用这个
## 本地下载
如果无法访问Telegram可以使用如下网址下载数据
* [网站实时数据MongoDB](https://yyets.dmesg.app/data/yyets_mongo.gz)
* [MySQL](https://yyets.dmesg.app/data/yyets_mysql.zip)
* [SQLite](https://yyets.dmesg.app/data/yyets_sqlite.zip)