viernes, noviembre 04, 2005

Hackeando MonoBlog

Hola señores..

pues quiero avisarles que estuve jugando un poco con el monoblog.. ..corregi varios errores e hize un poco mas flexible la GUI... algunas cosas que hize fueron ...

El Monoblog se caia si los datos de un usuario eran incorrectos ...Corregido
La GUI de Login se congelaba mientras trataba de loguearse ...Corregido
La GUI de Posteo se congelaba mientras obtenia los blogs ...Corregido
La GUI de Posteo se congelaba mientras se posteaba una entrada ...Corregido

Algunas otras cosas...
* Modifique levemente la GUI (solo agregue una etiqueta en cada ventana de glade)
*hize algunos cambios en Atom.cs, para que se adecuara de una manera
mas sencilla a la gui (cambios minimos).
*Cambié bastante la implementacion de la GUI, para que el codigo fuera un poco mas legible... ...aunque el fin era el mismo..
* Agregue un Makefile :-D

Y parece que eso fue todo...

Que Falta?...
Quitar la horrible dependencia de Gecko ya que esta muy pesado, para eso ya hize un Widget que mostrara la vista previa pero basado en TextView, ligerito, ligerito (aunque sera una implementación beta) :-)

Un Lector de los post actuales.. que no se puede ver los post que pertenecen al blog.. ..creoq ue para esto deberia cambiar un poco la interfaz

Poder guardar/abrir los post como archivos Xml

poder postear offline (seria bueno)

Y lo que venga... :)

bueno eso fue todo, lo subi todo al svn bajo el mismo path trunk/0.1


eso es todo los veo pronto saludos!

lunes, septiembre 19, 2005

GUI pre-alfa de MonoBlog

Hoy he subido al svn de MonoBlog lo que habia avanzado el dia de ayer, es una version pre-alfa :P.

Despues de pelearme con el Gtk.ComboBox y lograr lo que queria, Mario me dijo que mejor utilizara Gtk.ComboBoxEntry porque Gtk.ComboBox ya estaba obsoleto, muy tarde :S. Pero bueno eso ya lo ire viendo.

Cosas que he hecho:

  • Logeo correcto mediante la GUI

  • Obtencion de blogs en un Gtk.ComboBox

  • Vista previa del post

  • Envio del post


Cosas que faltan hacer:

  • Implementacion de las opciones del Menu

  • Una barra de herramientas para hml

  • Resaltado de sintaxis html

  • Obtencion automatica de blogs despues del logeo

  • Resolver varios bugs, que de seguro hay :P

  • Y alguna otra sugerencia :D


Si quieres ir testeandolo (solo funciona con Blogger) pos hazlo:

svn checkout svn+ssh://anonymous@forgesvn1.novell.com/svn/mono-blog/trunk/0.1
pass: anonymous o aqui

Requerimientos: gtk#2, glade#2 y gecko#2. Full desarrollo :P.
Compilado con: Mono 1.1.9

Aqui algunos pantallazos:















Le doy gracias a Parodisoft por el logo que hizo, pero para serle sincero no me gusta mucho que digamos :P.
Se aceptan mas propuestas!, tama?o (232 x 264). Ah! y este post lo estoy haciendo desde la misma GUI de Monoblog :D.

Una ultima cosa, si van a introducir codigo html, pues que sea uno bien formado, sino no postea, cierren todas las etiquetas que habran y coloquelas como son :D.

martes, septiembre 13, 2005

Diseñando GUI para MonoBlog

Pues diseñando la GUI de MonoBlog con Glade como que me familiarizo un poco con esta herramienta. Es una GUI simple, pero poco a poco le iré agregando mas cosas, además falta el logo de MonoBlog que ya se lo encargué a Parodisoft porque creando logos no soy muy bueno que digamos :P, por el momento le he puesto una imagen que saqué del planeta de los ximios :D. Parodisoft me dijo que para el viernes estará listo :P. Espero que para este fin de semana tenga la GUI lista para subirla al SVN de MonoBlog, tengo que hacer varias cosas esta semana, ojalá me alcanze el tiempo :).

Aquí unos pantallazos.


Login

Editor

martes, agosto 09, 2005

ATOM API .. [OK]

Bueno acabo de terminar, la dll para acceso a Blogger ya esta lista. Esta dll sera carga como plugin en monoblog. Aunque esta ultima configuracion todavia no la tenemos del todo clara con Gmikex.

En unos dias JuanPe ya deberia tener lista una GUI de prueba, que permita usar monoblog por parte de cualquier persona interesada en cooperar en la identificacion de errores.

Bueno la Libreria de ATOM esta en el SVN, en /mono-blog/team/NeCuDeCo/ATOM/ATOM.dll

