mirror of https://github.com/interlegis/sigi.git
Sesostris Vieira
2 years ago
1 changed files with 83 additions and 0 deletions
@ -0,0 +1,83 @@ |
|||||
|
import csv |
||||
|
import datetime |
||||
|
import re |
||||
|
from urllib.parse import urlparse |
||||
|
from sigi.apps.casas.models import Orgao |
||||
|
|
||||
|
|
||||
|
def run(): |
||||
|
f = open("/tmp/contato.csv", "r", encoding="iso8859-1") |
||||
|
|
||||
|
reader = csv.DictReader(f, delimiter=";") |
||||
|
reader.fieldnames |
||||
|
|
||||
|
dados = {r["IDIBGE"]: r for r in reader} |
||||
|
encontrados = list( |
||||
|
filter( |
||||
|
lambda x: dados[x]["CAIXA"] == "Encontrado" |
||||
|
and dados[x]["ENDERECO"] != "" |
||||
|
and dados[x]["TELEFONE"] != "" |
||||
|
and dados[x]["SITE"] != "" |
||||
|
and dados[x]["Email"] != "", |
||||
|
dados, |
||||
|
) |
||||
|
) |
||||
|
|
||||
|
jan20 = datetime.date(2020, 1, 1) |
||||
|
|
||||
|
patterns = [ |
||||
|
re.compile( |
||||
|
"(?P<logradouro>.+)- ?(?P<bairro>.+), ?(.+)- ?(.+), ?(?P<cep>\d{5}-\d{3})" |
||||
|
), |
||||
|
re.compile( |
||||
|
"(?P<logradouro>.+,.+), ?(.+)- ?(.+), ?(?P<cep>\d{5}-\d{3})" |
||||
|
), |
||||
|
re.compile("(?P<logradouro>.+), ?(.+-.+), ?(?P<cep>\d{5}-\d{3})"), |
||||
|
re.compile("(.+)- ?(.+), ?(?P<cep>\d{5}-\d{3})"), |
||||
|
re.compile("(?P<logradouro>.+, ?\d*) ?- ?(?P<bairro>.+),(.+)-(.+)"), |
||||
|
] |
||||
|
|
||||
|
for id in encontrados: |
||||
|
o = Orgao.objects.get(tipo__sigla="CM", municipio__codigo_ibge=id) |
||||
|
salvar = False |
||||
|
if ( |
||||
|
dados[id]["ENDERECO"] != "" |
||||
|
and dados[id]["ENDERECO"] != o.logradouro |
||||
|
and (o.ult_alt_endereco and o.ult_alt_endereco.date() < jan20) |
||||
|
): |
||||
|
m = None |
||||
|
for pattern in patterns: |
||||
|
m = pattern.search(dados[id]["ENDERECO"]) |
||||
|
if m is not None: |
||||
|
break |
||||
|
if m is not None: |
||||
|
addr = m.groupdict() |
||||
|
if "logradouro" in addr: |
||||
|
o.logradouro = addr["logradouro"] |
||||
|
if "bairro" in addr: |
||||
|
o.bairro = addr["bairro"] |
||||
|
if "cep" in addr: |
||||
|
o.cep = addr["cep"] |
||||
|
salvar = True |
||||
|
else: |
||||
|
o.logradouro = dados[id]["ENDERECO"] |
||||
|
salvar = True |
||||
|
if ( |
||||
|
dados[id]["TELEFONE"] != "" |
||||
|
and dados[id]["TELEFONE"] != o.telefone_geral |
||||
|
): |
||||
|
o.telefone_geral = dados[id]["TELEFONE"] |
||||
|
salvar = True |
||||
|
if dados[id]["SITE"] != "" and dados[id]["SITE"] != o.pagina_web: |
||||
|
parsed_url = urlparse(dados[id]["SITE"]) |
||||
|
url = f"{parsed_url.scheme}://{parsed_url.netloc}/" |
||||
|
o.pagina_web = url |
||||
|
salvar = True |
||||
|
if dados[id]["Email"] != "" and dados[id]["Email"] != o.email: |
||||
|
o.email = dados[id]["Email"] |
||||
|
salvar = True |
||||
|
if salvar: |
||||
|
if len(o.logradouro) > 100: |
||||
|
o.logradouro = o.logradouro[:100] |
||||
|
o.save() |
||||
|
print(o.nome) |
Loading…
Reference in new issue