diff --git a/to_shoumeng.py b/to_shoumeng.py new file mode 100644 index 0000000..71dfcf3 --- /dev/null +++ b/to_shoumeng.py @@ -0,0 +1,98 @@ +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)