datacollect/mytask/tasks_2001.py
2019-08-12 12:01:20 +08:00

89 lines
3.3 KiB
Python

# -*- coding: utf-8 -*-
from mytask.tga import GetFromTga
import logging
log = logging.getLogger(__name__)
tap_items = {'1': '登录按钮', '2': '进入游戏主界面', '3': '单人模式', '4': '组队模式', '5': '角色', '6': '观看视频试用皮肤按钮',
'7': '角色满级体验', '8': '武器', '9': '武器满级体验', '10': '任务', '11': '补给', '12': '补给视频领取', '13': '商城', '14': '等待区域',
'15': '跳伞', '16': '战斗结束', '17': '战斗结束看视频翻倍按钮', '60': '组队开始游戏', '61': '战斗链接', '62': '链接成功', '63': 'Join成功',
'70': '签到双倍领取', '71': '签到领取', '72': '排行榜', '73': '金币获取', '74': '宝箱', '75': '邀请', '76': '福利', }
class TGA_event(GetFromTga):
def event_tap(self):
keys = tuple(tap_items.keys())
sql = f"""SELECT
button_name,
count(1) AS num,
count(distinct "#account_id") AS num_dis
FROM
v_event_22
WHERE
"$part_event"='event_11_31'
AND "$part_date"='{self.date}'
and button_name !='NaN'
and cast(button_name as varchar) in {keys}
GROUP BY
button_name
order by
button_name"""
data = self.tga.get_data(sql)
if data:
for line in data:
if line:
try:
name, num, num_dis = line
if name in tap_items.keys():
temp = {}
temp['name'] = tap_items[name]
temp['num'] = num
temp['dis_num'] = num_dis
self.write_tga_files(temp)
except Exception:
log.error(f"split {data} failed!", exc_info=True)
def event_tap_new(self):
keys = tuple(tap_items.keys())
sql = f"""SELECT
button_name,
count(1) AS num,
count(distinct "#account_id") AS num_dis
FROM
v_event_22
WHERE
"$part_event"='event_11_31'
AND "$part_date"='{self.date}'
and button_name !='NaN'
and cast(button_name as varchar) in {keys}
and account_register_date BETWEEN timestamp'{self.date} 00:00:00' and timestamp'{self.date} 23:59:59'
GROUP BY
button_name
order by
button_name"""
data = self.tga.get_data(sql)
if data:
for line in data:
if line:
try:
name, num, num_dis = line
if name in tap_items.keys():
temp = {}
temp['name'] = tap_items[name]
temp['num'] = num
temp['dis_num'] = num_dis
self.write_tga_files(temp)
except Exception:
log.error(f"split {data} failed!", exc_info=True)
def run_event_tap_2001(kwargs):
mytga = TGA_event(**kwargs)
mytga.event_tap()
def run_event_tap_new_2001(kwargs):
mytga = TGA_event(**kwargs)
mytga.event_tap_new()