X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=manga%2Flib.py;h=da64e0c1a0e4ee56d7b632d6d2170e0c59ae5dce;hb=64eb9fa5068bff909c0702614ef1fb1fcdec1ea8;hp=70b3ff94806f68b51e9014aeece7e3c6d82cafa1;hpb=b9e558ac507f4e6c11c8c9837b5bf22b5da90fce;p=automanga.git diff --git a/manga/lib.py b/manga/lib.py index 70b3ff9..da64e0c 100644 --- a/manga/lib.py +++ b/manga/lib.py @@ -149,7 +149,7 @@ class imgstream(object): """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() @@ -159,8 +159,9 @@ class stdimgstream(imgstream): 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: @@ -178,7 +179,7 @@ class stdimgstream(imgstream): 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: @@ -213,12 +214,20 @@ class cursor(object): 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): - 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()