X-Git-Url: http://dolda2000.com/gitweb/?p=automanga.git;a=blobdiff_plain;f=manga%2Flib.py;h=70b3ff94806f68b51e9014aeece7e3c6d82cafa1;hp=353d7ada48a9b53c40f2dd1e04fe2115caa30b79;hb=b9e558ac507f4e6c11c8c9837b5bf22b5da90fce;hpb=75efe5bef75cc6a257d97d27f942871118cdbe0d diff --git a/manga/lib.py b/manga/lib.py index 353d7ad..70b3ff9 100644 --- a/manga/lib.py +++ b/manga/lib.py @@ -154,6 +154,36 @@ class imgstream(object): stream of SZ is not given.""" raise NotImplementedError() +class stdimgstream(imgstream): + """A standard implementation of imgstream, for libraries which + have no particular implementation requirements.""" + + def __init__(self, url): + import urllib + self.bk = urllib.urlopen(url) + 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() + + def close(self): + self.bk.close() + + def read(self, sz = None): + if sz is None: + return self.bk.read() + else: + return self.bk.read(sz) + class cursor(object): def __init__(self, ob): if isinstance(ob, cursor):