99 lines
2.2 KiB
Python
99 lines
2.2 KiB
Python
import copy
|
|
import datetime
|
|
|
|
from utils import create_consumer
|
|
|
|
consumer, client = create_consumer()
|
|
|
|
attr_default = dict()
|
|
|
|
# 事件映射 legu->shoumeng
|
|
legu_to_sm_event = {
|
|
'create_account': 'role_create',
|
|
# '':'role_logout', # 角色登出日志
|
|
'login': 'role_login',
|
|
'level_up': 'role_rank',
|
|
'pay': 'role_pay',
|
|
}
|
|
# 属性映射 legu->shoumeng
|
|
legu_to_sm_attr_base = {
|
|
# 基础属性
|
|
'channel': 'channel_name',
|
|
'svrindex': 'game_server',
|
|
'#os': 'platform_id',
|
|
# '':'sm_user_id', # 手盟账号ID
|
|
'binduid': 'user_id',
|
|
'#account_id': 'role_id',
|
|
'role_name': 'role_name',
|
|
'ghid': 'guild_id',
|
|
'ghname': 'guild',
|
|
'zhanli': 'power',
|
|
'lv': 'role_rank',
|
|
'vip': 'role_vip',
|
|
# '':'castle_rank', # 城堡等级
|
|
'exp': 'exp'
|
|
|
|
}
|
|
legu_to_sm_attr = {
|
|
# 等级升级属性
|
|
# '':'rank_before',
|
|
'lv': 'rank',
|
|
# '':'rank_change',
|
|
|
|
}
|
|
|
|
template_data = {
|
|
"cp_game_id": 682,
|
|
"category": "cp_api",
|
|
'event_access': 'realtime',
|
|
"event": {
|
|
"event_time": 0,
|
|
"event_name": ""
|
|
},
|
|
"data": {
|
|
|
|
}
|
|
}
|
|
|
|
|
|
def handler_os(properties):
|
|
os_: str = properties.get('#os', 'Android')
|
|
if os_.lower() == 'ios':
|
|
properties['#os'] = 102
|
|
else:
|
|
properties['#os'] = 101
|
|
|
|
|
|
for msg in consumer():
|
|
data: dict = msg.value
|
|
if data.get('#type') != 'track':
|
|
continue
|
|
data.update(data.get('properties', {}))
|
|
data.pop('properties')
|
|
|
|
event_name = data.get('#event_name')
|
|
|
|
if event_name not in legu_to_sm_event:
|
|
continue
|
|
|
|
data.update(attr_default)
|
|
|
|
# if data.get('owner_name') != 'shoumeng':
|
|
# continue
|
|
|
|
send_data = copy.deepcopy(template_data)
|
|
|
|
handler_os(data)
|
|
|
|
send_data['event']['event_name'] = legu_to_sm_event[event_name]
|
|
send_data['event']['event_time'] = int(
|
|
datetime.datetime.strptime(data['#event_time'], '%Y-%m-%d %H:%M:%S').timestamp() * 1000)
|
|
|
|
for k, v in legu_to_sm_attr_base.items():
|
|
send_data['data'][v] = data.get(k)
|
|
|
|
for k, v in legu_to_sm_attr.items():
|
|
send_data['data'][v] = data.get(k)
|
|
|
|
print(send_data)
|