Fixed getmanga property reading bug.
[automanga.git] / manga / lib.py
index 70b3ff9..da64e0c 100644 (file)
@@ -149,7 +149,7 @@ class imgstream(object):
         """Close this stream."""
         raise NotImplementedError()
 
         """Close this stream."""
         raise NotImplementedError()
 
-    def read(self, sz = None):
+    def read(self, sz=None):
         """Read SZ bytes from the stream, or the entire rest of the
         stream of SZ is not given."""
         raise NotImplementedError()
         """Read SZ bytes from the stream, or the entire rest of the
         stream of SZ is not given."""
         raise NotImplementedError()
@@ -159,8 +159,9 @@ class stdimgstream(imgstream):
     have no particular implementation requirements."""
 
     def __init__(self, url):
     have no particular implementation requirements."""
 
     def __init__(self, url):
-        import urllib
-        self.bk = urllib.urlopen(url)
+        import urllib.request
+        req = urllib.request.Request(url, headers={"User-Agent": "automanga/1"})
+        self.bk = urllib.request.urlopen(req)
         ok = False
         try:
             if self.bk.getcode() != 200:
         ok = False
         try:
             if self.bk.getcode() != 200:
@@ -178,7 +179,7 @@ class stdimgstream(imgstream):
     def close(self):
         self.bk.close()
 
     def close(self):
         self.bk.close()
 
-    def read(self, sz = None):
+    def read(self, sz=None):
         if sz is None:
             return self.bk.read()
         else:
         if sz is None:
             return self.bk.read()
         else:
@@ -213,12 +214,20 @@ class cursor(object):
         raise StopIteration()
 
     def __iter__(self):
         raise StopIteration()
 
     def __iter__(self):
-        return self
+        def iterator():
+            yield self.cur
+            while True:
+                try:
+                    yield self.next()
+                except StopIteration:
+                    break
+        return iterator()
 
 loaded = {}
 def findlib(name):
     def load(name):
 
 loaded = {}
 def findlib(name):
     def load(name):
-        mod = __import__(name, fromlist=["dummy"])
+        import importlib
+        mod = importlib.import_module(name)
         if not hasattr(mod, "library"):
             raise ImportError("module " + name + " is not a manga library")
         return mod.library()
         if not hasattr(mod, "library"):
             raise ImportError("module " + name + " is not a manga library")
         return mod.library()