Advertisement
fahadkalil

teste_encurtador

Mar 27th, 2020
453
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.86 KB | None | 0 0
  1. import pickle
  2. from math import floor
  3.  
  4. class Encurtador:
  5.     def __init__(self):
  6.         self.dic = {}
  7.         self.nome_arq = "urls.dat"
  8.         self.__load_dic()
  9.         self.indice = 1000 + len(self.dic)
  10.  
  11.     def __load_dic(self):
  12.         # carregar dicionario do arquivo .. variavel self.nome_arq
  13.         # testar se arquivo existe
  14.         pass
  15.  
  16.     def __save_dic(self):
  17.         # salvar dicionario no arquivo .. variavel self.nome_arq
  18.         pass
  19.  
  20.     def toBase(self, num, b = 62):
  21.         if b <= 0 or b > 62:
  22.             return 0
  23.         base = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  24.         r = num % b
  25.         res = base[r];
  26.         q = floor(num / b)
  27.         while q:
  28.             r = q % b
  29.             q = floor(q / b)
  30.             res = base[int(r)] + res
  31.         return res
  32.  
  33.     def to10(self, num, b = 62):
  34.         base = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  35.         limit = len(num)
  36.         res = 0;
  37.         for i in range(limit):
  38.             res = b * res + base.find(num[i])
  39.         return res
  40.  
  41.     def encurtar(self, url):
  42.         # salvar no dicionario usando como chave o valor da variavel self.indice
  43.         # o valor a ser salvo é uma tupla onde a posicao 0 eh o indice convertido
  44.         # para string usando base62 e a posicao 1 eh a url original
  45.         # nao esqueca de incrementar a variavel self.indice
  46.         # e por fim, chamar o metodo __save_dic para salvar o dicionario no arquivo em disco.
  47.  
  48.     def buscar(self, url_curta):
  49.         indice = self.to10(url_curta)
  50.         return self.dic[indice][1] # retorna a 2a posicao da tupla
  51.  
  52.     def listar_urls(self):
  53.         print(self.dic)
  54.    
  55. ## TESTES ##
  56. e = Encurtador()
  57. e.encurtar("https://imed.edu.br/Ensino/ciencia-da-computacao/graduacao/sobre-a-profissao/")
  58.  
  59. e.listar_urls()
  60.  
  61. #print(e.buscar('g8'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement