From e2f41c8dc4c842e998bd3b10e96f53a4b238ec3c Mon Sep 17 00:00:00 2001 From: Roman Timashev Date: Thu, 19 Mar 2020 14:33:19 +0300 Subject: [PATCH] sync document updated: store raw data in document token; format on compile --- modules/sync/kazimir/DocumentToken.py | 17 ++++++++++++++-- modules/sync/sync/__init__.py | 7 +++---- modules/sync/utils/text/file.py | 29 --------------------------- 3 files changed, 18 insertions(+), 35 deletions(-) delete mode 100644 modules/sync/utils/text/file.py diff --git a/modules/sync/kazimir/DocumentToken.py b/modules/sync/kazimir/DocumentToken.py index 259eda98..e24b5072 100644 --- a/modules/sync/kazimir/DocumentToken.py +++ b/modules/sync/kazimir/DocumentToken.py @@ -1,4 +1,5 @@ from kazimir.Token import parse_file, is_document, Token +import math class DocumentToken(Token): @@ -10,7 +11,7 @@ class DocumentToken(Token): super().__init__(name='file', data=data) self.joinable = False self.build = None - + async def get_data(self): data = parse_file(self.data) document = await self.build(data) @@ -23,6 +24,9 @@ class DocumentToken(Token): def create_document(document): + file_size = get_size(document['file_size'], 1) + file_format = 'ПДФ' + return f'''
'''.strip() + + +def get_size(number_of_bytes, precision=1): + units = ['байт', 'КБ', 'МБ', 'ГБ', 'ТБ', 'ПБ'] + number = math.floor(math.log(number_of_bytes) / math.log(1024)) + size = (number_of_bytes / math.pow(1024, math.floor(number))) + size = round(size, precision) + + return f'{size} {units[number]}' diff --git a/modules/sync/sync/__init__.py b/modules/sync/sync/__init__.py index fb14ebad..5ccfef90 100644 --- a/modules/sync/sync/__init__.py +++ b/modules/sync/sync/__init__.py @@ -15,8 +15,6 @@ from sync.data import Provider from sync.models import Model from sync.models.Document import Document from sync.models.Image import Image -from utils.text.file import get_size -from utils.text.file import get_ext def create_date(date_str, date_formats=None): @@ -90,11 +88,12 @@ async def create_post(provider: Provider, folder: str, md: str, sizes): return { 'url': url, + 'slug': document.id, 'image_url': image_url, 'file_url': document.url, 'title': document.title, - 'file_size': get_size(document.file_size, 1), - 'file_format': get_ext(data['file']), + 'file_size': document.file_size, + 'file_format': 'application/pdf', } async def build_image(data): diff --git a/modules/sync/utils/text/file.py b/modules/sync/utils/text/file.py deleted file mode 100644 index 2a7b8d93..00000000 --- a/modules/sync/utils/text/file.py +++ /dev/null @@ -1,29 +0,0 @@ -import os - -import math - - -def default_ext(ext: str): - return ext.upper() - - -def get_ext(filename): - ext_s = ['.png', '.pdf', '.jpg', '.jpeg', '.gif', '.doc'] - ext_d = ['ПНГ', 'ПДФ', 'ЖПГ', 'ЖПГ', 'ГИФ', 'ДОК'] - - _, ext = os.path.splitext(filename) - - if ext in ext_s: - i = ext_s.index(ext) - return ext_d[i] - else: - default_ext(ext) - - -def get_size(number_of_bytes, precision=1): - units = ['байт', 'КБ', 'МБ', 'ГБ', 'ТБ', 'ПБ'] - - number = math.floor(math.log(number_of_bytes) / math.log(1024)) - size = (number_of_bytes / math.pow(1024, math.floor(number))) - size = round(size, precision) - return f'{size} {units[number]}'