lunes, agosto 08, 2005

DemoWriter un paso mas para MonoBlog

Este ultimo fin de semana, he estado empapandome de lo que se habia avanzado con MonoBlog, ya que por otros motivos no tenia mucho tiempo. He revisado la libreria base hecha por Gmikex y le he hecho unas modificaciones:

  • Documentacion: He mejorado la documentacion de la libreria utilizando etiquetas XML, asi el mantenimiento y su comprension de la libreria sera mas facil.

  • Interfaz Provider: Siguiendo la recomendacion de Gmikex he creado una interfaz Provider, la cual deberan implementar cada clase que maneje un motor de blog diferente (Blogger, WordPress, etc.). Esto facilitara la adaptacion para mas motores blog.

  • Actualizacion del codigo: He hecho unos cambios en el codigo, para que se entienda mejor y ademas realize su trabajo mas eficientemente. Ademas he agregado y adaptado la funcionalidad de posteo hecha por NeCuDeCo.

  • Creacion de la gui DemoWriter: He creado una gui simple solo para verificar el correcto funcionamiento de la libreria de MonoBlog, ademas he puesto algunas ideas que tengo de como sea la GUI final de MonoBlog. Como por ejemplo la capacidad de postear una misma entrada en varios blogs diferentes, por el momento solo funciona con Blogger, pero la idea es que funcione con mas (WordPress, etc.). Esto funcionalidad me va a ser muy util, porque por ejemplo en mi caso, cada avance que haga con MonoBlog lo posteare en el blog del proyecto, pero ademas desearia postearlo en mi blog personal, por el momento no se puede ya que mi blog esta en blogsome :'(. Como a mi esta funcionalidad le puede ser util a varias personas, como NeCuDeCo que tiene como 40 Blogs :P.





Un pantallazo de DemoWriter


Lo he probado en Windows y por el lado de la portabilidad de MonoBlog, va bien :D. El binario y el codigo esta en el svn de MonoBlog, aqui.

Probando DemoWriter

Este es un post desde una gui de prueba para MonoBlog

sábado, agosto 06, 2005

Diagrama Atom.dll

Bueno aca les dejo un diagrama sencillo nomas de lo que he avanzado en la libreria de ATOM.

MonoBlog ya puede postear

BUeno al fin logre postear desde monoblog :P

viernes, agosto 05, 2005

Modificaciones en Atom.lib

Bueno a pedido del publico y despues de mucho tiempo de inactividad me puse a trabajar hoy en la mañana (hace un par de horas) y realize algunas modificaciones a la libreria de Gmikex. Esta vez el codigo es mucho mas sencillo, aunque por si las moscas (jeje nunca falta :P) le he incorparado comentarios ;)


using System;
using System.Net;
using System.IO;
using System.Xml;
using System.Collections;
using System.Security.Cryptography.X509Certificates;

class atom
{

//Author: NeCuDeCo
public static void Main(String[] args)
{
if (args.Length != 2)
{
//La ejecucion del programa requeire que se el pase dos argumentos obligatorios, el nombvre usuario de blogger y si contraseña
Console.WriteLine("mono atom.exe ");
return;
}

string usuario = args[0];
string passwd = args[1];

//Presentandome ante blogger como el usuario y obteniendo la lista de servicios
atom a = new atom();
string stringXML = a.getfeed("http://www.blogger.com/atom",usuario,passwd);

XmlTextReader xml = new XmlTextReader(new StringReader(stringXML));

XmlDocument doc = new XmlDocument();
doc.Load(xml);
XmlNode node = doc.DocumentElement;

foreach ( XmlNode subnode in node.ChildNodes)
{

if ( subnode.LocalName == "link" )
{
//Buscando y Reportando los Servicios o blogs donde puedo postear
XmlElement xnode = (XmlElement) subnode;
if (xnode.GetAttribute("rel") == "service.post")
Console.WriteLine(xnode.GetAttribute("title"));
}

}
}


//funcion Definida por Gmikex para obtener la lista de servicios de blogguer.
//Modificaciones de NeCuDeCo
public string getfeed(string url,string login, string passwd){
string responseString="";
try{
HttpWebRequest myReq = (HttpWebRequest) HttpWebRequest.Create(url);
myReq.PreAuthenticate =true;

NetworkCredential networkCredential=new NetworkCredential(login,passwd);
myReq.Credentials=networkCredential;

HttpWebResponse response = (HttpWebResponse)myReq.GetResponse();
Stream streamResponse = response.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse);
responseString = streamRead.ReadToEnd();
return responseString;
}catch(Exception ex){
Console.WriteLine("ERROR");
return responseString;
}
}
}