fixed minor bugs, added PHD Comics
authorMarcus W <mece@LeChuck2.(none)>
Tue, 2 Feb 2010 22:13:05 +0000 (00:13 +0200)
committerMarcus W <mece@LeChuck2.(none)>
Tue, 2 Feb 2010 22:13:05 +0000 (00:13 +0200)
comic-widget_0.2.5-2.changes [deleted file]
comic-widget_0.2.5-2.dsc [deleted file]
comic-widget_0.2.5-2.tar.gz [deleted file]
comic-widget_0.2.5-3.changes [deleted file]
comic-widget_0.2.5-3.dsc [deleted file]
comic-widget_0.2.5-3.tar.gz [deleted file]
comic-widget_0.2.5-3_all.deb [deleted file]
src/opt/comic-widget/db/comicdb.phd.csv [new file with mode: 0644]
src/opt/comic-widget/db/comicdb.sinfest.csv
src/opt/comic-widget/db/comicdb.xkcd.csv
src/usr/lib/hildon-desktop/comicwidget.py

diff --git a/comic-widget_0.2.5-2.changes b/comic-widget_0.2.5-2.changes
deleted file mode 100644 (file)
index a44c5e6..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Maintainer: Marcus Wikstrom <mece@ovi.com>
-Format: 1.7
-Source: comic-widget
-Version: 0.2.5-2
-Architecture: all
-Date: Mon, 01 Feb 2010 14:13:38 +0000
-Distribution: fremantle
-Urgency: low
-Description: 
- A widget that displays comics taken from the web.
-Changes: 
- New logo!
-Changed-By: Marcus Wikstrom <mece@ovi.com>
-Files:
- 6f973cd4cf82f85058e4f25f53e28009 62362 user/desktop extras-devel comic-widget_0.2.5-2.tar.gz
- e988bea62ae5f51eb0cdcebcbb9154a8 349 user/desktop extras-devel comic-widget_0.2.5-2.dsc
-
diff --git a/comic-widget_0.2.5-2.dsc b/comic-widget_0.2.5-2.dsc
deleted file mode 100644 (file)
index 6c50776..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-Source: comic-widget
-Version: 0.2.5-2
-Maintainer: Marcus Wikstrom <mece@ovi.com>
-Architecture: all
-Format: 1.0
-Build-Depends: python2.5, python-osso, python-gtk2, python-hildon, python-hildondesktop, python2.5-cairo, hildon-desktop-python-loader
-Standards-Version: 0.2.5-2
-Files:
- 6f973cd4cf82f85058e4f25f53e28009 62362 comic-widget_0.2.5-2.tar.gz
-
diff --git a/comic-widget_0.2.5-2.tar.gz b/comic-widget_0.2.5-2.tar.gz
deleted file mode 100644 (file)
index a7eb66f..0000000
Binary files a/comic-widget_0.2.5-2.tar.gz and /dev/null differ
diff --git a/comic-widget_0.2.5-3.changes b/comic-widget_0.2.5-3.changes
deleted file mode 100644 (file)
index ec76f38..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Maintainer: Marcus Wikstrom <mece@ovi.com>
-Format: 1.7
-Source: comic-widget
-Version: 0.2.5-3
-Architecture: all
-Date: Mon, 01 Feb 2010 15:02:35 +0000
-Distribution: fremantle
-Urgency: low
-Description: 
- A widget that displays comics taken from the web.
-Changes: 
- New logo!
-Changed-By: Marcus Wikstrom <mece@ovi.com>
-Files:
- d63ea7835bced65c46c6642f5b048fc6 62347 user/desktop extras-devel comic-widget_0.2.5-3.tar.gz
- 5cfaac7355895c0f530d677e92e52035 349 user/desktop extras-devel comic-widget_0.2.5-3.dsc
-
diff --git a/comic-widget_0.2.5-3.dsc b/comic-widget_0.2.5-3.dsc
deleted file mode 100644 (file)
index eb3ec0c..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-Source: comic-widget
-Version: 0.2.5-3
-Maintainer: Marcus Wikstrom <mece@ovi.com>
-Architecture: all
-Format: 1.0
-Build-Depends: python2.5, python-osso, python-gtk2, python-hildon, python-hildondesktop, python2.5-cairo, hildon-desktop-python-loader
-Standards-Version: 0.2.5-3
-Files:
- d63ea7835bced65c46c6642f5b048fc6 62347 comic-widget_0.2.5-3.tar.gz
-
diff --git a/comic-widget_0.2.5-3.tar.gz b/comic-widget_0.2.5-3.tar.gz
deleted file mode 100644 (file)
index 789ee03..0000000
Binary files a/comic-widget_0.2.5-3.tar.gz and /dev/null differ
diff --git a/comic-widget_0.2.5-3_all.deb b/comic-widget_0.2.5-3_all.deb
deleted file mode 100644 (file)
index 6c17f84..0000000
Binary files a/comic-widget_0.2.5-3_all.deb and /dev/null differ
diff --git a/src/opt/comic-widget/db/comicdb.phd.csv b/src/opt/comic-widget/db/comicdb.phd.csv
new file mode 100644 (file)
index 0000000..f389fec
--- /dev/null
@@ -0,0 +1,51 @@
+comic,id,link,url,filename,title
+phd,1225,http://www.phdcomics.com/comics/archive.php?comicid=1225,http://www.phdcomics.com/comics/archive/phd091409s.gif,phd091409s.gif,"Annual Grad/Faculty Softball Game, pt. 1"\r
+phd,1226,http://www.phdcomics.com/comics/archive.php?comicid=1226,http://www.phdcomics.com/comics/archive/phd091609s.gif,phd091609s.gif,High stakes Softball\r
+phd,1227,http://www.phdcomics.com/comics/archive.php?comicid=1227,http://www.phdcomics.com/comics/archive/phd091809s.gif,phd091809s.gif,Softball: younger and faster\r
+phd,1228,http://www.phdcomics.com/comics/archive.php?comicid=1228,http://www.phdcomics.com/comics/archive/phd092109s.gif,phd092109s.gif,"Annual Grad/Faculty Softball Game, pt. 4"\r
+phd,1229,http://www.phdcomics.com/comics/archive.php?comicid=1229,http://www.phdcomics.com/comics/archive/phd092309s.gif,phd092309s.gif,Softball! Pt. 5\r
+phd,1230,http://www.phdcomics.com/comics/archive.php?comicid=1230,http://www.phdcomics.com/comics/archive/phd092509s.gif,phd092509s.gif,Softball! Pt. 6!\r
+phd,1231,http://www.phdcomics.com/comics/archive.php?comicid=1231,http://www.phdcomics.com/comics/archive/phd092809s.gif,phd092809s.gif,Vacation v. Stress\r
+phd,1232,http://www.phdcomics.com/comics/archive.php?comicid=1232,http://www.phdcomics.com/comics/archive/phd093009s.gif,phd093009s.gif,"If you write it, he will sign it"\r
+phd,1233,http://www.phdcomics.com/comics/archive.php?comicid=1233,http://www.phdcomics.com/comics/archive/phd100209s.gif,phd100209s.gif,"Softball, pt. 8!"\r
+phd,1234,http://www.phdcomics.com/comics/archive.php?comicid=1234,http://www.phdcomics.com/comics/archive/phd100509s.gif,phd100509s.gif,Man oh man!\r
+phd,1235,http://www.phdcomics.com/comics/archive.php?comicid=1235,http://www.phdcomics.com/comics/archive/phd100709s.gif,phd100709s.gif,Slide!!!\r
+phd,1236,http://www.phdcomics.com/comics/archive.php?comicid=1236,http://www.phdcomics.com/comics/archive/phd100909s.gif,phd100909s.gif,"Softball, the thrilling conclusion"\r
+phd,1237,http://www.phdcomics.com/comics/archive.php?comicid=1237,http://www.phdcomics.com/comics/archive/phd101209s.gif,phd101209s.gif,Core Principles\r
+phd,1238,http://www.phdcomics.com/comics/archive.php?comicid=1238,http://www.phdcomics.com/comics/archive/phd101409s.gif,phd101409s.gif,Phone call\r
+phd,1239,http://www.phdcomics.com/comics/archive.php?comicid=1239,http://www.phdcomics.com/comics/archive/phd101609s.gif,phd101609s.gif,Parental Expectations vs. Time\r
+phd,1240,http://www.phdcomics.com/comics/archive.php?comicid=1240,http://www.phdcomics.com/comics/archive/phd101909s.gif,phd101909s.gif,Babies\r
+phd,1241,http://www.phdcomics.com/comics/archive.php?comicid=1241,http://www.phdcomics.com/comics/archive/phd102109s.gif,phd102109s.gif,Feeling defensive\r
+phd,1242,http://www.phdcomics.com/comics/archive.php?comicid=1242,http://www.phdcomics.com/comics/archive/phd102309s.gif,phd102309s.gif,And after that?\r
+phd,1243,http://www.phdcomics.com/comics/archive.php?comicid=1243,http://www.phdcomics.com/comics/archive/phd102609s.gif,phd102609s.gif,Detained! Part 1\r
+phd,1244,http://www.phdcomics.com/comics/archive.php?comicid=1244,http://www.phdcomics.com/comics/archive/phd102809s.gif,phd102809s.gif,Detained! Part 2\r
+phd,1245,http://www.phdcomics.com/comics/archive.php?comicid=1245,http://www.phdcomics.com/comics/archive/phd103109s.gif,phd103109s.gif,Detained! Part 3\r
+phd,1246,http://www.phdcomics.com/comics/archive.php?comicid=1246,http://www.phdcomics.com/comics/archive/phd110209s.gif,phd110209s.gif,Mike's motto\r
+phd,1247,http://www.phdcomics.com/comics/archive.php?comicid=1247,http://www.phdcomics.com/comics/archive/phd110409s.gif,phd110409s.gif,Command structure\r
+phd,1248,http://www.phdcomics.com/comics/archive.php?comicid=1248,http://www.phdcomics.com/comics/archive/phd110609s.gif,phd110609s.gif,Mundane details\r
+phd,1249,http://www.phdcomics.com/comics/archive.php?comicid=1249,http://www.phdcomics.com/comics/archive/phd110909s.gif,phd110909s.gif,Brain saver\r
+phd,1250,http://www.phdcomics.com/comics/archive.php?comicid=1250,http://www.phdcomics.com/comics/archive/phd111109s.gif,phd111109s.gif,Experience\r
+phd,1251,http://www.phdcomics.com/comics/archive.php?comicid=1251,http://www.phdcomics.com/comics/archive/phd111309s.gif,phd111309s.gif,I am going home\r
+phd,1252,http://www.phdcomics.com/comics/archive.php?comicid=1252,http://www.phdcomics.com/comics/archive/phd111609s.gif,phd111609s.gif,Buzzwords\r
+phd,1253,http://www.phdcomics.com/comics/archive.php?comicid=1253,http://www.phdcomics.com/comics/archive/phd111809s.gif,phd111809s.gif,Flush\r
+phd,1254,http://www.phdcomics.com/comics/archive.php?comicid=1254,http://www.phdcomics.com/comics/archive/phd112009s.gif,phd112009s.gif,Something important\r
+phd,1255,http://www.phdcomics.com/comics/archive.php?comicid=1255,http://www.phdcomics.com/comics/archive/phd112309s.gif,phd112309s.gif,Thanksgiving\r
+phd,1256,http://www.phdcomics.com/comics/archive.php?comicid=1256,http://www.phdcomics.com/comics/archive/phd112509s.gif,phd112509s.gif,Federal Mandate\r
+phd,1257,http://www.phdcomics.com/comics/archive.php?comicid=1257,http://www.phdcomics.com/comics/archive/phd112709s.gif,phd112709s.gif,Professor-Approved Holidays\r
+phd,1258,http://www.phdcomics.com/comics/archive.php?comicid=1258,http://www.phdcomics.com/comics/archive/phd113009s.gif,phd113009s.gif,Joking\r
+phd,1259,http://www.phdcomics.com/comics/archive.php?comicid=1259,http://www.phdcomics.com/comics/archive/phd120209s.gif,phd120209s.gif,"Ready, set..."\r
+phd,1260,http://www.phdcomics.com/comics/archive.php?comicid=1260,http://www.phdcomics.com/comics/archive/phd120709s.gif,phd120709s.gif,Grad Carols\r
+phd,1261,http://www.phdcomics.com/comics/archive.php?comicid=1261,http://www.phdcomics.com/comics/archive/phd120909s.gif,phd120909s.gif,Checking out\r
+phd,1262,http://www.phdcomics.com/comics/archive.php?comicid=1262,http://www.phdcomics.com/comics/archive/phd121109s.gif,phd121109s.gif,Christmas papers\r
+phd,1263,http://www.phdcomics.com/comics/archive.php?comicid=1263,http://www.phdcomics.com/comics/archive/phd121409s.gif,phd121409s.gif,Close\r
+phd,1264,http://www.phdcomics.com/comics/archive.php?comicid=1264,http://www.phdcomics.com/comics/archive/phd121609s.gif,phd121609s.gif,Year-end accounting\r
+phd,1265,http://www.phdcomics.com/comics/archive.php?comicid=1265,http://www.phdcomics.com/comics/archive/phd121809s.gif,phd121809s.gif,Should haves\r
+phd,1266,http://www.phdcomics.com/comics/archive.php?comicid=1266,http://www.phdcomics.com/comics/archive/phd122109s.gif,phd122109s.gif,Chipping in\r
+phd,1267,http://www.phdcomics.com/comics/archive.php?comicid=1267,http://www.phdcomics.com/comics/archive/phd011110s.gif,phd011110s.gif,Piled Higher and Diapers\r
+phd,1268,http://www.phdcomics.com/comics/archive.php?comicid=1268,http://www.phdcomics.com/comics/archive/phd011310s.gif,phd011310s.gif,Cooing\r
+phd,1269,http://www.phdcomics.com/comics/archive.php?comicid=1269,http://www.phdcomics.com/comics/archive/phd011510s.gif,phd011510s.gif,Parent hooding\r
+phd,1270,http://www.phdcomics.com/comics/archive.php?comicid=1270,http://www.phdcomics.com/comics/archive/phd011810s.gif,phd011810s.gif,ASAP!\r
+phd,1271,http://www.phdcomics.com/comics/archive.php?comicid=1271,http://www.phdcomics.com/comics/archive/phd012010s.gif,phd012010s.gif,63% of internet readers will like this comic\r
+phd,1272,http://www.phdcomics.com/comics/archive.php?comicid=1272,http://www.phdcomics.com/comics/archive/phd012510s.gif,phd012510s.gif,Cafeteria Potential Well
+phd,1273,http://www.phdcomics.com/comics/archive.php?comicid=1273,http://www.phdcomics.com/comics/archive/phd012710s.gif,phd012710s.gif,Procrastigal son\r
+phd,1274,http://www.phdcomics.com/comics/archive.php?comicid=1274,http://www.phdcomics.com/comics/archive/phd012910s.gif,phd012910s.gif,"Cecilia's Adventures in Thesisland, Pt. 1"\r
index ee2c018..154933e 100644 (file)
@@ -633,3 +633,7 @@ sinfest,3431,http://www.sinfest.net/archive_page.php?comicID=3431,http://sinfest
 sinfest,3432,http://www.sinfest.net/archive_page.php?comicID=3432,http://sinfest.net/comikaze/comics/2010-01-28.gif,2010-01-28.gif,Are You a Model?
 sinfest,3433,http://www.sinfest.net/archive_page.php?comicID=3433,http://sinfest.net/comikaze/comics/2010-01-29.gif,2010-01-29.gif,Six Degrees
 
