web-dev-qa-db-ja.com

Bashスクリプトからの新しいエントリのRSSフィードを監視する方法は?

ハドソンCIサーバーからのRSSフィードを監視する必要があります。新しいエントリが利用可能になるたびに、#>play sound.wavを呼び出してサウンドを再生します。

RSSフィードを監視し、新しいエントリが表示されるたびにコマンドを実行できるツールを知っている人はいますか?

私はrsstailを確認しましたが、フィードからすべてのエントリを取得します。最新のエントリではなく、最後のルックアップ以降の新しいエントリのみを取得します。

10
martin

それが解決策です:

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

そのため、フィードで新しいトピックがリリースされるたびに、サウンドが再生されます。遊びはソックスにパッケージされています

4
martin

外部コマンドを実行するオプションがあるNewsbeuterを使用して試すことができます(notify-programを参照)ドキュメンテーション )。

Cantoには、カスタマイズ可能なフックもありますが、構成システム全体では一見するともう少し複雑です。

rsstail + Shellを使用すると、外部コマンドを呼び出すこともできます。すでに理解していることから始めます。

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

そして出力をwhile readループにパイプします:

rsstail -i 3 -u example.com/rss.xml -n 0 | while read line
  do
    aplay /some/sound/file.wav
    echo "$line"
  done
10
rozcietrzewiacz

あなたは試すことができます:

#!/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
1
k.parnell