From 37136d2410f99a6d772908acf938a679ad0629c1 Mon Sep 17 00:00:00 2001 From: zayac Date: Fri, 5 Jul 2024 23:45:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86=E4=B8=80=E7=B3=BB?= =?UTF-8?q?=E5=88=97=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/change_url/Dockerfile | 11 ++++++---- src/change_url/app.py | 2 +- src/change_url/change_url.py | 4 ++-- src/change_url/change_url_bot.py | 21 ------------------ src/change_url/start.sh | 11 ++++++++++ src/core/Dockerfile | 1 + src/core/login.py | 8 +++---- src/core/定时任务.py | 37 +++++++++++++++++--------------- src/entity/database.py | 4 ++-- 9 files changed, 48 insertions(+), 51 deletions(-) create mode 100644 src/change_url/start.sh diff --git a/src/change_url/Dockerfile b/src/change_url/Dockerfile index 183a127..5300816 100644 --- a/src/change_url/Dockerfile +++ b/src/change_url/Dockerfile @@ -1,6 +1,8 @@ # 使用官方 Python 3.11 镜像 FROM python:3.11-slim +# 安装 pgrep 所需的 procps 包 +RUN apt-get update && apt-get install -y procps && rm -rf /var/lib/apt/lists/* # 设置工作目录 WORKDIR /app @@ -9,13 +11,14 @@ WORKDIR /app COPY . /app COPY requirements.txt /app/requirements.txt - # 安装 Python 依赖 RUN pip install -r requirements.txt +RUN chmod +x /app/start.sh + # 设置容器启动时执行的命令 -CMD ["python", "change_url_bot.py"] +CMD ["/bin/sh", "/app/start.sh"] # 设置健康检查 -HEALTHCHECK --interval=30s --timeout=30s --retries=3 \ - CMD pgrep -f change_url_bot.py || exit 1 \ No newline at end of file +HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ + CMD pgrep -f change_url_bot.py || exit 1 diff --git a/src/change_url/app.py b/src/change_url/app.py index 804a378..468cc02 100644 --- a/src/change_url/app.py +++ b/src/change_url/app.py @@ -5,7 +5,7 @@ from fastapi.staticfiles import StaticFiles from fastapi.templating import Jinja2Templates from pydantic import BaseModel, constr -from src.change_url.change_url import change_url +from change_url import change_url app = FastAPI() diff --git a/src/change_url/change_url.py b/src/change_url/change_url.py index aa2a1ab..9c7223e 100644 --- a/src/change_url/change_url.py +++ b/src/change_url/change_url.py @@ -5,7 +5,7 @@ import portalocker from loguru import logger try: - engine = create_engine("mysql+mysqlconnector://ky_tools:HJQY35seXen8patn@1panel.stupidpz.com:3306/ky_tools") + engine = create_engine("mysql+mysqlconnector://zayac_admin:2hMtBRzZrDAkRynX@45.89.233.228:3306/zayac_admin") connection = engine.connect() logger.debug('链接成功') except: @@ -146,7 +146,7 @@ def update_agent_url(url_list, url_type): if "代理web" in context.replace(" ", "").lower(): try: with engine.connect() as connection: - update_stmt = sql_text("UPDATE ky_tools.ky_account SET url = :url WHERE type = :url_type") + update_stmt = sql_text("UPDATE sys_platform SET url = :url WHERE nickname = :url_type") connection.execute(update_stmt, {"url": url, "url_type": url_type}) connection.commit() logger.debug(f"{url_type}后台链接更新成功") diff --git a/src/change_url/change_url_bot.py b/src/change_url/change_url_bot.py index b8ffb74..3d51b06 100644 --- a/src/change_url/change_url_bot.py +++ b/src/change_url/change_url_bot.py @@ -17,27 +17,6 @@ hth = ['YYZBH②拒绝私聊', '3-信息同步频道'] @bot.message_handler(func=lambda message: message.forward_date is not None) def handle_forwarded_message(message): - # if message.forward_from: - # # 直接获取转发来源用户信息 - # user = message.forward_from - # user_id = user.id - # user_first_name = user.first_name - # user_username = user.username if user.username else "No username" - # - # response = f"消息转发自 ID: {user_id}, 名字: {user_first_name}, 用户名: {user_username}" - # logger.debug(response) - # elif message.forward_from_chat: - # # 获取转发来源频道信息 - # channel = message.forward_from_chat - # channel_id = channel.id - # channel_title = channel.title - # - # response = f"消息转发自频道 ID: {channel_id}, 名称: {channel_title}" - # logger.debug(response) - # else: - # # 处理无法识别的转发 - # user_info = message.forward_origin - # response = f"这是一条转发的消息。{user_info}" try: res = requests.post(API_URL, json={'text': message.text}) if res.status_code == 200: diff --git a/src/change_url/start.sh b/src/change_url/start.sh new file mode 100644 index 0000000..f5b5c86 --- /dev/null +++ b/src/change_url/start.sh @@ -0,0 +1,11 @@ + +#!/bin/sh + +# 启动 change_url_bot.py 脚本 +python /app/change_url_bot.py & + +# 启动 FastAPI 应用 +uvicorn app:app --host 127.0.0.1 --port 8080 & + +# 等待所有后台进程结束 +wait diff --git a/src/core/Dockerfile b/src/core/Dockerfile index eae6576..2df51d2 100644 --- a/src/core/Dockerfile +++ b/src/core/Dockerfile @@ -26,6 +26,7 @@ ENV RABBITMQ_PASSWORD=xiaomi@123 ENV RABBITMQ_HOST=mq.stupidpz.com ENV RABBITMQ_PORT=5672 ENV TELEGRAM_BOT_TOKEN= +ENV TZ=Asia/Shanghai # 配置健康检查 HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 CMD ["sh", "/app/health_check.sh"] diff --git a/src/core/login.py b/src/core/login.py index 5c4e98a..1f39f03 100644 --- a/src/core/login.py +++ b/src/core/login.py @@ -35,10 +35,10 @@ def perform_login(playwright, account: Account, request_container: dict, respons # 填充基本的元素 fill_form_common(page, account) - if account.type == AccountType.jy: - handle_jy_captcha(page, account) - else: - handle_generic_account(page, response_container) + # if account.type == AccountType.jy: + # handle_jy_captcha(page, account) + # else: + handle_generic_account(page, response_container) # 处理 'banner' 请求并获取响应头 handle_banner_request(page, request_container) diff --git a/src/core/定时任务.py b/src/core/定时任务.py index c6ab099..e1f463c 100644 --- a/src/core/定时任务.py +++ b/src/core/定时任务.py @@ -39,20 +39,23 @@ def query_net_win(user, date): if __name__ == '__main__': - logger.info('Starting scheduled tasks') - - # Get credentials from environment variables - username = os.getenv('MY_APP_USERNAME', 'default_username') - password = os.getenv('MY_APP_PASSWORD', 'default_password') - - times = ['10:50', '14:40', '17:40', '20:40', '21:40', '23:59'] - - for time_str in times: - schedule.every().day.at(time_str).do(execute_task, job_count, username, password) - schedule.every().day.at(time_str).do(execute_task, query_net_win, username, password) - - schedule.every().day.at('23:59').do(execute_task, query_failed_deposit, username, password) - - while True: - schedule.run_pending() - time.sleep(10) \ No newline at end of file + # logger.info('Starting scheduled tasks') + # + # # Get credentials from environment variables + # username = os.getenv('MY_APP_USERNAME', 'default_username') + # password = os.getenv('MY_APP_PASSWORD', 'default_password') + # + # times = ['10:50', '14:40', '17:40', '20:40', '21:40', '23:59'] + # + # for time_str in times: + # schedule.every().day.at(time_str).do(execute_task, job_count, username, password) + # schedule.every().day.at(time_str).do(execute_task, query_net_win, username, password) + # + # schedule.every().day.at('23:59').do(execute_task, query_failed_deposit, username, password) + # + # while True: + # schedule.run_pending() + # time.sleep(10) + username = os.getenv('MY_APP_USERNAME', 'zayac') + password = os.getenv('MY_APP_PASSWORD', '123456') + execute_task(query_failed_deposit, username, password) diff --git a/src/entity/database.py b/src/entity/database.py index 8fd64b8..e1f5276 100644 --- a/src/entity/database.py +++ b/src/entity/database.py @@ -59,5 +59,5 @@ class Database: session.commit() -# db = Database('mysql+mysqlconnector://ky_tools:HJQY35seXen8patn@1panel.stupidpz.com:3306/ky_tools') -db = Database('mysql+mysqlconnector://www_luffy_tool:GrCDtSynbK5MHb48@110.40.20.148:3306/www_luffy_tool') +db = Database('mysql+mysqlconnector://ky_tools:HJQY35seXen8patn@1panel.stupidpz.com:3306/ky_tools') +#db = Database('mysql+mysqlconnector://www_luffy_tool:GrCDtSynbK5MHb48@110.40.20.148:3306/www_luffy_tool')