]> git.lizzy.rs Git - nhentai.git/commitdiff
Merge branch 'pull/221' into master
authorRicter Zheng <RicterZheng@gmail.com>
Mon, 7 Jun 2021 08:01:54 +0000 (16:01 +0800)
committerGitHub <noreply@github.com>
Mon, 7 Jun 2021 08:01:54 +0000 (16:01 +0800)
nhentai/cmdline.py
nhentai/command.py
nhentai/doujinshi.py
nhentai/utils.py

index c7246d20d1e23f2425b726e5eaa8b363db09691c..c953e871c04b3d43c638801aa6a07d5ae1d14b30 100644 (file)
@@ -118,6 +118,9 @@ def cmd_parser():
                       help='clean download history')
     parser.add_option('--template', dest='viewer_template', action='store',
                       help='set viewer template', default='')
+       
+    parser.add_option('--meta', dest='generate_metadata', action='store_true', help='generate a Metadata File in HDoujin Format')      
+                                         
 
     try:
         sys.argv = [unicode(i.decode(sys.stdin.encoding)) for i in sys.argv]
index 92b6793e8a950d2b9b780bf46d168266baac024c..fe746cb014f80f1fba8e72ebadb85ab02ee32d90 100644 (file)
@@ -13,7 +13,7 @@ from nhentai.doujinshi import Doujinshi
 from nhentai.downloader import Downloader
 from nhentai.logger import logger
 from nhentai.constant import BASE_URL
-from nhentai.utils import generate_html, generate_cbz, generate_main_html, generate_pdf, \
+from nhentai.utils import generate_html, generate_cbz, generate_main_html, generate_pdf, generate_metadatafile, \
     paging, check_cookie, signal_handler, DB
 
 
@@ -84,6 +84,8 @@ def main():
             if (i + 1) % 10 == 0:
                 logger.info('Progress: %d / %d' % (i + 1, len(doujinshi_ids)))
 
+       
+               
     if not options.is_show:
         downloader = Downloader(path=options.output_dir, size=options.threads,
                                 timeout=options.timeout, delay=options.delay)
@@ -92,6 +94,14 @@ def main():
             if not options.dryrun:
                 doujinshi.downloader = downloader
                 doujinshi.download()
+                                               
+            doujinshi.downloader = downloader
+            doujinshi.download()
+                       
+            if options.generate_metadata:
+              table=doujinshi.table            
+              generate_metadatafile(options.output_dir,table,doujinshi)
+                       
 
             if options.is_save_download_history:
                 with DB() as db:
@@ -114,6 +124,7 @@ def main():
 
     else:
         [doujinshi.show() for doujinshi in doujinshi_list]
+        
 
 
 signal.signal(signal.SIGINT, signal_handler)
index 0170ad5eb99ac0403d4bd25fde592c4f5bde1b4d..06a7706d61a75506abe62a9e0308fdb053e2ae23 100644 (file)
@@ -41,12 +41,9 @@ class Doujinshi(object):
         name_format = name_format.replace('%t', self.name)
         name_format = name_format.replace('%s', self.info.subtitle)
         self.filename = format_filename(name_format)
-
-    def __repr__(self):
-        return '<Doujinshi: {0}>'.format(self.name)
-
-    def show(self):
-        table = [
+               
+               
+        self.table =[
             ["Parodies", self.info.parodies],
             ["Doujinshi", self.name],
             ["Subtitle", self.info.subtitle],
@@ -57,7 +54,15 @@ class Doujinshi(object):
             ["URL", self.url],
             ["Pages", self.pages],
         ]
-        logger.info(u'Print doujinshi information of {0}\n{1}'.format(self.id, tabulate(table)))
+               
+
+    def __repr__(self):
+        return '<Doujinshi: {0}>'.format(self.name)
+
+    def show(self):
+        
+        logger.info(u'Print doujinshi information of {0}\n{1}'.format(self.id, tabulate(self.table)))
+        
 
     def download(self):
         logger.info('Starting to download doujinshi: %s' % self.name)
index 3364d0d4b675b40b6a13141d47bf9cb170dd18c0..7524e926d62cdc0ea419663f7082a80a5704da2e 100644 (file)
@@ -290,6 +290,58 @@ def paging(page_string):
 
     return page_list
 
+def generate_metadatafile(output_dir, table, doujinshi_obj=None):
+    logger.info("Writing Metadata Info")
+   
+       
+    if doujinshi_obj is not None:
+      doujinshi_dir = os.path.join(output_dir, doujinshi_obj.filename)
+    else:
+      doujinshi_dir = '.'
+    
+    logger.info(doujinshi_dir) 
+       
+    f = open(os.path.join(doujinshi_dir, 'info.txt'), "w", encoding="utf-8")
+
+    fields = ["TITLE", "ORIGINAL TITLE", "AUTHOR", "ARTIST", "CIRCLE", "SCANLATOR", "TRANSLATOR", "PUBLISHER", "DESCRIPTION", "STATUS", "CHAPTERS", "PAGES", "TAGS", "TYPE", "LANGUAGE", "RELEASED", "READING DIRECTION", "CHARACTERS", "SERIES", "PARODY", "URL"]
+
+               
+    for i in range(21):
+      f.write("%s: " % fields[i])
+        
+      if(i==19):
+        f.write("%s" % table[0][1])
+
+      if(i==0):
+        f.write("%s" % table[1][1])
+    
+      if(i==1):
+        f.write("%s" % table[2][1])
+    
+      if(i==17):
+        f.write("%s" % table[3][1])
+    
+      if(i==2):
+        f.write("%s" % table[4][1])
+    
+      if(i==14):
+        f.write("%s" % table[5][1])
+    
+      if(i==12):
+        f.write("%s" % table[6][1])
+    
+      if(i==20):
+        f.write("%s" % table[7][1])
+    
+      if(i==11):
+        f.write("%s" % table[8][1])
+    
+      f.write("\n")
+    
+    f.close()
+    
+    
+    
 
 class DB(object):
     conn = None
@@ -316,3 +368,6 @@ class DB(object):
     def get_all(self):
         data = self.cur.execute('SELECT id FROM download_history')
         return [i[0] for i in data]
+
+        
+        
\ No newline at end of file