Exemple #1
0
 def generate_short_id(self, long_id, single_type):
     short_id = db.get_short_id_from_long_id(self._user['id'], long_id, single_type)
     if short_id is not None:
         if self.no_duplicate:
             raise DuplicateError
     else:
         self._user['id_list_ptr'] += 1
         short_id = self._user['id_list_ptr']
         if short_id >= config.MAX_ID_LIST_NUM:
             short_id = self._user['id_list_ptr'] = 0
         old_long_id, _ = db.get_long_id_from_short_id(self._user['id'], short_id)
         if db.get_long_id_count(old_long_id) <= 1:
             db.delete_cache(old_long_id)
         db.update_user(id=self._user['id'], id_list_ptr=short_id)
         db.update_long_id_from_short_id(self._user['id'], short_id, long_id, single_type)
     return short_id, number.digit_to_alpha(short_id)
Exemple #2
0
 def restore_short_id(self, short_id):
     short_id = str(short_id).upper()
     if short_id[0] == '#':
         g = short_id[1:]
     else:
         g = short_id
     if any(x not in short_id_pattern for x in g):
         raise TypeError('Incorrect short id %s.' % short_id)
     try:
         short_id = int(g)
     except ValueError:
         short_id = number.alpha_to_digit(g)
     if short_id < 0:
         raise ValueError('Unexpected value: %s' % str(short_id))
     if short_id < config.MAX_ID_LIST_NUM:
         return db.get_long_id_from_short_id(self._user['id'], short_id)
     else:
         return short_id, db.TYPE_STATUS