local: Treat dots/periods as digits in destructuring directories.
[automanga.git] / manga / lib.py
index 8cc96cb..849e632 100644 (file)
@@ -158,9 +158,12 @@ class stdimgstream(imgstream):
     """A standard implementation of imgstream, for libraries which
     have no particular implementation requirements."""
 
-    def __init__(self, url):
+    def __init__(self, url, referer=None):
         import urllib.request
-        req = urllib.request.Request(url, headers={"User-Agent": "automanga/1"})
+        headers = {"User-Agent": "automanga/1"}
+        if referer:
+            headers["Referer"] = referer
+        req = urllib.request.Request(url, headers=headers)
         self.bk = urllib.request.urlopen(req)
         ok = False
         try:
@@ -206,9 +209,6 @@ class cursor(object):
                 return self.cur
         raise StopIteration()
 
-    def __next__(self):
-        return self.next()
-
     def prev(self):
         for n, i in reversed(self.cur.stack):
             if i > 0:
@@ -217,7 +217,14 @@ 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):