+sinfest,3434,http://www.sinfest.net/archive_page.php?comicID=3434,http://sinfest.net/comikaze/comics/2010-01-30.gif,2010-01-30.gif,Stab\r
+sinfest,3435,http://www.sinfest.net/archive_page.php?comicID=3435,http://sinfest.net/comikaze/comics/2010-01-31.gif,2010-01-31.gif,Sinfest City\r
+sinfest,3436,http://www.sinfest.net/archive_page.php?comicID=3436,http://sinfest.net/comikaze/comics/2010-02-01.gif,2010-02-01.gif,Calligraphy 27\r
+sinfest,3437,http://www.sinfest.net/archive_page.php?comicID=3437,http://sinfest.net/comikaze/comics/2010-02-02.gif,2010-02-02.gif,Shift\r
index ab9b9aa..1351bbf 100644 (file)
@@ -693,3 +693,4 @@ xkcd,692,http://xkcd.org/692/,http://imgs.xkcd.com/comics/dirty_harry.png,dirty_
 xkcd,693,http://xkcd.org/693/,http://imgs.xkcd.com/comics/childrens_fantasy.png,childrens_fantasy.png,Children's Fantasy\r
 xkcd,694,http://xkcd.org/694/,http://imgs.xkcd.com/comics/retro_virus.png,retro_virus.png,Retro Virus\r
 xkcd,695,http://xkcd.org/695/,http://imgs.xkcd.com/comics/spirit.png,spirit.png,Spirit\r
