From 4cdba909ed5fff8169bc4d9ed6188ee28284f01b Mon Sep 17 00:00:00 2001 From: BennyThink Date: Wed, 10 Feb 2021 15:15:38 +0800 Subject: [PATCH] update README.md --- DEVELOPMENT.md | 40 ++++++++++++++++++++++++++++++++++++++++ README.md | 34 +++++++++++++++++++--------------- docker-compose.yml | 43 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 15 deletions(-) create mode 100644 DEVELOPMENT.md create mode 100644 docker-compose.yml diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md new file mode 100644 index 0000000..955c7c5 --- /dev/null +++ b/DEVELOPMENT.md @@ -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秒,再次访问会持续叠加。 \ No newline at end of file diff --git a/README.md b/README.md index 0cb0122..6db88ab 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,6 @@ 机器人和网站由我长期维护,如果遇到问题可以提issue。 - - [使用说明](#使用说明) - [命令](#命令) - [截图](#截图) @@ -35,7 +34,6 @@ - [支持我](#支持我) - [License](#license) - # 使用说明 直接发送想要看的剧集名称就可以了,可选分享网页或者链接(ed2k和磁力链接)。 @@ -46,7 +44,6 @@ **由于译名的不同,建议输入部分译名,然后从列表中进行选择。比如说想看权力的游戏第四季,那么直接搜索"权力的游戏"就可以了。** - # 命令 ``` @@ -83,7 +80,24 @@ yyets_offline - 人人影视离线数据 ## 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 # 开发 -## 添加新的资源网站 - -欢迎各位开发提交新的资源网站!方法非常简单,重写 `BaseFansub`,按照约定的格式返回数据。 然后把类名字添加到 `FANSUB_ORDER` 就可以了!是不是很简单! - -## health check - -有时不知为何遇到了bot卡死,无任何反馈。😂~~这个时候需要client api了~~😂 - -好的,这个原因找到了,是因为有时爬虫会花费比较长的时间,然后pytelegrambotapi默认只有两个线程,那么后续的操作就会被阻塞住。 - -临时的解决办法是增加线程数量,长期的解决办法是使用celery分发任务。 +如何参与开发、具体API接口,可以 [参考这个文档](DEVELOPMENT.md) # Credits diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..b33a14f --- /dev/null +++ b/docker-compose.yml @@ -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 \ No newline at end of file