segunda-feira, 4 de dezembro de 2006

Sobre este blog

O médico disse que escrever pode ajudar a fazer as vozes parerem. Vamos ver.

Hi ALL! Has been a long time...

Pois é, depois de um longo tempo sem escrever na internet, resolvi criar este blog como uma forma de devolver o conteúdo do ASP4Developers.com.br para a comunidade e poder voltar a ter um canal pra falar um pouco do que estou fazendo.

Certamente o conteúdo antigo está desatualizado em relação às novas tecnologias disponíveis, mas é bom pra matar a saudade. E também foi bom por poder olhar para o namespace Google.GData.Client, que permite escrever código gerenciado para subir e ler conteúdo no Blogger.

Depois de penar um pouco, por conta de estar usando o Blogspot beta e pela falta de códigos consistentes na documentação, montei o snippet abaixo:

using System;
using System.IO;
using System.Net;
using System.Xml;
using Google.GData.Client;

namespace Testes
{
///


/// Summary description for Class1.
///

class Class1
{
///
/// The main entry point for the application.
///

[STAThread]
static void Main(string[] args)
{
string blogId = "6668893451803848875";
Uri postUrl = new Uri(String.Format("http://beta.blogger.com/feeds/{0}/posts/full", blogId));

Service blogger = new Service("blogger", "ASP4D-DataTransfer");
blogger.setUserCredentials("rubens.farias@gmail.com", "password");

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"C:\Projetos\Testes\asp4d.xml");
XmlNodeList links = xmlDoc.SelectNodes("//Link[@URL='' and @GroupId != 'g0001' and @GroupId != 'g0006']");
i = 0;
foreach(XmlElement link in links)
{
Console.WriteLine( "Carregando {0} de {1}", ++i, links.Count);
XmlElement user = (XmlElement)xmlDoc.SelectSingleNode(String.Format("//User[@UserId='{0}']", link.GetAttribute("UserId")));

XmlElement group = (XmlElement)xmlDoc.SelectSingleNode(String.Format("//Group[@GroupId='{0}']", link.GetAttribute("GroupId")));
AtomCategory category = new AtomCategory(group.GetAttribute("Name"));

AtomEntry newPost = new AtomEntry();
newPost.Title.Text = link.GetAttribute("Subject");
newPost.Published = DateTime.Parse(link.GetAttribute("TS"));
newPost.Content.Content = link.InnerText;
newPost.Categories.Add(category);
blogger.Insert(postUrl, newPost);
}
}
}
}

Agora estou querendo subir os comentários dos posts, mas não é possível fazer isso diretamente. Vou pensar em um gato e depois posto ele aqui.

[]'s

Rubens

0 comentários: