Пример #1
0
def register(request):
    """
    (未使用)注册
    :param request:
    :return:
    """
    appinfo = get_appinfo_by_appkey(request.json_data["appkey"])

    if appinfo is None:
        # 报错
        request.write_to_client(dict(ret=proto.RET_INVALID_PARAMS))
        return

    user = create_or_update_user(
        dict(
            appid=appinfo["appid"],
            channel=request.json_data["channel"],
            device_id=request.json_data["device_id"],
            device_name=request.json_data.get("device_name"),
            os=request.json_data.get("os"),
            os_version=request.json_data.get("os_version"),
            sdk_version=request.json_data.get("sdk_version"),
        )
    )

    rsp = dict(uid=user["uid"])

    request.login_client(rsp["uid"])

    request.write_to_client(dict(ret=0, body=pack_data(rsp)))
Пример #2
0
def pushntf(title, content, silent, appid, appkey, all, alias, str_tags_or):
    """
    python manage.py pushntf "t" "c" -k 7d357c9b4ce1414fb27f077b54fb5a8f -g "a, b" -g c
    :param title:
    :param content:
    :param appid:
    :param appkey:
    :param alias:
    :param str_tags_or:
    :return:
    """
    from share.push_helper import PushHelper

    if not (all or alias or str_tags_or):
        # 起码要指定一个
        print 'please special one at least: --all, --alias, --tags'
        return

    if not appid:
        if not appkey:
            print 'if appid is None, appkey should not be None'
            return
        else:
            appinfo = get_appinfo_by_appkey(appkey)
            if not appinfo:
                print 'appkey is invalid'
                return
            else:
                appid = appinfo['appid']

    push_helper = PushHelper()

    # 这样获取到的tags是个string
    if str_tags_or:
        tags_or = []
        for str_tags in str_tags_or:
            tags_or.append(re.split(r'\s*,\s*', str_tags))
    else:
        tags_or = None

    query = {}

    if not all:
        if alias is not None:
            query['alias'] = alias

        if tags_or is not None:
            query['tags_or'] = tags_or
            
    notification_id, users = push_helper.push_notification(
        title, content, appid, query=query, silent=silent
    )

    print 'notification_id: %s\nusers: %s' % (notification_id, users)
    statntf(notification_id, True)
Пример #3
0
def pushntf(title, content, silent, appid, appkey, all, alias, str_tags_or):
    """
    python manage.py pushntf "t" "c" -k 7d357c9b4ce1414fb27f077b54fb5a8f -g "a, b" -g c
    :param title:
    :param content:
    :param appid:
    :param appkey:
    :param alias:
    :param str_tags_or:
    :return:
    """
    from share.push_helper import PushHelper

    if not (all or alias or str_tags_or):
        # 起码要指定一个
        print "please special one at least: --all, --alias, --tags"
        return

    if not appid:
        if not appkey:
            print "if appid is None, appkey should not be None"
            return
        else:
            appinfo = get_appinfo_by_appkey(appkey)
            if not appinfo:
                print "appkey is invalid"
                return
            else:
                appid = appinfo["appid"]

    push_helper = PushHelper()

    # 这样获取到的tags是个string
    if str_tags_or:
        tags_or = []
        for str_tags in str_tags_or:
            tags_or.append(re.split(r"\s*,\s*", str_tags))
    else:
        tags_or = None

    query = {}

    if not all:
        if alias is not None:
            query["alias"] = alias

        if tags_or is not None:
            query["tags_or"] = tags_or

    notification_id, users = push_helper.push_notification(title, content, appid, query=query, silent=silent)

    print "notification_id: %s\nusers: %s" % (notification_id, users)
    statntf(notification_id, True)
Пример #4
0
def alloc_server():
    """
    # 方便测试
    if not request.json_data:
        return jsonify(
            ret=proto.RET_INVALID_PARAMS
        )
    """

    appinfo = get_appinfo_by_appkey(request.json_data['appkey'])
    logger.debug("appinfo: %s", appinfo)

    if appinfo is None:
        # 报错
        jsonify(
            ret=proto.RET_INVALID_PARAMS
        )
        return

    user = create_or_update_user(dict(
        appid=appinfo['appid'],
        channel=request.json_data['channel'],
        device_id=request.json_data['device_id'],
        device_name=request.json_data.get('device_name'),
        os=request.json_data.get('os'),
        os_version=request.json_data.get('os_version'),
        sdk_version=request.json_data.get('sdk_version'),
    ))

    server_list = current_app.config['SERVER_LIST']

    # 取模
    server = server_list[user['uid'] % len(server_list)]

    return current_app.response_class(pack_data(
        dict(
            ret=0,
            user=dict(
                uid=user['uid'],
                key=user['key'],
            ),
            server=dict(
                host=server['outer_host'],
                port=server['outer_port'],
            )
        )
    ), mimetype='application/json')
Пример #5
0
def register(request):
    """
    (未使用)注册
    :param request:
    :return:
    """
    appinfo = get_appinfo_by_appkey(request.json_data['appkey'])

    if appinfo is None:
        # 报错
        request.write_to_client(
            dict(
                ret=proto.RET_INVALID_PARAMS
            )
        )
        return

    user = create_or_update_user(dict(
        appid=appinfo['appid'],
        channel=request.json_data['channel'],
        device_id=request.json_data['device_id'],
        device_name=request.json_data.get('device_name'),
        os=request.json_data.get('os'),
        os_version=request.json_data.get('os_version'),
        sdk_version=request.json_data.get('sdk_version'),
    ))

    rsp = dict(
        uid=user['uid'],
    )

    request.login_client(rsp['uid'])

    request.write_to_client(dict(
        ret=0,
        body=pack_data(rsp)
    ))