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')
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
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)
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)
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)