def complete_video_terms(self, all=False): if app.config.get("USE_ALL_TERMS_FOR_VIDEO_COMPLETE", False): return self.complete_all_terms() # Client should hit youtube service directly because this service # is likely to be throttled by IP address query = request.args.get("q", "") if not query: abort(400) result = youtube.complete(query) return Response(result, mimetype="text/javascript")
def complete_all_terms(self): query = request.args.get("q", "") if not query: abort(400) if app.config.get("DOLLY") and use_elasticsearch(): terms = SuggestionSearch().completion_suggestions(query) result = json.dumps((query, [(t, 0) for t in terms], {})) return Response("window.google.ac.h(%s)" % result, mimetype="text/javascript") result = youtube.complete(query) if len(query) >= 4: try: result = result.decode("utf8") except UnicodeDecodeError: result = result.decode("latin1") terms = json.loads(result[result.index("(") + 1 : result.rindex(")")]) return self.complete_channel_terms(terms[1]) return Response(result, mimetype="text/javascript")