def get(self):
        print "Run BuildCompletionIndexHandler"
        keywords = []
        known_keywords = set()
        completionindex = CompletionIndex.query().get()
        if not completionindex:
            # No completionindex existing
            completionindex=CompletionIndex(keywords=[])
        streams = stream.query().order(-stream.num_of_view, -stream.num_of_pics)
        for temp_stream in streams:
            for temp_word in extract_stream_keywords(temp_stream):
                if temp_word in known_keywords:
                    continue
                keywords.append(temp_word)
                known_keywords.add(temp_word)

        completionindex.keywords = keywords
        completionindex.put()
 def get(self):
     print str(self.request.get("keywords"))
     no_backslash_string = str(self.request.get("keywords")).replace("\\"," ")
     keywords = filter(None, re.split(r'[ ,;\t\n\r\s]', no_backslash_string.lower() ) )
     result = []
     completion_words = []
     completion_index = CompletionIndex.query().get()
     if completion_index:
         completion_words = completion_index.keywords
     print completion_words
     for word in completion_words:  # copy
         if any(key in word.lower() for key in keywords):
             result.append(word)
             if len(result) == constants.AUTO_COMPLETE_LENGTH:
                 break
     if result:
         result.sort()
     print ("AutoCompleteHandler: keywords is " + " ".join(keywords))
     self.response.write(json.dumps(result, sort_keys=True))