def now_playing(): try: ret = {} #gather showinfos show = Show.get_active_show() if show: user = show.get_active_user() if show.end: end = to_timestamp(to_user_timezone(show.end)) else: end = None ret['show'] = {'id': show.show, 'name': show.name, 'begin': to_timestamp(to_user_timezone(show.begin)), 'now': to_timestamp(to_user_timezone(now())), 'end': end, 'logo': show.get_logo(), 'type': Show.FLAGS.name(show.flags), 'user': {'countryball': iso_country_to_countryball(user.country)} } if show.series: ret['series'] = {'name': show.series.name} link_users = [] for ushow in show.users: link_users.append(make_user_link(ushow.user)) ret['users'] = {'links': natural_join(link_users)} #gather trackinfos track = Track.current_track() if track: ret['track'] = {'title': track.title.name, 'artist': track.title.artist.name, } #gather nextshow infos if show and show.end: filter_begin = show.end else: filter_begin = now() if request.args.get('full') == 'true': nextshow = Show.query.filter(Show.begin >= filter_begin).order_by(Show.begin.asc()).first(); if nextshow: ret['nextshow'] = {'name': nextshow.name, 'begin': to_timestamp(to_user_timezone(nextshow.begin)), 'logo': nextshow.get_logo()} if nextshow.series: ret['nextshow']['series'] = nextshow.series.name #get listenerinfo for disco listeners = Listener.get_current_listeners() ret['listener'] = {} for listener in listeners: ret['listener'][listener.listener] = {'listener': listener.listener, 'county': listener.country, 'countryball': iso_country_to_countryball(listener.country)} return jsonify({'success': True, 'data': ret}) except Exception as e: raise e return jsonify({'success': False, 'data': unicode(e)})
def listenerdata(start, stop): from rfk.site import app app.logger.warn(start) app.logger.warn(stop) stop = parse_datetimestring(stop) start = parse_datetimestring(start) app.logger.warn(start) app.logger.warn(stop) ret = {'data': {}, 'shows': []} streams = Stream.query.all() for stream in streams: ret['data'][str(stream.mount)] = [] #just set an initial stating point from before the starting point stats = stream.statistic.get(stop=start, num=1, reverse=True) c = 0 for stat in stats: c = stat.value if not stats: c = 0 ret['data'][str(stream.mount)].append( (to_timestamp(to_user_timezone(start)), int(c))) #fill in the actual datapoints streams = Stream.query.all() for stream in streams: stats = stream.statistic.get(start=start, stop=stop) for stat in stats: ret['data'][str(stream.mount)].append( (to_timestamp(to_user_timezone(stat.timestamp)), int(stat.value))) streams = Stream.query.all() for stream in streams: stats = stream.statistic.get(stop=stop, num=1, reverse=True) for stat in stats: c = stat.value if not stats: c = 0 ret['data'][str(stream.mount)].append( (to_timestamp(to_user_timezone(stop)), int(c))) #get the shows for the graph shows = Show.query.filter(between(Show.begin, start, stop) \ | between(Show.end, start, stop)).order_by(Show.begin.asc()).all() for show in shows: sstart = to_timestamp(to_user_timezone(show.begin)) if show.end: send = to_timestamp(to_user_timezone(show.end)) else: send = to_timestamp(to_user_timezone(now())) ret['shows'].append({'name': show.name, 'b': sstart, 'e': send}) return jsonify(ret)
def listenerdata(start, stop): from rfk.site import app app.logger.warn(start) app.logger.warn(stop) stop = parse_datetimestring(stop) start = parse_datetimestring(start) app.logger.warn(start) app.logger.warn(stop) ret = {'data': {}, 'shows': []} streams = Stream.query.all() for stream in streams: ret['data'][str(stream.mount)] = [] #just set an initial stating point from before the starting point stats = stream.statistic.get(stop=start, num=1, reverse=True) c = 0 for stat in stats: c = stat.value if not stats: c = 0 ret['data'][str(stream.mount)].append((to_timestamp(to_user_timezone(start)), int(c))) #fill in the actual datapoints streams = Stream.query.all() for stream in streams: stats = stream.statistic.get(start=start, stop=stop) for stat in stats: ret['data'][str(stream.mount)].append( (to_timestamp(to_user_timezone(stat.timestamp)), int(stat.value))) streams = Stream.query.all() for stream in streams: stats = stream.statistic.get(stop=stop, num=1, reverse=True) for stat in stats: c = stat.value if not stats: c = 0 ret['data'][str(stream.mount)].append((to_timestamp(to_user_timezone(stop)), int(c))) #get the shows for the graph shows = Show.query.filter(between(Show.begin, start, stop) \ | between(Show.end, start, stop)).order_by(Show.begin.asc()).all() for show in shows: sstart = to_timestamp(to_user_timezone(show.begin)) if show.end: send = to_timestamp(to_user_timezone(show.end)) else: send = to_timestamp(to_user_timezone(now())) ret['shows'].append({'name': show.name, 'b': sstart, 'e': send}) return jsonify(ret)