def post(self): self.response.headers['Content-Type'] = 'text/html' action = self.request.get('button') user = users.get_current_user() user_key = ndb.Key('MyUser', user.user_id()) user_info = user_key.get() if action == 'Add': original_word = (self.request.get('Word')).lower() if not re.match("^[a-z]*$", original_word.lower()): message = "Please enter alphabets only" else: Word = lexi(self.request.get('Word')) anagram_key = ndb.Key('Anagram', user.email() + Word) anagram = anagram_key.get() # & anagram.User != user if anagram == None: new_anagram = Anagram(id=user.email() + Word, AnagramKey=Word) new_anagram.User = user.email() new_anagram.WordList.append(original_word) new_anagram.WordCount = 1 new_anagram.LetterCount = len(original_word) new_anagram.put() user_info.myAnagram = user_info.myAnagram + 1 user_info.myWordCount = user_info.myWordCount + 1 user_info.put() message = "Word added" else: flag = False for word in anagram.WordList: if word == original_word: flag = True break else: flag = False if flag: message = "Word already exists" else: # anagram.User=user.email() anagram.WordList.append(original_word) anagram.WordCount = anagram.WordCount + 1 anagram.put() message = "Word added" user_info.myWordCount = user_info.myWordCount + 1 user_info.put() template_values = {'message': message} template = JINJA_ENVIRONMENT.get_template('add.html') self.response.write(template.render(template_values))
def post(self): self.response.headers["Content-Type"] = "text/html" file = self.request.get("textfile") openFile = open(file) readLine = openFile.readline() while readLine: text_word = (readLine.strip('\n\r')).lower() sorted_key = Services().sorted_key(word=text_word) list_word = Anagram.query() list_word = list_word.filter( Anagram.anagram_key == sorted_key, Anagram.user_id == Services().get_current_user_id()) list_word = list_word.fetch() valid_permutation = Services().validpermutations(text=sorted_key) if len(valid_permutation) > 0: if len(list_word) > 0: anagram = list_word[0] if text_word not in anagram.inputed_words: inputed_words = anagram.inputed_words inputed_words.append(text_word) anagram.inputed_words = inputed_words anagram.inputed_words_count = anagram.inputed_words_count + 1 anagram.put() else: new_anagram = Anagram( anagram_key=sorted_key, anagram_words=Services().possiblepermutations( text=sorted_key), inputed_words=[text_word], inputed_words_count=1, word_length=len(text_word), user_id=Services().get_current_user_id()) new_anagram.put() readLine = openFile.readline() openFile.close() message = "Upload completed" template_values = {'message': message} template = JINJA_ENVIRONMENT.get_template("importdata.html") self.response.write(template.render(template_values))
def add_new_anagram(my_user, text, anagram_id, anagram_key): if is_english_word(text): anagram = Anagram(id=anagram_id) anagram.words.append(text) anagram.sorted_word = generate_id(text) anagram.length = len(text) anagram.user_id = my_user.key.id() anagram.put() # add key of the new anagram to the users KeyProperty my_user.anagrams.append(anagram_key) my_user.put()
def addanagram_new(my_user, text, words, anagram_id, anagram_key): if englishword(text): anagram = Anagram(id=anagram_id) anagram.words.append(text) anagram.sorted_word = generateid_for_users(text) anagram.length = len(text) anagram.words_count = len(anagram.words) anagram.sub_words = words anagram.user_id = my_user.key.id() anagram.put() my_user.anagrams.append(anagram_key) my_user.put()
def post(self): self.response.headers["Content-Type"] = "text/html" if self.request.get("addword") == "Add Word": user_word = self.request.get("word").lower() if Services().get_current_user() == None or user_word == None or user_word == "" : self.redirect("/addword") return current_user_id = Services().get_current_user_id() sorted_key = Services().sorted_key(word =user_word) list_word = Anagram.query() list_word = list_word.filter(Anagram.anagram_key == sorted_key,Anagram.user_id == current_user_id) list_word = list_word.fetch() valid_permutation = Services().validpermutations(text=sorted_key) if len(valid_permutation) == 0: self.redirect("/addword") return if len(list_word) > 0: anagram = list_word[0] if user_word in anagram.inputed_words: self.redirect("/addword") return inputed_words = anagram.inputed_words inputed_words.append(user_word) anagram.inputed_words = inputed_words anagram.inputed_words_count = anagram.inputed_words_count + 1 anagram.put() else: new_anagram = Anagram(anagram_key=sorted_key, anagram_words = Services().possiblepermutations(text=sorted_key), inputed_words = [user_word], inputed_words_count = 1, word_length = len(user_word), user_id = current_user_id) new_anagram.put() self.redirect("/")
def post(self): self.response.headers["Content-Type"] = "text/html" # checking whether the key is add word if self.request.get("newdevice") == "Add Word": inputed_word = self.request.get("word").lower() # checking whether the inputed word is null or not and redirecting to the add word paeg if Services().get_current_user( ) == None or inputed_word == None or inputed_word == "": self.redirect("/newdevice") return current_user_id = Services().get_current_user_id() sorted_key = Services().sorted_key(word=inputed_word) list_word = Anagram.query() list_word = list_word.filter(Anagram.anagram_key == sorted_key, Anagram.user_id == current_user_id) list_word = list_word.fetch() valid_permutation = Services().validpermutations(text=sorted_key) # checking whether the inputed word has valid permutations or not if len(valid_permutation) == 0: self.redirect("/newdevice") return # checking whether the there are any word in the list or redirecting to the add word page if len(list_word) > 0: anagram = list_word[0] if inputed_word in anagram.input_words: self.redirect("/newdevice") return inputed_words = anagram.input_words inputed_words.append(inputed_word) anagram.input_words = inputed_words anagram.input_words_count = anagram.input_words_count + 1 anagram.put() else: new_anagram = Anagram( anagram_key=sorted_key, anagram_words=Services().permutations(text=sorted_key), input_words=[inputed_word], input_words_count=1, word_length=len(inputed_word), user_id=current_user_id) new_anagram.put() self.redirect("/")
def add_new_anagram(my_user, text, anagram_id, anagram_key): if text: anagram = Anagram(id=anagram_id) anagram.words.append(text) anagram.sorted_word = generate_id(text) anagramList = list(text) anagram.sub_anagram = generateSubAnagrams(anagramList) anagram.length = len(text) anagram.user_id = my_user.key.id() anagram.put() my_user.anagrams.append(anagram_key) if anagram.sorted_word is not None: my_user.anagram_count += 1 my_user.anagram_count if anagram.words is not None: my_user.words_count += 1 my_user.words_count my_user.put()
def post(self): self.response.headers['Content-Type'] = 'text/html' action = self.request.get('button') user = users.get_current_user() myuser_key = ndb.Key('MyUser', user.user_id()) myuser = myuser_key.get() file = self.request.get('myFile') if action == 'UPLOAD': f = open(file) line = f.readline() # count = 1 while line: original_word = (line.strip('\n\r')).lower() lexi_word = lexi(original_word) anagram_key = ndb.Key('Anagram',user.email()+lexi_word) anagram = anagram_key.get() if anagram == None: new_anagram = Anagram(id=user.email()+lexi_word,AnagramKey=lexi_word) new_anagram.User=user.email() new_anagram.WordList.append(original_word) new_anagram.WordCount = 1 new_anagram.LetterCount = len(original_word) new_anagram.put() myuser.myAnagram = myuser.myAnagram + 1 myuser.myWordCount = myuser.myWordCount + 1 myuser.put() else: flag = False for word in anagram.WordList: if word == original_word: flag = True break else: flag = False if flag: message = "Word already exists" else: # anagram.User=user.email() anagram.WordList.append(original_word) anagram.WordCount = anagram.WordCount + 1 anagram.put() # message = "Word added" myuser.myWordCount = myuser.myWordCount + 1 myuser.put() # count = count + 1 line = f.readline() f.close() template_values={ 'message':"File Uploaded" } template = JINJA_ENVIRONMENT.get_template('upload.html') self.response.write(template.render(template_values))