বাশ স্ক্রিপ্ট থেকে নতুন এন্ট্রিগুলির জন্য আরএসএস ফিড কীভাবে দেখবেন?


10

আমাদের হডসন সিআই সার্ভার থেকে আরএসএস ফিড দেখতে হবে। প্রতিবার নতুন এন্ট্রি পাওয়া যায় আমি কল করে একটি শব্দ খেলতে চাই #>play sound.wav

কেউ কি এমন একটি সরঞ্জাম জানেন যা প্রতিবার নতুন এন্ট্রি প্রদর্শিত হলে একটি আরএসএস-ফিড দেখতে এবং কমান্ড ফায়ার করতে পারে?

আমার এক নজর ছিল rsstailতবে এটি ফিড থেকে সমস্ত এন্ট্রি পেয়েছে এবং সর্বশেষ অনুসন্ধানের পরে কেবল নতুন বা কেবল নতুন নয় not


হতে পারে আপনি bashpodder.shell পরিবর্তন করতে পারেন? ( লিংকগেক.অর্গ / বাশপোডার )
জোহান

আপনি কি নিশ্চিত যে আপনি rsstailসঠিকভাবে ব্যবহার করছেন ? এর ম্যানপেজটি বলেছে যে নতুন ফিডগুলির জন্য পরীক্ষা করার ডিফল্ট ব্যবধানটি 15 মিনিটের এবং এটি -iপ্যারামিটার দ্বারা পরিবর্তন করা যেতে পারে । (মনে রাখবেন যে আরএসএস নকশা দ্বারা, আপনি অবিলম্বে আপডেট তথ্য কখনোই পাবেন, আপনি জরিপ রয়েছে।)
rozcietrzewiacz

1
হ্যাঁ আরএসস্টাইল -i 3 -u উদাহরণ. 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

সুতরাং প্রতিবার ফিডে একটি নতুন বিষয় প্রকাশিত হলে শব্দটি প্লে হবে। খেলা sox মধ্যে প্যাকেজ হয়


আমি বুঝতে পারি যে এটি রিফ্রেশ করার বিষয়ে অংশটি সমাধান করে, তবে শব্দ বাজানোর উপায়টি (এখনও নয়) নয় (মূল অংশটি যা আপনি চেয়েছিলেন)। আপনি যদি এটির সমাধানও করেন তবে দয়া করে কীভাবে লিখুন।
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.