X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=manga%2Fmangafox.py;h=c254a9d9f5d94e0f30207f5425d1d3068e9b9f46;hb=0cddd237ff8cdf718379d8c9c2bc35053cf2d701;hp=30329c2db8170961d9148845e452a9f26700e6b9;hpb=d2f58cfc0a7804bb3aad1cbe190c6b83a2a5cde3;p=automanga.git diff --git a/manga/mangafox.py b/manga/mangafox.py index 30329c2..c254a9d 100644 --- a/manga/mangafox.py +++ b/manga/mangafox.py @@ -1,5 +1,5 @@ -import urllib -import BeautifulSoup +import urllib, re +import BeautifulSoup, json import lib, htcache soup = BeautifulSoup.BeautifulSoup @@ -117,6 +117,8 @@ def nextel(el): return el class manga(lib.manga): + cure = re.compile(r"/c[\d.]+/$") + def __init__(self, lib, id, name, url): self.lib = lib self.id = id @@ -156,7 +158,7 @@ class manga(lib.manga): url = n.a["href"].encode("us-ascii") if url[-7:] == "/1.html": url = url[:-6] - elif url[-1:] == "/": + elif self.cure.search(url) is not None: pass else: raise Exception("parse error: unexpected chapter URL for %r: %s" % (self, url)) @@ -231,6 +233,14 @@ class library(lib.library): ls = self.alphapage(pno) i = 0 + def search(self, expr): + resp = urllib.urlopen(self.base + ("ajax/search.php?term=%s" % urllib.quote(expr))) + try: + rc = json.load(resp) + finally: + resp.close() + return [manga(self, id.encode("utf8"), name, self.base + ("manga/%s/" % id.encode("utf8"))) for num, name, id, genres, author in rc] + def byid(self, id): url = self.base + ("manga/%s/" % id) page = soup(htcache.fetch(url))