Esempio n. 1
0
    def fetch_all(self,
                  cookie=None,
                  name_pattern=Util.Config.SET_AS_CODE,
                  quality=None):
        """
        自动获取用户与频道名下的所有视频信息
        :param cookie: 权限信息
        :param quality: 下载视频质量
        :param name_pattern: 路径命名方式
        :return: 所有视频的av号列表
        """
        av_list = []
        self.info_list = []

        # 确定对象类型
        if isinstance(self.obj, Space.User):
            obj_code = self.obj.uid
        elif isinstance(self.obj, Space.Channel):
            obj_code = self.obj.cid
        else:
            raise Util.ParameterError('该类型对象无法自动加载')

        # 逐级确定储存路径
        if name_pattern == Util.Config.SET_AS_NAME:
            self.obj.sync()
            obj_name = Util.legalize_name(self.obj.name)
        else:
            obj_name = obj_code

        album_list = self.obj.get_album_list()
        for album in album_list:
            if name_pattern == Util.Config.SET_AS_NAME:
                album.sync()
                album_name = Util.legalize_name(album.name)
            else:
                album_name = album.aid

            video_list = album.get_video_list()
            for video in video_list:
                video.sync(cookie, quality)
                if name_pattern == Util.Config.SET_AS_NAME:
                    video_name = Util.legalize_name(video.name)
                else:
                    video_name = video.aid
                video_name = '{}_P{}_{}'.format(video_name, video.page,
                                                video.quality[1])

                self.info_list.append({
                    'obj': self.obj,
                    'obj_name': obj_name,
                    'album': album,
                    'album_name': album_name,
                    'video': video,
                    'video_name': video_name
                })
                av_list.append(album.aid)
        av_list = list(set(av_list))
        return av_list
Esempio n. 2
0
    def fetch_all(self,
                  cookie=None,
                  name_pattern=Util.Config.SET_AS_CODE,
                  quality=None):
        """
        自动获取用户与频道名下的所有视频信息
        :param cookie: 权限信息
        :param quality: 下载视频质量
        :param name_pattern: 路径命名方式
        :return: 所有视频的av号列表
        """
        av_list = []
        self.info_list = []

        # 确定对象类型
        if isinstance(self.obj, Space.User):
            obj_code = self.obj.uid
        elif isinstance(self.obj, Space.Channel):
            obj_code = self.obj.cid
        else:
            raise Util.ParameterError('该类型对象无法自动加载')

        # 逐级确定储存路径
        if name_pattern == Util.Config.SET_AS_CODE:
            obj_name = obj_code
        elif name_pattern == Util.Config.SET_AS_NAME:
            self.obj.sync()
            obj_name = Util.legalize_name(self.obj.name)
        elif name_pattern == Util.Config.SET_AS_PAGE:
            self.obj.sync()
            obj_name = Util.legalize_name(self.obj.name)
        else:
            obj_name = "unknown"

        album_list = self.obj.get_album_list()
        for album in tqdm(album_list, desc="Fetching..."):
            try:
                album.sync(cookie)
            except Util.RunningError:
                print("404 or 403 on: %s, skipped" % album.aid)
                continue
            album_name = album.album_name(name_pattern)

            video_list = album.get_video_list()
            for video in video_list:
                video.sync(cookie, quality)
                video_name = video.video_name(name_pattern)

                self.info_list.append({
                    'obj': (obj_name, self.obj),
                    'album': (album_name, album),
                    'video': (video_name, video)
                })
                av_list.append(album.aid)
        av_list = list(set(av_list))
        return av_list
Esempio n. 3
0
    def album_name(self, name_pattern=Util.Config.SET_AS_CODE):
        """
        辅助生成稿件文件的名称
        :param name_pattern: 命名模式
        :return: 经过拼接的稿件文件名称
        """
        if name_pattern == Util.Config.SET_AS_CODE:
            name = self.aid
        elif name_pattern == Util.Config.SET_AS_NAME:
            name = self.name
        elif name_pattern == Util.Config.SET_AS_PAGE:
            name = self.name
        else:
            name = "unknown"

        return Util.legalize_name(name)
Esempio n. 4
0
    def video_name(self, name_pattern=Util.Config.SET_AS_CODE):
        """
        辅助生成视频文件的名称
        :param name_pattern: 命名模式
        :return: 经过拼接的视频文件名称
        """
        if name_pattern == Util.Config.SET_AS_CODE:
            name = self.cid
        elif name_pattern == Util.Config.SET_AS_NAME:
            name = self.album.name
        elif name_pattern == Util.Config.SET_AS_PAGE:
            name = self.name
        else:
            name = "unknown"

        name = Util.legalize_name(name)
        return "{}_P{}_{}".format(name, self.page, self.quality[1])