Ejemplo n.º 1
0
def test_deve_retornar_o_endereco_localhost_quando_sem_arg():
    util = Uteis([])
    uri = 'http://imoveis.powempresas.com/'
    assert util.uri == uri
Ejemplo n.º 2
0
def test_deve_existir_user_em_keys_quando_localhost():
    util = Uteis(['localhost'])
    util.set_keys()
    assert len(util.keys)
Ejemplo n.º 3
0
def test_deve_retornar_o_endereco_localhost_quando_tem_arg_localhost():
    util = Uteis(['localhost'])
    endereco = '/var/www/json/keys.json'
    assert util.endereco == endereco
Ejemplo n.º 4
0
def test_deve_retornar_o_uri_local_quando_tem_arg_programacao():
    util = Uteis(['programacao'])
    uri = 'http://localhost:5000/'
    assert util.uri == uri
Ejemplo n.º 5
0
def uteis_localhost():
    return Uteis(['teste'])
Ejemplo n.º 6
0
 def __init__(self, args, contato, cidades):
     self.__cidades = cidades
     self.__contato = contato
     self.__args = args
     self.__uteis = Uteis(self.__args)
     self.__uteis.set_keys()
Ejemplo n.º 7
0
 def __init__(self, args):
     self.__args = args
     self.__uteis = Uteis(args)
     self.__cidades = {}
Ejemplo n.º 8
0
from app.request import Request
from app.uteis import Uteis

uteis = Uteis(['localhost'])
uteis.set_keys()

request = Request(uteis)
data = {'filtro': {}}
data['filtro']['limit'] = 5
data['filtro']['dias'] = 60
data['url_tipo'] = 'contatos'
data['tipo'] = 'get'
request = request.request(data)
print(request)

Ejemplo n.º 9
0
 def __init__(self, args):
     self.__inicio = time.time()
     self.__args = args
     self.__uteis = Uteis(args)
     self.__cidades = Cidades(args)
     self._set_totais(0)
Ejemplo n.º 10
0
 def __init__(self, args):
     self.__args = args
     self.__uteis = Uteis(args)
Ejemplo n.º 11
0
def uteis_localhost():
    return Uteis(['localhost'])
Ejemplo n.º 12
0
def uteis_():
    return Uteis([])
Ejemplo n.º 13
0
def uteis_programacao():
    return Uteis(['programacao'])
Ejemplo n.º 14
0
def test_nao_deve_ter_keys_quando_programacao():
    util = Uteis(['programacao'])
    with pytest.raises(KeysInvalido):
        util.set_keys()
Ejemplo n.º 15
0
 def __init__(self, args, contato):
     self.__args = args
     self.__uteis = Uteis(self.__args)
     self.__contato = contato
     self._set_imoveis()
Ejemplo n.º 16
0
def test_deve_retornar_o_endereco_programacao_quando_tem_arg_programacao():
    util = Uteis(['programacao'])
    endereco = '/home/www/json/keys.json'
    assert util.endereco == endereco
