Added a flat page iterator for arbitrary page lists.
[automanga.git] / manga / lib.py
CommitLineData
f3ad0817
FT
1class library(object):
2 pass
3
4class pagelist(object):
5 pass
6
7class manga(pagelist):
8 pass
9
10class page(object):
11 pass
07be272b
FT
12
13class pageiter(object):
14 def __init__(self, root):
15 self.nstack = [0]
16 self.lstack = [root]
17
18 def next(self):
19 while True:
20 if len(self.nstack) == 0:
21 raise StopIteration
22 try:
23 node = self.lstack[-1][self.nstack[-1]]
24 except IndexError:
25 self.lstack.pop()
26 self.nstack.pop()
27 if len(self.nstack) > 0:
28 self.nstack[-1] += 1
29 continue
30 if isinstance(node, page):
31 nl = tuple(self.nstack)
32 self.nstack[-1] += 1
33 return nl, node
34 elif isinstance(node, pagelist):
35 self.lstack.append(node)
36 self.nstack.append(0)
37
38 def __iter__(self):
39 return self