update
This commit is contained in:
parent
369efd9da7
commit
d2d35ec9b8
@ -2,27 +2,47 @@ import hashlib
|
||||
|
||||
from settings import settings
|
||||
|
||||
__all__ = 'restore_field', 'sort_kv', 'check_sign'
|
||||
__all__ = 'restore_field', 'sort_kv', 'check_sign', 'check_preset'
|
||||
|
||||
|
||||
def restore_field(data: dict) -> dict:
|
||||
"""
|
||||
不在预置字段 去掉前置#
|
||||
:param data:
|
||||
:return:
|
||||
"""
|
||||
res = dict()
|
||||
for k, v in data.items():
|
||||
map_name = settings.FIELD_MAP.get(k)
|
||||
if map_name:
|
||||
res[map_name] = v
|
||||
elif k.startswith('#'):
|
||||
res[k[1:]] = v
|
||||
else:
|
||||
res[k] = v
|
||||
res[settings.FIELD_MAP.get(k) or k] = v
|
||||
return res
|
||||
|
||||
|
||||
def check_preset(data: dict):
|
||||
preset_name = set(settings.FIELD_MAP.values())
|
||||
illegality_name = dict()
|
||||
for k, v in data.items():
|
||||
if k.startswith('#') and k not in preset_name:
|
||||
illegality_name[k] = v
|
||||
for k, v in illegality_name.items():
|
||||
del data[k]
|
||||
data[k[1:]] = v
|
||||
|
||||
return data
|
||||
|
||||
|
||||
# def restore_field(data: dict) -> dict:
|
||||
# """
|
||||
# 不在预置字段 去掉前置#
|
||||
# :param data:
|
||||
# :return:
|
||||
# """
|
||||
# res = dict()
|
||||
# for k, v in data.items():
|
||||
# map_name = settings.FIELD_MAP.get(k)
|
||||
# if map_name:
|
||||
# res[map_name] = v
|
||||
# elif k.startswith('#'):
|
||||
# res[k[1:]] = v
|
||||
# else:
|
||||
# res[k] = v
|
||||
# return res
|
||||
|
||||
|
||||
def sort_kv(*args: dict):
|
||||
return '&'.join(map(lambda item: '&'.join(map(lambda x: f'{x[0]}={x[1]}', sorted(item.items()))), args))
|
||||
|
||||
|
@ -50,6 +50,7 @@ async def to_date(request, rdb, data):
|
||||
:return:
|
||||
"""
|
||||
data['#time'] = arrow.get(data['#time'], tzinfo='Asia/Shanghai').strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
|
||||
data['#event_time'] = data['#time']
|
||||
|
||||
|
||||
@TaHandler
|
||||
@ -62,9 +63,9 @@ async def device_label(request, rdb, data):
|
||||
:return:
|
||||
"""
|
||||
# 条件
|
||||
if data.get('type') == 'user_add':
|
||||
v = await rdb.execute('sadd', f'{data.game}.devices', data.properties.get('#device_id', ''))
|
||||
if data.get('#type') == 'user' and data.get('#event_name') == 'add':
|
||||
v = await rdb.execute('sadd', f'{data["#app_id"]}.devices', data.get('#device_id', ''))
|
||||
if v:
|
||||
data.properties['is_new_device'] = 1
|
||||
data['properties']['is_new_device'] = 1
|
||||
else:
|
||||
data.properties['is_new_device'] = 0
|
||||
data['properties']['is_new_device'] = 0
|
||||
|
@ -1,4 +1,5 @@
|
||||
import asyncio
|
||||
import traceback
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
@ -26,6 +27,7 @@ async def point(request: Request, items: DataModel):
|
||||
# continue
|
||||
return {"code": -1, 'msg': '签名错误'}
|
||||
single_data = dict(**public_data, **data, properties=properties)
|
||||
check_preset(single_data)
|
||||
await asyncio.gather(
|
||||
*map(lambda o: asyncio.create_task(o(request, rdb, single_data)), data_factory.handler_link))
|
||||
msg = data_factory.format_data(single_data)
|
||||
@ -33,4 +35,5 @@ async def point(request: Request, items: DataModel):
|
||||
|
||||
return {"code": 0, 'msg': 'ok'}
|
||||
except Exception as e:
|
||||
return {"code": -1, 'msg': '数据异常'}
|
||||
msg = traceback.format_exc()
|
||||
return {"code": -1, 'msg': msg}
|
||||
|
@ -45,7 +45,12 @@ class Config:
|
||||
"a35": "#mp_platform",
|
||||
"a36": "#app_crashed_reason",
|
||||
"a37": "#zone_offset",
|
||||
|
||||
|
||||
|
||||
"b01": "#app_id",
|
||||
"b02": "#type",
|
||||
"b03": "#time",
|
||||
"b06": "#event_time"
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user