diff --git a/jcshow_collect.py b/jcshow_collect.py new file mode 100644 index 0000000..b67756f --- /dev/null +++ b/jcshow_collect.py @@ -0,0 +1,111 @@ +# -*- coding: utf-8 -*- +# http://mp.kingsome.cn/api/open/ad-uid?gameid=8002&channelid=6001 +from ops.mtga import FromTga, GetTgaConfig +from ops.mmysql import MysqlBase +from ops.plog import define_logger +import logging +import datetime +import json +import pdb +import sys + +define_logger("/data/logs/ops/jc_show_collect.log") +log = logging.getLogger(__name__) + +DB = {'user': 'mytga', 'pswd': 'gzVwh4HGR68G', 'host': '10.10.3.5', 'db': 'ad'} + + +class JcShow: + def __init__(self, kwargs): + self.time = kwargs.get('time') + self.gameid = kwargs.get('gameid') + self.channelid = kwargs.get('channelid') + self.event_type = "jcshow" + g = GetTgaConfig() + item = g.get_api_key(self.gameid) + self.url = item['url'] + self.tgaid = 99 + #self.tgaid = item['tgaid'] + self.suffix = item.get('suffix', 0) + self.api_key = item.get('api_key', None) + self.tga = FromTga(self.url, self.api_key) + self.tga.init_tga_write(self.tgaid) + + + def write_tga_files(self, data): + try: + tga_data = {} + tga_data['ad_channel'] = data['ad_channel'] + tga_data['amount'] = data['nums'] + tga_data['gameid'] = self.gameid + tga_data['date'] = self.time + tga_data['channelid'] = self.channelid + tga_data['show_time'] = data['show_time'] + self.tga.put_event_data(tga_data, f'rep_{self.event_type}') + except Exception: + log.error(f"write 2 tga failed!,context={data}", exc_info=True) + + def get_data(self): + sql = f"""SELECT + button_param + FROM + v_event_{self.suffix} + where + gameid='{self.gameid}' + and channel='{self.channelid}' + and "$part_event"='event_11_31' + and "button_name" ='jc_show' + and "$part_date"='{self.time}' + """ + data = self.tga.get_data(sql) + all = list() + if data: + for line in data: + if line: + all.append(line) + + all_data = {} + for line in data: + data_all = line[0] + data_dict = json.loads(data_all) + + if data_dict['ad_channel']: + for ad_channel in data_dict['ad_channel']: + all_data(ad_channel, 0) + 1 + + return all_data + + + def split_event19(self, data): + """6001_1004_oQmL74ij2oq3SyvO6QriuD0EJSjE + {"ad_id":["1039","1035","1037","1036","1038","1040"],"pos":"1,0,5,0,0","ad_channel":["wxdb103a128e118619","wxf4b70c770560c2fe","wx7d84fae7fe8796d7","wx1dd2f605f4f8496b","wx2f6ebc0586e24d61","wx0e14c9f4c4a06870"]}""" + for key in data.keys(): + item = {} + item['ad_channel'] = key + item['nums'] = data[key] + item['show_time'] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + self.write_tga_files(item) + + + def run(self): + data = self.get_data() + if data: + log.info(f"get data from tga gameid={self.gameid},time={self.time},len={len(data)}") + self.split_event19() + + +def main(): + for gameid in (1004, 1011): + kwargs = {} + if len(sys.argv) == 2: + kwargs['time'] = sys.argv[1] + else: + kwargs['time'] = (datetime.date.today() - datetime.timedelta(days=1)).strftime('%Y-%m-%d') + kwargs['gameid'] = gameid + kwargs['channelid'] = 6001 + jc = JcShow(kwargs) + jc.run() + + +if __name__ == "__main__": + main()