]> git.lizzy.rs Git - nhentai.git/commitdiff
Fix fatal error and keep index of id which from file
authorODtian <tianluyue2013@gmail.com>
Tue, 23 Jun 2020 12:39:41 +0000 (20:39 +0800)
committerODtian <tianluyue2013@gmail.com>
Tue, 23 Jun 2020 12:39:41 +0000 (20:39 +0800)
nhentai/cmdline.py
nhentai/parser.py

index 9decc8810c77407dabdcff7068152a772a04589c..90ea59da40e9864613e0033d106ba3e7dcc382ef 100644 (file)
@@ -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 \
index 97ea3549937befd9b946282f370d3058fd51caa8..a95e03e3683a01fa2af0f10087fac2ef85c271b8 100644 (file)
@@ -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)