import re
class ExtratorURL:
def __init__(self, url):
self.url = self.limpa_espaco_vazio(url)
self.valida_url()
#LIMPEZA DA URL (SANITIZAÇÃO)
def limpa_espaco_vazio(self,url):
if(type(url) == str):
return url.strip()
else:
return ''
#VALIDAÇÃO DA URL
def valida_url(self):
if(not self.url):
raise ValueError('A URL esta vazia')
#COMPARA O PADRÃO CRIADO COM A STRING DO OBJETO. #É PRECISO IMPORTAR RE
padrao_url = re.compile('(http(s)?://)?(www.)?bytebank.com(.br)?/cambio')
match = padrao_url.match(self.url)
if not (match):
raise ValueError('A URL não é válida')
#FATIA A BASE DA URL
def get_url_base(self):
indice_interrogacao = self.url.find('?')
url_base = self.url[:indice_interrogacao]
return url_base
#FATIA O PARAMETRO DA URL
def get_url_parametro(self):
indice_interrogacao = self.url.find('?')
url_parametro = self.url[indice_interrogacao + 1:]
return url_parametro
#FATIA O VALOR DO PARAMETRO INFORMADO NO 'PARAMETRO_BUSCA'
def get_valor_parametro(self, parametro_busca):
indice_parametro = self.get_url_parametro().find(parametro_busca)
indice_valor = indice_parametro + len(parametro_busca) + 1
indice_e_comercial = self.get_url_parametro().find('&', indice_valor)
if (indice_e_comercial == -1):
valor = self.get_url_parametro()[indice_valor: ]
else:
valor = self.get_url_parametro()[indice_valor : indice_e_comercial]
return valor
#MÉTODO ESPECIAL PARA PERMITIR A CONTAGEM DOS CARACTERES DO OBJETO.
def __len__(self):
return len(self.url)
#MÉTODO ESPECIAL PARA PERMITIR IMPRIMIR O VALOR DO OBJETO.
def __str__(self):
return self.url
url = 'https://bytebank.com/cambio?quantidade=100&moedaOrigem=dolar&moedaDestino=real'
extrator_url = ExtratorURL(url) #OBJETO
valor_dolar = 5.50
moeda_Origem = extrator_url.get_valor_parametro('moedaOrigem') #IMPRIME O VALOR DA MOEDA DE ORIGEM
moeda_Destino = extrator_url.get_valor_parametro('moedaDestino') #IMPRIME O VALOR DA MOEDA DE DESTINO
quantidade = extrator_url.get_valor_parametro('quantidade') #IMPRIME A QUANTIDADE
if(moeda_Origem == 'dolar' and moeda_Destino == 'real'): #CONVERSÃO DE DOLAR PARA REAL
conversao_dolar_real = int(quantidade) * valor_dolar
print(f'O valor de ${quantidade} dolares, equivale a R${conversao_dolar_real} reais')
elif(moeda_Origem == 'real' and moeda_Destino == 'dolar'): #CONVERSÃO DE REAL PARA DOLAR
conversao_real_dolar = int(quantidade) / valor_dolar
print(f'O valor de R${quantidade} reais, equivale a ${conversao_real_dolar} dolares')
else:
print('A conversão de moedas não esta disponível')