]> git.lizzy.rs Git - nhentai.git/blobdiff - nhentai/serializer.py
fixed html and removed unused .css properties
[nhentai.git] / nhentai / serializer.py
index 5b5675cf4023ac4ed24192af86e81156eba316c2..17c62b2ff0f111f9670e956cca00a166e1aeb45d 100644 (file)
@@ -1,24 +1,77 @@
 # coding: utf-8
+import json
+import os
 
-
-def serialize(doujinshi):
-    metadata = {'Title'    : doujinshi.name,
-                'Subtitle' : doujinshi.info.subtitle}
+def serialize(doujinshi, dir):
+    metadata = {'title'    : doujinshi.name,
+                'subtitle' : doujinshi.info.subtitle}
     if doujinshi.info.date:
-        metadata['Upload_Date'] = doujinshi.info.date
+        metadata['upload_date'] = doujinshi.info.date
     if doujinshi.info.parodies:
-        metadata['Parodies']    = [i.strip() for i in doujinshi.info.parodies.split(',')]
+        metadata['parody']    = [i.strip() for i in doujinshi.info.parodies.split(',')]
     if doujinshi.info.characters:
-        metadata['Characters']  = [i.strip() for i in doujinshi.info.characters.split(',')]
+        metadata['character']  = [i.strip() for i in doujinshi.info.characters.split(',')]
     if doujinshi.info.tags:
-        metadata['Tags']        = [i.strip() for i in doujinshi.info.tags.split(',')]
+        metadata['tag']        = [i.strip() for i in doujinshi.info.tags.split(',')]
     if doujinshi.info.artists:
-        metadata['Artists']     = [i.strip() for i in doujinshi.info.artists.split(',')]
+        metadata['artist']     = [i.strip() for i in doujinshi.info.artists.split(',')]
     if doujinshi.info.groups:
-        metadata['Groups']      = [i.strip() for i in doujinshi.info.groups.split(',')]
+        metadata['group']      = [i.strip() for i in doujinshi.info.groups.split(',')]
     if doujinshi.info.languages:
-        metadata['Languages']   = [i.strip() for i in doujinshi.info.languages.split(',')]
-    metadata['Categories']      = doujinshi.info.categories
+        metadata['language']   = [i.strip() for i in doujinshi.info.languages.split(',')]
+    metadata['category']      = doujinshi.info.categories
     metadata['URL']             = doujinshi.url
     metadata['Pages']           = doujinshi.pages
-    return metadata
+    with open(os.path.join(dir, 'metadata.json'), 'w') as f:
+        json.dump(metadata, f, separators=','':')
+
+
+def merge_json():
+    lst = []
+    output_dir = "./"
+    os.chdir(output_dir)
+    doujinshi_dirs = next(os.walk('.'))[1]
+    for folder in doujinshi_dirs:
+        folder_json = ',"Folder":"' + folder + '"}'
+        files = os.listdir(folder)
+        if 'metadata.json' not in files:
+            continue
+        data_folder = output_dir + folder + '/' + 'metadata.json'
+        json_file = open(data_folder, encoding='raw_unicode_escape').read()[:-2]+folder_json
+        lst.append(json.loads(json_file.encode('raw_unicode_escape').decode()))
+    return lst
+
+
+def serialize_unique(lst):
+    dictionary = {}
+    parody = []
+    character = []
+    tag = []
+    artist = []
+    group = []
+    for dic in lst:
+        if dic['parody']:
+            parody.extend([i for i in dic['parody']])
+        if dic['character']:
+            character.extend([i for i in dic['character']])
+        if dic['tag']:
+            tag.extend([i for i in dic['tag']])
+        if dic['artist']:
+            artist.extend([i for i in dic['artist']])
+        if dic['group']:
+            group.extend([i for i in dic['group']])
+    dictionary['parody'] = list(set(parody))
+    dictionary['character'] = list(set(character))
+    dictionary['tag'] = list(set(tag))
+    dictionary['artist'] = list(set(artist))
+    dictionary['group'] = list(set(group))
+    return dictionary
+
+
+def set_js_database():
+    with open('data.js', 'w') as f:
+        indexed_json = merge_json()
+        unique_json = json.dumps(serialize_unique(indexed_json), separators=','':')
+        indexed_json = json.dumps(indexed_json, separators=','':')
+        f.write('var data = '+indexed_json)
+        f.write(';\nvar tags = '+unique_json)