+xkcd,696,http://xkcd.org/696/,http://imgs.xkcd.com/comics/strip_games.png,strip_games.png,Strip Games\r
index 72c4738..984470e 100644 (file)
@@ -24,6 +24,7 @@ dbdir = "/home/user/.comic-widget/"
 comiccache = "/home/user/MyDocs/.comics/"
 comics = {"xkcd":{"name":"xkcd","link":"http://xkcd.org/","start":666,"dbfile":dbdir + "comicdb.xkcd.csv"},
                "sinfest":{"name":"Sinfest","link":"http://sinfest.com/","start":3400,"dbfile":dbdir + "comicdb.sinfest.csv"},
+               "phd":{"name":"PHD Comics","link":"http://www.phdcomics.com/","start":1240,"dbfile":dbdir + "comicdb.phd.csv"},
                "dilbert":{"name":"Dilbert","link":"http://dilbert.com.com/","start":"2009-01-01","dbfile":dbdir + "comicdb.dilbert.csv"}}
 
 # handling of the comics
@@ -43,7 +44,7 @@ class ComicDb():
                for row in dbr:
                        self.db.insert(0,row)
                dbf.close()
-               self.currentcomic = 0           
+               self.currentcomic = 0
 
 
 
@@ -57,10 +58,10 @@ class ComicDb():
                # if not, copy it.
                else:
                        print "file " + self.dbfile + " not found"