Ejemplo n.º 17
0
class Contato:
    def __init__(self, args, contato, cidades):
        self.__cidades = cidades
        self.__contato = contato
        self.__args = args
        self.__uteis = Uteis(self.__args)
        self.__uteis.set_keys()

    @property
    def contato(self):
        return self.__contato

    def set(self):
        inicio = time.time()
        try:
            v = validate_email(self.contato['email'])
            imoveis = Imoveis(self.__args, self.__contato)
            corpo = Corpo_email(self.__cidades, self.__contato,
                                imoveis.itens['itens'], self.__uteis)
            c = corpo.get_imoveis_corpo()
            if self._envio(c):
                #upload
                fim = time.time()
                self.log('ok', fim - inicio)
                self.update_contato(self.contato['id'])
                return True
            fim = time.time()
            self.log('erro_disparo', fim - inicio)
            self.update_contato(self.contato['id'])
            return False
        except EmailNotValidError as e:
            message = '{} - Email inválido: {} - id {}'.format(
                str(e), self.contato['email'], self.contato['id'])
            self.log_error(message)
            self.update_contato(self.contato['id'])
            raise EmailInvalido(message)
        except ImoveisInvalido:
            message = 'Imoveis invalidos: id {}'.format(self.contato['id'])
            self.log_error(message)
            self.update_contato(self.contato['id'])
            return False
        except Exception as a:
            message = '{} id {}'.format(a, self.contato['id'])
            self.log_error(message)
            self.update_contato(self.contato['id'])
            return False

    def _titulo_email(self):
        itens = [
            'Encontre seu novo imóvel', 'Mais ofertas de imóvel',
            'Encontre mais imóveis hoje mesmo',
            'Continue buscando mais imóveis', 'Temos mais imóveis para você'
        ]
        index = random.randint(0, len(itens) - 1)
        return itens[index]

    def _envio(self, corpo):
        try:
            msg = EmailMessage()
            msg['Subject'] = self._titulo_email()
            msg['From'] = '*****@*****.**'
            if self.__uteis.teste:
                msg['To'] = '*****@*****.**'
            else:
                msg['To'] = self.contato['email']
            msg.add_header('Content-Type', 'text/html')
            msg.set_content(corpo, subtype='html')
            s = smtplib.SMTP(self.__uteis.keysEmail['smtp_host'],
                             int(self.__uteis.keysEmail['smtp_port']))
            s.login(self.__uteis.keysEmail['smtp_user'],
                    self.__uteis.keysEmail['smtp_pass'])
            s.sendmail(msg['From'], [msg['To']], msg.as_string())
            s.quit()
            return True
        except Exception as a:
            message = '{} id {}'.format(a, self.contato['id'])
            self.log_error(message)
            return False

    def update_contato(self, id):
        data = {'itens': {}}
        data['itens']['ids'] = id
        data['url_tipo'] = 'contato_up'
        data['tipo'] = 'put'
        return Request(self.__uteis).request(data)

    def log_error(self, message):
        data = {
            'formato': 'contato_erro',
            'arquivo': 'erro',
            'data': {
                'data': datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
                'message': message
            }
        }
        Logs(data)

    def log(self, status, tempo):
        data = {
            'formato': 'disparo',
            'arquivo': 'log',
            'data': {
                'data': datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
                'id': self.contato['id'],
                'email': self.contato['email'],
                'tempo': tempo,
                'status': status
            }
        }
        Logs(data)
