From 46205777eb7f5c6b8fbdfb418a5c1d1d1fd957fc Mon Sep 17 00:00:00 2001 From: Benny Date: Fri, 28 Jul 2023 19:21:28 +0200 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E5=9F=9F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release_apps.yaml | 2 +- DEVELOPMENT.md | 6 +- README.md | 10 +- requirements.txt | 2 +- scripts/install.sh | 2 +- setup.py | 2 +- yyets/__init__.py | 5 +- yyets/healthcheck/check.py | 23 +-- yyets/healthcheck/restart_service.py | 2 +- yyets/worker/public/js/search.js | 4 +- yyets/worker/workers-site/index.js | 2 +- yyetsbot/config.py | 4 +- yyetsbot/fansub.py | 4 +- yyetsbot/yyetsbot.py | 191 +++++++++++++------------ yyetsweb/README.md | 2 +- yyetsweb/common/utils.py | 2 +- yyetsweb/databases/comment.py | 4 +- yyetsweb/server.go | 6 +- yyetsweb/templates/email_template.html | 6 +- 19 files changed, 148 insertions(+), 131 deletions(-) diff --git a/.github/workflows/release_apps.yaml b/.github/workflows/release_apps.yaml index 51b256534..39155addd 100644 --- a/.github/workflows/release_apps.yaml +++ b/.github/workflows/release_apps.yaml @@ -49,7 +49,7 @@ jobs: GENERATE_SOURCEMAP: ${{ secrets.GENERATE_SOURCEMAP }} run: | bash scripts/pre_build.sh - echo "REACT_APP_TAURI=https://yyets.dmesg.app" >> YYeTsFE/.env + echo "REACT_APP_TAURI=https://yyets.click" >> YYeTsFE/.env - name: Install yarn run: | diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 347b5b50f..d443f45a4 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -157,9 +157,9 @@ python /path/to/YYeTsBot/yyetsbot/bot.py 如果无法访问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) +* [网站实时数据,MongoDB](https://yyets.click/data/yyets_mongo.gz) +* [MySQL](https://yyets.click/data/yyets_mysql.zip) +* [SQLite](https://yyets.click/data/yyets_sqlite.zip) # API 文档 diff --git a/README.md b/README.md index e2fbb1f06..54c6ddf86 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ * 人人影视bot,[戳我使用](https://t.me/yyets_bot) -* 人人影视分享站,[戳我使用](https://yyets.dmesg.app/) +* 人人影视分享站,[戳我使用](https://yyets.click/) 机器人和网站由我长期维护,如果遇到问题可以提issue。 @@ -95,7 +95,7 @@ yyets_offline - 人人影视离线数据 ## 在线 原生应用程序 -使用tauri封装的网页。内容等同于 `https://yyets.dmesg.app`,只不过是原生的App。使用方法如下 +使用tauri封装的网页。内容等同于 `https://yyets.click`,只不过是原生的App。使用方法如下 1. 请到 [GitHub Release](https://github.com/tgbot-collection/YYeTsBot/releases) ,找最新的 `YYeTsBot App` 2. windows下载msi,macos下载dmg或tar.gz,Linux下载AppImage或deb(Debian based) @@ -116,9 +116,9 @@ yyets_offline - 人人影视离线数据 ``` >>> from yyets import YYeTs >>> yy=YYeTs("逃避") -[2021-09-21 19:22:32 __init__.py:54 I] Fetching 逃避可耻却有用...https://yyets.dmesg.app/api/resource?id=34812 -[2021-09-21 19:22:33 __init__.py:54 I] Fetching 无法逃避...https://yyets.dmesg.app/api/resource?id=29540 -[2021-09-21 19:22:35 __init__.py:54 I] Fetching 逃避者...https://yyets.dmesg.app/api/resource?id=37089 +[2021-09-21 19:22:32 __init__.py:54 I] Fetching 逃避可耻却有用...https://yyets.click/api/resource?id=34812 +[2021-09-21 19:22:33 __init__.py:54 I] Fetching 无法逃避...https://yyets.click/api/resource?id=29540 +[2021-09-21 19:22:35 __init__.py:54 I] Fetching 逃避者...https://yyets.click/api/resource?id=37089 >>> yy.result [, , ] diff --git a/requirements.txt b/requirements.txt index 5daa87762..77ce258b2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,7 +8,7 @@ pymongo==4.4.1 tornado==6.3.2 captcha==0.4 passlib==1.7.4 -fakeredis==2.16.0 +fakeredis==2.17.0 filetype==1.2.0 requests[socks] tqdm==4.65.0 diff --git a/scripts/install.sh b/scripts/install.sh index cb8970809..0264207e9 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -31,7 +31,7 @@ function import_db() { docker-compose up -d mongo echo "[4/5] 正在下载并导入数据库" - curl -o /tmp/yyets_mongo.gz https://yyets.dmesg.app/dump/yyets_mongo.gz + curl -o /tmp/yyets_mongo.gz https://yyets.click/dump/yyets_mongo.gz file /tmp/yyets_mongo.gz docker cp /tmp/yyets_mongo.gz yyets_mongo_1:/tmp # special for windows diff --git a/setup.py b/setup.py index 0e257457d..7b8c49af9 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ # Package meta-data. NAME = "yyets" -DESCRIPTION = "https://yyets.dmesg.app/ wrapper" +DESCRIPTION = "https://yyets.click/ wrapper" URL = "https://github.com/tgbot-collection/YYeTsBot" EMAIL = "benny.think@gmail.com" AUTHOR = "BennyThink" diff --git a/yyets/__init__.py b/yyets/__init__.py index b9eb368cf..dc10429e6 100644 --- a/yyets/__init__.py +++ b/yyets/__init__.py @@ -7,10 +7,11 @@ __author__ = "Benny " -import requests import logging -API = "https://yyets.dmesg.app/api/resource?" +import requests + +API = "https://yyets.click/api/resource?" logging.basicConfig( level=logging.INFO, diff --git a/yyets/healthcheck/check.py b/yyets/healthcheck/check.py index 9b6a0ad34..a68ee7648 100644 --- a/yyets/healthcheck/check.py +++ b/yyets/healthcheck/check.py @@ -14,19 +14,20 @@ from apscheduler.schedulers.asyncio import AsyncIOScheduler from telethon import TelegramClient, events -logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(filename)s [%(levelname)s]: %(message)s') -logging.getLogger('apscheduler.executors.default').propagate = False +logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(filename)s [%(levelname)s]: %(message)s") +logging.getLogger("apscheduler.executors.default").propagate = False api_id = int(os.environ.get("API_ID") or "3") api_hash = os.environ.get("API_HASH") or "4" bot_name = os.environ.get("BOT_NAME") or "yyets_bot" bot_token = os.environ.get("BOT_token") or "123" -client = TelegramClient('client-hc', api_id, api_hash, - device_model="Benny-health-check", system_version="89", app_version="1.0.0") +client = TelegramClient( + "client-hc", api_id, api_hash, device_model="Benny-health-check", system_version="89", app_version="1.0.0" +) check_status = [] -@client.on(events.NewMessage(incoming=True, pattern='(?i).*欢迎使用,直接发送想要的剧集标题给我就可以了.*', from_users=bot_name)) +@client.on(events.NewMessage(incoming=True, pattern="(?i).*欢迎使用,直接发送想要的剧集标题给我就可以了.*", from_users=bot_name)) async def my_event_handler(event): logging.info("Okay it's working %s", event) check_status.clear() @@ -37,7 +38,7 @@ async def send_health_check(): # restart it await bot_warning() else: - await client.send_message(bot_name, '/start') + await client.send_message(bot_name, "/start") check_status.append("check") @@ -50,8 +51,8 @@ async def bot_warning(): async def website_check(): - home = "https://yyets.dmesg.app/" - top = "https://yyets.dmesg.app/api/top" + home = "https://yyets.click/" + top = "https://yyets.click/api/top" message = "" try: resp1 = requests.get(home) @@ -75,10 +76,10 @@ async def website_check(): logging.info("It's working home: %s bytes; top: %s bytes", len(resp1.content), len(resp2.content)) -if __name__ == '__main__': +if __name__ == "__main__": scheduler = AsyncIOScheduler() - scheduler.add_job(send_health_check, 'interval', seconds=300) - scheduler.add_job(website_check, 'interval', seconds=60) + scheduler.add_job(send_health_check, "interval", seconds=300) + scheduler.add_job(website_check, "interval", seconds=60) scheduler.start() client.start() client.run_until_disconnected() diff --git a/yyets/healthcheck/restart_service.py b/yyets/healthcheck/restart_service.py index 36d4c82f5..bc5055478 100644 --- a/yyets/healthcheck/restart_service.py +++ b/yyets/healthcheck/restart_service.py @@ -20,7 +20,7 @@ logger.addHandler(handler) logger.setLevel(logging.INFO) -URL = "https://yyets.dmesg.app/api/top" +URL = "https://yyets.click/api/top" # URL = "https://www.baidu.com/" req = requests.get(URL) diff --git a/yyets/worker/public/js/search.js b/yyets/worker/public/js/search.js index 5b5e7b8ce..0fc59e061 100644 --- a/yyets/worker/public/js/search.js +++ b/yyets/worker/public/js/search.js @@ -1,4 +1,4 @@ -const baseURL = "https://yyets.dmesg.app/"; +const baseURL = "https://yyets.click/"; const resourceURL = baseURL + "resource.html?id="; const indexURL = baseURL + "?id=index"; @@ -61,4 +61,4 @@ function reloadIndex() { console.error(xhr); }); -} \ No newline at end of file +} diff --git a/yyets/worker/workers-site/index.js b/yyets/worker/workers-site/index.js index 98f29ed3b..54b521024 100644 --- a/yyets/worker/workers-site/index.js +++ b/yyets/worker/workers-site/index.js @@ -43,7 +43,7 @@ async function handleEvent(event) { return new Response(value, { headers: { "content-type": "application/json;charset=UTF-8", - "Access-Control-Allow-Origin": "https://yyets.dmesg.app" + "Access-Control-Allow-Origin": "https://yyets.click" }, }) diff --git a/yyetsbot/config.py b/yyetsbot/config.py index fe41b9f6f..3f80c51ec 100644 --- a/yyetsbot/config.py +++ b/yyetsbot/config.py @@ -26,9 +26,9 @@ ZHUIXINFAN_SEARCH = "http://www.fanxinzhui.com/list?k={}" ZHUIXINFAN_RESOURCE = "http://www.fanxinzhui.com{}" # yyets website -DOMAIN = "https://yyets.dmesg.app/" +DOMAIN = "https://yyets.click/" WORKERS = f"{DOMAIN}resource?id=" + "{}" -# https://yyets.dmesg.app/discuss#6464d5b1b27861fa44647e7e +# https://yyets.click/discuss#6464d5b1b27861fa44647e7e DISCUSS = f"{DOMAIN}discuss#" + "{}" # new zmz NEWZMZ_SEARCH = "https://newzmz.com/subres/index/getres.html?keyword={}" diff --git a/yyetsbot/fansub.py b/yyetsbot/fansub.py index a6271b1c4..2fb7b1845 100644 --- a/yyetsbot/fansub.py +++ b/yyetsbot/fansub.py @@ -230,8 +230,8 @@ def search_preview(self, search_text: str) -> dict: def search_result(self, resource_url) -> dict: # yyets offline - # resource: https://yyets.dmesg.app/resource.html?id=37089 - # comment: 'https://yyets.dmesg.app/resource.html?id=233#61893ae51e9152e43fa24124' + # resource: https://yyets.click/resource.html?id=37089 + # comment: 'https://yyets.click/resource.html?id=233#61893ae51e9152e43fa24124' if "#" in resource_url: cid = resource_url.split("#")[1] data: dict = self.db["comment"].find_one( diff --git a/yyetsbot/yyetsbot.py b/yyetsbot/yyetsbot.py index 8df560b2c..1db3bfef0 100644 --- a/yyetsbot/yyetsbot.py +++ b/yyetsbot/yyetsbot.py @@ -2,7 +2,7 @@ # YYeTsBot - bot.py # 2019/8/15 18:27 -__author__ = 'Benny ' +__author__ = "Benny " import io import json @@ -21,43 +21,50 @@ from tgbot_ping import get_runtime import fansub -from config import (DOMAIN, FANSUB_ORDER, MAINTAINER, PROXY, REPORT, TOKEN, - YYETS_SEARCH_URL) -from utils import (get_error_dump, redis_announcement, reset_request, - save_error_dump, show_usage, today_request) +from config import DOMAIN, FANSUB_ORDER, MAINTAINER, PROXY, REPORT, TOKEN, YYETS_SEARCH_URL +from utils import get_error_dump, redis_announcement, reset_request, save_error_dump, show_usage, today_request -logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(filename)s [%(levelname)s]: %(message)s') +logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(filename)s [%(levelname)s]: %(message)s") if PROXY: - apihelper.proxy = {'https': PROXY} + apihelper.proxy = {"https": PROXY} bot = telebot.TeleBot(TOKEN, num_threads=100) angry_count = 0 -@bot.message_handler(commands=['start'], chat_types=['private']) +@bot.message_handler(commands=["start"], chat_types=["private"]) def send_welcome(message): - bot.send_chat_action(message.chat.id, 'typing') - bot.send_message(message.chat.id, '欢迎使用,直接发送想要的剧集标题给我就可以了,不需要其他关键字,我会帮你搜索。\n\n' - '仅私聊使用,群组功能已禁用。' - f'目前搜索优先级 {FANSUB_ORDER}\n ' - f'另外,可以尝试使用一下 https://yyets.dmesg.app/ 哦!', - parse_mode='html', disable_web_page_preview=True) - - -@bot.message_handler(commands=['help'], chat_types=['private']) + bot.send_chat_action(message.chat.id, "typing") + bot.send_message( + message.chat.id, + "欢迎使用,直接发送想要的剧集标题给我就可以了,不需要其他关键字,我会帮你搜索。\n\n" + "仅私聊使用,群组功能已禁用。" + f"目前搜索优先级 {FANSUB_ORDER}\n " + f"另外,可以尝试使用一下 https://yyets.click/ 哦!", + parse_mode="html", + disable_web_page_preview=True, + ) + + +@bot.message_handler(commands=["help"], chat_types=["private"]) def send_help(message): - bot.send_chat_action(message.chat.id, 'typing') - bot.send_message(message.chat.id, '''机器人无法使用或者报错?从 /ping 里可以看到运行状态以及最新信息。 + bot.send_chat_action(message.chat.id, "typing") + bot.send_message( + message.chat.id, + """机器人无法使用或者报错?从 /ping 里可以看到运行状态以及最新信息。 同时,你可以使用如下方式寻求使用帮助和报告错误:\n 1. @BennyThink 2. Github issues - 3. Telegram Channel''', parse_mode='html', disable_web_page_preview=True) + 3. Telegram Channel""", + parse_mode="html", + disable_web_page_preview=True, + ) -@bot.message_handler(commands=['ping'], chat_types=['private']) +@bot.message_handler(commands=["ping"], chat_types=["private"]) def send_ping(message): logging.info("Pong!") - bot.send_chat_action(message.chat.id, 'typing') + bot.send_chat_action(message.chat.id, "typing") info = get_runtime("botsrunner_yyets_1") @@ -67,11 +74,10 @@ def send_ping(message): announcement = redis_announcement() or "" if announcement: announcement = f"\n\n*公告:{announcement}*\n\n" - bot.send_message(message.chat.id, f"{info}\n\n{usage}\n{announcement}", - parse_mode='markdown') + bot.send_message(message.chat.id, f"{info}\n\n{usage}\n{announcement}", parse_mode="markdown") -@bot.message_handler(commands=['settings'], chat_types=['private']) +@bot.message_handler(commands=["settings"], chat_types=["private"]) def settings(message): is_admin = str(message.chat.id) == MAINTAINER # 普通用户只可以查看,不可以设置。 @@ -101,39 +107,43 @@ def settings(message): @bot.callback_query_handler(func=lambda call: re.findall(r"announcement(\S*)", call.data)) def delete_announcement(call): - bot.send_chat_action(call.message.chat.id, 'typing') + bot.send_chat_action(call.message.chat.id, "typing") redis_announcement(op="del") - bot.edit_message_text(f"目前公告:\n\n {redis_announcement() or '暂无公告'}", - call.message.chat.id, - call.message.message_id) + bot.edit_message_text(f"目前公告:\n\n {redis_announcement() or '暂无公告'}", call.message.chat.id, call.message.message_id) -@bot.message_handler(commands=['credits'], chat_types=['private']) +@bot.message_handler(commands=["credits"], chat_types=["private"]) def send_credits(message): - bot.send_chat_action(message.chat.id, 'typing') - bot.send_message(message.chat.id, '''感谢字幕组的无私奉献!本机器人资源来源:\n + bot.send_chat_action(message.chat.id, "typing") + bot.send_message( + message.chat.id, + """感谢字幕组的无私奉献!本机器人资源来源:\n 人人影视 磁力下载站 追新番 FIX 字幕侠 - ''', parse_mode='html', disable_web_page_preview=True) + """, + parse_mode="html", + disable_web_page_preview=True, + ) for sub_name in dir(fansub): if sub_name.endswith("_offline") or sub_name.endswith("_online"): - @bot.message_handler(commands=[sub_name], chat_types=['private']) + + @bot.message_handler(commands=[sub_name], chat_types=["private"]) def varies_fansub(message): - bot.send_chat_action(message.chat.id, 'typing') + bot.send_chat_action(message.chat.id, "typing") # /YYeTsOffline 逃避可耻 /YYeTsOffline tv_name: str = re.findall(r"/.*line\s*(\S*)", message.text)[0] class_name: str = re.findall(r"/(.*line)", message.text)[0] class_ = getattr(fansub, class_name) if not tv_name: - bot.send_message(message.chat.id, - f"{class_.__name__}: 请附加你要搜索的剧集名称,如 `/{class_name} 逃避可耻`", - parse_mode='markdown') + bot.send_message( + message.chat.id, f"{class_.__name__}: 请附加你要搜索的剧集名称,如 `/{class_name} 逃避可耻`", parse_mode="markdown" + ) return else: @@ -154,16 +164,16 @@ def download_to_io(photo): def send_my_response(message): - bot.send_chat_action(message.chat.id, 'record_video_note') + bot.send_chat_action(message.chat.id, "record_video_note") # I may also send picture photo = message.photo uid = message.reply_to_message.caption text = f"主人说:{message.text or message.caption or '啥也没说😯'}" if photo: - bot.send_chat_action(message.chat.id, 'typing') + bot.send_chat_action(message.chat.id, "typing") logging.info("Photo received from maintainer") mem = download_to_io(photo) - mem.name = f'{uid}.jpg' + mem.name = f"{uid}.jpg" r = bot.send_photo(uid, mem.getvalue(), caption=text) else: r = bot.send_message(uid, text) @@ -176,7 +186,7 @@ def send_my_response(message): logging.info("Forward has been deleted.") -@bot.message_handler(content_types=["photo", "text"], chat_types=['private']) +@bot.message_handler(content_types=["photo", "text"], chat_types=["private"]) def send_search(message): if str(message.chat.id) == os.getenv("SPECIAL_ID") and message.text == "❤️": bot.reply_to(message, "❤️") @@ -187,7 +197,7 @@ def send_search(message): base_send_search(message) -@bot.message_handler(content_types=["document"], chat_types=['private']) +@bot.message_handler(content_types=["document"], chat_types=["private"]) def ban_user(message): if str(message.chat.id) != MAINTAINER: return @@ -220,20 +230,24 @@ def base_send_search(message, instance=None): fan = fansub.FansubEntrance() else: fan = instance - bot.send_chat_action(message.chat.id, 'typing') + bot.send_chat_action(message.chat.id, "typing") today_request("total") - if message.reply_to_message and message.reply_to_message.document and \ - message.reply_to_message.document.file_name.startswith("error") and str(message.chat.id) == MAINTAINER: + if ( + message.reply_to_message + and message.reply_to_message.document + and message.reply_to_message.document.file_name.startswith("error") + and str(message.chat.id) == MAINTAINER + ): today_request("answer") send_my_response(message) return name = zhconv.convert(message.text, "zh-hans") - logging.info('Receiving message: %s from user %s(%s)', name, message.chat.username, message.chat.id) + logging.info("Receiving message: %s from user %s(%s)", name, message.chat.username, message.chat.id) if name is None: today_request("invalid") - with open('warning.webp', 'rb') as sti: + with open("warning.webp", "rb") as sti: bot.send_message(message.chat.id, "不要调戏我!我会报警的") bot.send_sticker(message.chat.id, sti) return @@ -256,25 +270,34 @@ def base_send_search(message, instance=None): if result: logging.info("🎉 Resource match.") today_request("success") - bot.reply_to(message, f"{warning}呐🌹,一共%d个结果,选一个呀!来源:%s" % (len(result), source), - reply_markup=markup, parse_mode="markdown") + bot.reply_to( + message, + f"{warning}呐🌹,一共%d个结果,选一个呀!来源:%s" % (len(result), source), + reply_markup=markup, + parse_mode="markdown", + ) else: logging.warning("⚠️️ Resource not found") today_request("fail") - bot.send_chat_action(message.chat.id, 'typing') + bot.send_chat_action(message.chat.id, "typing") encoded = quote_plus(name) - bot.reply_to(message, f"没有找到你想要的信息,是不是你打了错别字,或者搜索了一些国产影视剧。🤪\n" - f"还是你想调戏我哦🙅‍ 本小可爱拒绝被调戏️\n\n" - "⚠️如果确定要我背锅,那么请使用 /help 来提交错误", disable_web_page_preview=True) + bot.reply_to( + message, + f"没有找到你想要的信息,是不是你打了错别字,或者搜索了一些国产影视剧。🤪\n" f"还是你想调戏我哦🙅‍ 本小可爱拒绝被调戏️\n\n" "⚠️如果确定要我背锅,那么请使用 /help 来提交错误", + disable_web_page_preview=True, + ) if REPORT: btn = types.InlineKeyboardButton("快来修复啦", callback_data="fix") markup.add(btn) - bot.send_chat_action(message.chat.id, 'upload_document') - bot.send_message(message.chat.id, f"《{name}》😭\n大部分情况下机器人是好用的,不要怀疑我的代码质量.\n" - f"如果你真的确定是机器人出问题了,那么点下面的按钮叫 @BennyThink 来修!\n" - f"⚠️报错前请三思,不要乱点,确保这锅应该甩给我。否则我会很生气的😡小心被拉黑哦", - reply_markup=markup) + bot.send_chat_action(message.chat.id, "upload_document") + bot.send_message( + message.chat.id, + f"《{name}》😭\n大部分情况下机器人是好用的,不要怀疑我的代码质量.\n" + f"如果你真的确定是机器人出问题了,那么点下面的按钮叫 @BennyThink 来修!\n" + f"⚠️报错前请三思,不要乱点,确保这锅应该甩给我。否则我会很生气的😡小心被拉黑哦", + reply_markup=markup, + ) content = f""" 报告者:{message.chat.first_name}{message.chat.last_name or ""}@{message.chat.username or ""}({message.chat.id}) 问题发生时间:{time.strftime("%Y-%m-%data %H:%M:%S", time.localtime(message.date))} 请求内容:{name} @@ -297,15 +320,15 @@ def magic_recycle(fan, call, url_hash): @bot.callback_query_handler(func=lambda call: re.findall(r"choose(\S*)", call.data)) def choose_link(call): fan = fansub.FansubEntrance() - bot.send_chat_action(call.message.chat.id, 'typing') + bot.send_chat_action(call.message.chat.id, "typing") # call.data is url_hash, with sha1, http://www.rrys2020.com/resource/36588 resource_url_hash = re.findall(r"choose(\S*)", call.data)[0] if magic_recycle(fan, call, resource_url_hash): return result = fan.search_result(resource_url_hash) - with tempfile.NamedTemporaryFile(mode='wb+', prefix=result["cnname"].replace("/", " "), suffix=".txt") as tmp: - bytes_data = json.dumps(result["all"], ensure_ascii=False, indent=4).encode('u8') + with tempfile.NamedTemporaryFile(mode="wb+", prefix=result["cnname"].replace("/", " "), suffix=".txt") as tmp: + bytes_data = json.dumps(result["all"], ensure_ascii=False, indent=4).encode("u8") tmp.write(bytes_data) tmp.flush() with open(tmp.name, "rb") as f: @@ -313,31 +336,25 @@ def choose_link(call): caption = "{}\n\n{}".format(result["cnname"], result["share"]) else: caption = result["all"].replace(r"\n", " ") - bot.send_chat_action(call.message.chat.id, 'upload_document') + bot.send_chat_action(call.message.chat.id, "upload_document") bot.send_document(call.message.chat.id, f, caption=caption) @bot.callback_query_handler(func=lambda call: re.findall(r"approve", call.data)) def approve_spam(call): obj_id = re.findall(r"approve(\S*)", call.data)[0] - data = { - "obj_id": obj_id, - "token": TOKEN - } + data = {"obj_id": obj_id, "token": TOKEN} requests.post(f"{DOMAIN}api/admin/spam", json=data) - bot.answer_callback_query(call.id, 'Approved') + bot.answer_callback_query(call.id, "Approved") bot.delete_message(call.message.chat.id, call.message.message_id) @bot.callback_query_handler(func=lambda call: re.findall(r"ban", call.data)) def ban_spam(call): obj_id = re.findall(r"ban(\S*)", call.data)[0] - data = { - "obj_id": obj_id, - "token": TOKEN - } + data = {"obj_id": obj_id, "token": TOKEN} requests.delete(f"{DOMAIN}api/admin/spam", json=data) - bot.answer_callback_query(call.id, 'Banned') + bot.answer_callback_query(call.id, "Banned") bot.delete_message(call.message.chat.id, call.message.message_id) @@ -346,7 +363,7 @@ def send_unwelcome(call): # this will come from me only logging.warning("I'm so unhappy!") message = call.message - bot.send_chat_action(message.chat.id, 'typing') + bot.send_chat_action(message.chat.id, "typing") # angry_count = angry_count + 1 global angry_count @@ -354,23 +371,21 @@ def send_unwelcome(call): uid = re.findall(r"unwelcome(\d*)", call.data)[0] if uid: - text = "人人影视主要提供欧美日韩等海外资源,你的这个真没有🤷‍。\n" \ - "麻烦你先从自己身上找原因,我又不是你的专属客服。\n" \ - "不要再报告这种错误了🙄️,面倒な。😡" + text = "人人影视主要提供欧美日韩等海外资源,你的这个真没有🤷‍。\n" "麻烦你先从自己身上找原因,我又不是你的专属客服。\n" "不要再报告这种错误了🙄️,面倒な。😡" bot.send_message(uid, text, parse_mode="html") bot.reply_to(message, f"有生之日 生气次数:{angry_count}") -@bot.callback_query_handler(func=lambda call: call.data == 'fix') +@bot.callback_query_handler(func=lambda call: call.data == "fix") def report_error(call): logging.error("Reporting error to maintainer.") - bot.send_chat_action(call.message.chat.id, 'typing') + bot.send_chat_action(call.message.chat.id, "typing") error_content = get_error_dump(call.message.chat.id) if error_content == "": - bot.answer_callback_query(call.id, '多次汇报重复的问题并不会加快处理速度。', show_alert=True) + bot.answer_callback_query(call.id, "多次汇报重复的问题并不会加快处理速度。", show_alert=True) return - text = f'人人影视机器人似乎出现了一些问题🤔🤔🤔……{error_content[0:300]}' + text = f"人人影视机器人似乎出现了一些问题🤔🤔🤔……{error_content[0:300]}" markup = types.InlineKeyboardMarkup() btn = types.InlineKeyboardButton("unwelcome", callback_data=f"unwelcome{call.message.chat.id}") @@ -378,20 +393,20 @@ def report_error(call): bot.send_message(MAINTAINER, text, disable_web_page_preview=True, reply_markup=markup) - with tempfile.NamedTemporaryFile(mode='wb+', prefix=f"error_{call.message.chat.id}_", suffix=".txt") as tmp: - tmp.write(error_content.encode('u8')) + with tempfile.NamedTemporaryFile(mode="wb+", prefix=f"error_{call.message.chat.id}_", suffix=".txt") as tmp: + tmp.write(error_content.encode("u8")) tmp.flush() with open(tmp.name, "rb") as f: - bot.send_chat_action(call.message.chat.id, 'upload_document') + bot.send_chat_action(call.message.chat.id, "upload_document") bot.send_document(MAINTAINER, f, caption=str(call.message.chat.id)) - bot.answer_callback_query(call.id, 'Debug信息已经发送给维护者,请耐心等待回复~', show_alert=True) + bot.answer_callback_query(call.id, "Debug信息已经发送给维护者,请耐心等待回复~", show_alert=True) -if __name__ == '__main__': - logging.info('YYeTs bot is running...') +if __name__ == "__main__": + logging.info("YYeTs bot is running...") scheduler = BackgroundScheduler() - scheduler.add_job(reset_request, 'cron', hour=0, minute=0) + scheduler.add_job(reset_request, "cron", hour=0, minute=0) scheduler.start() bot.polling() diff --git a/yyetsweb/README.md b/yyetsweb/README.md index b0b77d953..741d7f9af 100644 --- a/yyetsweb/README.md +++ b/yyetsweb/README.md @@ -10,7 +10,7 @@ # 导入数据 -从 [这里](https://yyets.dmesg.app/database) 下载mongodb数据,然后导入 +从 [这里](https://yyets.click/database) 下载mongodb数据,然后导入 ```shell mongorestore --gzip --archive=yyets_mongo.gz --nsFrom "share.*" --nsTo "zimuzu.*" diff --git a/yyetsweb/common/utils.py b/yyetsweb/common/utils.py index e67495ecb..0a1ae54d4 100644 --- a/yyetsweb/common/utils.py +++ b/yyetsweb/common/utils.py @@ -98,7 +98,7 @@ def check_spam(ip, ua, author, content) -> int: return 0 if token: with contextlib.suppress(Exception): - akismet = Akismet(token, blog="https://yyets.dmesg.app/") + akismet = Akismet(token, blog="https://yyets.click/") return akismet.check( ip, diff --git a/yyetsweb/databases/comment.py b/yyetsweb/databases/comment.py index 03af49f8a..fcbb99bbe 100644 --- a/yyetsweb/databases/comment.py +++ b/yyetsweb/databases/comment.py @@ -222,9 +222,9 @@ def add_comment( # send email parent_comment = self.db["comment"].find_one({"_id": ObjectId(parent_comment_id)}) if resource_id == 233: - link = f"https://yyets.dmesg.app/discuss#{parent_comment_id}" + link = f"https://yyets.click/discuss#{parent_comment_id}" else: - link = f"https://yyets.dmesg.app/resource?id={resource_id}#{parent_comment_id}" + link = f"https://yyets.click/resource?id={resource_id}#{parent_comment_id}" user_info = self.db["users"].find_one({"username": parent_comment["username"], "email.verified": True}) if user_info: subject = "[人人影视下载分享站] 你的评论有了新的回复" diff --git a/yyetsweb/server.go b/yyetsweb/server.go index 685afe609..cf1cfc7a2 100644 --- a/yyetsweb/server.go +++ b/yyetsweb/server.go @@ -129,7 +129,7 @@ func announcement(c *gin.Context) { "data": []Announcement{{ Username: "Benny", Date: buildTime, - Content: "YYeTs一键运行包 https://yyets.dmesg.app/。", + Content: "YYeTs一键运行包 https://yyets.click/。", }}, }) } @@ -156,7 +156,7 @@ func douban(c *gin.Context) { if doubanInfo == "" { var image Image log.Warnf("Douban resource not found, requesting to main site ...") - resp, _ := http.Get("https://yyets.dmesg.app" + c.Request.URL.String()) + resp, _ := http.Get("https://yyets.click" + c.Request.URL.String()) body, _ := io.ReadAll(resp.Body) doubanInfo = string(body) json.Unmarshal(body, &image) @@ -216,7 +216,7 @@ func downloadDB() { } log.Infoln("Downloading database file...") - var downloadUrl = "https://yyets.dmesg.app/dump/yyets_sqlite.zip" + var downloadUrl = "https://yyets.click/dump/yyets_sqlite.zip" resp, _ := http.Get(downloadUrl) file, _ := os.Create("yyets_sqlite.zip") _, _ = io.Copy(file, resp.Body) diff --git a/yyetsweb/templates/email_template.html b/yyetsweb/templates/email_template.html index 9673bdcf5..765e34e06 100644 --- a/yyetsweb/templates/email_template.html +++ b/yyetsweb/templates/email_template.html @@ -100,7 +100,7 @@ + style="color: transparent; display: none; height: 0; max-height: 0; max-width: 0; opacity: 0; overflow: hidden; mso-hide: all; visibility: hidden; width: 0;">人人影视分享站 https://yyets.click/ @@ -153,13 +153,13 @@