-                       if not os.path.exists(dbdir + self.comic + "/"):
-                               print "path not found: " + dbdir + self.comic + "/"
+                       if not os.path.exists(dbdir):
+                               print "path not found: " + dbdir
                                try:
-                                       os.makedirs(dbdir + self.comic + "/")
+                                       os.makedirs(dbdir)
                                except:
                                        print "comic db creation failed on mkdir"
                                        exit()
@@ -68,13 +69,15 @@ class ComicDb():
                                shutil.copyfile(basedbdir + "comicdb." + self.comic + ".csv", dbdir + "comicdb." + self.comic + ".csv")
                        except:
                                print "comic db creation failed on copy"
-                               exit()
+                               print "creating new..."
+                               dbf = open(self.dbfile, 'w')
+                               dbf.write('comic,id,link,url,filename,title\n')
+                               dbf.close()
                        if os.path.isfile(self.dbfile) == True:
                                dbf = open(self.dbfile, 'r')
                                return dbf
                        else:
                                print "comic db creation failed after copy"
-                               exit()
 
 
        def get_comic(self):
@@ -178,7 +181,7 @@ class ComicDb():
        def fetch_latest_std(self, comic, latest):
                print "fetching new after " + str(comic) + " " + str(latest)
                dateid = False
-               if len(latest) == 10:
+               if len(str(latest)) == 10:
                        # date id.
                        dateid = True
                        dt = string.split(latest, "-")
