Exemplo n.º 1
0
 def register(cls,
              chat_id,
              first_name,
              last_name,
              username,
              is_bot=False,
              save=True):
     """
     register a new user on the db
     :param chat_id: user's chat id
     :param first_name: user's first name
     :param last_name: user's last name
     :param username: user's username
     :param is_bot: whether the user is a telegram bot
     :param save: if True, will save to db
     :return: User
     """
     user = cls()
     user.chat_id = chat_id
     user.first_name = first_name
     user.last_name = last_name
     user.username = username
     user.is_bot = is_bot
     user.public_id = generate_id(length=6)
     if save:
         user.save()
     return user
Exemplo n.º 2
0
def option_key_id():
    """ Return a Key ID that doesn't already exist. """
    key_id = utilities.generate_id()
    # See if this key already exists...
    key_found = ndb.Key(Option, key_id).get()
    if key_found is not None:
        # Try again!
        return option_key_id()
    return key_id
Exemplo n.º 3
0
    def search(self, text, my_user):
        anagram_id = my_user.key.id() + '/' + utilities.generate_id(text)
        anagram = ndb.Key(Anagram, anagram_id).get()

        if anagram:
            result = anagram.words
            result.remove(text)
            return result
        else:
            return None
Exemplo n.º 4
0
    def add(self, text, my_user):
        logging.debug('Add ' + text)
        if text is not None or text != '':
            anagram_id = utilities.generate_id(text)
            anagram_key = ndb.Key(Anagram, anagram_id)
            anagrams = anagram_key.get()

            if anagrams:
                utilities.add_to_anagram(my_user, text, anagram_key)
            else:
                utilities.add_new_anagram(my_user, text, anagram_id, anagram_key)
Exemplo n.º 5
0
    def add(self, text, my_user):
        logging.debug('Add ' + text)
        if text is not None or text != '':
            # Add anagram to datastore
            anagram_id = my_user.key.id() + '/' + utilities.generate_id(text)
            anagram_key = ndb.Key(Anagram, anagram_id)
            anagrams = anagram_key.get()

            if anagrams:
                # an anagram with this key already exists
                utilities.add_to_anagram(text, anagram_key)
            else:
                # this key doesnt exist --> write new anagram object to datastore
                utilities.add_new_anagram(my_user, text, anagram_id,
                                          anagram_key)
    def get(self):
        logging.debug("GET")
        self.response.headers['Content-Type'] = 'text/html'

        if utilities.user_is_logged_in():
            if not utilities.user_exists():
                utilities.add_new_user(utilities.get_user())

            renderer.render_searchtext(
                self, utilities.get_logout_url(self),
                utilities.generate_id(self.request.get('value')),
                utilities.prepare_text_input(self.request.get('value')),
                utilities.get_anagrams_of_user(utilities.get_my_user()))

        else:
            renderer.render_login(self, utilities.get_login_url(self))
Exemplo n.º 7
0
    def get(self):
        logging.debug("GET")
        self.response.headers['Content-Type'] = 'text/html'

        if utilities.user_is_logged_in():
            # if myuser object is None --> No user with key found --> new user --> make new user in datastore
            if not utilities.user_exists():
                utilities.add_new_user(utilities.get_user())

            renderer.render_searchtext(
                self, utilities.get_logout_url(self),
                utilities.generate_id(self.request.get('value')),
                utilities.prepare_text_input(self.request.get('value')),
                utilities.get_anagrams_of_user(utilities.get_my_user()))

        # if no user is logged in create login url
        else:
            renderer.render_login(self, utilities.get_login_url(self))
Exemplo n.º 8
0
    def post(self):
        self.response.headers['Content-Type'] = 'text/html'

        my_user = utilities.get_my_user()
        button = self.request.get('button')
        input_text = utilities.prepare_text_input(self.request.get('value'))
        file = self.request.get('uploadFile')

        if button == 'Upload':
            openFile = open(file)
            readLine = openFile.readline()
            while readLine:
                word = (readLine.strip('\n\r')).lower()

                permutations = utilities.all_permutations(word)
                wordsinfo = utilities.filter_english_words(permutations)

                anagram_id = my_user.key.id() + '/' + utilities.generate_id(
                    word)
                anagram_key = ndb.Key(Anagram, anagram_id)
                anagrams = anagram_key.get()

                if anagrams:

                    utilities.add_to_anagram(word, wordsinfo, anagram_key)
                else:

                    utilities.add_new_anagram(my_user, word, wordsinfo,
                                              anagram_id, anagram_key)

                readLine = openFile.readline()

            openFile.close()
            self.redirect('/')
        if button == 'Search':
            search_result = self.search(input_text, my_user)
            renderer.render_search(self, input_text, search_result)
        elif button == 'Generate':
            words = self.generate(input_text, my_user)
            renderer.render_search(self, input_text, words)
Exemplo n.º 9
0
def incoming_message():
    """ Respond to an incoming message. """
    response_object = {}
    response_object['id'] = utilities.generate_id()
    return json.dumps(response_object)
Exemplo n.º 10
0
def incoming_message():
    """ Respond to an incoming message. """
    response_object = {}
    response_object['id'] = utilities.generate_id()
    return json.dumps(response_object)