This commit is contained in:
pengtao 2019-11-25 14:40:18 +08:00
parent eb42a4f282
commit 7992e1f300

View File

@ -14,7 +14,7 @@ import requests
from ops.mmysql import MysqlBase
import copy
import json
from collections import defaultdict
db_conf = {'user': 'mytga', 'pswd': 'gzVwh4HGR68G', 'host': '10.10.3.5', 'db': 'external_data'}
@ -109,12 +109,12 @@ def send_tapweekly():
recipients = ["pengtao@kingsome.cn"]
msg = Message(title, sender=sender, recipients=recipients)
twr = TapWeeklyReport(day)
data = twr.run()
print(data)
data, tags = twr.run()
# print(data)
# data[day] = day
msg.subject = f"TAPTAP_{day}_游戏周报"
if data:
msg.html = render_template('tap_weekly.html', data=data, day=day)
msg.html = render_template('tap_weekly.html', data=data, day=day, tags=tags)
thread = Thread(target=send_async_email, args=[app, msg])
thread.start()
@ -524,7 +524,6 @@ class TapWeeklyReport:
for key in self.all_type.keys():
try:
data_key = data.get(key, [])
#print(f"data_key={data_key}")
temp = {}
temp["name"] = self.all_type.get(key).get("name")
rows = self.base_head + self.all_type.get(key).get("row") + self.base_end
@ -533,7 +532,6 @@ class TapWeeklyReport:
temp["row_name"].append(self.row_cn.get(k))
temp["row_data"] = []
for line in data_key[0]:
#print(f"line={line}")
tt = {}
# (30802, '死战骑士团', 56, 56, 56, 0, 5.1, '付费,策略,单机', 8984, 0, 7794, 0, 272, 34)
tt['gameid'], tt['title'], tt['order'], tt['min_order'], tt['max_order'], tt['diff_order'],tt['score'], tt['tags'], tt['watch'], tt['download'], tt['sell'], tt['reserve'], tt['review'],tt['topic'] = line
@ -549,8 +547,23 @@ class TapWeeklyReport:
r_data.append(temp)
except Exception:
log.error(f"struct data with {line} Failed", exc_info=True)
return r_data
new_tags = dict()
if r_data:
new_tags = self.collect_tags(r_data)
return r_data, new_tags
def collect_tags(self, data):
row_tags = dict()
for line in data:
try:
data_type = line.get("name")
for items in line.get("row_data"):
for one_row in items:
for tag in one_row.split(',')[-1]:
row_tags[data_type][tag] += row_tags[data_type].get(tag, 0) + 1
except Exception:
log.error(f"collect tags failed with {line}", exc_info=True)
return row_tags
def build(self):
# weekly_day = json.dumps(self.get_weekly_days()).strip('[]')
@ -584,14 +597,14 @@ class TapWeeklyReport:
data = self.db_conn.query(sql)
#log.info(f"sql={sql}")
if data:
all_data[tap_type].append(data) # print(f"{tap_type}\t{data}")
all_data[tap_type].append(data)
return all_data
def run(self):
data = self.build()
r_data = self.struct_data(data)
print(r_data)
return r_data
r_data, tags = self.struct_data(data)
print(f"rr={r_data},tags={tags}")
return r_data, tags
def main():
day = (datetime.date.today() - datetime.timedelta(days=1)).strftime('%Y-%m-%d')