@@ -188,11 +191,15 @@ class ComicDb():
                else:
                        comicid = int(latest) + 1
 
-
+               lasturl = self.db[0]['url']
                while True:
                        irow = self.get_irow(comic, comicid)
                        if irow:
                                print "got irow: " + str(irow)
+                               if irow[3] == lasturl:
+                                       print "Looping the same, break break break!"
+                                       break
+                               lasturl = irow[3]
                                print "inserting..."
                                self.insert_row(irow)
                                if dateid:
@@ -220,6 +227,8 @@ class ComicDb():
                        link = "http://www.sinfest.net/archive_page.php?comicID=" + str(number)
                elif comic == 'dilbert':
                        link = "http://dilbert.com/" + str(number) + "/"
+               elif comic == 'phd':
+                       link = "http://www.phdcomics.com/comics/archive.php?comicid=" + str(number)
                else:
                        return False
 
@@ -273,6 +282,21 @@ class ComicDb():
                                        return False
                                title = ""
 
+                       elif comic == 'phd':
+                               s = f.read()
+                               f.close()
+                               # title:
+                               splt = string.split(s, '<title>PHD Comics: ', 1)
+                               splt = string.split(splt[1], '</title>', 1)
+                               title = splt[0];
+                               splt = string.split(splt[1], '<td bgcolor=#FFFFFF align=center><img src=', 1)
+                               splt = string.split(splt[1], ' align=top>', 1)
+                               url = splt[0]
+                               if len(url) < 49:
+                                       print "Fake 404! Break break break!"
+                                       return False
+                               
+
                        splt2 = string.rsplit(url, "/", 1)
                        filename = splt2[1]
                        irow = [comic,number,link,url,filename,title]
