Merge lp://staging/~sense/lernid/fix-499951 into lp://staging/lernid

Proposed by Sense Egbert Hofstede
Status: Merged
Merged at revision: not available
Proposed branch: lp://staging/~sense/lernid/fix-499951
Merge into: lp://staging/lernid
Diff against target: 184 lines (+36/-21)
4 files modified
bin/lernid (+12/-11)
lernid/ConnectDialog.py (+9/-9)
lernid/IrcBackend.py (+1/-1)
lernid/lernidconfig.py (+14/-0)
To merge this branch: bzr merge lp://staging/~sense/lernid/fix-499951
Reviewer Review Type Date Requested Status
Jono Bacon Pending
Review via email: mp+16555@code.staging.launchpad.net
To post a comment you must log in.
Revision history for this message
Sense Egbert Hofstede (sense) wrote :

This branch fixes bug #499951 by caching the events in $XDG_CACHE_HOME rather than $XDG_DATA_HOME.

71. By Sense Egbert Hofstede

Fixed forgotten (unused) variable name in lernid/IrcBackend.py.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'bin/lernid'
2--- bin/lernid 2009-12-23 16:33:59 +0000
3+++ bin/lernid 2009-12-23 21:00:29 +0000
4@@ -47,7 +47,7 @@
5 sys.path.insert(0, os.path.dirname(fullPath))
6
7 from lernid import AboutLernidDialog, PreferencesLernidDialog, ConnectDialog, IrcBackend
8-from lernid.lernidconfig import getdatapath
9+from lernid.lernidconfig import getdatapath, save_cache_path
10
11 class LernidWindow(gtk.Window):
12 __gtype_name__ = "LernidWindow"
13@@ -84,10 +84,11 @@
14
15 self.setup_notifications()
16
17- self.lernidfolder = xdg.BaseDirectory.save_data_path('lernid')
18- self.lernidfolder_events = os.path.join(self.lernidfolder, "events")
19+ self.lernidcachefolder = save_cache_path('lernid')
20+ self.lerniddatafolder = xdg.BaseDirectory.save_data_path('lernid')
21+ self.lernidcachefolder_events = os.path.join(self.lernidcachefolder, "events")
22
23- gfile = gio.File(os.path.join(self.lernidfolder, "classroom_temp.txt"))
24+ gfile = gio.File(os.path.join(self.lerniddatafolder, "classroom_temp.txt"))
25 self.monitor = gfile.monitor_file(gio.FILE_MONITOR_EVENT_CHANGED, None)
26
27 if self.monitor:
28@@ -154,7 +155,7 @@
29 firstpage = "-dFirstPage=" + str(slidenumber)
30 lastpage = "-dLastPage=" + str(slidenumber)
31 outputfile = "-sOutputFile=" + self.tempslide.name
32- slidedeck = os.path.join(self.lernidfolder, "slides.pdf")
33+ slidedeck = os.path.join(self.lerniddatafolder, "slides.pdf")
34
35 print 'output file', outputfile
36 subprocess.Popen(['gs', '-dNOPAUSE', firstpage, lastpage, '-dBATCH', '-sDEVICE=jpeg', outputfile, '-r200', slidedeck]).wait()
37@@ -165,7 +166,7 @@
38
39 def classroom_log_changed(self, monitor, file1, file2, evt_type):
40 if evt_type == gio.FILE_MONITOR_EVENT_CHANGED:
41- filehandle = open(os.path.join(self.lernidfolder, "classroom_temp.txt"), "r")
42+ filehandle = open(os.path.join(self.lerniddatafolder, "classroom_temp.txt"), "r")
43 linelist = filehandle.readlines()
44 filehandle.flush()
45 chatline = linelist[len(linelist)-1]
46@@ -211,7 +212,7 @@
47 def parse_schedule(self):
48 """Read the iCal schedule and generate a dictionary with the data"""
49
50- f = open(os.path.join(self.lernidfolder_events, "schedule.ical"), "r")
51+ f = open(os.path.join(self.lernidcachefolder_events, "schedule.ical"), "r")
52 cal = vobject.readOne(f)
53
54 self.schedule = []
55@@ -220,7 +221,7 @@
56 # read in event start and end times
57
58 config = ConfigParser.ConfigParser()
59- config.read(os.path.join(self.lernidfolder_events, "config.lernid"))
60+ config.read(os.path.join(self.lernidcachefolder_events, "config.lernid"))
61
62 eventstart_str = config.get(self.event, "eventstart")
63 eventend_str = config.get(self.event, "eventend")
64@@ -311,7 +312,7 @@
65
66 if st_dt < now_dt < end_dt:
67 if self.currentsession_downloadedslides is False:
68- urllib.urlretrieve(sess['slides'], os.path.join(self.lernidfolder, "slides.pdf"))
69+ urllib.urlretrieve(sess['slides'], os.path.join(self.lerniddatafolder, "slides.pdf"))
70 self.currentsession_downloadedslides = True
71
72 def populate_schedule_view(self):
73@@ -440,13 +441,13 @@
74 self.send_notification(_("Connected to ") + self.event)
75
76 config = ConfigParser.ConfigParser()
77- config.read(os.path.join(self.lernidfolder_events, "config.lernid"))
78+ config.read(os.path.join(self.lernidcachefolder_events, "config.lernid"))
79
80 self.eventhomepage = config.get(self.event, "homepage")
81 classroomirc = "http://webchat.freenode.net/?nick=lernidviewer_" + self.nick + "&channels=" + config.get(self.event, "classroom")
82 chatirc = "http://webchat.freenode.net/?nick=" + self.nick + "&channels=" + config.get(self.event, "chat")
83
84- urllib.urlretrieve(config.get(self.event, "icalurl"), os.path.join(self.lernidfolder_events, "schedule.ical"))
85+ urllib.urlretrieve(config.get(self.event, "icalurl"), os.path.join(self.lernidcachefolder_events, "schedule.ical"))
86
87 self.irc = IrcBackend.Irc()
88 self.irc.tp_connect("lernid_" + self.nick, "irc.freenode.net", config.get(self.event, "classroom"))
89
90=== modified file 'lernid/ConnectDialog.py'
91--- lernid/ConnectDialog.py 2009-12-23 14:17:34 +0000
92+++ lernid/ConnectDialog.py 2009-12-23 21:00:29 +0000
93@@ -22,7 +22,7 @@
94 import xdg.BaseDirectory
95 import logging
96
97-from lernid.lernidconfig import getdatapath
98+from lernid.lernidconfig import getdatapath, save_cache_path
99
100 class ConnectDialog(gtk.Dialog):
101 __gtype_name__ = "ConnectDialog"
102@@ -50,12 +50,12 @@
103 self.builder.connect_signals(self)
104
105 # create config folder
106-
107- self.lernidfolder = xdg.BaseDirectory.save_data_path('lernid')
108- self.lernidfolder_events = os.path.join(self.lernidfolder, "events")
109+ self.lernidcachefolder = save_cache_path('lernid')
110+ self.lerniddatafolder = xdg.BaseDirectory.save_data_path('lernid')
111+ self.lernidcachefolder_events = os.path.join(self.lernidcachefolder, "events")
112
113 try:
114- os.mkdir(self.lernidfolder_events)
115+ os.mkdir(self.lernidcachefolder_events)
116 except:
117 pass
118
119@@ -63,19 +63,19 @@
120
121 config = ConfigParser.ConfigParser()
122
123- urllib.urlretrieve('http://www.jonobacon.org/files/lernid/ubuntu.lernid', os.path.join(self.lernidfolder_events, "config.lernid"))
124- #output = open(os.path.join(self.lernidfolder_events, "temp.txt"),'wb')
125+ urllib.urlretrieve('http://www.jonobacon.org/files/lernid/ubuntu.lernid', os.path.join(self.lernidcachefolder_events, "config.lernid"))
126+ #output = open(os.path.join(self.lernidcachefolder_events, "temp.txt"),'wb')
127
128 #output.write(response.read())
129 #output.close
130
131 # copy file
132
133- #shutil.copy(os.path.join(self.lernidfolder_events, "temp.txt"),os.path.join(self.lernidfolder_events, "ubuntu.txt"))
134+ #shutil.copy(os.path.join(self.lernidcachefolder_events, "temp.txt"),os.path.join(self.lernidcachefolder_events, "ubuntu.txt"))
135
136 # read file
137
138- config.read(os.path.join(self.lernidfolder_events, "config.lernid"))
139+ config.read(os.path.join(self.lernidcachefolder_events, "config.lernid"))
140
141 sections = config.sections()
142 logging.debug(sections)
143
144=== modified file 'lernid/IrcBackend.py'
145--- lernid/IrcBackend.py 2009-12-15 12:32:43 +0000
146+++ lernid/IrcBackend.py 2009-12-23 21:00:29 +0000
147@@ -123,7 +123,7 @@
148
149 class Irc(object):
150 def __init__(self):
151- self.lernidfolder = xdg.BaseDirectory.save_data_path('lernid')
152+ self.lerniddatafolder = xdg.BaseDirectory.save_data_path('lernid')
153 reg = telepathy.client.ManagerRegistry()
154 reg.LoadManagers()
155
156
157=== modified file 'lernid/lernidconfig.py'
158--- lernid/lernidconfig.py 2009-11-25 03:36:51 +0000
159+++ lernid/lernidconfig.py 2009-12-23 21:00:29 +0000
160@@ -25,6 +25,7 @@
161
162
163 import os
164+import xdg.BaseDirectory
165
166 class project_path_not_found(Exception):
167 pass
168@@ -49,3 +50,16 @@
169 else:
170 raise project_path_not_found
171
172+# Taken from xdg.BaseDirectory.save_data_path() to provide the same function
173+# $XDG_CACHE_HOME as well
174+def save_cache_path(*resource):
175+ """Ensure $XDG_CACHE_HOME/<resource>/ exists, and return its path.
176+ 'resource' is the name of some shared resource. Use this when updating
177+ a shared (between programs) database. Use the xdg_data_dirs variable
178+ for loading."""
179+ resource = os.path.join(*resource)
180+ assert not resource.startswith('/')
181+ path = os.path.join(xdg.BaseDirectory.xdg_cache_home, resource)
182+ if not os.path.isdir(path):
183+ os.makedirs(path)
184+ return path

Subscribers

People subscribed via source and target branches