예제 #1
0
    def run(self, args):
        if '--all' in args:
            dc = DataClient()
            data = dc.get_course_list()

            for i in [1, 2]:
                for c in data[str(i)]['list']:
                    if not c['had_sub']:
                        continue
                    if True:
                        # if c['update_frequency'] == '全集':
                        try:
                            super(EbookBatch, self).run([str(c['id'])] + args)
                            print('\n')
                        except Exception as e:
                            print(e)
                    # else:
                    #     super(EbookBatch, self).run([str(c['id']), '--source-only'] + args)
                    #     print('\n')

        else:
            course_ids = args[0]
            cid_list = course_ids.split(',')

            for cid in cid_list:
                super(EbookBatch, self).run([cid.strip()] + args)
                print('\n')
예제 #2
0
    def get_all_course_ids(self, dc: DataClient, type_: str) -> List[int]:

        cid_list = []
        data = dc.get_course_list()
        for c in data['1']['list'] + data['2']['list']:
            if type_ == 'all':
                cid_list.append(int(c['id']))
            elif type_ == 'all-sub' and c['had_sub']:
                cid_list.append(int(c['id']))
            elif (type_ == 'all-done' and c['had_sub']
                  and self.is_course_finished(c)):
                cid_list.append(int(c['id']))
        return cid_list
예제 #3
0
    def run(self, args):
        if '--all' in args:
            dc = DataClient()
            data = dc.get_course_list()
            cid_list = []
            for c in data['1']['list']:
                if c['had_sub']:
                    cid_list.append(str(c['id']))

        else:
            course_ids = args[0]
            cid_list = course_ids.split(',')

        for cid in cid_list:
            super(Mp3Batch, self).run([cid.strip()] + args)
예제 #4
0
    def run(self, args):
        if '--all' in args:
            dc = DataClient()
            data = dc.get_course_list()

            for c in data['1']['list'] + data['2']['list']:
                if c['had_sub'] and c['update_frequency'] == '全集':
                    super(EbookBatch, self).run([str(c['id'])] + args)
                else:
                    super(EbookBatch,
                          self).run([str(c['id']), '--source-only'] + args)

        else:
            course_ids = args[0]
            cid_list = course_ids.split(',')

            for cid in cid_list:
                super(EbookBatch, self).run([cid.strip()] + args)
예제 #5
0
    def run(self, args):
        dc = DataClient()
        if not dc.cookies:
            print("尚未登录, 可以先 geektime login 以便查看更详细的信息")

        data = dc.get_course_list()

        result_str = ''
        for i in ['1', '2', '3', '4']:
            columns = data[i]['list']
            result_str += {
                '1': '专栏',
                '2': '微课',
                '3': '视频',
                '4': '其他'
            }[i] + '\n'
            result_str += "\t{:<12}{:<10}{}\t\t{}\n".format(
                '课程ID', '已订阅', '课程标题', '更新频率/课时·时长')
            for c in columns:
                result_str += "\t{:<15}{:<10}{}\t({})\n".format(
                    str(c['id']), '是' if c['had_sub'] else '否',
                    c['column_title'], c['update_frequency'] or None)

        print(result_str)
def test_get_course_list(dc: DataClient):
    assert isinstance(dc.get_course_list(), dict)