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
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)
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)
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)
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': '******'})
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': '******'})
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)
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)
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)