89 lines
3.3 KiB
Python
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()
|