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.