Crie seu próprio sistema de Feed



Neste artigo você poderá criar seu próprio sistema de Feed, formatando e customizando o mesmo como quiser. A linguagem utilizada para tal foi ASP, porém, seguindo a lógica, você poderá criar-lo em qualquer linguagem.

Primeiramente, o que é um feed?

Segundo Wikipédia: Feed é um formato de dados usado em formas de comunicação com conteúdo atualizado frequentemente, como sites de notícias ou blogs. Distribuidores de informação, blogueiros ou canais de notícias disponibilizam um feed ao qual usuários podem se inscrever, no formato de um link.

Resumidamente, feed é algo que o usuário pode lêr num canal de notícias ou blogs sem precisar visitar a página para isso.

Com isso, a comodidade do usuário em receber as atualizações do seu site, fica muito maior e mais atraente.

O sistema já é utilizado em mais de 90% dos sites de conteúdo atualizado constantemente e já é modelo da web 2.0, portanto, ter o seu é mais um canal de divulgação do seu site, blog, marca e afins.

O leitor deixará de entrar na minha página?
Nada disso, quando seu leitor receber uma nova publicação, o mesmo receberá um link para visualizar a mensagem na sua página. Além disso, também é possível você colocar somente o resumo do artigo no feed, e um link para "ler mais" criando uma porta de entrada e fazendo com que seu leitor se interesse em visitar o site.

Como funciona?

A cada publicação de conteúdo em sua página, um arquivo XML será alimentado como um novo <item>. O sistema de leitura de feeds do usuário identifica que há uma nova publicação e o avisa. O leitor lê o resumo ou a notícia inteira no seu leitor de Feeds.

Existem diversos leitores de feeds espalhados pela web, os navegadores mais modernos já trazem o sistema de leitura de feeds, e no top ranking de leitores vem respectivamente: Bloglines (com muitas vantagens, não é a toa que é o primeiro), Rojo e Newsgator. como este artigo trata de como criar o escritor e não o leitor, veremos a seguir como cria-lo.

Estrutura básica do arquivo:


<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
<channel>


<title>Titulo do seu site</title>
<link>http://www.endereçodoseusite.com.etc</link>
<description>Descrição do seu site</description>


<item>
<title>Atualização mais nova, mais em cima</title>
<link>http://seusite.com.etc/noticias/maisnova</link>
<description>Essa eh a noticia mais nova do meu site. Bla, bla, bla.</description>
<pubDate>Sat, 24 Oct 2009 16:47:07</pubDate>
</item>

<item>
<title>Noticia mais antiga, mais embaixo</title>
<link>http://seusite.com.etc/noticias/maisvelha</link>
<description>Essa eh a mais velha. Bla, bla, bla.</description>
<pubDate>Mon, 19 Oct 2009 15:47:07</pubDate>
</item>


</channel>
</rss>

Detalhamento das tags:
<?xml version="1.0" encoding="ISO-8859-1"?>
Definimos o tipo de arquivo e versão do arquivo XML, definimos também nosso tipo de codificação a ser usado.

<rss version="2.0">
A versão do RSS que estamos usando, nosso caso estamos usando a versão 2.0.

<channel>
Iniciamos nossa tag channel é única e indica o canal do feed do rss. Note o início e o final, pois devemos fechar no final do arquivo.

<title>Titulo do seu site</title>
Iniciamos o título do seu site, blog e outros como de um canal de distribuição de notícias.

<link>http://www.endereçodoseusite.com</link>
Incluimos nosso link principal.

<item>
Os artigos. Cada artigo deve ter uma tag item, e dentro do item existem as tags <title>, <description>, <link> e depois fechamos a tag item.

<title>Atualização mais nova, mais em cima</title>
Definimos o título de nosso artigo.

<link>
Definimos o link para nosso artigo.

<description>Essa eh a noticia mais nova do meu site. Bla, bla, bla.</description>
Definimos a drescrição do artigo.

<pubDate>
Definimos a data do nosso artigo no formato RFC 733, por exemplo: Sat, 24 Oct 2009 16:47:07

</item>, </channel>, </rss>
Fechamos nossas tags.

Veja o exemplo de como ficará no browser do leitor em http://www.lecarvalho.com/blog/feed/.


Como fazer:

Primeiramente, tenha em mente que os dados da publicação, podem ou não ser lidos de um banco de dados (recomendável e mais simples), e serem assim escritos no arquivo xml.

Após os dados da publicação serem gravados em uma tabela, a funcção [b]geraRss()[/b] ira atualizar o arquivo XML.

Criando a função geraRss()


<%

Sub geraRss()

