बैश स्क्रिप्ट से नई प्रविष्टियों के लिए आरएसएस फ़ीड कैसे देखें?


10

मुझे हमारे हडसन ci सर्वर से RSS फ़ीड देखने की आवश्यकता है। हर बार एक नई प्रविष्टि उपलब्ध होने पर मैं कॉल करके ध्वनि चलाना चाहता हूं #>play sound.wav

क्या कोई ऐसा उपकरण जानता है, जो हर बार एक नई प्रविष्टि दिखाई देने पर एक rss- फीड देख सकता है और एक कमांड को फायर कर सकता है?

मेरी नज़र थी rsstailलेकिन इसे फीड से सभी प्रविष्टियाँ मिलती हैं न कि नवीनतम या केवल वही जो पिछले लुकअप के बाद से नई हैं।


शायद आप bashpodder.shell को संशोधित कर सकते हैं? ( lincgeek.org/bashpodder )
जोहान

क्या आप वाकई rsstailसही उपयोग कर रहे हैं ? इसका मैनपेज कहता है कि नए फीड के लिए डिफ़ॉल्ट अंतराल 15 मिनट है और इसे -iपैरामीटर द्वारा बदला जा सकता है । (याद रखें कि RSS डिज़ाइन द्वारा, आपको कभी भी अपडेट जानकारी तुरंत नहीं मिलेगी, आपको मतदान करना होगा।)
rozcietrzewiacz

1
जी हाँ। rsstail -i 3 -u example.com/rss.xml -n 0 यह है। आपका बहुत बहुत धन्यवाद!
मार्टिन

जवाबों:


10

आप न्यूज़बीटर का उपयोग करने का प्रयास कर सकते हैं जिसमें बाहरी कमांड चलाने का विकल्प है ( notify-program दस्तावेज़ में देखें )।

कैंटो में कुछ अनुकूलन योग्य हुक भी हैं , हालांकि संपूर्ण कॉन्फ़िगरेशन सिस्टम पहली नज़र में थोड़ा अधिक जटिल दिखता है।

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

इसलिए हर बार फ़ीड में एक नया विषय जारी किया जाता है, ध्वनि बजाई जाएगी। प्ले को साबुन में पैक किया जाता है


मैं समझता हूं कि यह ताज़ा करने के बारे में भाग को हल करता है, लेकिन (अभी तक) ध्वनि खेलने का एक तरीका नहीं है (आपके द्वारा पूछा गया मुख्य भाग)। यदि आपने इसे हल किया है, तो कृपया लिखें।
रोज़ज़ेट्रिएवेज़ेज़ ऑक्ट

आपका अधिकार। बस अद्यतन कर रहा है ...
मार्टिन

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.