From af96c6aa596f96e4a846e9452e0dea2849a2e903 Mon Sep 17 00:00:00 2001 From: Sewon Ahn Date: Fri, 30 Oct 2020 19:38:22 +0900 Subject: [PATCH] Init fregment class --- distribusi/distribusi/distribusi.py | 52 ++++++++ distribusi/distribusi/fregments.py | 62 ++++++++++ fregments_index.json | 116 ++++++++++++++++++ test_data/404.html | 33 +++++ test_data/carrot/1030.txt | 0 test_data/fig/test.txt | 0 .../fbdbdbf54d766dd86e5964de01ddc16b.jpg | Bin 0 -> 43811 bytes 7 files changed, 263 insertions(+) create mode 100644 distribusi/distribusi/fregments.py create mode 100644 fregments_index.json create mode 100644 test_data/404.html create mode 100644 test_data/carrot/1030.txt create mode 100644 test_data/fig/test.txt create mode 100644 test_data/grape/fbdbdbf54d766dd86e5964de01ddc16b.jpg diff --git a/distribusi/distribusi/distribusi.py b/distribusi/distribusi/distribusi.py index 198e58d..828f9d4 100644 --- a/distribusi/distribusi/distribusi.py +++ b/distribusi/distribusi/distribusi.py @@ -1,6 +1,7 @@ import base64 import os import subprocess + from io import BytesIO import magic @@ -9,6 +10,9 @@ from PIL import Image from distribusi.page_template import html_footer, html_head from distribusi.mappings import CODE_TYPES, FILE_TYPES, SUB_TYPES +from distribusi import fregments + + MIME_TYPE = magic.Magic(mime=True) @@ -109,6 +113,9 @@ def write_index(args,index, html, html_head, html_footer): def distribusify(args, directory): # noqa + + freg = fregments.Fregments() + for root, dirs, files in os.walk(directory): if args.exclude_directory: @@ -123,6 +130,14 @@ def distribusify(args, directory): # noqa dirs.sort() files.sort() + # + # fregments index + # 작가 폴더 내인 경우 아티스트명 저장 + # + path = root.split('/') + if len(path) == 3: + artist = path[2].strip() + if not args.remove_index: html = [] @@ -185,6 +200,15 @@ def distribusify(args, directory): # noqa html.append(div(args, type_, subtype, a, name)) + # + # fregments index + # 작가 폴더 내부의 파일인 경우 조각 추가 + # + if len(path) == 3 and artist: + id_name = name.split('.')[0].replace(' ', '_') + freg.add(artist, id_name) + + if root != directory: if args.menu_with_index: html.append('../') @@ -192,12 +216,21 @@ def distribusify(args, directory): # noqa html.append('../') for name in dirs: + ''' if args.menu_with_index: a = "{}".replace('{}', name) else: a = "{}/".replace('{}', name) html.insert(0, div(args, 'dir', 'dir', a, 'folder')) + ''' + # + # fregments index + # 작가 폴더 내부의 폴더인 경우 조각 추가 + # + if len(path) == 3 and artist: + id_name = name.split('.')[0].replace(' ', '_') + freg.add(artist, id_name) index = os.path.join(root, 'index.html') if os.path.exists(index): @@ -216,3 +249,22 @@ def distribusify(args, directory): # noqa os.remove(index) except Exception as e: print(e) + + # + # fregments index + # 임시 데이터 저장 + # + print("-----------------------") + html = [] + freg.save() + json_data = freg.get_fregments() + count = freg.get_count() + for f in json_data: + file = f['file'] + url = "/{}/#{} ".format(file['artist'], file['fregment']) + label = "{} 번째 조각".format(count) + html.append('{}
'.format(url, label)) + count = count - 1 + + index = os.path.join(directory, 'index.html') + write_index(args, index, html, html_head, html_footer) diff --git a/distribusi/distribusi/fregments.py b/distribusi/distribusi/fregments.py new file mode 100644 index 0000000..4b7d255 --- /dev/null +++ b/distribusi/distribusi/fregments.py @@ -0,0 +1,62 @@ +import json +import time +from operator import itemgetter + +class Fregments: + def __init__(self): + self.file = 'fregments_index.json'; + with open(self.file) as json_file: + self.json_data = json.load(json_file) + print(json.dumps(self.json_data)) + + self.temp_data = {"fregments":[]} + self.count = len(self.json_data["fregments"]) + + + def add(self, artist, fregment): + + temp = { + "index" : 0, + "update" : 0, + "file" : { + "artist": artist, + "fregment": fregment + } + } + + added = False + for f in self.json_data['fregments']: + # 기존 조각과 비교 + if f['file'] == temp['file']: + added = True + + if added: + print("Already added - artist:", artist, ", fregment: ", fregment) + else: + self.count = self.count + 1 + print("Add fregment - artist:", artist, ", fregment: ", fregment) + temp["index"] = self.count + temp["update"] = int(time.time()) + self.temp_data['fregments'].append(temp) + + def save(self): + print(json.dumps(self.temp_data)) + for f in self.temp_data['fregments']: + self.json_data['fregments'].append(f) + with open(self.file, 'w') as outfile: + json.dump(self.json_data, outfile, indent=4) + self.count = len(self.json_data["fregments"]) + + def get_fregments(self): + fregments = self.json_data['fregments'] + # reverse + fregments.sort(key = itemgetter('index'), reverse=True) + return fregments + + def get_count(self): + return self.count + + + +if __name__ == "__main__": + freg = Fregments() diff --git a/fregments_index.json b/fregments_index.json new file mode 100644 index 0000000..567c0b8 --- /dev/null +++ b/fregments_index.json @@ -0,0 +1,116 @@ +{ + "fregments": [ + { + "index": 1, + "update": 1604054082, + "file": { + "artist": "carrot", + "fregment": "RTF\ud14c\uc2a4\ud2b8" + } + }, + { + "index": 2, + "update": 1604054082, + "file": { + "artist": "carrot", + "fregment": "\uafb8\ubb3c\uafb8\ubb3c" + } + }, + { + "index": 3, + "update": 1604054082, + "file": { + "artist": "carrot", + "fregment": "\uc9c8\uc8fc" + } + }, + { + "index": 4, + "update": 1604054082, + "file": { + "artist": "fig", + "fregment": "test" + } + }, + { + "index": 5, + "update": 1604054082, + "file": { + "artist": "fig", + "fregment": "20201020" + } + }, + { + "index": 6, + "update": 1604054082, + "file": { + "artist": "fig", + "fregment": "20201022" + } + }, + { + "index": 7, + "update": 1604054082, + "file": { + "artist": "fig", + "fregment": "20201029" + } + }, + { + "index": 8, + "update": 1604054082, + "file": { + "artist": "grape", + "fregment": "IMG_1334" + } + }, + { + "index": 9, + "update": 1604054082, + "file": { + "artist": "grape", + "fregment": "IMG_1340" + } + }, + { + "index": 10, + "update": 1604054082, + "file": { + "artist": "grape", + "fregment": "IMG_1690" + } + }, + { + "index": 11, + "update": 1604054082, + "file": { + "artist": "grape", + "fregment": "IMG_1693" + } + }, + { + "index": 12, + "update": 1604054082, + "file": { + "artist": "grape", + "fregment": "fbdbdbf54d766dd86e5964de01ddc16b" + } + }, + { + "index": 13, + "update": 1604054082, + "file": { + "artist": "grape", + "fregment": "sample" + } + }, + { + "index": 14, + "update": 1604054149, + "file": { + "artist": "carrot", + "fregment": "1030" + } + } + ] +} \ No newline at end of file diff --git a/test_data/404.html b/test_data/404.html new file mode 100644 index 0000000..829eda8 --- /dev/null +++ b/test_data/404.html @@ -0,0 +1,33 @@ + + + + + + Page Not Found + + + + +
+

404

+

Page Not Found

+

The specified file was not found on this website. Please check the URL for mistakes and try again.

+

Why am I seeing this?

+

This page was generated by the Firebase Command-Line Interface. To modify it, edit the 404.html file in your project's configured public directory.

+
+ + diff --git a/test_data/carrot/1030.txt b/test_data/carrot/1030.txt new file mode 100644 index 0000000..e69de29 diff --git a/test_data/fig/test.txt b/test_data/fig/test.txt new file mode 100644 index 0000000..e69de29 diff --git a/test_data/grape/fbdbdbf54d766dd86e5964de01ddc16b.jpg b/test_data/grape/fbdbdbf54d766dd86e5964de01ddc16b.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b5f61d0ce30aedc02bff43a93a3636f8f4fb1fb3 GIT binary patch literal 43811 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 LV}Jhura%ALtDPc( literal 0 HcmV?d00001