feat: 添加机器编号支持,更新数据库记录状态时传递机器ID,并优化IP获取逻辑
This commit is contained in:
parent
8be9db943f
commit
b9c837ff11
7
DB.py
7
DB.py
@ -397,7 +397,7 @@ class DBVidcon:
|
||||
@mysql_retry()
|
||||
def update_fight_record_status(self, id: int, report_id: int, new_status: int, errinfo: str = "",
|
||||
report_time: int = 0,
|
||||
subsequent_status: int = 1, ):
|
||||
subsequent_status: int = 1, mid=0):
|
||||
sql = """
|
||||
UPDATE
|
||||
sh_dm_fight_records
|
||||
@ -407,12 +407,13 @@ class DBVidcon:
|
||||
updata_time = %s,
|
||||
report_id = %s,
|
||||
subsequent_status = %s,
|
||||
report_time= %s
|
||||
report_time= %s,
|
||||
mid = %s
|
||||
WHERE
|
||||
id = %s
|
||||
"""
|
||||
now_ts = int(time.time())
|
||||
self.cursor.execute(sql, (new_status, errinfo, now_ts, report_id, subsequent_status, report_time, id))
|
||||
self.cursor.execute(sql, (new_status, errinfo, now_ts, report_id, subsequent_status, report_time, mid, id))
|
||||
|
||||
@mysql_retry()
|
||||
def update_subsequent_status_by_id(self, ssid: int, new_status: int, info: str = ""):
|
||||
|
38
report.py
38
report.py
@ -1,14 +1,14 @@
|
||||
import argparse
|
||||
import time
|
||||
from DB import DBVidcon, DBSA
|
||||
from dump_keyword_title import parse_args
|
||||
from report_video import DailymotionClient
|
||||
import logger
|
||||
|
||||
from logger import logger
|
||||
import requests
|
||||
|
||||
MACHINE_ID = None
|
||||
IsSubsequent = False
|
||||
|
||||
|
||||
def parse_args() -> argparse.Namespace:
|
||||
global MACHINE_ID, IsSubsequent
|
||||
|
||||
@ -40,13 +40,25 @@ def parse_args() -> argparse.Namespace:
|
||||
raise ValueError("请指定机器编号")
|
||||
return args
|
||||
|
||||
|
||||
parse_args()
|
||||
|
||||
|
||||
def get_public_ip():
|
||||
try:
|
||||
response = requests.get("https://api.ipify.org?format=json", timeout=5)
|
||||
return response.json().get("ip")
|
||||
except requests.RequestException as e:
|
||||
print("获取失败:", e)
|
||||
return None
|
||||
|
||||
|
||||
ip = get_public_ip()
|
||||
logger.info(f"当前机器IP: {ip}, 机器编号: {MACHINE_ID}, 是否后续处理: {IsSubsequent}")
|
||||
db = DBVidcon()
|
||||
|
||||
account = db.get_account_info(MACHINE_ID)
|
||||
|
||||
|
||||
d = DailymotionClient(email=account['account'], password=account['password'])
|
||||
|
||||
k = {
|
||||
@ -58,10 +70,9 @@ k = {
|
||||
last_main_run = 0
|
||||
last_subsequent_run = 0
|
||||
|
||||
MAIN_INTERVAL = 60 * 5 # 每 5 分钟执行一次
|
||||
MAIN_INTERVAL = 60 * 5 # 每 5 分钟执行一次
|
||||
SUBSEQUENT_INTERVAL = 60 * 60 # 每 60 分钟执行一次
|
||||
|
||||
|
||||
while True:
|
||||
now = int(time.time())
|
||||
|
||||
@ -70,38 +81,37 @@ while True:
|
||||
last_main_run = now
|
||||
lis = db.item_report()
|
||||
if len(lis) > 0:
|
||||
for _,li in lis:
|
||||
for _, li in lis:
|
||||
print(li)
|
||||
logger.logger.info(f"name:{li['name_title']},link:{li['link']} ")
|
||||
try:
|
||||
info, report_id, status, report_ts = d.process_ticket(li['name_title'], li['link'])
|
||||
subsequent_status = k.get(status, 1)
|
||||
db.update_fight_record_status(
|
||||
li['id'], report_id, 2, f"http://123.58.197.91:5000/image/{info}",
|
||||
report_ts, subsequent_status
|
||||
li['id'], report_id, 2, f"http://{ip}:5000/image/{info}",
|
||||
report_ts, subsequent_status, MACHINE_ID
|
||||
)
|
||||
db.flush()
|
||||
except Exception as e:
|
||||
logger.logger.error(f"ID:{li['id']}, e:{e}")
|
||||
db.update_fight_record_status(li['id'], 0, 3, str(e))
|
||||
db.update_fight_record_status(li['id'], 0, 3, str(e), mid=MACHINE_ID)
|
||||
time.sleep(60) # 出错延迟
|
||||
|
||||
|
||||
if now - last_subsequent_run >= SUBSEQUENT_INTERVAL and IsSubsequent:
|
||||
last_subsequent_run = now
|
||||
subsequent_list = db.get_subsequent_report_video()
|
||||
if len(subsequent_list) > 0:
|
||||
for li in subsequent_list:
|
||||
for li in subsequent_list:
|
||||
rs_id = li['id']
|
||||
r_id = li['report_id']
|
||||
logger.logger.info(f"subsequent id:{rs_id},report_id:{r_id} ")
|
||||
# try:
|
||||
subsequent_status, info = d.report_follow_up(r_id)
|
||||
db.update_subsequent_status_by_id(
|
||||
rs_id, subsequent_status, f"http://123.58.197.91:5000/image/{info}"
|
||||
rs_id, subsequent_status, f"http://{ip}:5000/image/{info}"
|
||||
)
|
||||
# except Exception as e:
|
||||
# logger.logger.error(f"ID:{rs_id}, e:{e}")
|
||||
# db.update_subsequent_status_by_id(rs_id, 1, str(e))
|
||||
time.sleep(5) # 避免频繁请求
|
||||
time.sleep(5)
|
||||
time.sleep(5)
|
||||
|
Loading…
x
Reference in New Issue
Block a user