X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=manga%2Fmangafox.py;h=b165d21aa4e11eddf6c02aa2a32ccda699073237;hb=30053c2cfe18b77da52df38daebbc91b3a2b5240;hp=110be990c4b08e827688489f5412dae9207bea3a;hpb=699d0c171c7482ce6c6a2835df7e0ba7b7505729;p=automanga.git diff --git a/manga/mangafox.py b/manga/mangafox.py index 110be99..b165d21 100644 --- a/manga/mangafox.py +++ b/manga/mangafox.py @@ -6,8 +6,16 @@ soup = BeautifulSoup.BeautifulSoup class imgstream(lib.imgstream): def __init__(self, url): self.bk = urllib.urlopen(url) - self.ctype = self.bk.info()["Content-Type"] - self.clen = int(self.bk.info()["Content-Length"]) + ok = False + try: + if self.bk.getcode() != 200: + raise IOError("Server error: " + str(self.bk.getcode())) + self.ctype = self.bk.info()["Content-Type"] + self.clen = int(self.bk.info()["Content-Length"]) + ok = True + finally: + if not ok: + self.bk.close() def fileno(self): return self.bk.fileno() @@ -127,7 +135,7 @@ class manga(lib.manga): if self.cvol is None: page = soup(htcache.fetch(self.url)) vls = page.find("div", id="chapters").findAll("div", attrs={"class": "slide"}) - self.cvol = [] + cvol = [] for i, vn in enumerate(reversed(vls)): name = vn.find("h3", attrs={"class": "volume"}).contents[0].strip() vid = name.encode("utf8") @@ -149,7 +157,8 @@ class manga(lib.manga): if url[-7:] != "/1.html": raise Exception("parse error: unexpected chapter URL for %r: %s" % (self, url)) vol.ch.append(chapter(vol, vol.stack + [(vol, o)], chid, name, url[:-6])) - self.cvol.append(vol) + cvol.append(vol) + self.cvol = cvol return self.cvol def __str__(self):