@@ -6,10 +6,10 @@ filter(过滤器)是v2.1.12新引入的机制,
66使用filter的步骤如下:
77
88```
9- 1. 自定义class,继承JmDownloader,重写filter_iter_objs方法 ,即:
9+ 1. 自定义class,继承JmDownloader,重写do_filter方法 ,即:
1010 class MyDownloader(JmDownloader):
11- def filter_iter_objs (self, iter_objs: DownloadIterObjs ):
12- # 如何重写?参考JmDownloader.filter_iter_objs和下面的示例
11+ def do_filter (self, detail ):
12+ # 如何重写?参考JmDownloader.do_filter和下面的示例
1313 ...
1414
15152. 让你的class生效,使用如下代码:
@@ -30,8 +30,8 @@ from jmcomic import *
3030
3131class First3ImageDownloader (JmDownloader ):
3232
33- def filter_iter_objs (self , iter_objs : DownloadIterObjs ):
34- if isinstance (iter_objs, JmPhotoDetail ):
33+ def do_filter (self , detail ):
34+ if detail.is_photo( ):
3535 photo: JmPhotoDetail = iter_objs
3636 # 支持[start,end,step]
3737 return photo[:3 ]
@@ -52,8 +52,8 @@ class FindUpdateDownloader(JmDownloader):
5252 ' xxx' : ' yyy'
5353 }
5454
55- def filter_iter_objs (self , iter_objs : DownloadIterObjs ):
56- if not isinstance (iter_objs, JmAlbumDetail ):
55+ def do_filter (self , detail ):
56+ if not detail.is_album( ):
5757 return iter_objs
5858
5959 return self .find_update(iter_objs)
0 commit comments