This commit is contained in:
pengtao 2019-11-22 11:26:33 +08:00
parent 9840f0ac64
commit b04ac14e8c
2 changed files with 54 additions and 34 deletions

View File

@ -108,7 +108,7 @@ def send_tapweekly():
recipients = ["pengtao@kingsome.cn"]
msg = Message(title, sender=sender, recipients=recipients)
twr = TapWeeklyReport(day)
data = twr.build()
data = twr.run()
#print(data)
# data[day] = day
msg.subject = f"TAPTAP_{day}_游戏周报"
@ -507,20 +507,48 @@ class TapWeeklyReport:
self.db_conn = MysqlBase(**db_conf)
self.limit = 20
# def get_weekly_days(self):
# weekly_days = []
# for i in range(0, 7):
# current_day = (datetime.datetime.strptime(self.day, '%Y-%m-%d') - datetime.timedelta(days=i)).strftime(
# '%Y-%m-%d')
# weekly_days.append(current_day)
# return weekly_days
self.all_type = {"download": {"name": "热门榜", "row": ["download"]}, "new": {"name": "新品榜", "row": ["download"]},
"reserve": {"name": "预约榜", "row": ["reserve"]}, "sell": {"name": "热卖榜", "row": ["sell"]},
"played": {"name": "热玩榜", "row": ["download"]}}
self.base_head = ["gameid", "title", "order", "min_order", "max_order", "diff_order"]
self.base_end = ["watch", "review", "topic", "score", "tags"]
self.row_cn = {"gameid": "游戏ID", "tile": "游戏名称", "order": "当前排名", "min_order": "最高排名", "max_order": "最低排名",
"diff_order": "排名变动", "download": "下载数", "reserve": "预约数", "sell": "购买数", "watch": "关注数",
"review": "评论数", "topic": "话题", "score": "评分", "tags": "游戏标签"}
def struct_data(self, data):
r_data = list
for key in self.all_type.keys():
try:
data_key = data.get(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
temp["row_name"] = []
for k in rows:
temp["row_name"].append(self.row_cn.get(k))
temp["row_data"] = []
for line in data_key:
tt = {}
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
for item in tt.keys():
if item not in rows:
tt.pop(item)
temp["row_data"].append(tt)
except Exception:
log.error(f"struct data with {line} Failed", exc_info=True)
return r_data
def build(self):
# weekly_day = json.dumps(self.get_weekly_days()).strip('[]')
tap_types = ("new", "download", "reserve", "sell", "played")
# tap_types = ("new", "download", "reserve", "sell", "played")
all_data = defaultdict(list)
for tap_type in tap_types:
for tap_type in self.all_type.keys():
sql = f"""select
gameid,
title as "名称",
@ -540,9 +568,10 @@ class TapWeeklyReport:
tap_weekly
where
catename='{tap_type}'
and date = '{self.day}'
and date = '{self.day}'
and order_posi = 1
order by
`order` limit {self.limit};"""
`diff_order` limit {self.limit};"""
data = self.db_conn.query(sql)
log.info(f"sql={sql}")
@ -552,7 +581,9 @@ class TapWeeklyReport:
def run(self):
data = self.build()
print(data)
r_data = self.struct_data(data)
print(r_data)
return r_data
def main():
day = (datetime.date.today() - datetime.timedelta(days=1)).strftime('%Y-%m-%d')

View File

@ -7,42 +7,31 @@
<body>
<h1 class="title">金蚕游戏日报 · OPS</h1>
<p class="date">{{ day }}</p>
{% for key in data.keys() %}
{% for key in data %}
<div class="section">
<div class="info">
<span
>报表类型:<span class="gameid">{{ key }}</span></span
>报表类型:<span class="gameid">{{ key.get('name') }}</span></span
>
</div>
<div class="panel">
<h2>总表</h2>
<table>
<thead>
{% for row_name_one in key.get('row_name') %}
<tr>
<th>游戏ID</th>
<th>游戏名称</th>
<th>排名</th>
<th>最高排名</th>
<th>最低排名</th>
<th>排名变动</th>
<th>评分</th>
<th>游戏标签</th>
<th>关注数</th>
<th>下载数</th>
<th>购买数</th>
<th>预约数</th>
<th>评论数</th>
<th>话题</th>
<th>{{ row_name_one }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
<tr>
{% for item in data.get(key) %}
{% for one in item %}
{% for one_data in key.get('row_data') %}
{% for line in one_data %}
<tr>
{% for one_1 in one %}
<td>{{ one_1 }}</td>
{% for item in one_data %}
<td>{{ item }}</td>
{% endfor %}
{% endfor %}
{% endfor %}