From ef8d6dfd0ac098689da947b00929fe428fd0bb93 Mon Sep 17 00:00:00 2001 From: pengtao Date: Wed, 20 Nov 2019 17:03:24 +0800 Subject: [PATCH] fix data --- taptap/tap_weekly_mail.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/taptap/tap_weekly_mail.py b/taptap/tap_weekly_mail.py index 2c7faa4..f4eccaa 100644 --- a/taptap/tap_weekly_mail.py +++ b/taptap/tap_weekly_mail.py @@ -80,9 +80,38 @@ class TapWeeklyReport: except Exception: log.error(f"get {tap_type} details failed!", exc_info=True) + # check data if not title ,get from last day + for gameid in all_data.keys(): + for catename in all_data[gameid]: + if not all_data[gameid][catename].get('title'): + all_data[gameid][catename]["title"], all_data[gameid][catename]["score"], \ + all_data[gameid][catename]["tags"], all_data[gameid][catename]["order"], all_data[gameid][catename][ + "watch"], all_data[gameid][catename]["download"], all_data[gameid][catename]["sell"], \ + all_data[gameid][catename]["review"], all_data[gameid][catename]["reserve"], \ + all_data[gameid][catename]["topic"] = self.get_last_data(gameid, catename) + if not all_data[gameid][catename]["title"]: + all_data[gameid].pop(catename) + else: + all_data[gameid][catename]["tags"] = ",".join( + all_data[gameid][catename]["tags"].split(',')[0:3]) return all_data + def get_last_data(self, gameid, catename): + sql = f"""select gameid,title,score,tags,`order`,watch,download,sell,review,reserve,topic from + taptap_collect + where + catename='{catename}' + and gameid ={gameid} order by date desc limit 1 """ + data = self.db_conn.query(sql) + + try: + gameid, title, score, tags, order, watch, download, sell, review, reserve, topic = data[0] + except Exception: + gameid, title, score, tags, order, watch, download, sell, review, reserve, topic = None + log.error(f"get last info data failed", exc_info=True) + return (gameid, title, score, tags, order, watch, download, sell, review, reserve, topic) + def run(self): all = dict() data = self.build()