Como assistir ao feed RSS de novas entradas do script bash?

9

Eu preciso assistir um feed RSS do nosso servidor hudson ci. Sempre que uma nova entrada estiver disponível, quero tocar um som chamando #>play sound.wav .

Alguém conhece uma ferramenta que pode assistir a um feed RSS e disparar um comando toda vez que uma nova entrada aparece?

Eu dei uma olhada em rsstail , mas ela recebe todas as entradas do feed e não as mais recentes ou apenas as que são novas desde a última consulta.

    
por martin 06.10.2011 / 08:42

3 respostas

3

Essa é a solução:

rsstail -i 3 -u example.com/rss.xml -n 0 | while read x ; do play fail.ogg ; done

para que cada vez que um novo tópico seja lançado no feed, o som será reproduzido. o jogo é empacotado no sox

    
por 07.10.2011 / 13:38
10

Você pode tentar usar Newsbeuter que tem uma opção para executar um comando externo (consulte notify-program na documentação .

O Canto também tem alguns ganchos personalizáveis , embora o conjunto sistema de configuração parece um pouco mais complicado à primeira vista.

Com rsstail + shell você também pode invocar comandos externos. Comece com o que você já descobriu:

rsstail -i 3 -u example.com/rss.xml -n 0

e canaliza a saída para um loop while read :

rsstail -i 3 -u example.com/rss.xml -n 0 | while read line
  do
    aplay /some/sound/file.wav
    echo "$line"
  done
    
por 06.10.2011 / 15:42
1

Você pode tentar:

#!/bin/bash
last=""
while true
do
    now="$(curl http://yourdomain/feed.rss 2> /dev/null | grep pubDate | head -1)"
    test "$last" != "$now" && play mysound.wav
    last="$now"
    sleep 1m
done
    
por 06.10.2011 / 16:18