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()
|
@mysql_retry()
|
||||||
def update_fight_record_status(self, id: int, report_id: int, new_status: int, errinfo: str = "",
|
def update_fight_record_status(self, id: int, report_id: int, new_status: int, errinfo: str = "",
|
||||||
report_time: int = 0,
|
report_time: int = 0,
|
||||||
subsequent_status: int = 1, ):
|
subsequent_status: int = 1, mid=0):
|
||||||
sql = """
|
sql = """
|
||||||
UPDATE
|
UPDATE
|
||||||
sh_dm_fight_records
|
sh_dm_fight_records
|
||||||
@ -407,12 +407,13 @@ class DBVidcon:
|
|||||||
updata_time = %s,
|
updata_time = %s,
|
||||||
report_id = %s,
|
report_id = %s,
|
||||||
subsequent_status = %s,
|
subsequent_status = %s,
|
||||||
report_time= %s
|
report_time= %s,
|
||||||
|
mid = %s
|
||||||
WHERE
|
WHERE
|
||||||
id = %s
|
id = %s
|
||||||
"""
|
"""
|
||||||
now_ts = int(time.time())
|
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()
|
@mysql_retry()
|
||||||
def update_subsequent_status_by_id(self, ssid: int, new_status: int, info: str = ""):
|
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 argparse
|
||||||
import time
|
import time
|
||||||
from DB import DBVidcon, DBSA
|
from DB import DBVidcon, DBSA
|
||||||
from dump_keyword_title import parse_args
|
|
||||||
from report_video import DailymotionClient
|
from report_video import DailymotionClient
|
||||||
import logger
|
from logger import logger
|
||||||
|
import requests
|
||||||
|
|
||||||
MACHINE_ID = None
|
MACHINE_ID = None
|
||||||
IsSubsequent = False
|
IsSubsequent = False
|
||||||
|
|
||||||
|
|
||||||
def parse_args() -> argparse.Namespace:
|
def parse_args() -> argparse.Namespace:
|
||||||
global MACHINE_ID, IsSubsequent
|
global MACHINE_ID, IsSubsequent
|
||||||
|
|
||||||
@ -40,13 +40,25 @@ def parse_args() -> argparse.Namespace:
|
|||||||
raise ValueError("请指定机器编号")
|
raise ValueError("请指定机器编号")
|
||||||
return args
|
return args
|
||||||
|
|
||||||
|
|
||||||
parse_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()
|
db = DBVidcon()
|
||||||
|
|
||||||
account = db.get_account_info(MACHINE_ID)
|
account = db.get_account_info(MACHINE_ID)
|
||||||
|
|
||||||
|
|
||||||
d = DailymotionClient(email=account['account'], password=account['password'])
|
d = DailymotionClient(email=account['account'], password=account['password'])
|
||||||
|
|
||||||
k = {
|
k = {
|
||||||
@ -58,10 +70,9 @@ k = {
|
|||||||
last_main_run = 0
|
last_main_run = 0
|
||||||
last_subsequent_run = 0
|
last_subsequent_run = 0
|
||||||
|
|
||||||
MAIN_INTERVAL = 60 * 5 # 每 5 分钟执行一次
|
MAIN_INTERVAL = 60 * 5 # 每 5 分钟执行一次
|
||||||
SUBSEQUENT_INTERVAL = 60 * 60 # 每 60 分钟执行一次
|
SUBSEQUENT_INTERVAL = 60 * 60 # 每 60 分钟执行一次
|
||||||
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
now = int(time.time())
|
now = int(time.time())
|
||||||
|
|
||||||
@ -70,38 +81,37 @@ while True:
|
|||||||
last_main_run = now
|
last_main_run = now
|
||||||
lis = db.item_report()
|
lis = db.item_report()
|
||||||
if len(lis) > 0:
|
if len(lis) > 0:
|
||||||
for _,li in lis:
|
for _, li in lis:
|
||||||
print(li)
|
print(li)
|
||||||
logger.logger.info(f"name:{li['name_title']},link:{li['link']} ")
|
logger.logger.info(f"name:{li['name_title']},link:{li['link']} ")
|
||||||
try:
|
try:
|
||||||
info, report_id, status, report_ts = d.process_ticket(li['name_title'], li['link'])
|
info, report_id, status, report_ts = d.process_ticket(li['name_title'], li['link'])
|
||||||
subsequent_status = k.get(status, 1)
|
subsequent_status = k.get(status, 1)
|
||||||
db.update_fight_record_status(
|
db.update_fight_record_status(
|
||||||
li['id'], report_id, 2, f"http://123.58.197.91:5000/image/{info}",
|
li['id'], report_id, 2, f"http://{ip}:5000/image/{info}",
|
||||||
report_ts, subsequent_status
|
report_ts, subsequent_status, MACHINE_ID
|
||||||
)
|
)
|
||||||
db.flush()
|
db.flush()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.logger.error(f"ID:{li['id']}, e:{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) # 出错延迟
|
time.sleep(60) # 出错延迟
|
||||||
|
|
||||||
|
|
||||||
if now - last_subsequent_run >= SUBSEQUENT_INTERVAL and IsSubsequent:
|
if now - last_subsequent_run >= SUBSEQUENT_INTERVAL and IsSubsequent:
|
||||||
last_subsequent_run = now
|
last_subsequent_run = now
|
||||||
subsequent_list = db.get_subsequent_report_video()
|
subsequent_list = db.get_subsequent_report_video()
|
||||||
if len(subsequent_list) > 0:
|
if len(subsequent_list) > 0:
|
||||||
for li in subsequent_list:
|
for li in subsequent_list:
|
||||||
rs_id = li['id']
|
rs_id = li['id']
|
||||||
r_id = li['report_id']
|
r_id = li['report_id']
|
||||||
logger.logger.info(f"subsequent id:{rs_id},report_id:{r_id} ")
|
logger.logger.info(f"subsequent id:{rs_id},report_id:{r_id} ")
|
||||||
# try:
|
# try:
|
||||||
subsequent_status, info = d.report_follow_up(r_id)
|
subsequent_status, info = d.report_follow_up(r_id)
|
||||||
db.update_subsequent_status_by_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:
|
# except Exception as e:
|
||||||
# logger.logger.error(f"ID:{rs_id}, e:{e}")
|
# logger.logger.error(f"ID:{rs_id}, e:{e}")
|
||||||
# db.update_subsequent_status_by_id(rs_id, 1, str(e))
|
# db.update_subsequent_status_by_id(rs_id, 1, str(e))
|
||||||
time.sleep(5) # 避免频繁请求
|
time.sleep(5) # 避免频繁请求
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user