121 lines
3.7 KiB
Python
121 lines
3.7 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 get_rank_host_cnt(rank):
|
|
if 0 <= rank <= 30:
|
|
return 30
|
|
elif 30 < rank <= 100:
|
|
return 10
|
|
elif 100 < rank <= 300:
|
|
return 3
|
|
else:
|
|
return 1
|
|
|
|
|
|
def check_wx_url(url):
|
|
api_url = "http://wx.rrbay.com/pro/wxUrlCheck2.ashx?key=9dab4264f077aa3697d346f7ac1f5270&url=https://%s&mode=authkey1" % url
|
|
res = requests.get(api_url)
|
|
r = json.loads(res.text)
|
|
return r
|
|
|
|
|
|
class S:
|
|
def __init__(self):
|
|
self.col_streamer = 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="streamer",
|
|
collection="streamer"
|
|
)
|
|
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"
|
|
)
|
|
self.col_streamer_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="streamer_share_url"
|
|
)
|
|
self.mysql_db_bi = Mysql(
|
|
"172.31.37.71", 3306, "bi", "root", "Wishpal@2023"
|
|
)
|
|
|
|
def __del__(self):
|
|
self.col_streamer.close()
|
|
self.col_share_url.close()
|
|
self.col_streamer_share_url.close()
|
|
self.mysql_db_bi.close()
|
|
|
|
def get_streamer_ranks(self):
|
|
sql = '''
|
|
select * from vas_cur_streamer_income order by income desc
|
|
'''
|
|
rows = list(self.mysql_db_bi.query(sql))
|
|
return rows
|
|
|
|
def get_domain_host_map(self):
|
|
domain_host_map = dict()
|
|
docs = self.col_share_url.find({})
|
|
for doc in docs:
|
|
domain = safe_get_str(doc, "domain")
|
|
if domain not in domain_host_map.keys():
|
|
domain_host_map[domain] = list()
|
|
domain_host_map[domain].append(doc)
|
|
return domain_host_map
|
|
|
|
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
|
|
if code == "101":
|
|
msg = safe_get_str(res, "Msg")
|
|
|
|
# 更新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)
|
|
# print(check_wx_url("https://kx0jjwssu14s007.tiefen.club"))
|
|
# ranks = s.get_streamer_ranks()
|
|
# for rank in ranks:
|
|
# print(rank)
|
|
|
|
|
|
m = s.get_domain_host_map()
|
|
print(m)
|