Пример #1
0
def make_output(dir):
    script = u''
    streams = Stream.query.all()
    for stream in streams:
        if stream.type == Stream.TYPES.OGG:
            file = 'output_vorbis.liq'
        elif stream.type == Stream.TYPES.AACP:
            file = 'output_aacp.liq'
        elif stream.type == Stream.TYPES.MP3:
            file = 'output_mp3.liq'
        elif stream.type == Stream.TYPES.OPUS:
            file = 'output_opus.liq'
        else:
            continue
        template_string = open(_get_template_path(file), 'r').read()
        template = Template(template_string)
        master = Relay.get_master()
        script += template.substitute(name=stream.code,
                                      description=stream.name,
                                      quality=stream.quality,
                                      host=master.address,
                                      port=master.port,
                                      username=master.auth_username,
                                      password=master.auth_password,
                                      mount=stream.mount,
                                      url=rfk.CONFIG.get('site', 'url'))
    if isinstance(streams, str):
        streams = streams.decode('utf-8')
    if not isinstance(streams, unicode):
        streams = unicode(streams)
    return script
Пример #2
0
def make_output(dir):
    script = u''
    streams = Stream.query.all()
    for stream in streams:
        if stream.type == Stream.TYPES.OGG:
            file = 'output_vorbis.liq'
        elif stream.type == Stream.TYPES.AACP:
            file = 'output_aacp.liq'
        elif stream.type == Stream.TYPES.MP3:
            file = 'output_mp3.liq'
        elif stream.type == Stream.TYPES.OPUS:
            file = 'output_opus.liq'
        else:
            continue
        template_string = open(_get_template_path(file), 'r').read()
        template = Template(template_string)
        master = Relay.get_master()
        script += template.substitute(name=stream.code,
                                      description=stream.name,
                                      quality=stream.quality,
                                      host=master.address,
                                      port=master.port,
                                      username=master.auth_username,
                                      password=master.auth_password,
                                      mount=stream.mount,
                                      url=rfk.CONFIG.get('site', 'url'))
    if isinstance(streams, str):
        streams = streams.decode('utf-8')
    if not isinstance(streams, unicode):
        streams = unicode(streams)
    return script
Пример #3
0
def icecast_auth():
    logger.info('icecast_auth {}'.format(request.form))
    if request.form['action'] != 'stream_auth':
        return make_response('you just went full retard', 405)
    relay = Relay.get_relay(address=request.form['server'],
                            port=request.form['port'])
    if relay.auth_password == request.form['pass'] and \
                    relay.auth_username == request.form['user']:
        return make_response('ok', 200, {'icecast-auth-user': '******'})
    else:
        return make_response('authentication failed', 401)
Пример #4
0
def icecast_auth():
    logger.info('icecast_auth {}'.format(request.form))
    if request.form['action'] != 'stream_auth':
        return make_response('you just went full retard', 405)
    relay = Relay.get_relay(address=request.form['server'],
                            port=request.form['port'])
    if relay.auth_password == request.form['pass'] and \
                    relay.auth_username == request.form['user']:
        return make_response('ok', 200, {'icecast-auth-user': '******'})
    else:
        return make_response('authentication failed', 401)
Пример #5
0
def relay_add():
    form = new_relay(request.form)
    if request.method == 'POST' and form.validate():
        try:
            relay = Relay.add_relay(form.address.data, form.port.data, form.bandwidth.data,
                                    form.admin_username.data, form.admin_password.data,
                                    form.auth_username.data,form.auth_password.data,
                                    form.relay_username.data, form.relay_password.data, form.type.data)
            rfk.database.session.commit()
        except AddressTakenException:
            form.address.errors.append('Address already in Database')
            form.port.errors.append('Address already in Database')
    return render_template('admin/relay/relayform.html', form=form)
Пример #6
0
def relay_add():
    form = new_relay(request.form)
    if request.method == 'POST' and form.validate():
        try:
            relay = Relay.add_relay(
                form.address.data, form.port.data, form.bandwidth.data,
                form.admin_username.data, form.admin_password.data,
                form.auth_username.data, form.auth_password.data,
                form.relay_username.data, form.relay_password.data,
                form.type.data)
            rfk.database.session.commit()
        except AddressTakenException:
            form.address.errors.append('Address already in Database')
            form.port.errors.append('Address already in Database')
    return render_template('admin/relay/relayform.html', form=form)
Пример #7
0
def icecast_add_listener():
    #logger.info('add_listener {}'.format(request.form))
    if request.form['action'] != 'listener_add':
        return make_response('you just went full retard', 405)
    relay = Relay.get_relay(address=request.form['server'],
                            port=request.form['port'])
    stream = Stream.get_stream(mount=request.form['mount'])
    listener = Listener.create(request.form['ip'], request.form['client'], request.form['agent'], relay.get_stream_relay(stream))
    session.add(listener)
    session.flush()
    relay.update_statistic()
    stream.update_statistic()
    relay.get_stream_relay(stream).update_statistic()
    session.commit()
    return make_response('ok', 200, {'icecast-auth-user': '******'})
