#!/usr/bin/env python
#-*-*- encoding: utf-8 -*-*-

import sys

class PicasaException(Exception):
	def __init__(self, *args, **kargs):
		Exception.__init__(self,*args, **kargs)

class ProcesadorPicasa:
	def __init__(self, fichero_entrada, fichero_salida):
		self._fichero_entrada = fichero_entrada
		self._fichero_salida  = fichero_salida
	
	def _obtener_contenido(self):
		fichero = open(self._fichero_entrada)
		try:
			return fichero.read()
		finally:
			fichero.close()

	def _salvar_contenido(self, direcciones):
		fichero = open(self._fichero_salida,'w')
		try:
			for direccion in direcciones:
				fichero.write(direccion + "\n")
		finally:
			fichero.close()

	def _procesar_contenido(self, contenido):
		comienzos = contenido.split("<photo:imgsrc>")[1:]
		direcciones = []
		for i in comienzos:
			direcciones.append(i.split("</photo:imgsrc>")[0])
		return direcciones

	def procesar(self):
		try:
			contenido = self._obtener_contenido()
			direcciones = self._procesar_contenido(contenido)			
			self._salvar_contenido(direcciones)
		except Exception, e:
			raise PicasaException(e)

if __name__ == '__main__':
	entrada = 'CursilloPythonJulio2007'
	salida  = 'ListadoCursillos'
	if len(sys.argv) > 1:
		entrada = sys.argv[1]
	if len(sys.argv) == 3:
		salida = sys.argv[2]
	try:
		procesador_picasa = ProcesadorPicasa(entrada,salida)
		procesador_picasa.procesar()
	except PicasaException, e:
		print "Ha habido un error: ", e
