MainMas de MiEndorfinaSoftware LibreArchivos de Blog
|
Pues tiene rato que estoy checando python ya que por ahi vi una oportunidad de trabajo, pero leer tutoriales y librillos pedorros realmente no ayuda del todo, definitivamente la mejor forma de conocer y aprender un lenguaje de programación es resolviendo problemas con el, python me ha servido pa resolver tareas eventuales, como automatizar ciertas cosas, scripts pequeños de pocas líneas, así que siempre he buscado algo al menos un poco mas grande que me permita realmente explotar las utilidades del lenguaje, para conocerlas y de paso resolver un problema. Ahora twitter he visto que está haciendo verdadero furor, tanto que saqué el mío, siempre me han dado curiosidad las nuevas aplicaciones web 2.0 con varios servicios y que proveen su 'API', y twitter es de esas, pero por falta de tiempo o diferentes factores no me había "atrevido" a echarles una ojeada, a pesar de que por dentro me moría de ganas de usar dichas API's, hoy como ya está lista la propuesta de tesis y vienen vacaciones, por lo que lo que es igual que empiece a programar el proyecto de la tesis ahora o me espere unos días, así que dije: "que diablos, hagamos algo con twitter y python", así que chequé la API y vi que era extremadamente simple, así que empecé por lo básico, crear un script en python que actualice mi twitter, para hacerlo hay que mandar la actualización en un POST a cierta URL con previa autenticación, debo confesar que lo de la autenticación casi casi me lo piratié, ya que nunca lo había hecho en python, encontré un tutorial y listo, ya sabía como autenticarte por http con basic_auth, que era la parte compleja para hacer el update, como no quería quedarme como indiorante exploré de forma semi-detallada la documentación de: urllib2 y base64 para comprender mejor el código. Todo jaló bien, por lo que supuse que sería buena idea adaptar el script para que recibiera el usuario, password y actualización a través de una entrada de datos dada por el usuario, lo cual me llevó a conocer otro módulo de python: getpass para ocultar el password cuando lo tipeara el usuario, estaba eufórico, así que empecé a ver mas pa' lante y pensé que sería bueno hacer una especie de "API" que pudiera ser expansible y reusable, por lo que obvio tuve que recurrir a la orientación a objetos, primeras ideas: - Crear una clase "PyTwitter" la cual debería proveer la interfaz para realizar las diferentes operaciones que la API de twitter provee: actualizar, obtener la línea de tiempo pública, obtener la línea de tiempo de tus amigos, obtener tu lista de amigos con su última actualización, obtener lista de seguidores con su última actualización (update(), getPublicTimeLine(), getFriendsTimeLine(), getFriends(),getFollowers()). En esta clase también se debería ocultar el proceso de autenticación. - Como twitter provee la respuesta a la acción en (por ahora) dos formatos, XML y JSON, esto deja algo muy claro y es que puede variar y que no depende de nosotros (suelo hablar en 4ta persona ya que a veces siento que soy dos personas en una, como una especie de Zaphod Beeblebrox, o al menos siento que me ayuda a razonar - Una clase que permita al usuario manejar la información obtenida (algo como TwitterResponse) ocultando los detalles del formato en el que haya llegado, como no mas he probado los updates no me he puesto a analizar bien las respuestas, como para poder diseñar la lógica de esta clase aún. Por ahora lo que tengo hecho solo es PyTwitter y la interfaz de TwitterResponseHandler (ahora que lo veo creo que sería mejor llamarle TwitterResponseParser), hice una tal XMLTwitterResponseHandler que no parsea ni un carajo, ya que no he analizado bien el formato de las respuestas, y por lo mismo aún no se como sería la interfaz de TwitterResponse, a lo mejor después de analizarlo decida crear mas clases según el tipo de respuesta... aún tengo que ver. También creo que se debería encapsular la autenticación en otra clase, lo que tengo ahora solo soporta basic_auth, no se si después cambien el tipo de autenticación, así que sería bueno pensar en ello. A ver si mañana subo la versión corregida y aumentada del diagrama de clases pa ejemplificar mejor el asunto, por ahora si quieren checar lo que llevo pueden bajarse el targezeta, disculpen si el código no está muy claro, lo confieso, lo hice de carrerita (ya mencioné que estaba efuórico, ¿no?) pero de acá a que ya no aguante el sueño lo voy a estar perfeccionando, se aceptan sugerencias. Si lo quieren correr lo descomprimen y se van al directorio updater y le dan: python TUpdater.py "Su mensaje para enviar" [enter], de ahi les pedirá su nombre de usuario y password y hará la actualización, si su nombre de usuario y password son correctos. No pienso crear un proyecto de SL a partir de esto, no por que no quiera compartir lo que estoy haciendo (al contrario), como ya dije la idea de esto es que yo pueda aprender mejor python y sacarle mas jugo, si mi idea fuera un proyecto de SL no lo haría tampoco ya que veo que ya hay otros clientes de twitter que usan python ya que no simpatizo con eso de rehacer la rueda. Las actualizaciones que haga las publicaré acá en el blog pal que lo quiera checar, y pueden hacer con el código lo que sea, solo les pido respeten de donde lo sacaron y no me quieran demandar después por tener publicado lo que yo hice Lo que pienso hacer mas adelante con esto: - Una interfaz que permita visualizar todo lo que twitter nos brinda además de permitir las actualizaciones claro (siempre he tenido la espinita de aprender pygtk - Una especie de plug-in para alguna aplicación que mande cosas a twitter, tal vez gaim, tal vez algún reproductor. Sugerencias o comentarios son totalmente bienvenidos!! EOT
kno | Geek/Nerd | 30 Marzo, 3:23am
Re: El furor de twitter y Python
Edgar I Casanova Cardoz, <> / 12 Febrero, 1:07am
Si quieres te puedo ayudar!
[ Responder (0) ]
Dejar un comentarioHe estado escuchando: |
AmigosRoxCareNalga Luis Alberto Hokum Tonyto Moy bleh beermaster (sergio) Maur0 Pau(mi hermana la loca) ¿Quien soy?Soy un tipo un tanto diferente al promedio, tal vez una especie de geek-nerd-freak, lo que mas me pasa es la ciencia ficción, la cultura japonesa tanto clásica como moderna, las computadoras, y todo lo que hay al rededos de estos 3 ejes, la neta soy chido, o al menos eso me gusta creer (pronto mas). Endorfina
Categorías
|