--- /dev/null
+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
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
for row in dbr:
self.db.insert(0,row)
dbf.close()
- self.currentcomic = 0
+ self.currentcomic = 0
# 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()
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):
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, "-")
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:
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
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]
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
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:
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()
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/>.""")