Commit | Line | Data |
---|---|---|
f3ad0817 FT |
1 | class library(object): |
2 | pass | |
3 | ||
4 | class pagelist(object): | |
5 | pass | |
6 | ||
7 | class manga(pagelist): | |
8 | pass | |
9 | ||
10 | class page(object): | |
11 | pass | |
07be272b FT |
12 | |
13 | class 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 |