Пример #8
0
def icecast_remove_listener():
    #logger.info('remove_listener {}'.format(request.form))
    if request.form['action'] != 'listener_remove':
        return make_response('you just went full retard', 405)
    relay = Relay.get_relay(address=request.form['server'],
                            port=request.form['port'])
    stream = Stream.get_stream(mount=request.form['mount'])
    listener = Listener.get_listener(relay.get_stream_relay(stream), int(request.form['client']))
    listener.set_disconnected()
    session.flush()
    relay.update_statistic()
    stream.update_statistic()
    relay.get_stream_relay(stream).update_statistic()
    session.commit()
    return make_response('ok', 200, {'icecast-auth-user': '******'})
Пример #9
0
def icecast_add_mount():
    logger.info('add_mount {}'.format(request.form))
    if request.form['action'] != 'mount_add':
        return make_response('you just went full retard', 405)
    relay = Relay.get_relay(address=request.form['server'],
                            port=request.form['port'])
    stream = Stream.get_stream(mount=request.form['mount'])
    if relay and stream:
        stream.add_relay(relay)
        relay.get_stream_relay(stream).status = StreamRelay.STATUS.ONLINE
        relay.status = Relay.STATUS.ONLINE
        session.commit()
        return make_response('ok', 200, {'icecast-auth-user': '******'})
    else:
        return make_response('something strange happened', 500)
Пример #10
0
def icecast_remove_listener():
    #logger.info('remove_listener {}'.format(request.form))
    if request.form['action'] != 'listener_remove':
        return make_response('you just went full retard', 405)
    relay = Relay.get_relay(address=request.form['server'],
                            port=request.form['port'])
    stream = Stream.get_stream(mount=request.form['mount'])
    listener = Listener.get_listener(relay.get_stream_relay(stream),
                                     int(request.form['client']))
    listener.set_disconnected()
    session.flush()
    relay.update_statistic()
    stream.update_statistic()
    relay.get_stream_relay(stream).update_statistic()
    session.commit()
    return make_response('ok', 200, {'icecast-auth-user': '******'})
Пример #11
0
def icecast_add_listener():
    #logger.info('add_listener {}'.format(request.form))
    if request.form['action'] != 'listener_add':
        return make_response('you just went full retard', 405)
    relay = Relay.get_relay(address=request.form['server'],
                            port=request.form['port'])
    stream = Stream.get_stream(mount=request.form['mount'])
    listener = Listener.create(request.form['ip'], request.form['client'],
                               request.form['agent'],
                               relay.get_stream_relay(stream))
    session.add(listener)
    session.flush()
    relay.update_statistic()
    stream.update_statistic()
    relay.get_stream_relay(stream).update_statistic()
    session.commit()
    return make_response('ok', 200, {'icecast-auth-user': '******'})
Пример #12
0
def icecast_remove_mount():
    logger.info('remove_mount {}'.format(request.form))
    if request.form['action'] != 'mount_remove':
        return make_response('you just went full retard', 405)
    relay = Relay.get_relay(address=request.form['server'],
                            port=request.form['port'])
    stream = Stream.get_stream(mount=request.form['mount'])
    if relay and stream:
        stream.add_relay(relay)
        stream_relay = relay.get_stream_relay(stream)
        stream_relay.set_offline()
        session.flush()
        relay.update_statistic()
        stream.update_statistic()
        relay.get_stream_relay(stream).update_statistic()
        session.commit()
        return make_response('ok', 200, {'icecast-auth-user': '******'})
    else:
        return make_response('something strange happened', 500)
Пример #13
0
def icecast_remove_mount():
    logger.info('remove_mount {}'.format(request.form))
    if request.form['action'] != 'mount_remove':
        return make_response('you just went full retard', 405)
    relay = Relay.get_relay(address=request.form['server'],
                            port=request.form['port'])
    stream = Stream.get_stream(mount=request.form['mount'])
    if relay and stream:
        stream.add_relay(relay)
        stream_relay = relay.get_stream_relay(stream)
        stream_relay.set_offline()
        session.flush()
        relay.update_statistic()
        stream.update_statistic()
        relay.get_stream_relay(stream).update_statistic()
        session.commit()
        return make_response('ok', 200, {'icecast-auth-user': '******'})
    else:
        return make_response('something strange happened', 500)
Пример #14
0
def icecast_add_mount():
    logger.info('add_mount {}'.format(request.form))
    if request.form['action'] != 'mount_add':
        return make_response('you just went full retard', 405)
    relay = Relay.get_relay(address=request.form['server'],
                            port=request.form['port'])
    stream = Stream.get_stream(mount=request.form['mount'])
    if relay and stream:
        stream.add_relay(relay)
        session.flush()
        '''Cycle every listener'''
        relay.get_stream_relay(stream).set_offline()
        session.flush()

        relay.get_stream_relay(stream).status = StreamRelay.STATUS.ONLINE
        relay.status = Relay.STATUS.ONLINE
        session.commit()
        return make_response('ok', 200, {'icecast-auth-user': '******'})
    else:
        return make_response('something strange happened', 500)