@@ -288,7 +312,7 @@ class ComicHomePlugin(hildondesktop.HomePluginItem):
                global supports_alpha
                self.set_settings(True)
                self.connect("show-settings", self.show_options)
-               self.osso_c = osso.Context("comic-widget", "0.0.1", False)
+               self.osso_c = osso.Context("comic-widget", "0.2.6", False)
                self.osso_rpc = osso.Rpc(self.osso_c)
                self.keys = comics.keys()
                self.keypointer = 1
@@ -516,12 +540,14 @@ class ComicHomePlugin(hildondesktop.HomePluginItem):
                                self.e_goweb.show_all()
 
                        elif func == 'switch':
-                               self.keypointer = (self.keypointer + 1) % 3
+                               self.keypointer = (self.keypointer + 1) % len(comics)
                                self.imgvpos = 0
                                self.db = []
                                print "switching to " + self.keys[self.keypointer]
                                self.comicname = comics[self.keys[self.keypointer]]['name']
                                self.db = ComicDb(self.keys[self.keypointer])
+                               self.e_open.remove(self.comic_image)
+                               self.comic_image = self.get_resized_pixmap(self.db.get_comic(), self.imgvpos)
                                self.e_goweb.remove(self.label)
                                titl = str(self.db.db[self.db.currentcomic]['title'])
                                if len(titl) > 22:
@@ -529,8 +555,6 @@ class ComicHomePlugin(hildondesktop.HomePluginItem):
                                self.label.set_markup('<span size="12000" face="monospace"> <b>' + self.comicname + '</b> ' + str(self.db.db[self.db.currentcomic]['id']) + '\n ' + titl + '</span>')
                                self.e_goweb.add(self.label)
                                self.e_goweb.show_all()
-                               self.e_open.remove(self.comic_image)
-                               self.comic_image = self.get_resized_pixmap(self.db.get_comic(), self.imgvpos)
                                self.e_open.add(self.comic_image)
                                self.e_open.show_all()  
 
@@ -633,7 +657,7 @@ class ComicHomePlugin(hildondesktop.HomePluginItem):
                dialog.set_name("Comic widget")
                dialog.set_version(APP_VERSION)
                dialog.set_copyright("Copyright 2010 Marcus Wikstrom")
-               dialog.set_authors(["Marcus Wikstrom <mece@ovi.com>\n\nSpecial thanks to Benoit Hervier, Daniel Would and Brent Chiodo\nfor some nice code to sample."])
+               dialog.set_authors(["Marcus Wikstrom <mece@ovi.com>\nLogo by Martin Wikstrom\n\nSpecial thanks to all the great python developers on t.m.o who share their code, and the helpful wizards on #maemo."])
                # dialog.set_logo(gtk.gdk.pixbuf_new_from_file("/usr/share/touchsearch/icon.png"))
                # dialog.set_comments("Thanks to Benoit Hervier, Daniel Would and Brent Chiodo for some nice code to sample.")
                dialog.set_license("""This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License. <http://www.gnu.org/licenses/>.""")