From d8fdbf0020d2611ee7d1c1d1b195adf2e8a59dd9 Mon Sep 17 00:00:00 2001 From: pengtao Date: Thu, 5 Dec 2019 12:03:11 +0800 Subject: [PATCH] =?UTF-8?q?=E9=92=88=E5=AF=B9tap=20=E7=9A=84tags=20?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=9F=BA=E4=BA=8Eorder=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E8=AF=84=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- taptap/taptap_daily_tags.py | 78 +++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 taptap/taptap_daily_tags.py diff --git a/taptap/taptap_daily_tags.py b/taptap/taptap_daily_tags.py new file mode 100644 index 0000000..a7c6594 --- /dev/null +++ b/taptap/taptap_daily_tags.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- +from ops.mtga import FromTga +from ops.plog import define_logger +from ops.mmysql import MysqlBase +import logging +import datetime +import pdb +import sys +import json + +define_logger("/data/logs/ops/taptap_daily_taps.log") +log = logging.getLogger(__name__) +import sys + + +class TapTapReport: + def __init__(self, day): + self.db_conf = {'user': 'mytga', 'pswd': 'gzVwh4HGR68G', 'host': '10.10.3.5', 'db': 'external_data'} + self.url = "http://10.10.3.17:8992/querySql" + self.api_secret = "n9H4R32ZcjtSeN89ljCY6ESzTmOlnwwnOB3r4YsggnP5M1AXLtKtiS4sS1KKLOEQ" + self.tga = FromTga(url=self.url, token=self.api_secret) + self.day = day + self.bday = (datetime.datetime.strptime(self.day, "%Y-%m-%d") - datetime.timedelta(days=1)).strftime('%Y-%m-%d') + + + def get_tags(self): + sql = f"""SELECT + catename, + tags, + "order" + FROM + v_event_25 + where + "$part_date"='{self.day}'""" + data = self.tga.get_data(sql) + pdb.set_trace() + tags = {} + if data: + for line in data: + try: + catename, tags, order = line + temp_dict = tags.get(catename, {}) + for tag in tags.split(","): + temp_dict[tag] = temp_dict.get(tag, 0) + self.order2score(order) + tags.update(temp_dict) + except Exception: + log.error(f"split {line} failed", exc_info=True) + return tags + + def order2score(self, order): + try: + order_int = int(order) + if order_int <= 10 and order_int >= 1: + return 5 + elif order_int > 10 and order_int <= 50: + return 2 + elif order_int <= 200: + return 1 + else: + return 0 + except Exception: + log.error(f"PLS check order={order} ", exc_info=True) + return 0 + + +def main(): + if len(sys.argv) == 2: + day = sys.argv[1] + else: + day = (datetime.date.today() - datetime.timedelta(days=1)).strftime('%Y-%m-%d') + + tap = TapTapReport(day) + data = tap.get_tags() + print(data) + + +if __name__ == "__main__": + main()