Skip to content

Commit

Permalink
Mudando o paradigma para orientado à objetos
Browse files Browse the repository at this point in the history
  • Loading branch information
dilannery committed Dec 28, 2010
1 parent b98a3dd commit 9fc7745
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 52 deletions.
102 changes: 53 additions & 49 deletions src/correios.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,63 +18,67 @@

import cod

def __getDados(tags_name, dom):
dados = {}
class Correios(object):
def __init__(self):
self.status = 'OK'

for tag_name in tags_name:
try:
dados[tag_name] = dom.getElementsByTagName(tag_name)[0]
dados[tag_name] = dados[tag_name].childNodes[0].data
except:
dados[tag_name] = ''
def _getDados(self,tags_name, dom):
dados = {}

return dados
for tag_name in tags_name:
try:
dados[tag_name] = dom.getElementsByTagName(tag_name)[0]
dados[tag_name] = dados[tag_name].childNodes[0].data
except:
dados[tag_name] = ''

def frete(cod,GOCEP,HERECEP,peso,
comprimento,diametro,toback='xml'):
return dados

url = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?\
StrRetorno=%s\
&nCdServico=%s\
&nVlPeso=%i\
&sCepOrigem=%s\
&sCepDestino=%s\
&nVlComprimento=%s\
&nVlDiametro=%s" % (toback,cod,peso,HERECEP,
GOCEP,comprimento,diametro)
dom = minidom.parse(urllib2.urlopen(url))
def frete(self,cod,GOCEP,HERECEP,peso,
comprimento,diametro,toback='xml'):

url = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?\
StrRetorno=%s\
&nCdServico=%s\
&nVlPeso=%i\
&sCepOrigem=%s\
&sCepDestino=%s\
&nVlComprimento=%s\
&nVlDiametro=%s" % (toback,cod,peso,HERECEP,
GOCEP,comprimento,diametro)
dom = minidom.parse(urllib2.urlopen(url))

tags_name = ('MsgErro',
'Erro',
'Codigo',
'Valor',
'PrazoEntrega',
'ValorMaoPropria',
'ValorValorDeclarado',
'EntregaDomiciliar',
'EntregaSabado',
)

tags_name = ('MsgErro',
'Erro',
'Codigo',
'Valor',
'PrazoEntrega',
'ValorMaoPropria',
'ValorValorDeclarado',
'EntregaDomiciliar',
'EntregaSabado',
)
return self._getDados(tags_name, dom)

return __getDados(tags_name, dom)
def cep(self,numero):
url = 'http://cep.republicavirtual.com.br/web_cep.php?\
formato=xml&cep=%s' % (str(numero))
dom = minidom.parse(urllib2.urlopen(url))

def cep(numero):
url = 'http://cep.republicavirtual.com.br/web_cep.php?\
formato=xml&cep=%s' % (str(numero))
dom = minidom.parse(urllib2.urlopen(url))
tags_name = ('uf',
'cidade',
'bairro',
'tipo_logradouro',
'logradouro',
)

tags_name = ('uf',
'cidade',
'bairro',
'tipo_logradouro',
'logradouro',
)

resultado = dom.getElementsByTagName('resultado')[0]
resultado = int(resultado.childNodes[0].data)
if resultado != 0:
return __getDados(tags_name, dom)
else:
return {}
resultado = dom.getElementsByTagName('resultado')[0]
resultado = int(resultado.childNodes[0].data)
if resultado != 0:
return self._getDados(tags_name, dom)
else:
return {}

# Delete the modules to not show up in the namespace
# del urllib2, sys, minidom
8 changes: 5 additions & 3 deletions src/demo.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
# -*- coding: utf-8 -*-
from correios import frete, cep
from correios import Correios
from correios import cod

test = frete(cod.SEDEX,'44001535','03971010',10,18,8)
correio = Correios()

test = correio.frete(cod.SEDEX,'44001535','03971010',10,18,8)
if test['Erro'] != '0':
print 'Deu erro! :('
print test['Erro']
print test['MsgErro']
else:
print "Valor: %s\nPrazo de Entrega: %s" % (test['Valor'],test['PrazoEntrega'])

other_test = cep(44010000)
other_test = correio.cep(44010000)
print other_test['bairro']

0 comments on commit 9fc7745

Please sign in to comment.