#!/bin/bash #....[ Ficha: ]...........................................................# # # # Script: easyRss.bsh versao 0.3.1 # # Escrito por: Reinaldo Marques de Lima # # Criado em: 17/07/2006 # # Ultima Atualizacao: 26/09/2006 # # # #....[ Descricao: ].......................................................# # # # Script que gera uma pagina xml para ser usada como RSS do meu blog. # # # #....[ Changelog: ].......................................................# # # # Versao 0.1 - Narceu!!! # # # # Versao 0.2 - Adicionada separacao mensal dos post'ss do blog, que usa # # uma chave de controle que pode ser ligada e desligada para # # fazer a separacao dos meses ou nao. # # # # Versao 0.3 - Algumas melhorias no codigo foram feitas para funcionar # # bem a separacao mensal. # # IMPORTANTE : Na separacao mensal as vezes o lynx # # apresentava alguns problemas de conexao, a versao usada # # foi '2.8.5rel.1', caso isso aconteca recomendo rodar o # # script novamente ate conseguir escrever normalmente, mas # # nada garante que o erro foi do lynx, ou da conexao que eu # # estava usando, mesmo assim fica aqui o aviso. # # # # Versao 0.3.1 - Concertadas algumas falhas na geracao do xml. # # # #....[ How this work? ]...................................................# # # # O programa esta dividido em tres partes, para ser mais exato, tres # # funcoes, a primeira faz a verificacao se o arquivo vai ter separacao # # mensal ou nao, a segunda acessa o blog atraves do navegador lynx e # # encontra os links e titulos de cada post e a terceira escreve o arquivo # # xml que e usado para gerar as fontes RSS. # # Surpreendentemente eu utilize menos expressoes regulares do que pensei. # # # #( Variaveis )...............................# # # # # Define separacao mensal: # CHAVE_MENSAL=0 # '0' liga, '1' desliga # # # URL="http://www.plasticossj4.wordpress.com" # # # # #( Primeira Parte - Define separacao mensal).# # inicio(){ if [ $CHAVE_MENSAL = 0 ]; then MESN=$(lynx -source $URL | grep '

' | cut -d\/ -f5 | head -1) case $MESN in 01) MESL="Janeiro" ; ;; 02) MESL="Fevereiro" ; ;; 03) MESL="Marco" ; ;; 04) MESL="Abril" ; ;; 05) MESL="Maio" ; ;; 06) MESL="Junho" ; ;; 07) MESL="Julho" ; ;; 08) MESL="Agosto" ; ;; 09) MESL="Setembro" ; ;; 10) MESL="Outubro" ; ;; 11) MESL="Novembro" ; ;; 12) MESL="Dezembro" ; ;; esac #( acessa o blog e captura os links e os titulos de cada post )...# LINK=$(lynx -source $URL | grep "

.*\/$MESN.*" | cut -d\" -f2 | sed ':a;$!N;s/\n/ /g;ta') TITLE=$(lynx -source $URL | grep "

.*\/$MESN.*" | cut -d\" -f6 | cut -d" " -f4- | sed 's/ /_/g') #( gera um array para os titulos )................................# CONT=0 for i in ${TITLE[*]}; do CONT=$((CONT+1)) ARRAY[$CONT]=${i//_/ } done else #( acessa o blog e captura os links e os titulos de cada post )...# LINK=$(lynx -source $URL | grep '

' | cut -d\" -f2 | sed ':a;$!N;s/\n/ /g;ta') TITLE=$(lynx -source $URL | grep '

' | cut -d\" -f6 | cut -d" " -f4- | sed 's/ /_/g') #( gera um array para os titulos )................................# CONT=0 for i in ${TITLE[*]}; do CONT=$((CONT+1)) ARRAY[$CONT]=${i//_/ } done fi acessaBlog } #( Segunda Parte - Acessa o blog )........................................# acessaBlog(){ INDICE=0 for i in ${LINK[*]}; do INDICE=$((INDICE+1)) echo -en "\t\t\n\t\t\t${ARRAY[$INDICE]}\n" >> /tmp/rss.tmp echo -e "\t\t\t$i\n\t\t" >> /tmp/rss.tmp done criaRss } #( Terceira Parte - escreve o xml ).......................................# criaRss(){ ITEM=$(cat /tmp/rss.tmp) echo -e " Noticias do Blog $MESL Noticias do Blog \"plasticossj4.wordpress.com\" http://www.plasticossj4.wordpress.com pt-br $ITEM " > blog_news.xml rm /tmp/rss.tmp } #( Comando que chama a primeira funcao )..................................# inicio # # #( Fim, mto legal neh...? )...............................................#