50 lines
1.0 KiB
Python
50 lines
1.0 KiB
Python
from settings import settings
|
|
|
|
|
|
class TaHandler:
|
|
handler_link = []
|
|
|
|
def __init__(self, func):
|
|
TaHandler.handler_link.append(func)
|
|
|
|
@staticmethod
|
|
def format_data(data: dict):
|
|
msg = dict()
|
|
for k in settings.TA_OUTER:
|
|
v = data.get(k)
|
|
if v:
|
|
msg[k] = data.pop(k)
|
|
msg['properties'] = data
|
|
return msg
|
|
|
|
|
|
@TaHandler
|
|
async def add_ip(request, rdb, data):
|
|
"""
|
|
添加源ip
|
|
:param request:
|
|
:param rdb:
|
|
:param data:
|
|
:return:
|
|
"""
|
|
ip = request.client.host
|
|
data['ip'] = data.get('ip') or ip
|
|
|
|
|
|
@TaHandler
|
|
async def device_label(request, rdb, data):
|
|
"""
|
|
标记新设备
|
|
:param request:
|
|
:param rdb:
|
|
:param data:
|
|
:return:
|
|
"""
|
|
# 条件
|
|
if data.get('type') == 'user_add':
|
|
v = await rdb.execute('sadd', f'{data.game}.devices', data.properties.get('#device_id', ''))
|
|
if v:
|
|
data.properties['is_new_device'] = 1
|
|
else:
|
|
data.properties['is_new_device'] = 0
|