:::: MENU ::::
Posts tagged with: python

Whatsapp en Python

Hoy os traigo un simple Script que hemos dearrollado mi compañero Juan Humanes y Yo para mandar WhatsApp utilizando el servicio MassyPhone y  librerías de Python (no es un servicio gratuito pero os lo recomiendo ya que no es muy caro, tiene una versión gratuita de pruebas).

Una vez que os registréis en MassyPhone os tenéis que poned en contacto con ellos a través del formulario de contacto para que os den acceso a sus API. La verdad que el departamento de soporte funciona bastante bien.

Espero que os sirva de gran utilidad. Gracias, saludos.

import urllib
import pycurl
import json
import StringIO


#Configuration
apiuserid = ''Tu api user id''
passwd = ''Tu pass''
content = ''Mensaje de pruebas''
location_cacert ="" # Ubicación de tu cacert.pem Yo lo tengo en /usr/local/lib/python2.7/dist-packages/requests/cacert.pem

url="" #url de la función call.php dada por MassyPhone

#Phones
phones = "Teléfono de envío" #Para españa poned +34 seguido del número

# DoLogin
pf = {''call'': ''do_login'',''apiuserid'':apiuserid,''passwd'':passwd}
c = pycurl.Curl()
c.setopt(c.URL, url)
c.setopt(c.HTTPHEADER,["Accept: application/json"])
c.setopt(c.VERBOSE, 0)
b = StringIO.StringIO()
c.setopt(c.SSL_VERIFYPEER, 0)
c.setopt(c.SSL_VERIFYHOST, 0)
c.setopt(c.CAINFO, location_cacert)
c.setopt(c.POSTFIELDS, urllib.urlencode(pf))
c.setopt(c.WRITEFUNCTION, b.write)
c.perform()
pyobj = json.loads(b.getvalue())
sessionid=str(pyobj[''content''][''sessionid''])
c.close()

#SendText
pf2 = {''call'': ''send_text'',''sessionid'':sessionid,''content'':content,''destination'':phones}
c2 = pycurl.Curl()
c2.setopt(c2.URL, url)
c2.setopt(c2.HTTPHEADER,["Accept: application/json"])
c2.setopt(c2.VERBOSE, 0)
c2.setopt(c2.SSL_VERIFYPEER, 0)
c2.setopt(c2.SSL_VERIFYHOST, 0)
c2.setopt(c2.CAINFO, location_cacert)
c2.setopt(c2.POSTFIELDS, urllib.urlencode(pf2))
c2.perform()
c2.close()


Pyc en Python

Un fichero .pyc no es mas que un fichero .py pero compilado.

A veces cuando estás desarrollando y lanzas el servidor de OpenERP para ver si se han aplicado los cambios, suele haber errores muy raros. No por el simple hecho del error, si no que te dice, por ejemplo, que no encuentra cierta vista o que tal modelo no está referenciado …… etc. Y claro te pones a mirar como un loco y ves que esa vista si está y que el modelo también está bien definido. Entonces, ¿qué pasa? (pueden pasar muchas cosas jeje)

Pues a veces hay que borrar esos .pyc y lanzar de nuevo el servidor. Y ya veréis como todo vuelve a su normalidad. Ya que de esta manera, al lanzar de nuevo el servidor se te crearan los dichosos .pyc con su versión última compilada.

Se que algunos dirán, “Si lanzas el servidor con -u all todo debe ir bien” ……….. eso es, debe ir …… Pero en el mundo de la informática también pasa sucesos paranormales 😉

Una solución para borrar todos los puntos .pyc de un módulo sería usar zsh, para ellos vamos a instalarlo de la siguiente manera sudo apt-get install zsh.

Una vez instalado nos situamos en la ruta del módulo al cual queramos borrar los .pyc.

