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