如何从bash脚本观看rss feed中的新条目?


10

我需要从我们的hudson ci服务器上观看RSS提要。每次有新条目可用时,我都想通过致电播放声音#>play sound.wav

有人知道有一种工具可以监视rss提要并在每次出现新条目时触发命令吗?

我看了一下,rsstail但是它从提要中获取所有条目,而不是最新的,或者仅获取自上次查找以来的新条目。


也许您可以修改bashpodder.shell?(lincgeek.org/bashpodder
约翰

您确定使用rsstail正确吗?它的联机帮助页说,检查新提要的默认间隔是15分钟,可以通过-i参数更改。(请记住,通过RSS设计,您永远不会立即获得更新信息,必须进行轮询。)
rozcietrzewiacz 2011年

1
是的 rsstail -i 3 -u example.com/rss.xml -n 0多数民众赞成在上面。非常感谢!
马丁

Answers:


10

您可以尝试使用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

4

那就是解决方案:

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

因此,每次在Feed中发布新主题时,都会播放声音。游戏用袜子包装


我知道这解决了有关刷新的部分,但是(还)不是一种播放声音的方式(您要求的主要部分)。如果您也解决了问题,请写下如何。
rozcietrzewiacz 2011年

你的权利。刚刚更新...
马丁

1

您可以尝试:

#!/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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.