22# -*- coding: utf-8 -*-
33from datetime import datetime
44import os
5+ import re
56
67import pymongo
78
@@ -20,11 +21,12 @@ class MongoDb(object):
2021
2122 def __init__ (self , address = 'localhost' ):
2223 self ._client = pymongo .MongoClient (address )
24+ DATABASE = os .environ .get ('POSTMON_DB_NAME' , 'postmon' )
2325 USERNAME = os .environ .get ('POSTMON_DB_USER' )
2426 PASSWORD = os .environ .get ('POSTMON_DB_PASSWORD' )
27+ self ._db = self ._client [DATABASE ]
2528 if all ((USERNAME , PASSWORD )):
26- self ._client .postmon .authenticate (USERNAME , PASSWORD )
27- self ._db = self ._client .postmon
29+ self ._db .authenticate (USERNAME , PASSWORD )
2830 self .packtrack = PackTrack (self ._db .packtrack )
2931
3032 def create_indexes (self ):
@@ -42,10 +44,18 @@ def get_one_uf(self, sigla, **kwargs):
4244 return self ._db .ufs .find_one ({'sigla' : sigla }, ** kwargs )
4345
4446 def get_one_cidade (self , sigla_uf , nome_cidade , ** kwargs ):
45- sigla_uf = slug (sigla_uf )
46- nome_cidade = slug (nome_cidade )
47- sigla_uf_nome_cidade = u'{}_{}' .format (sigla_uf , nome_cidade )
47+ key_func = lambda u , c : u'{}_{}' .format (slug (u ), slug (c ))
48+ sigla_uf_nome_cidade = key_func (sigla_uf , nome_cidade )
4849 spec = {'sigla_uf_nome_cidade' : sigla_uf_nome_cidade }
50+
51+ search = re .search (r'\((.+)\)' , nome_cidade )
52+ if search :
53+ nome_cidade_alternativa = search .group (1 )
54+ spec_alternativa = {
55+ 'sigla_uf_nome_cidade' : key_func (
56+ sigla_uf , nome_cidade_alternativa )
57+ }
58+ spec = {'$or' : [spec , spec_alternativa ]}
4959 return self ._db .cidades .find_one (spec , ** kwargs )
5060
5161 def get_one_uf_by_nome (self , nome , ** kwargs ):
0 commit comments