martes, julio 26, 2005

A petición, comentarios en la libreria

A petición del público, la libreria que hice está comentada. Pueden obtenerlo del SVN en Branches/lib. Por favor, revisenla y hagan todos los cambios necesarios.

la dirección del árbol del SVN es esta:
Haz click Aqui


jueves, julio 21, 2005

Clase en el IRC

Bueno al fin logre entender como funciona el API de ATOM, jeje todo gracias a Gmikex. Che gracias gran paciencia la tuya :P

Bueno para los interesados, el log de esa charla esta en el svn de monoblog

lunes, julio 18, 2005

API para WordPress (o blogsome.com)

Hola Amigos,

Estoy buscando alguna api para acceder a Blogsome o en su defecto a WordPress, ya que quiero extender la libreria a estos blogs providers. Por ahora, solo sé que ofrece un listado a través de un atom feed, lo que me ayudaría a listar y ver los blogs, pero no tengo ninguna API para scribir en estos. No se si exista alguna, o si alguien tiene alguna idea de como hacerlo. Si lo saben, por favor avisenme.

Aquí les dejo ya parte de lo que he hecho de la librería, uniendolo con parte de lo que NeCuDeCo ha venido incorporando. Esto se vería algo como así:















Aquí vemos el arbol, donde se listan todos los blogs que el usuario tiene en blogger y en cada blog, se puede ver los posts que tiene (Draft y publicados). Ademas, puedo saber si es draft o no, por lo que creo (aun no estoy seguro), que desde aqui podria hacer una funcion de publicar.

Estamos en contacto.

domingo, julio 17, 2005

Seguimos Avanzando

Bueno ahora los items del treeview ya son seleccionables, cargandose ademas la pagina correspondiente con el item seleccionado. Y un cambio menor pero importante, los paneles son redimensionables.

martes, julio 12, 2005

Libreria para acceder a blogger

Hola Monoglogeros.

He estado escribiendo una libreria para acceder a blogger, no estoy usando ni Atom, ni XMl RpC. Estoy accediendo a traves del System.Net y leyendo el XML. Por ahora, no he hecho mucho, sin embrago, ya pueden ir viendo y aportando, el codigo esta en el SVN. Para manipular las clases, hay que hacer algo asi:

Console.Write ("Login");
string login=Console.ReadLine(); //leo el login
Console.Write ("Password");
string password=Console.ReadLine(); //leo el password

// creo un objeto service, mandando el access point de blogger, login y password.
//crea dentro del objeto una coleccion de objetos blogs a los que pueden acceder

service blogger=new service("http://www.blogger.com/atom",login, password);

blogger.get_blogs(); //aqui le digo que obtenga los blogs, se conecta a blogger

foreach(blog myblog in blogger.BlogsCollection){ //recorro la coleccion

Console.Write (myblog.Name+"\n"); //imprimo el nombre del blog,
//adicionalmente pueden escribir el access point el blog

}

lunes, julio 11, 2005

Listo .. ahora si

Ya termine la modificacion q faltaba para poder seleccionar el post adecuado en el treeview, ahora cuando se selecciona una noticia, se carga esta en el View del lado derecho

Light Visor de Atom

Estuve tratando de liarme con el unico control que consideraba imposible del GTK, el treeview y bueno al parecer lo logre. Ahi les va un primer avance de mi codigo para visualizar Atom, me falta mejorarlo para que al momento de seleccionar un item en mi TreeView se carge la noticia respectiva pero ya lo hare despues




//VisorAtom
using System;
using System.Net;
using Atom.Core;
using Gtk;
using Glade;
using Gecko;

class AtomViewer
{

[Widget] Frame frame1;
[Widget] Entry txtURI;
[Widget] Gtk.Window wAtomViewer;
[Widget] ScrolledWindow treeframe;
WebControl web;
TreeView tv;
TreeStore store;

public static void Main()
{
new AtomViewer();
}

public AtomViewer()
{
Application.Init();

store = new TreeStore (typeof (string));

Glade.XML gxml = new Glade.XML(null,"AtomViewer.glade","wAtomViewer",null);
gxml.Autoconnect(this);

wAtomViewer.Resize(500,300);

txtURI.Activated += new EventHandler(LoadAtom);
wAtomViewer.DeleteEvent += new DeleteEventHandler(onExit);

tv = new TreeView (store);
tv.HeadersVisible = true;

tv.AppendColumn ("Post", new CellRendererText (), "text", 0);

treeframe.Add (tv);

web = new WebControl();
web.Show();

frame1.Add(web);


wAtomViewer.ShowAll();

Application.Run();

}

void LoadAtom(object o, EventArgs args)
{
web.LoadUrl(txtURI.Text);
LoadItems(txtURI.Text);
}

void onExit(object o, DeleteEventArgs args)
{
Application.Quit();
args.RetVal = true;
}

void LoadItems(string URI)
{
Console.WriteLine("LoadItems");
Uri blog = new Uri(URI);
AtomFeed feed = AtomFeed.Load(blog);
foreach (AtomEntry entry in feed.Entries)
{
Console.WriteLine(entry.Title.Content);
TreeIter iter = store.AppendValues(entry.Title.Content);
}
}

}

