scripts/cronjob/share_url/check_wx_share_url.py

65 lines
1.8 KiB
Python

from lib.all import *
service_name = "check_wx_share"
# log_dir = "/app/log"
log_dir = "."
logger = Logger(service_name, log_dir=log_dir, print_terminal=True)
def check_wx_url(url):
api_url = "http://wx.rrbay.com/pro/wxUrlCheck2.ashx?key=9dab4264f077aa3697d346f7ac1f5270&url=%s" % url
res = requests.get(api_url)
r = json.loads(res.text)
return r
class S:
def __init__(self):
self.col_share_url = MongoDB(
host="mongodb://root:Wishpal2024@dds-bp1da1ddd62bede41.mongodb.rds.aliyuncs.com:3717,dds-bp1da1ddd62bede42.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-77304659",
port=3717,
db="share",
collection="share_url"
)
def __del__(self):
self.col_share_url.close()
def proc(self):
try:
# 获取要更新的url
doc = self.col_share_url.find_one({}, sort_keys=[("ut", 1)])
if not doc:
logger.Error("get wait update doc fail")
return
url = safe_get_str(doc, "_id")
# 检查一下url
res = check_wx_url(url)
logger.Info("check_url_resp, url: {}, res: {}".format(url, res))
code = safe_get_str(res, "Code")
if code == "002":
return
# 更新db
query = {
"_id": url,
}
up = {
"$set": {
"ut": int(time.time()),
"status": safe_get_str(res, "Code"),
"api_res": dict2json(res)
}
}
ret = self.col_share_url.update_one(query, up)
logger.Info("mongo ret, modify: {}".format(ret.modified_count))
except Exception as e:
logger.Error("panic: {}".format(str(e)))
s = S()
while True:
s.proc()
time.sleep(21)