Extracted the standard imgstream from mrnet and mangafox and put it in lib.
authorFredrik Tolf <fredrik@dolda2000.com>
Wed, 4 Dec 2013 00:05:30 +0000 (01:05 +0100)
committerFredrik Tolf <fredrik@dolda2000.com>
Wed, 4 Dec 2013 00:05:30 +0000 (01:05 +0100)
manga/lib.py
manga/mangafox.py
manga/mrnet.py

index 353d7ad..70b3ff9 100644 (file)
@@ -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):
index c254a9d..9831a81 100644 (file)
@@ -3,32 +3,6 @@ import BeautifulSoup, json
 import lib, htcache
 soup = BeautifulSoup.BeautifulSoup
 
-class imgstream(lib.imgstream):
-    def __init__(self, url):
-        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 page(lib.page):
     def __init__(self, chapter, stack, n, url):
         self.stack = stack
@@ -48,7 +22,7 @@ class page(lib.page):
         return self.ciurl
 
     def open(self):
-        return imgstream(self.iurl())
+        return lib.stdimgstream(self.iurl())
 
     def __str__(self):
         return self.name
index 48338a3..1439f09 100644 (file)
@@ -1,34 +1,7 @@
-import urllib
 import BeautifulSoup, urlparse
 import lib, htcache
 soup = BeautifulSoup.BeautifulSoup
 
-class imgstream(lib.imgstream):
-    def __init__(self, url):
-        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 page(lib.page):
     def __init__(self, chapter, stack, n, url):
         self.stack = stack
@@ -47,7 +20,7 @@ class page(lib.page):
         return self.ciurl
 
     def open(self):
-        return imgstream(self.iurl())
+        return lib.stdimgstream(self.iurl())
 
     def __str__(self):
         return self.name