RSS feed: queue status
Posted: March 19th, 2008, 11:07 pm
Hi folks,
It's not really a feature request since I developed it, but in case other people are interested:
I wanted a RSS feed to check my queue status, so here's what the feed look like and the code in interface.py:
feed adress is rss?ma_username=[user]&ma_password=[password]&mode=qstatus
thanks to all the developers of sabnzbd, great job guys!
-matt-

interface.py.diff (from rev 751):
It's not really a feature request since I developed it, but in case other people are interested:
I wanted a RSS feed to check my queue status, so here's what the feed look like and the code in interface.py:
feed adress is rss?ma_username=[user]&ma_password=[password]&mode=qstatus
thanks to all the developers of sabnzbd, great job guys!
-matt-

interface.py.diff (from rev 751):
Code: Select all
326a327,328
> elif mode == 'qstatus':
> return rss_qstatus()
1858a1861,1908
> def rss_qstatus():
> """ Return a RSS feed with the queue status
> """
> qnfo = sabnzbd.queue_info()
> pnfo_list = qnfo[QNFO_PNFO_LIST_FIELD]
>
> rss = RSS()
> rss.channel.title = "SABnzbd Queue"
> rss.channel.description = "Overview of current downloads"
> rss.channel.link = "http://%s:%s/sabnzbd/queue" % ( \
> sabnzbd.CFG['misc']['host'], sabnzbd.CFG['misc']['port'] )
> rss.channel.language = "en"
>
> item = Item()
> item.title = "Total ETA: " + calc_timeleft(qnfo[QNFO_BYTES_LEFT_FIELD], sabnzbd.bps()) + " - "
> item.title += "Queued: %.2f MB - " % (qnfo[QNFO_BYTES_LEFT_FIELD] / MEBI)
> item.title += "Speed: %.2f kB/s" % (sabnzbd.bps() / KIBI)
> rss.addItem(item)
>
> sum_bytesleft = 0
> for pnfo in pnfo_list:
> filename, msgid = SplitFileName(pnfo[PNFO_FILENAME_FIELD])
> bytesleft = pnfo[PNFO_BYTES_LEFT_FIELD] / MEBI
> bytes = pnfo[PNFO_BYTES_FIELD] / MEBI
>
> item = Item()
> item.title = filename
> if (msgid):
> item.link = "https://v3.newzbin.com/browse/post/%s/" % msgid
> else:
> item.link = "http://%s:%s/sabnzbd/history" % ( \
> sabnzbd.CFG['misc']['host'], sabnzbd.CFG['misc']['port'] )
> statusLine = ""
> statusLine += '<tr>'
> #Total MB/MB left
> statusLine += '<dt>Remain/Total: %.2f/%.2f MB</dt>' % (bytesleft, bytes)
> #ETA
> sum_bytesleft += pnfo[PNFO_BYTES_LEFT_FIELD]
> statusLine += "<dt>ETA: %s </dt>" % calc_timeleft(sum_bytesleft, sabnzbd.bps())
> statusLine += "<dt>Age: %s</dt>" % calc_age(pnfo[PNFO_AVG_DATE_FIELD])
> statusLine += "</tr>"
> item.description = statusLine
> rss.addItem(item)
>
> rss.channel.lastBuildDate = std_time(time.time())
> rss.channel.pubDate = rss.channel.lastBuildDate
> rss.channel.ttl = "1"
> return rss.write()