Romantic love poem in Python
El autor es Damian Parniewicz.
Machete mode ON: http://aspn.activestate.com/ASPN/Python tiene un repo muy grande de librerias y codigo python, lejos lo mejor dando vuelta... aunque de momento no encontre un buen editor para python.
¿Alquien me podra recomendar uno que sea "Multi Plataforma"? Puede ser libre o comercial, que tenga soporte para FTP, SVN o sea extendible mediante SDK, ya que me aburri de la vieja consola y mi computadora da para algo mas que un vim o emacs ;).
...
if you in (depressed, sadness, resignation):
print 'me, my sweetheart'
if feel(you) is 'lonely' or feel(you) is 'neglected':
talk_me(this)
while always:
I.take_care(you)
if you.love() is not me:
# I will follow in the madness
# I will
break # down...
for emotion in my.heart:
try:
your.lover = me
except:
your.best_friend = me
if you.hate(me):
love(me)
elif I.annoying():
love(me)
else:
love(me, how='deeply', when='now')
...
Etiquetas:
Python
Contact form para Skeletonz - Parte 1
Debo confezar que me llevo algo de tiempo entender la estructura de todo este CMS, aunque pequeño carece de algunas cosas basicas, como documentacion. Esta seria la primera parte del formulario, todabia no estoy desplegando ningun tipo de formulario, solo preparo el camino hacia el mismo, ya que Skeletonz soporta templates debo leer el: como cuando donde.
Esta seria la primera etapa de mi humilde formulario asi que no esperen muuucho de momento, con el tiempo aprendere python, entre el trabajo y el poco tiempo cuesta un poco dedicarle horas a esto.
Mi siguiente paso sera el poder cargar templates para el formulario.. pero eso sera en mi proximo post.
from skeletonz.modules.plugin import GenericPlugin
from skeletonz.server import getFormatManager
PLUGINS_FOR_EXPORT = ['ContactForm']
class ContactForm(GenericPlugin):
NAME = "Contact Form"
DESCRIPTION = "Add a contact form to a page."
SYNTAX = [
{'handler': 'contactform',
'required_arguments': {'email': 'The contact email'},
'optional_arguments': {'subject': 'The email subject'}
}
]
def __init__(self):
getFormatManager().registerSLPlugin('contactform', self.handle)
def handle(self, args, edit_mode, page_id):
if args.has_key('email'):
email = args['email']
return True, """Envio email a %s""" % (email)
Enviando plurks...
Aunque tendria que hacer algun plugin tambien para enviar remotamente desde mi dekstop, lo cual terminaria siendo una app y no un plugin, pero en un futuro ya veremos...
La idea general seria que se envie un post con el titlo de lo que escribi en mi blog, acompañado de la direccion permanente del mismo. PERO tambien deberia poder enviar un mensaje cualquiera sin tener que escribir una entrada en mi blog, asi que vamos a tener que armar 2 modos distintos para el plugin.
Este es la base original y sin tocar. Quien no alla probado Plurk esta invitado, es una buena alternativa a twitter el cual deje de usar hace algun tiempo.
import urllib
import urllib2
import cookielib
# Based on Charl VN's PHP Code
PLURK_LOGIN_URL = 'http://www.plurk.com/Users/login'
PLURK_ADD_URL = 'http://www.plurk.com/TimeLine/addPlurk'
NICKNAME = ''
PASSWORD = ''
if __name__ == '__main__':
# Set up
jar = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcessor(jar)
opener = urllib2.build_opener(handler)
# Login phase ...
url = PLURK_LOGIN_URL
values = { 'nick_name': NICKNAME, 'password': PASSWORD }
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = opener.open(req)
# Now plurk something!
values = {'content': 'Skeletonz remote Plurk posting!!', 'lang':'en', 'no_comments':'0'}
data = urllib.urlencode(values)
data+='&qualifier=%3A' # Dont know if this is needed
url = PLURK_ADD_URL
req = urllib2.Request(url, data)
response = opener.open(req)
print response.read()
Traduciendo Skeletonz
Asi tambien como armarme algunos plugins con los cuales no cuento porque directamente no existen, un search interno, ya que usa Google Custom search para efectuar las busquedas.
El diseño de un plugin es bastante facil de entender, el modelo planeado por Amir Salihefendic para desarrollar un CMS es muy entendible, ya que su base, reescrita ya 3 veces por el autor tiene mucho de MVC.
Un plugin simple, el cual acompaña a Skeletonz se llama testadmin, el cual contiene el siguiente codigo:
from skeletonz.modules.plugin import GenericPlugin
from skeletonz.user_plugins import ListOption, TextOption
PLUGINS_FOR_EXPORT = ['testadmin']
class testadmin(GenericPlugin):
NAME = "Test admin"
DESCRIPTION = "Dummy plugin that shows how plugin configuration work."
PLUGIN_OPTIONS = [TextOption(scope='testadmin',name="Text1",text="Your text value", default=""),
ListOption(scope='testadmin',name="list1", text="Your list choice",list_values=(1,2,3,4), default=2)
]
Y como veran es muy simple de entender. Ahora como la base de Skeletonz es UNICODE tambien seria simple construir un sistema de idiomas para el mismo, de todas formas no me quiero emocionar traduciendolo puesto que en cualquier momento sale una version nueva tal y como señala en su blog.
Hola PYTHON, chau PHP!
Me decidi por python ya que es hora de aprender algo mas fuerte y mas potente que php.
Hasta ahora el modelo de desarrollo bajo python es mucho mas atractivo y mas simple todabia que en php, si bien no tengo un DSO pegado a apache sel corre perfectamente con un micro webserver el cual trae integrado, unas pequeñas lineas en apache, mod_proxy y voila.

