BangumiScanner.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:Albireo 作者: lordfriend 项目源码 文件源码
def scan_bangumi(self):
        """
        dispatch the feed crawling job, this is a synchronized method running on individual thread
        :return:
        """
        logger.info('scan bangumi %s', self.__class__.__name__)
        bangumi_list = yield threads.deferToThread(self.query_bangumi_list)
        index_list = range(len(bangumi_list))
        random.shuffle(index_list)
        for index in index_list:
            bangumi = bangumi_list[index]
            if not self.check_bangumi_status(bangumi):
                episode_list = yield threads.deferToThread(self.query_episode_list, bangumi.id)
                # result is an array of tuple (item, eps_no)
                scan_result = yield threads.deferToThread(self.scan_feed, bangumi, episode_list)
                if scan_result is None:
                    continue
                url_eps_list = [
                    (download_url, self.__find_episode_by_number(episode_list, eps_no), file_path, file_name)
                    for (download_url, eps_no, file_path, file_name) in scan_result
                ]
                # this method may raise exception
                yield threads.deferToThread(self.download_episodes, url_eps_list, bangumi.id)
                yield threads.deferToThread(self.update_bangumi_status, bangumi)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号