import gtk
import csv
import urllib2
-import urllib
import string
import os
import osso
import sys
import socket
-socket.setdefaulttimeout(10)
+socket.setdefaulttimeout(30)
supports_alpha = False
# constants. dbfile is the location of the csv
# comiccache is the location of the images
-APP_VERSION = "0.4.0-1"
+APP_VERSION = "0.4.1-1"
basedbdir = "/opt/comic-widget/db/"
imagedir = "/opt/comic-widget/images/"
"arlonjaniscomicscom":{"name":"Arlo and Janis","link":'http://comics.com/arlo&janis/',"start":"2010-02-01","dbfile":dbdir + "comicdb.arlonjanis.csv"},
"bccomicscom":{"name":"B.C.","link":"http://comics.com/bc/","start":"2010-02-01","dbfile":dbdir + "comicdb.bc.csv"},
"ballard_streetcomicscom":{"name":"Ballard Street","link":"http://comics.com/ballard_street/","start":"2010-02-01","dbfile":dbdir + "comicdb.ballardstreet.csv"},
+ "babyblues":{"name":"Baby Blues","link":"http://www.babyblues.com/","start":"01/19/2010","dbfile":dbdir + "comicdb.babyblues.csv"},
"bencomicscom":{"name":"Ben","link":'http://comics.com/ben/',"start":"2010-02-01","dbfile":dbdir + "comicdb.ben.csv"},
"bettycomicscom":{"name":"Betty","link":"http://comics.com/betty/","start":"2010-02-01","dbfile":dbdir + "comicdb.betty.csv"},
"big_natecomicscom":{"name":"Big Nate","link":"http://comics.com/big_nate/","start":"2010-02-01","dbfile":dbdir + "comicdb.bignate.csv"},
except:
print "comic db creation failed on mkdir"
try:
+ f = open(filename, "wb")
+ print "writing to " + filename
+ req = urllib2.Request(dbrow['url'])
+ req.add_header('Referer', dbrow['link'])
+ tmpimg = urllib2.urlopen(req)
+ f.write(tmpimg.read())
+ tmpimg = None
+ f.close()
- urllib.urlretrieve(dbrow['url'], filename)
+# urllib.urlretrieve(dbrow['url'], filename)
except:
if os.path.isfile(filename):
os.remove(filename)
def fetch_earlier(self, comic, earliest):
print "fetch before, " + comic + " earliest"
print comic[-9:]
- if comic == "cyanide" or comic == "wulff" or comic[-9:] == "comicscom":
+ if comic == "cyanide" or comic == "wulff" or comic == "babyblues" or comic[-9:] == "comicscom":
print "getting get_prev_id..."
comicid = self.get_prev_id(comic,earliest)
if not comicid:
def fetch_newer(self, comic, newest):
- if comic == "cyanide" or comic == "wulff":
+ if comic == "cyanide" or comic == "wulff" or comic == "babyblues" or comic[-9:] == "comicscom":
comicid = self.get_next_id(comic,newest)
if not comicid:
print "already at last comic"
def get_next_id(self, comic, number):
+ if comic == 'babyblues':
+ link = "http://www.babyblues.com/archive/index.php?formname=getstrip&GoToDay=" + str(number)
+ print "link: " + link
+ try:
+ f = urllib2.urlopen(link)
+ hcode = f.code
+ except:
+ hcode = 404
+ print "got hcode = " + str(hcode) + "\n"
+ if (hcode != 200):
+ return False
+ else:
+ print "checking next Babyblues date.."
+ s = f.read()
+ f.close()
+ # title:
+ splt = string.split(s, 'nextStripLink', 1)
+ if len(splt) < 2:
+ print "no 'prev' found"
+ return False
+ else:
+ next = splt[1][48:58]
+ print "got next: " + next
+
+ return next
+
if comic == 'cyanide':
link = "http://www.explosm.net/comics/" + str(number) + "/"
print "link: " + link
f.close()
return self.parse_comics_com(comic, s, 'next')
+
+
+
+
+
def get_prev_id(self, comic, number):
+ if comic == 'babyblues':
+ link = 'http://www.babyblues.com/archive/index.php?formname=getstrip&GoToDay=' + str(number)
+ print "link: " + link
+ try:
+ f = urllib2.urlopen(link)
+ hcode = f.code
+ except:
+ hcode = 404
+ print "got hcode = " + str(hcode) + "\n"
+ if (hcode != 200):
+ return False
+ else:
+ print "checking prev Babyblues date.."
+ s = f.read()
+ f.close()
+ # title:
+ splt = string.split(s, 'prevStripLink', 1)
+ if len(splt) < 2:
+ print "no 'prev' found"
+ exit()
+ return False
+ else:
+ prev = splt[1][48:58]
+ print "got previous: " + prev
+ return prev
+
if comic == 'cyanide':
link = "http://www.explosm.net/comics/" + str(number) + "/"
print "link: " + link
return False
else:
print "got previous: " + splt[0]
- return splt[0]
+ return splt[0]
elif comic == 'wulff':
link = "http://wulffmorgenthaler.com/default.aspx?id=" + number
print "link: " + link
link = "http://www.explosm.net/comics/" + str(number) + "/"
elif comic == 'wulff':
link = "http://wulffmorgenthaler.com/default.aspx?id=" + str(number)
+ elif comic == 'babyblues':
+ link = "http://www.babyblues.com/archive/index.php?formname=getstrip&GoToDay=" + str(number)
elif comic[-9:] == 'comicscom':
link = comics[comic]['link'] + str(number) + "/"
else:
filename = splt2[1]
irow = [comic,number,link,url,filename,title,next,prev]
return irow
+
+
+ elif comic == 'babyblues':
+ # babyblues is type .gif
+ s = f.read()
+ f.close()
+ splt = string.split(s, 'http://est.rbma.com/content/Baby_Blues?date=', 1)
+ flnm = splt[1][:8]
+ # check filename...
+ datesplt = string.split(number, "/")
+ flncheck = datesplt[2] + datesplt[0] + datesplt[1]
+ if not flnm == flncheck:
+ print "incorrect filename, end of line. Break break break!"
+ return False
+ url = 'http://est.rbma.com/content/Baby_Blues?date=' + flnm
+ title = number + " (2 weeks delay)"
+ filename = flnm + ".gif"
+ irow = [comic,number,link,url,filename,title]
+ return irow
+
+
elif comic == 'wulff':
# wulf is type .gif
s = f.read()
f.close()
-# <img src="pics/dates/month/2.gif" alt="" />
-# <img src="pics/dates/day/4.gif" alt="" />
-# <img src="pics/dates/komma.gif" alt="" />
-# <img src="pics/dates/year/2010.gif" alt="" />
splt = string.split(s, '<img src="pics/dates/month/', 1)
if not splt[1][1:2] == ".":
title = splt[1][:2]
splt = string.split(source, "Link_Next: '", 1)
splt = string.split(splt[1], "'", 1)
splt = string.split(splt[0], "/")
- if len(splt) == 0:
+ if len(splt) < 3:
return False
else:
+
return splt[2]
elif get_what == "prev":