update README.md

This commit is contained in:
BennyThink
2021-02-10 15:15:38 +08:00
parent 3dc967a531
commit 4cdba909ed
3 changed files with 102 additions and 15 deletions

40
DEVELOPMENT.md Normal file
View File

@@ -0,0 +1,40 @@
# bot开发手册
## 添加新的资源网站
欢迎各位开发提交新的资源网站!方法非常简单,重写 `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 获取网站访问量
## 防爬
### 1. referer
网站使用referer验证请求
### 2. 加密headers
使用headers `ne1` 进行加密验证,详细信息可以[参考这里](https://t.me/mikuri520/726)
### 3. rate limit
404的访问会被计数超过10次会被拉入黑名单持续3600秒再次访问会持续叠加。

View File

@@ -10,7 +10,6 @@
机器人和网站由我长期维护如果遇到问题可以提issue。 机器人和网站由我长期维护如果遇到问题可以提issue。
- [使用说明](#使用说明) - [使用说明](#使用说明)
- [命令](#命令) - [命令](#命令)
- [截图](#截图) - [截图](#截图)
@@ -35,7 +34,6 @@
- [支持我](#支持我) - [支持我](#支持我)
- [License](#license) - [License](#license)
# 使用说明 # 使用说明
直接发送想要看的剧集名称就可以了可选分享网页或者链接ed2k和磁力链接 直接发送想要看的剧集名称就可以了可选分享网页或者链接ed2k和磁力链接
@@ -46,7 +44,6 @@
**由于译名的不同,建议输入部分译名,然后从列表中进行选择。比如说想看权力的游戏第四季,那么直接搜索"权力的游戏"就可以了。** **由于译名的不同,建议输入部分译名,然后从列表中进行选择。比如说想看权力的游戏第四季,那么直接搜索"权力的游戏"就可以了。**
# 命令 # 命令
``` ```
@@ -83,7 +80,24 @@ yyets_offline - 人人影视离线数据
## docker-compose ## docker-compose
参见 [这里](https://github.com/tgbot-collection/BotsRunner) * 参见 [这里](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
```
## 常规方式 ## 常规方式
@@ -152,17 +166,7 @@ python /path/to/YYeTsBot/yyetsbot/bot.py
# 开发 # 开发
## 添加新的资源网站 如何参与开发、具体API接口可以 [参考这个文档](DEVELOPMENT.md)
欢迎各位开发提交新的资源网站!方法非常简单,重写 `BaseFansub`,按照约定的格式返回数据。 然后把类名字添加到 `FANSUB_ORDER` 就可以了!是不是很简单!
## health check
有时不知为何遇到了bot卡死无任何反馈。😂~~这个时候需要client api了~~😂
好的这个原因找到了是因为有时爬虫会花费比较长的时间然后pytelegrambotapi默认只有两个线程那么后续的操作就会被阻塞住。
临时的解决办法是增加线程数量长期的解决办法是使用celery分发任务。
# Credits # Credits

43
docker-compose.yml Normal file
View File

@@ -0,0 +1,43 @@
version: '3.1'
services:
redis:
image: redis:alpine
restart: always
logging:
driver: none
mongo:
image: mongo
restart: always
volumes:
- ./data/mongodb:/data/db
logging:
driver: none
socat:
image: alpine/socat
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
entrypoint: [ "socat", "tcp-listen:2375,fork,reuseaddr","unix-connect:/var/run/docker.sock" ]
yyets-web:
image: bennythink/yyetsbot
restart: unless-stopped
environment:
- mongo=mongo
working_dir: /YYeTsBot/web/
command: [ "python3","server.py","-h=0.0.0.0" ]
ports:
- 0.0.0.0:8888:8888
yyets:
image: bennythink/yyetsbot
depends_on:
- redis
- socat
- mongo
restart: on-failure
env_file:
- env/yyets.env