def landing(path=''): page = vtuner.Page() page.add(vtuner.Directory('Radiobrowser', url_for('radiobrowser_landing', _external=True), 4)) if my_stations_enabled: page.add(vtuner.Directory('My Stations', url_for('my_stations_landing', _external=True), len(my_stations.get_category_directories()))) else: page.add(vtuner.Display("'My Stations' feature not configured.")) page.set_count(1) return page.to_string()
def get_station_info(): stationid = request.args.get('id') if not stationid: logging.error("Station info without station ID requested") abort(400) station = get_station_by_id(stationid, additional_info=(not station_tracking)) if not station: logging.error("Could not get station with id '%s'", stationid) page = vtuner.Page() page.add(vtuner.Display("Station not found")) page.set_count(1) return page.to_string() vtuner_station = station.to_vtuner() if station_tracking: vtuner_station.set_trackurl(request.host_url + PATH_ROOT + '/' + PATH_PLAY + '?id=' + vtuner_station.uid) vtuner_station.icon = request.host_url + PATH_ROOT + '/' + PATH_ICON + '?id=' + vtuner_station.uid page = vtuner.Page() page.add(vtuner_station) page.set_count(1) return page.to_string()
def station_search(): query = request.args.get('search') if not query or len(query) < 3: page = vtuner.Page() page.add(vtuner.Display("Search query too short")) page.set_count(1) return page.to_string() else: # TODO: we also need to include 'my station' elements stations = radiobrowser.search(query) return get_stations_page(stations, request).to_string()
def get_directories_page(subdir, directories, request): page = vtuner.Page() if len(directories) == 0: page.add(vtuner.Display("No entries found")) page.set_count(1) return page for directory in get_paged_elements(directories, request.args): vtuner_directory = vtuner.Directory(directory.name, url_for(subdir, _external=True, directory=directory.name), directory.item_count) page.add(vtuner_directory) page.set_count(len(directories)) return page
def radiobrowser_landing(): page = vtuner.Page() page.add(vtuner.Directory('Genres', url_for('radiobrowser_genres', _external=True), len(radiobrowser.get_genre_directories()))) page.add(vtuner.Directory('Countries', url_for('radiobrowser_countries', _external=True), len(radiobrowser.get_country_directories()))) page.add(vtuner.Directory('Languages', url_for('radiobrowser_languages', _external=True), len(radiobrowser.get_language_directories()))) page.add(vtuner.Directory('Most Popular', url_for('radiobrowser_popular', _external=True), len(radiobrowser.get_stations_by_votes()))) page.set_count(4) return page.to_string()
def get_stations_page(stations, request): page = vtuner.Page() if len(stations) == 0: page.add(vtuner.Display("No stations found")) page.set_count(1) return page for station in get_paged_elements(stations, request.args): vtuner_station = station.to_vtuner() if station_tracking: vtuner_station.set_trackurl(request.host_url + PATH_ROOT + '/' + PATH_PLAY + '?id=' + vtuner_station.uid) vtuner_station.icon = request.host_url + PATH_ROOT + '/' + PATH_ICON + '?id=' + vtuner_station.uid page.add(vtuner_station) page.set_count(len(stations)) return page
def station_search(): query = request.args.get('search') if not query: query = request.args.get('Search') if not query or len(query) < 3: page = vtuner.Page() page.add(vtuner.Display("Search query too short")) page.set_count(1) return page.to_string() station = get_station_by_id(query, additional_info=(not station_tracking)) if station: stations = [station] else: # TODO: we also need to include 'my station' elements stations = radiobrowser.search(query) return get_stations_page(stations, request).to_string()