shoumeng_xiangsu/app.py
2021-10-09 11:19:23 +08:00

75 lines
1.9 KiB
Python

import copy
import datetime
import schedule
from utils import create_consumer, PostData
from core import settings
consumer, client = create_consumer()
def handler_os(properties):
os_: str = properties.get('#os', 'Android')
if os_.lower() == 'ios':
properties['#os'] = 102
properties['#os'] = 101
def handler_money(properties):
properties['unitPrice'] = int(properties.get('unitPrice', 0) / 100)
def handler_userid(properties):
properties['user_id'] = properties['binduid']
def run():
post_data = PostData()
schedule.every(60).seconds.do(post_data.post)
for msg in consumer():
data: dict = msg.value
if data.get('#type') != 'track':
continue
data.update(data.get('properties', {}))
data.pop('properties')
if data.get('game') != 'xiangsu':
continue
event_name = data.get('#event_name')
# if event_name == 'ping':
# continue
if event_name not in settings.legu_to_sm_event:
continue
if 'shoumeng' not in data.get('owner_name'):
continue
send_data = copy.deepcopy(settings.template_data)
handler_os(data)
handler_money(data)
handler_userid(data)
send_data['event']['event_name'] = settings.legu_to_sm_event[event_name]
send_data['event']['event_time'] = str(int(
datetime.datetime.strptime(data['#event_time'], '%Y-%m-%d %H:%M:%S').timestamp() * 1000))
for k, v in settings.legu_to_sm_attr_base.items():
send_data['data'][v] = data.get(k)
for k, v in settings.legu_to_sm_attr.get(event_name, dict()).items():
send_data['data'][v] = data.get(k)
# print(send_data)
if post_data.is_upload():
post_data.post()
post_data.add(send_data)
schedule.run_pending()
if __name__ == '__main__':
run()