Escribimos en consola zsh , pulsamos intro, luego escribimos rm **/*.pyc y ya estarán todos los .pyc borrados del módulo.

Bueno pues ahí os dejo esto. Saludos a todos.


Dive into Python

Hace como dos años que me metí en este mundo del Python de la mano de OpenObject.

Con el tiempo vas aprendiendo cada vez mas cosas y para ello siempre es bueno tirar de libros que te enseñen aún mas. Por eso hoy os traigo el libro “Dive into Python” el cual es completamente gratuito y lo podréis descargar desde aquí. Es necesario saber de Python, así que si es tu caso, pues puedes usar este libro para ampliar conocimientos.

Saludos.


Odoo – Log en carga de datos CSV

A la hora de cargar datos en OpenERP mediante la carga de un Módulo, gracias a los archivos CSV, me di cuenta que el Log de OpenERP no mostraba las filas que se iban cargando en la Base de Datos, por lo que tuve que tirar de un atajo. ¿Cuál?

Si nos metemos en la capa ORM (orm.py) del propio Servidor de OpenERP, veremos una función llamada “def process_liness”, pues si ponemos “_logger.warning(nbrmax+1)” justo después de “nbrmax = position+1”. Nos dirá justo la última fila del CSV donde se ha producido, por ejemplo,  un error.

Con este simple atajo ya podemos tener solucionado este gran problema en las cargas de datos con CSV y Módulos.

Espero que os sirva.


Carga de datos anidadas en OpenERP

Hoy os voy a mostrar cómo hacer una carga de Clientes con sus Cuentas Contables y Cuentas Bancarias mediante archivos CSV en OpenERP.

Este tipo de carga de datos se utiliza mucho para la carga de datos masivas, ya que de esta maneras podremos aprovechar todo el potencial que nos ofrece el Servidor de OpenERP.

Es altamente recomendable hacer uso de este tipo de carga de datos en OpenERP ya que es fácil, limpio y seguro.

El archivo init.py lo dejaremos en blanco.

El archivo __openerp__.py contendrá lo siguiente:

{

''name'': ''Carga de Clientes'',

''version'': ''1.0'',

''category'': '''',

''description'': """ Carga de Clientes """,

''author'': ''Javier Llamas'',

''website'': ''http://www.javierllamas.es'',

''depends'': [''base''],

''init_xml'': [],

''update_xml'': [

''account.account.csv'',

''res.partner.csv'',

''res.partner.address.csv'', 

''res.partner.bank.csv'', ],

''demo_xml'': [],

''test'': [ ],

''installable'': True,

''active'': False,

''certificate'': False,

}

En el archivo account.account.csv vamos a establecer los siguientes campos y vamos a poner como ejemplo la cuenta contable 430000020

"active","currency_mode","name","reconcile","user_type/id","type","parent_id","code"

"true","At Date","Cliente ejemplo","true","l10n_es.terceros_-_rec","Receivable","430","430000020"

Luego en el fichero res.partner.address.csv pondremos algunos datos ejemplos. Aquí la variable mas importante es partner_id:id que es la que nos hará de ancla con el fichero res.partner.csv y res.partner.bank.csv que veremos mas adelante.

"city","email","partner_id:id","mobile","name","phone","fax","zip","street"

"MURCIA","email@email.com","partner_1","000-000-000","Cliente Ejemplo","000-000-000","000-000-000","30000","C/ Ejemplo"

El fichero res.partner.csv estará formado por:

"active","customer","employee","name","supplier","website","id","property_account_receivable"

"true","true","false","Cliente Ejemplo","false","web.com","partner_1","430000020"

Y ya por último res.partner.bank. csv tendría las propiedades del Banco ligado a este cliente

"partner_id:id","owner_name","state","acc_number","street","city","default_bank"

"partner_1","Cliente Ejemplo","bank","0000-0000-00-0000000000","Calle nueva","MURCIA","True"

Y para terminar,  vamos a OpenERP e instalamos el módulo que hemos creado. Y ahora podemos ver cómo en la zona de Clientes se ha creado el nuevo registro.

Sencillo y rápido 😉

Saludos.


Páginas:12