วิธีดูฟีด RSS สำหรับรายการใหม่จากสคริปต์ทุบตี?


10

ฉันต้องดูฟีด RSS จากเซิร์ฟเวอร์ฮัดสันของเรา #>play sound.wavทุกครั้งที่มีรายการใหม่ที่สามารถใช้ได้ฉันต้องการที่จะเล่นเสียงโดยการเรียก

ไม่มีใครรู้เครื่องมือที่สามารถดู rss-feed และยิงคำสั่งทุกครั้งที่รายการใหม่ปรากฏขึ้น?

ฉันได้ดูrsstailแต่จะได้รับรายการทั้งหมดจากฟีดไม่ใช่รายการล่าสุดหรือเฉพาะรายการที่ใหม่ตั้งแต่การค้นหาครั้งล่าสุด


บางทีคุณสามารถแก้ไข bashpodder.shell? ( lincgeek.org/bashpodder )
Johan

คุณแน่ใจหรือว่าใช้rsstailอย่างถูกต้อง? มันmanpageกล่าวว่าช่วงเวลาเริ่มต้นของการตรวจสอบฟีดใหม่คือ 15 นาทีและสามารถเปลี่ยนแปลงได้โดย-iพารามิเตอร์ (จำไว้ว่าด้วยการออกแบบ RSS คุณจะไม่ได้รับข้อมูลอัปเดตทันทีคุณต้องสำรวจความคิดเห็น)
rozcietrzewiacz

1
ใช่เลย. rsstail -i 3 -u example.com/rss.xml -n 0 thats มัน ขอบคุณมาก!
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

คุณถูก. เพิ่งอัปเดต ...
martin

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.