def message_send(service):
    text = request.form.get('message')
    if not text:
        return Error.ARGUMENT_MISSING('message')

    subscribers = Subscription.query.filter_by(service=service).count()
    if subscribers == 0:
        # Pretend we did something even though we didn't
        # Nobody is listening so it doesn't really matter
        return Error.NONE

    level = (request.form.get('level') or '3')[0]
    level = int(level) if level in "12345" else 3
    title = request.form.get('title', '').strip()[:255]
    link = request.form.get('link', '').strip()
    msg = Message(service, text, title, level, link)
    db.session.add(msg)
    db.session.commit()

    if google_api_key or current_app.config['TESTING']:
        Gcm.send_message(msg)

    if apns_cert_path or current_app.config['TESTING']:
        Apns.send_message(msg)

    if zeromq_relay_uri:
        queue_zmq_message(json_encode({"message": msg.as_dict()}))

    service.cleanup()
    db.session.commit()
    return Error.NONE
Beispiel #2
0
def message_send(service):
    text = request.form.get('message')
    if not text:
        return Error.ARGUMENT_MISSING('message')

    subscribers = Subscription.query.filter_by(service=service).count()
    if subscribers == 0:
        # Pretend we did something even though we didn't
        # Nobody is listening so it doesn't really matter
        return Error.NONE

    level = (request.form.get('level') or '3')[0]
    level = int(level) if level in "12345" else 3
    title = request.form.get('title', '').strip()[:255]
    link = request.form.get('link', '').strip()
    msg = Message(service, text, title, level, link)
    db.session.add(msg)
    db.session.commit()

    if google_api_key or current_app.config['TESTING']:
        Gcm.send_message(msg)

    if zeromq_relay_uri:
        queue_zmq_message(json_encode({"message": msg.as_dict()}))

    service.cleanup()
    db.session.commit()
    return Error.NONE
Beispiel #3
0
def message_send(service):
    text = request.form.get('message')
    if not text:
        return jsonify(Error.ARGUMENT_MISSING('message'))
    level = (request.form.get('level') or '3')[0]
    level = int(level) if level in "12345" else 3
    title = request.form.get('title', '').strip()[:255]
    link = request.form.get('link', '').strip()
    msg = Message(service, text, title, level, link)
    db.session.add(msg)
    db.session.commit()

    if google_api_key:
        Gcm.send_message(msg)

    if zeromq_relay_uri:
        queue_zmq_message(json_encode({"message": msg.as_dict()}))

    service.cleanup()
    db.session.commit()
    return jsonify(Error.NONE)
Beispiel #4
0
def gcm_register(client):
    registration = request.form.get('regid', False) or request.form.get(
        'regId', False)

    if not registration:
        return Error.ARGUMENT_MISSING('regid')
    regs = Gcm.query.filter_by(uuid=client).all()
    for u in regs:
        db.session.delete(u)
    reg = Gcm(client, registration)
    db.session.add(reg)
    db.session.commit()
    return jsonify(Error.NONE)
Beispiel #5
0
def gcm_register(client):
    registration = request.form.get('regid', False) or request.form.get(
        'regId', False)
    pubkey_b64 = request.form.get('pubkey', None)
    if pubkey_b64:
        # noinspection PyBroadException
        try:
            rsa.PublicKey.load_pkcs1(b64decode(pubkey_b64), 'DER')
        except:
            return jsonify(Error.INVALID_PUBKEY)

    if not registration:
        return Error.ARGUMENT_MISSING('regid')
    regs = Gcm.query.filter_by(uuid=client).all()
    for u in regs:
        db.session.delete(u)
    reg = Gcm(client, registration, pubkey_b64)
    db.session.add(reg)
    db.session.commit()
    return jsonify(Error.NONE)