martes, 30 de septiembre de 2014

Recibiendo correos!

Hoy empezamos a descubrir cómo recibir los correos. Tenemos problemas con el asunto y el cuerpo de los correos. Necesitamos que se inserten todos los elementos en un listbox para que puedan ser seleccionables. Sin embargo se combinan los cuerpos de los correos. El día de mañana le vamos a pedir ayuda al profesor,

martes, 23 de septiembre de 2014

Tenemos los módulos!!

Hoy conseguimos que se instalaran los módulos de dropbox. Ahora que nuestra función sirve pudimos ir implementándola a la interfaz. Resultó ser un poco complicado, pero se logró definiendo varias funciones y asignándolas en botones de la interfaz.

IniciarSesion=Button(ventanaInicio,image=Dropbox,relief=RIDGE,command=vincularDropbox)

lunes, 22 de septiembre de 2014

Iniciando la interfaz

Hoy empezamos la interfaz con el ya conocido por nosotros tkinter. Utilizando variables de tipo StringVar pudimos tomar la información escrita en los Entry para verificar que todos los datos fueran correctos.

strUsuario=StringVar()
CORREO=Entry(ventanaInicio,textvar=strUsuario,width=30,bg='lightyellow',bd=3).place(x=60,y=30)

Sin embargo aún no podemos avanzar con el trabajo porque todavía no tenemos instalados los módulos necesarios.


domingo, 21 de septiembre de 2014

Encriptando y desencriptando correos electrónicos.

Hoy descubrimos como encriptar y desencriptar correos. Y, al igual que la vez anterior, resultó ser más sencillo de lo esperado, con el siguiente código. (Tomado de https://launchkey.com/docs/api/encryption)

Para encriptar:
def encrypt_RSA(public_key_loc, message):
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
key = open(public_key_loc, "r").read()
rsakey = RSA.importKey(key)
rsakey = PKCS1_OAEP.new(rsakey)
encrypted = rsakey.encrypt(message)
return encrypted.encode('base64')
Para desencriptar:
def decrypt_RSA(private_key_loc, package):
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
from base64 import b64decode
key = open(private_key_loc, "r").read()
rsakey = RSA.importKey(key)
rsakey = PKCS1_OAEP.new(rsakey)
decrypted = rsakey.decrypt(b64decode(package))
return decrypted

viernes, 19 de septiembre de 2014

Descubriendo la vinculación de python con dropbox

Hoy empezamos la segunda tarea programada del semestre. Al principio pensamos que iba a ser muy difícil por el hecho de que tenemos que vincular nuestro programa de python con dropbox, pero no dimos cuenta que al parecer es más sencillo de lo esperado. Encontramos el siguiente código que nos puede ayudar mucho:

import dropbox
#from Dropbox import client

# Get your app key and secret from the Dropbox developer website
app_key = 'xxxxxxxxxxxxxx'
app_secret = 'xxxxxxxxxxx'

flow = dropbox.client.DropboxOAuth2FlowNoRedirect(app_key, app_secret)

# Have the user sign in and authorize this token
authorize_url = flow.start()
print '1. Go to: ' + authorize_url
print '2. Click "Allow" (you might have to log in first)'
print '3. Copy the authorization code.'
code = raw_input("Enter the authorization code here: ").strip()

# This will fail if the user enters an invalid authorization code
access_token, user_id = flow.finish(code)

client = dropbox.client.DropboxClient(access_token)
print 'linked account: ', client.account_info()

f = open('working-draft.txt', 'rb')
response = client.put_file('/magnum-opus.txt', f)
print 'uploaded: ', response

folder_metadata = client.metadata('/')
print 'metadata: ', folder_metadata

f, metadata = client.get_file_and_metadata('/magnum-opus.txt')
out = open('magnum-opus.txt', 'wb')
out.write(f.read())
out.close()
print metadata

Las llaves públicas y privadas se consiguen creando una aplicación en dropbox (que es muy sencillo), sin embargo tenemos que instalar los módulos que necesitamos para la librería dropbox con el powerShell.