Files
archived-lcd4linux/contrib/picoLCD/rsstimer.py
michael 64522a267d added some contrib files from Nicu Pavel
git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@986 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
2009-02-28 06:12:18 +00:00

93 lines
2.0 KiB
Python

import feedparser
import time
import datetime
import tempfile
import linecache
# temporary file used to store rss entries
filename = "/tmp/rsstimer.tmp"
# interval in seconds between rss updates
updateinterval = 60
# lcd4linux permits only 1 parameter passed to the function
# we send the rss title id with the ! spacer
def getfeed(rssfeed):
print rssfeed
idx = 0
feed = rssfeed.split('!')[0]
idx = int(rssfeed.split('!')[-1])
if (idx <= 0): idx = 1;
oldfeed = fgetfeed()
if (oldfeed != feed):
lastupdate = 0
print "Feed changed refresing"
else:
lastupdate = fgetseconds()
if (lastupdate <= 0):
saverss(feed)
else:
now = getseconds()
delta = now - lastupdate
if (delta > updateinterval):
print "Last update: " + str(delta) + " seconds ago. Updating the rss entries."
saverss(feed)
# first line in the file is the timestamp second is the feed url
output = linecache.getline(filename, idx + 2)
print output
return output
def getseconds():
ts = datetime.datetime.now()
return time.mktime(ts.timetuple())
def fgetseconds():
try:
f = open(filename, "r")
except IOError:
print "Cannot get timestamp from file"
return 0
else:
return float(f.readline())
def fgetfeed():
try:
f = open(filename, "r")
except IOError:
print "Cannot get feed from file"
return ' '
else:
# skip first line
f.readline()
return f.readline().rstrip("\n")
def saverss(rssfeed):
linecache.clearcache()
f = open(filename, "w")
# save timestamp
f.write(str(getseconds()))
f.write("\n")
# save feed url
f.write(rssfeed)
f.write("\n")
print "Downloading the rss feed from: " + rssfeed
feed = feedparser.parse(rssfeed)
for entry in feed.entries:
f.write(entry.title)
f.write("\n")
f.close
print "Done"
def printrss():
f = open(filename, "r")
f.readline()
for line in f:
print line
#print getfeed("http://slashdot.org/slashdot.rdf!5")
print getfeed("http://www.linux.com/feed?theme=rss!1")