bash 스크립트에서 rss 피드가 새 항목을 보는 방법?


10

hudson ci 서버에서 RSS 피드를 볼 필요가 있습니다. 새 항목을 사용할 수있을 때마다을 호출하여 소리를 재생하려고합니다 #>play sound.wav.

누구나 새로운 항목이 나타날 때마다 rss-feed를보고 명령을 실행할 수있는 도구를 알고 있습니까?

나는 살펴 rsstail보았지만 피드에서 모든 항목을 가져옵니다. 최근 또는 마지막 조회 이후의 새로운 항목은 아닙니다.


아마 bashpodder.shell을 수정할 수 있습니까? ( lincgeek.org/bashpodder )
Johan

rsstail올바르게 사용 하고 있습니까? 그것의 맨 페이지는 새로운 피드를 확인의 기본 간격은 15 분하고는 변경할 수 있습니다 텟 말한다 -i매개 변수입니다. (당신이 투표해야 즉시 업데이트 정보를 얻을 수 없을거야, RSS 디자인에 의해 것을 기억하십시오.)
rozcietrzewiacz

1
그럼 당연하지. rsstail -i 3 -u example.com/rss.xml -n 0 입니다. 고마워요!
martin

답변:


10

외부 명령을 실행하는 옵션이있는 Newsbeuter 를 사용해보십시오 ( notify-program 문서 참조 ).

전체 구성 시스템이 언뜻보기에는 조금 더 복잡해 보이지만 Canto 에는 사용자 정의 가능한 후크 가 있습니다.

rsstail+ 쉘을 사용하면 외부 명령을 호출 할 수도 있습니다. 이미 알아 낸 것으로 시작하십시오.

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

피드에서 새 주제가 릴리스 될 때마다 사운드가 재생됩니다. 놀이는 삭스에 포장


나는 이것이 새로 고침에 관한 부분을 해결하지만 (아직) 소리를 재생하는 방법이 아니라는 것을 이해합니다 (주요 부분). 당신도 그것을 해결했다면, 방법을 적어주세요.
rozcietrzewiacz

당신의 권리. 그냥 업데이트 ...
마틴

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.