~siretart/lcd4linux/debian

« back to all changes in this revision

Viewing changes to contrib/picoLCD/rsstimer.py

  • Committer: Reinhard Tartler
  • Date: 2011-04-27 17:24:15 UTC
  • mto: This revision was merged to the branch mainline in revision 750.
  • Revision ID: siretart@tauware.de-20110427172415-6n4aptmvmz0eztvm
Tags: upstream-0.11.0~svn1143
ImportĀ upstreamĀ versionĀ 0.11.0~svn1143

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import feedparser
 
2
import time
 
3
import datetime
 
4
import tempfile
 
5
import linecache
 
6
 
 
7
# temporary file used to store rss entries
 
8
filename = "/tmp/rsstimer.tmp"
 
9
# interval in seconds between rss updates
 
10
updateinterval = 60
 
11
 
 
12
# lcd4linux permits only 1 parameter passed to the function
 
13
# we send the rss title id with the ! spacer
 
14
def getfeed(rssfeed):
 
15
    print rssfeed
 
16
    idx = 0
 
17
    feed = rssfeed.split('!')[0]
 
18
    idx = int(rssfeed.split('!')[-1])
 
19
    if (idx <= 0): idx = 1;
 
20
    
 
21
    oldfeed = fgetfeed()
 
22
    
 
23
    if (oldfeed != feed):
 
24
        lastupdate = 0
 
25
        print "Feed changed refresing"
 
26
    else:
 
27
        lastupdate = fgetseconds()
 
28
    
 
29
    if (lastupdate <= 0):
 
30
        saverss(feed)
 
31
    else:
 
32
        now = getseconds()
 
33
        delta = now - lastupdate
 
34
        if (delta > updateinterval):
 
35
            print "Last update: " + str(delta) + " seconds ago. Updating the rss entries."
 
36
            saverss(feed)
 
37
    # first line in the file is the timestamp second is the feed url
 
38
    output = linecache.getline(filename, idx + 2)
 
39
    print output
 
40
    return output
 
41
        
 
42
def getseconds():
 
43
    ts = datetime.datetime.now()
 
44
    return time.mktime(ts.timetuple())
 
45
 
 
46
def fgetseconds():
 
47
    try:
 
48
        f = open(filename, "r")
 
49
    except IOError:
 
50
        print "Cannot get timestamp from file"
 
51
        return 0
 
52
    else:
 
53
        return float(f.readline())
 
54
 
 
55
def fgetfeed():
 
56
    try:
 
57
        f = open(filename, "r")
 
58
    except IOError:
 
59
        print "Cannot get feed from file"
 
60
        return ' '
 
61
    else:
 
62
        # skip first line 
 
63
        f.readline()
 
64
        return f.readline().rstrip("\n")
 
65
 
 
66
        
 
67
def saverss(rssfeed):
 
68
    linecache.clearcache()
 
69
    f = open(filename, "w")
 
70
    # save timestamp
 
71
    f.write(str(getseconds()))
 
72
    f.write("\n")
 
73
    # save feed url
 
74
    f.write(rssfeed)
 
75
    f.write("\n")
 
76
    print "Downloading the rss feed from: " + rssfeed
 
77
    feed = feedparser.parse(rssfeed)
 
78
    for entry in feed.entries:
 
79
        f.write(entry.title)
 
80
        f.write("\n")
 
81
    f.close
 
82
    print "Done"
 
83
 
 
84
def printrss():
 
85
    f = open(filename, "r")
 
86
    f.readline()
 
87
    for line in f:
 
88
        print line
 
89
        
 
90
#print getfeed("http://slashdot.org/slashdot.rdf!5")
 
91
print getfeed("http://www.linux.com/feed?theme=rss!1")
 
92