针对tap 的tags 数据基于order进行评分
This commit is contained in:
parent
a0ba7d50f7
commit
d8fdbf0020
78
taptap/taptap_daily_tags.py
Normal file
78
taptap/taptap_daily_tags.py
Normal file
@ -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()
|
Loading…
x
Reference in New Issue
Block a user