From bf03881ed6839d0b785cb1fccfe0dd06086c0f4d Mon Sep 17 00:00:00 2001 From: ODtian Date: Tue, 23 Jun 2020 20:39:41 +0800 Subject: [PATCH] Fix fatal error and keep index of id which from file --- nhentai/cmdline.py | 6 ++++-- nhentai/parser.py | 18 +++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/nhentai/cmdline.py b/nhentai/cmdline.py index 9decc88..90ea59d 100644 --- a/nhentai/cmdline.py +++ b/nhentai/cmdline.py @@ -186,8 +186,10 @@ def cmd_parser(): if args.file: with open(args.file, 'r') as f: - _ = [i.strip() for i in f.readlines()] - args.id = set(int(i) for i in _ if i.isdigit()) + _ = [int(i.strip()) for i in f.readlines() if i.strip().isdigit()] + # args.id = list(set(int(i) for i in _ if i.isdigit())) + args.id = list(set(_)) + args.id.sort(key=_.index) if (args.is_download or args.is_show) and not args.id and not args.keyword and \ not args.tag and not args.artist and not args.character and \ diff --git a/nhentai/parser.py b/nhentai/parser.py index 97ea354..a95e03e 100644 --- a/nhentai/parser.py +++ b/nhentai/parser.py @@ -178,21 +178,21 @@ def doujinshi_parser(id_): doujinshi['img_id'] = img_id.group(1) doujinshi['ext'] = ext - pages = 0 - for _ in doujinshi_info.find_all('div', class_=''): - pages = re.search('([\d]+) pages', _.text) - if pages: - pages = pages.group(1) - break - doujinshi['pages'] = int(pages) - + # pages = 0 + # for _ in doujinshi_info.find_all('div', class_=''): + # pages = re.search('([\d]+) pages', _.text) + # if pages: + # pages = pages.group(1) + # break + # doujinshi['pages'] = int(pages) + doujinshi['pages'] = len(ext) # gain information of the doujinshi information_fields = doujinshi_info.find_all('div', attrs={'class': 'field-name'}) needed_fields = ['Characters', 'Artists', 'Languages', 'Tags', 'Parodies', 'Groups', 'Categories'] for field in information_fields: field_name = field.contents[0].strip().strip(':') if field_name in needed_fields: - data = [sub_field.contents[0].strip() for sub_field in + data = [sub_field.contents[0].text.strip() for sub_field in field.find_all('a', attrs={'class': 'tag'})] doujinshi[field_name.lower()] = ', '.join(data)