2013. május 21., kedd

Conky: The Old Reader szkript

Ahogy ígértem már itt is a Google Reader olvasatlan feed értesítő Python szkript Conky-hoz. A korábbi verziót nem én írtam és nem is teljesen arra célra való, amire használtam, így inkább megírtam egy újabb változatot, ami a méréseim szerint majdnem kétszer olyan gyors, és 20%-al kevesebb erőforrást is használ működéséhez. Ráadásul így nem kell jelszót beírni a Conky konfigurációs fájlba, ami biztonságosabb is.

A szkript működéséhez szükség lesz a python-requests csomagra, tehát telepítsük:

$ sudo apt-get install python-requests

Telepítése nagyon hasonlít az előző cikkben szereplő szkripthez, hozzunk létre egy futtatható szkriptfájlt:

$ mkdir -p ~/.scripts
$ touch ~/.scripts/rssToConky.py
$ chmod +x ~/.scripts/rssToConky.py
$ gedit ~/.scripts/rssToConky.py

A megnyíló Gedit szerkesztőbe pedig másoljuk be a következő kódot:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Milán Unicsovics, u.milan at gmail dot com
# usage: ./rssToConky.py
# writes out the count of unread RSS feeds from The Old Reader (http://theoldreader.com/)
import requests
import json
def main():
try:
user = 'EMAILADDRESS'
password = 'PASSWORD'
session = requests.Session()
# login
data = {'user[email]': user, 'user[password]': password}
session.post('http://theoldreader.com/users/sign_in', data = data, timeout = 5)
# get feeds
response = session.get('http://theoldreader.com/feeds/counts.json', timeout = 5)
feeds = json.loads(response.text)['feeds'][0]['feeds']
unread = 0
for feed in feeds:
unread += int(feed['unread_count'])
print(unread)
except requests.exceptions.Timeout:
print(0)
if __name__ == '__main__':
main()
view raw rssToConky.py hosted with ❤ by GitHub

Természetesen az emailcím és a jelszó mezőket ki kell tölteni. Ha mindez megvan akkor ugyanúgy lehet felhasználni, mint a korábbi változatot, egy lehetséges példa:

You have ${texeci 300 ~/.scripts/rssToConky.py} unread feed(s).

Az eredményről screenshotot az előző cikkben láthattok. :)

Update: A szkriptet időközben átírtam Python3-ra, így szükség van egy >3.x verzió telepítésére, amihez a pyenv eszközt ajánlom.

Nincsenek megjegyzések:

Megjegyzés küldése