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