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()
|
||
|
||
# <20>¼<EFBFBD>ӳ<EFBFBD><D3B3> legu->shoumeng
|
||
legu_to_sm_event = {
|
||
'create_account': 'role_create',
|
||
# '':'role_logout', # <20><>ɫ<EFBFBD>dz<EFBFBD><C7B3><EFBFBD>־
|
||
'login': 'role_login',
|
||
'level_up': 'role_rank',
|
||
'pay': 'role_pay',
|
||
}
|
||
# <20><><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3> legu->shoumeng
|
||
legu_to_sm_attr_base = {
|
||
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
'channel': 'channel_name',
|
||
'svrindex': 'game_server',
|
||
'#os': 'platform_id',
|
||
# '':'sm_user_id', # <20><><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>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', # <20>DZ<EFBFBD><C7B1>ȼ<EFBFBD>
|
||
'exp': 'exp'
|
||
|
||
}
|
||
legu_to_sm_attr = {
|
||
# <20>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
# '':'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)
|