Fixed up Mangafox chapter IDs.
[automanga.git] / manga / mangafox.py
index 8b4300a..cb5e655 100644 (file)
@@ -121,7 +121,7 @@ class manga(lib.manga):
                     raise Exception("parse error: weird volume list for %r" % self)
                 for o, ch in enumerate(reversed(cls.findAll("li"))):
                     n = ch.div.h3 or ch.div.h4
-                    name = n.a.string
+                    chid = name = n.a.string
                     for span in ch("span"):
                         try:
                             if "title" in span["class"]:
@@ -135,7 +135,7 @@ class manga(lib.manga):
                         pass
                     else:
                         raise Exception("parse error: unexpected chapter URL for %r: %s" % (self, url))
-                    vol.ch.append(chapter(vol, vol.stack + [(vol, o)], name, name, url))
+                    vol.ch.append(chapter(vol, vol.stack + [(vol, o)], chid, name, url))
                 cvol.append(vol)
             self.cvol = cvol
         return self.cvol
@@ -147,7 +147,11 @@ class manga(lib.manga):
         return "<mangafox.manga %r>" % self.name
 
 def libalphacmp(a, b):
-    return cmp(a.upper(), b.upper())
+    if a.upper() < b.upper():
+        return -1
+    elif a.upper() > b.upper():
+        return 1
+    return 0
 
 class library(lib.library):
     def __init__(self):
@@ -205,8 +209,10 @@ class library(lib.library):
             i = 0
 
     def search(self, expr):
-        with urllib.request.urlopen(self.base + ("ajax/search.php?term=%s" % urllib.quote(expr))) as resp:
-            rc = json.load(resp)
+        req = urllib.request.Request(self.base + ("ajax/search.php?term=%s" % urllib.parse.quote(expr)),
+                                     headers={"User-Agent": "automanga/1"})
+        with urllib.request.urlopen(req) as resp:
+            rc = json.loads(resp.read().decode("utf-8"))
         return [manga(self, id, name, self.base + ("manga/%s/" % id)) for num, name, id, genres, author in rc]
 
     def byid(self, id):