Ejemplo n.º 18
0
def inicia():
    contato = {
        'cidade': '',
        'cidades': '1',
        'data': '09/03/2020 22:47',
        'email': '*****@*****.**',
        'id': '575947',
        'id_cadastro': 177912,
        'id_itens': '1961673',
        'id_tipo_item': '1',
        'nome': 'juliana reis',
        'qtde_contatos': 1,
        'tabela': 'imoveis',
        'tipo_negocio_item': 'venda',
        'tipos_item': 'apartamento'
    }
    cidades = {
        'itens': {
            1: {
                'logo':
                'tp_imoveissjp.gif',
                'titulo':
                'São José dos Pinhais',
                'link':
                'sao_jose_dos_pinhais_pr',
                'portal':
                'http://www.imoveissaojose.com',
                'menu': [{
                    'itens': [{
                        'descricao': 'Andar',
                        'id': '23',
                        'link': 'andar',
                        'qtde': '9'
                    }, {
                        'descricao': 'Apartamento',
                        'id': '1',
                        'link': 'apartamento',
                        'qtde': '1919'
                    }, {
                        'descricao': 'Área',
                        'id': '4',
                        'link': 'area',
                        'qtde': '87'
                    }, {
                        'descricao': 'Barracão / Galpão',
                        'id': '11',
                        'link': 'barracao_galpao',
                        'qtde': '33'
                    }, {
                        'descricao': 'Casa',
                        'id': '2',
                        'link': 'casa',
                        'qtde': '653'
                    }, {
                        'descricao': 'Conjunto Comercial',
                        'id': '9',
                        'link': 'conjunto_comercial',
                        'qtde': '15'
                    }, {
                        'descricao': 'Fazenda',
                        'id': '6',
                        'link': 'fazenda',
                        'qtde': '60'
                    }, {
                        'descricao': 'Hotel',
                        'id': '17',
                        'link': 'hotel',
                        'qtde': '1'
                    }, {
                        'descricao': 'Kitinete',
                        'id': '12',
                        'link': 'kitinete',
                        'qtde': '1'
                    }, {
                        'descricao': 'Loja',
                        'id': '8',
                        'link': 'loja',
                        'qtde': '8'
                    }, {
                        'descricao': 'Lote / Terreno',
                        'id': '3',
                        'link': 'lote_terreno',
                        'qtde': '339'
                    }, {
                        'descricao': 'Negócio/ Empresa',
                        'id': '20',
                        'link': 'negocio_empresa',
                        'qtde': '1'
                    }, {
                        'descricao': 'Outro',
                        'id': '14',
                        'link': 'outro',
                        'qtde': '7'
                    }, {
                        'descricao': 'Ponto Comercial',
                        'id': '22',
                        'link': 'ponto_comercial',
                        'qtde': '6'
                    }, {
                        'descricao': 'Prédio',
                        'id': '16',
                        'link': 'predio',
                        'qtde': '2'
                    }, {
                        'descricao': 'Salão',
                        'id': '24',
                        'link': 'salao',
                        'qtde': '1'
                    }, {
                        'descricao': 'Sítio e Chácara',
                        'id': '5',
                        'link': 'sitio_chacara',
                        'qtde': '208'
                    }, {
                        'descricao': 'Sobrado',
                        'id': '10',
                        'link': 'sobrado',
                        'qtde': '362'
                    }],
                    'link':
                    'venda',
                    'titulo':
                    'Comprar'
                }, {
                    'itens': [{
                        'descricao': 'Apartamento',
                        'id': '1',
                        'link': 'apartamento',
                        'qtde': '173'
                    }, {
                        'descricao': 'Área',
                        'id': '4',
                        'link': 'area',
                        'qtde': '4'
                    }, {
                        'descricao': 'Barracão / Galpão',
                        'id': '11',
                        'link': 'barracao_galpao',
                        'qtde': '53'
                    }, {
                        'descricao': 'Casa',
                        'id': '2',
                        'link': 'casa',
                        'qtde': '69'
                    }, {
                        'descricao': 'Conjunto Comercial',
                        'id': '9',
                        'link': 'conjunto_comercial',
                        'qtde': '39'
                    }, {
                        'descricao': 'Fazenda',
                        'id': '6',
                        'link': 'fazenda',
                        'qtde': '1'
                    }, {
                        'descricao': 'Kitinete',
                        'id': '12',
                        'link': 'kitinete',
                        'qtde': '4'
                    }, {
                        'descricao': 'Loja',
                        'id': '8',
                        'link': 'loja',
                        'qtde': '35'
                    }, {
                        'descricao': 'Lote / Terreno',
                        'id': '3',
                        'link': 'lote_terreno',
                        'qtde': '18'
                    }, {
                        'descricao': 'Negócio/ Empresa',
                        'id': '20',
                        'link': 'negocio_empresa',
                        'qtde': '1'
                    }, {
                        'descricao': 'Outro',
                        'id': '14',
                        'link': 'outro',
                        'qtde': '26'
                    }, {
                        'descricao': 'Ponto Comercial',
                        'id': '22',
                        'link': 'ponto_comercial',
                        'qtde': '6'
                    }, {
                        'descricao': 'Prédio',
                        'id': '16',
                        'link': 'predio',
                        'qtde': '6'
                    }, {
                        'descricao': 'Salão',
                        'id': '24',
                        'link': 'salao',
                        'qtde': '5'
                    }, {
                        'descricao': 'Sítio e Chácara',
                        'id': '5',
                        'link': 'sitio_chacara',
                        'qtde': '3'
                    }, {
                        'descricao': 'Sobrado',
                        'id': '10',
                        'link': 'sobrado',
                        'qtde': '26'
                    }],
                    'link':
                    'locacao',
                    'titulo':
                    'Alugar'
                }, {
                    'itens': [],
                    'link': 'locacao_dia',
                    'titulo': 'Alugar Dia'
                }]
            }
        },
        'principal': 1
    }
    args = {}
    args['localhost'] = 1
    args['dias'] = 30
    imoveis = Imoveis(args, contato).itens['itens']
    return {
        'cidades': cidades,
        'contato': contato,
        'imoveis': imoveis,
        'uteis': Uteis(args)
    }
Ejemplo n.º 19
0
def uteis_programacao():
    return Uteis(['teste'])