Esempio n. 1
0
 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")
Esempio n. 2
0
 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")