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 from ops.mmysql import MysqlBase
import copy import copy
import json import json
from collections import defaultdict
db_conf = {'user': 'mytga', 'pswd': 'gzVwh4HGR68G', 'host': '10.10.3.5', 'db': 'external_data'} 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"] recipients = ["pengtao@kingsome.cn"]
msg = Message(title, sender=sender, recipients=recipients) msg = Message(title, sender=sender, recipients=recipients)
twr = TapWeeklyReport(day) twr = TapWeeklyReport(day)
data = twr.run() data, tags = twr.run()
print(data) # print(data)
# data[day] = day # data[day] = day
msg.subject = f"TAPTAP_{day}_游戏周报" msg.subject = f"TAPTAP_{day}_游戏周报"
if data: 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 = Thread(target=send_async_email, args=[app, msg])
thread.start() thread.start()
@ -524,7 +524,6 @@ class TapWeeklyReport:
for key in self.all_type.keys(): for key in self.all_type.keys():
try: try:
data_key = data.get(key, []) data_key = data.get(key, [])
#print(f"data_key={data_key}")
temp = {} temp = {}
temp["name"] = self.all_type.get(key).get("name") temp["name"] = self.all_type.get(key).get("name")
rows = self.base_head + self.all_type.get(key).get("row") + self.base_end 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_name"].append(self.row_cn.get(k))
temp["row_data"] = [] temp["row_data"] = []
for line in data_key[0]: for line in data_key[0]:
#print(f"line={line}")
tt = {} tt = {}
# (30802, '死战骑士团', 56, 56, 56, 0, 5.1, '付费,策略,单机', 8984, 0, 7794, 0, 272, 34) # (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 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) r_data.append(temp)
except Exception: except Exception:
log.error(f"struct data with {line} Failed", exc_info=True) 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): def build(self):
# weekly_day = json.dumps(self.get_weekly_days()).strip('[]') # weekly_day = json.dumps(self.get_weekly_days()).strip('[]')
@ -584,14 +597,14 @@ class TapWeeklyReport:
data = self.db_conn.query(sql) data = self.db_conn.query(sql)
#log.info(f"sql={sql}") #log.info(f"sql={sql}")
if data: if data:
all_data[tap_type].append(data) # print(f"{tap_type}\t{data}") all_data[tap_type].append(data)
return all_data return all_data
def run(self): def run(self):
data = self.build() data = self.build()
r_data = self.struct_data(data) r_data, tags = self.struct_data(data)
print(r_data) print(f"rr={r_data},tags={tags}")
return r_data return r_data, tags
def main(): def main():
day = (datetime.date.today() - datetime.timedelta(days=1)).strftime('%Y-%m-%d') day = (datetime.date.today() - datetime.timedelta(days=1)).strftime('%Y-%m-%d')