check if connection is alive
[xkcdha] / xkcdha.py
index a6891f3..4999dda 100755 (executable)
--- a/xkcdha.py
+++ b/xkcdha.py
@@ -15,6 +15,7 @@ class XKCDha(hildondesktop.HomeItem):
        
     image_dir = "/home/user/MyDocs/.images/xkcdha/"
     icons_dir = "/usr/share/xkcdha/icons/"
+    connection_required_img = "/usr/share/xkcdha/img/connection_required.png"
 
     def __init__(self, max_height, max_width):
         def controls():
@@ -74,8 +75,16 @@ class XKCDha(hildondesktop.HomeItem):
                 url = "http://xkcd.com/%s/" % number
             
             print 'url:', url
+            
+            try:
+                content = urllib.urlopen(url).read()
+            except IOError:
+                filename = os.path.join(self.image_dir, self.number + '.png')
+                if os.path.exists(filename):
+                    return filename
+                else:
+                    return self.connection_required_img
 
-            content = urllib.urlopen(url).read()
             img_url = re.search('(http://imgs.xkcd.com/comics/[^"]+)" title="[^"]+"', 
                     content).group(1)
             next = re.search('<a href="([^"]+)" accesskey="n">Next', content).group(1)