def get(self, time_range): """Gets aggregated app metrics based on time range and bucket size""" if time_range not in valid_bucket_sizes: abort_bad_path_param('time_range', ns) args = aggregate_app_metrics_parser.parse_args() limit = format_limit(args, max_limit=100) metrics = get_aggregate_app_metrics(time_range, limit) response = success_response(metrics) return response
def get(self, version): underground_trending_versions = trending_strategy_factory.get_versions_for_type(TrendingType.UNDERGROUND_TRACKS).keys() version_list = list(filter(lambda v: v.name == version, underground_trending_versions)) if not version_list: abort_bad_path_param('version', full_ns) args = underground_trending_parser.parse_args() strategy = trending_strategy_factory.get_strategy(TrendingType.UNDERGROUND_TRACKS, version_list[0]) trending_tracks = get_underground_trending(request, args, strategy) return success_response(trending_tracks)
def get(self, version): """Get trending playlists""" trending_playlist_versions = trending_strategy_factory.get_versions_for_type(TrendingType.PLAYLISTS).keys() version_list = list(filter(lambda v: v.name == version, trending_playlist_versions)) if not version_list: abort_bad_path_param('version', full_ns) args = full_trending_parser.parse_args() strategy = trending_strategy_factory.get_strategy(TrendingType.PLAYLISTS, version_list[0]) playlists = get_full_trending_playlists(request, args, strategy) return success_response(playlists)
def get(self, version): """Gets the top 100 trending (most popular) tracks on Audius""" trending_track_versions = trending_strategy_factory.get_versions_for_type(TrendingType.TRACKS).keys() version_list = list(filter(lambda v: v.name == version, trending_track_versions)) if not version_list: abort_bad_path_param('version', ns) args = trending_parser.parse_args() strategy = trending_strategy_factory.get_strategy(TrendingType.TRACKS, version_list[0]) trending_tracks = get_trending(args, strategy) return success_response(trending_tracks)
def get(self, version): trending_track_versions = trending_strategy_factory.get_versions_for_type(TrendingType.TRACKS).keys() version_list = list(filter(lambda v: v.name == version, trending_track_versions)) if not version_list: abort_bad_path_param('version', full_ns) args = full_recommended_track_parser.parse_args() limit = format_limit(args, default_limit=DEFAULT_RECOMMENDED_LIMIT) args['limit'] = max(TRENDING_LIMIT, limit) strategy = trending_strategy_factory.get_strategy(TrendingType.TRACKS, version_list[0]) full_recommended_tracks = get_full_recommended_tracks(request, args, strategy) return success_response(full_recommended_tracks[:limit])
def get(self, version): trending_track_versions = trending_strategy_factory.get_versions_for_type( TrendingType.TRACKS).keys() version_list = list( filter(lambda v: v.name == version, trending_track_versions)) if not version_list: abort_bad_path_param("version", ns) args = trending_parser.parse_args() strategy = trending_strategy_factory.get_strategy( TrendingType.TRACKS, version_list[0]) trending_tracks = get_trending(args, strategy) return success_response(trending_tracks)
def get(self, time_range): """Gets aggregated route metrics based on time range and bucket size""" if time_range not in valid_bucket_sizes: abort_bad_path_param('time_range', ns) args = aggregate_route_metrics_parser.parse_args() valid_buckets = valid_bucket_sizes[time_range] bucket_size = args.get("bucket_size") or valid_buckets[0] if bucket_size not in valid_buckets: abort_bad_request_param('bucket_size', ns) metrics = get_aggregate_route_metrics(time_range, bucket_size) response = success_response(metrics) return response
def get(self, version): """Gets the track ids of the top trending tracks on Audius based on the trending version""" trending_track_versions = trending_strategy_factory.get_versions_for_type(TrendingType.TRACKS).keys() version_list = list(filter(lambda v: v.name == version, trending_track_versions)) if not version_list: abort_bad_path_param('version', full_ns) args = trending_ids_route_parser.parse_args() strategy = trending_strategy_factory.get_strategy(TrendingType.TRACKS, version_list[0]) trending_ids = get_trending_ids(args, strategy) res = { "week": list(map(get_encoded_track_id, trending_ids["week"])), "month": list(map(get_encoded_track_id, trending_ids["month"])), "year": list(map(get_encoded_track_id, trending_ids["year"])) } return success_response(res)
def get(self, version): trending_track_versions = trending_strategy_factory.get_versions_for_type( TrendingType.TRACKS).keys() version_list = list( filter(lambda v: v.name == version, trending_track_versions)) if not version_list: abort_bad_path_param("version", full_ns) args = trending_ids_route_parser.parse_args() args["limit"] = args.get("limit", 10) strategy = trending_strategy_factory.get_strategy( TrendingType.TRACKS, version_list[0]) trending_ids = get_trending_ids(args, strategy) res = { "week": list(map(get_encoded_track_id, trending_ids["week"])), "month": list(map(get_encoded_track_id, trending_ids["month"])), "year": list(map(get_encoded_track_id, trending_ids["year"])), } return success_response(res)
def get(self, version): """Gets top trending playlists for time period on Audius""" trending_playlist_versions = trending_strategy_factory.get_versions_for_type(TrendingType.PLAYLISTS).keys() version_list = list(filter(lambda v: v.name == version, trending_playlist_versions)) if not version_list: abort_bad_path_param('version', ns) args = trending_parser.parse_args() time = args.get("time") time = "week" if time not in ["week", "month", "year"] else time args = { "time": time, "with_tracks": False } strategy = trending_strategy_factory.get_strategy(TrendingType.PLAYLISTS, version_list[0]) playlists = get_trending_playlists(args, strategy) playlists = playlists[:TRENDING_LIMIT] playlists = list(map(extend_playlist, playlists)) return success_response(playlists)