viernes, julio 08, 2005

Deseas Colaborar con MonoBLog !!

Adelante eres binevenido a colaborar en el Proyecto que dará vida a una herramienta muy útil y necesaria para todos los que de una u otra manera posteamos en nuestras bitacoras ( Blog ) ademas de reforzar los conocimientos y aprender nuevos temas relacionados con el Desarrollo de Software bajo .Net, usando para ello todo lo que este a nuestro alcance: C# / Mono, XML, GTK#, etc ..

No necesitas ser un poderoso programador, solo requieres:

- Ganas de trabajr en el proyecto.
- Deseos de apender
- Ser investigador
- Creativo

Nos encuentras casi siempre aca: #monoblog, en irc.gnome.org
o por este medio http://go-monoblog.blogspot.com/

Así que animate !!

Saludes,

Edgardo Ramos

jueves, julio 07, 2005

Usar Atom.Net

Estoy estudiando la posibilidad de utilizar Atom.Net para la interfaz de comunicacion con los servidores de Blog, Atom.Net implementa es estardar Atom y su licencia es BSD, tengo entendido que la version 2 de esta licencia es compatible con la GPL, aqui un ejemplo de codigo de su utilizacion, en el caul leo las entradas de mi blog:
using System;
using System.Net;Link
using Atom.Core;
class WebApp {
public static void Main()
{
//Estas dos lineas por que yo salgo por un proxy
Uri proxyURI = new Uri("http://peyote:3128");
WebProxy proxy = new WebProxy(proxyURI);
GlobalProxySelection.Select = proxy;

WebRequest myRequest = WebRequest.Create("http://gnujach.blogspot.com/atom.xml");
WebResponse myResponse = myRequest.GetResponse ();
Uri blog = new Uri("http://gnujach.blogspot.com/atom.xml");
AtomFeed feed = AtomFeed.Load(blog);
Console.WriteLine("FeedUri = {0}",feed.Uri.AbsoluteUri);
Console.WriteLine("Feed Title = {0}",feed.Title.Content);
Console.WriteLine("Version = {0}",feed.Version);
Console.WriteLine("{0} entries",feed.Entries.Count);
foreach (AtomEntry entry in feed.Entries)
{
Console.WriteLine("Title {0}", entry.Title.Content);
}
}
}
Espero comentarios

miércoles, julio 06, 2005

Diagramas

Hola gente. En base a lo que hemos estado conversando, diseñé un diagrama de casos de usos para que podamos ir viendo lo que el usuario podrá hacer con el sistema. Intenté hacerlo con monouml, pero aunque la herramienta es muy buena, me siento un poco limitado (mis disculpas a los amigos de monouml, se las debo). Por ahora la hice en Poseidon UML Community edition. Los archivos estan en docs dentro del SVN de la version 0.1 Si hacen cambios, por favor publiquenlos de nuevo al SVN. Por ahora, aqui los dejo con un par de diagramillos. Escucho observaciones (mis disculpas, tampoco soy experto en UML)

Saludos,

Miguel


Una vista del diagrama de casos de usoUna vista del diagrama de clases


martes, julio 05, 2005

Atom Feed !!

Para que estes informado de las actividades del Equipo de monoblog, agreganos por medio de ATOM Feed !!

Aca: http://go-monoblog.blogspot.com/atom.xml

Gracias al Capitán planeta de monohispano por recordarnos :d

--
MonoBlog's Team

Modelo de datos (0.1.1)

Hola gente, Recien recibí un esbozo del modelo de datos de monoblog y me gustaría compartirlo con todos, a fin que hagan sus observaciones y mejoras al modelo.


Todas las ideas que tengan acerca del proyecto, por favor posteenlas a fin de poderlas conocer y trabajar por ellas.

Un saludo,

Miguel