Dim vRss
vRss="<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "ISO-8859-1" & Chr(34) & "?>" & vbcrlf
vRss = vRss & "<rss version=" & Chr(34) & "2.0" & Chr(34) & ">" & vbcrlf
vRss = vRss & "<channel>" & vbcrlf
vRss = vRss & " <title>Titulo da sua página</title>" & vbcrlf
vRss = vRss & "<link>http://www.SUAPAGINA.com</link>" & vbcrlf
vRss = vRss & " <description>Descrição da sua página.</description>" & vbcrlf

Neste bloco você armazenou na variável "vRSS" o cabeçalho global do seu RSS.



sSQL = "SELECT POSTAGEM_TITULO, POSTAGEM_TEXTO, POSTAGEM_DATA FROM post ORDER BY POSTAGEM_DATA DESC"
abreConexao() "abrir sua conexão, neste estágio você já deve ter alguma função que abre conexão com o banco de dados.
Set rs = Conn.Execute(sSQL)

Faz um select no banco trazendo todas as postagens


Do While Not rs.eof

vRss = vRss & "<item>" & VbCrlf
vRss = vRss & "<title>" & invertChars(rs("POST_TITULO")) & "</title>" & VbCrlf
vRss = vRss & "<link>http://www.lecarvalho.com/" & Mid(rs("POST_DIR"), 4) & "</link>" & VbCrlf
vRss = vRss & "<description>" & aplicaTagsFeed(invertChars(rs("POST_TEXTO"))) & "</description>" & VbCrlf
vRss = vRss & "<pubDate>" & retornaDataRcf(rs("POST_DATA")) & "</pubDate>" & VbCrlf
vRss = vRss & "</item>" & VbCrlf
rs.movenext
Loop

O loop acima armazena na variável "vRss" todas as publicações realizadas


Set rs = Nothing
fecharConexao()

Após o loop, feche sua conexão com o banco.


vRss = vRss & "</channel>" & vbcrlf
vRss = vRss & " </rss>" & vbcrlf

"ESCREVE NO ARQUIVO .XML
Dim arquivoFS, can
Set arquivoFS = Server.CreateObject("Scripting.FileSystemObject")

Set can = arquivoFS.OpenTextFile(Server.MapPath("feeds.xml"),2)
can.write(vRss)
can.close()
Set can = Nothing
Set vRss = Nothing

End Sub

%>

Fecha o channel e o rss, finalizando assim o arquivo, depois disso, é aberto o arquivo já criado "feeds.xml" e escrito nele o valor da variável "vRss" contendo todas as tags necessárias para o arquivo XML do feed.

Pronto, com a rotina geraRss() criada, você poderá chama-la toda vez que criar uma nova publicação em sua página, e/ou quando editar alguma publicação e/ou quando ativar/desativar alguma publicação. Seja como for, basta chama-la dessa forma:


geraRss()


Sabendo que a data das publicações que ficarão no arquivo XML deve ser formatada no padrão RCF, veja abaixo como formata-la desta forma:


<%

Function retornaDataRcf(sData)

Dim strDataSplit, retorno

retorno = Cstr(FormatDateTime(sData, 1))

strDataSplit = Split(retorno, " ")

Select Case strDataSplit(0)
Case "domingo,":
retorno = "Sun, "
Case "segunda-feira,":
retorno = "Mon, "
Case "terça-feira,":
retorno = "Tue, "
Case "quarta-feira,":
retorno = "Wed, "
Case "quinta-feira,":
retorno = "Thu, "
Case "sexta-feira,":
retorno = "Fri, "
Case "sábado,":
retorno = "Sat, "
End Select

retorno = retorno & strDataSplit(1) & " "

Select Case strDataSplit(3)
Case "janeiro":
retorno = retorno & "Jan "
case "fevereiro":
retorno = retorno & "Feb "
case "março":
retorno = retorno & "Mar "
case "abril":
retorno = retorno & "Apr "
case "maio":
retorno = retorno & "May "
case "junho":
retorno = retorno & "Jun "
case "julho"
retorno = retorno & "Jul "
case "agosto":
retorno = retorno & "Aug "
case "setembro":
retorno = retorno & "Sep "
Case "outubro":
retorno = retorno & "Oct "
case "novembro":
retorno = retorno & "Nov "
case "dezembro":
retorno = retorno & "Dec "
End Select

retorno = retorno & strDataSplit(5) & " 8:0:00 GMT"

retornaDataRcf = retorno

End Function

%>


Para que seu código fique limpo e possa ser chamado de qualquer página, chame o apartir da referência de uma outra página ou classe, por exemplo, crie a página asp com o nome: funcfeeds.asp e faça o include na página que gera a notícia.

Feito isso está pronto seu sistema de feed, qualquer dúvida, deixe nos comentários...

Abraços!



Comentários
Nome:
Link:
Mensagem:


Show de bola esse artigo... inclusive vc já tinha me explicado sobre feed na faculdade!.

Flw!