From 9e0a6437a910fb258e6e4df628a71a77f17a7b78 Mon Sep 17 00:00:00 2001 From: Roman Timashev Date: Sun, 15 Oct 2017 22:00:25 +0300 Subject: [PATCH] [Sync] Article's create_post moved to base sync --- utils/Sync/sync/__init__.py | 26 ++++++++++++++++++++++++++ utils/Sync/sync/models/Article.py | 26 ++------------------------ 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/utils/Sync/sync/__init__.py b/utils/Sync/sync/__init__.py index 7feb154d..16f1c402 100644 --- a/utils/Sync/sync/__init__.py +++ b/utils/Sync/sync/__init__.py @@ -5,8 +5,11 @@ from datetime import datetime import lxml.html from markdown import markdown +import kazimir import settings +from sync.data import Provider from sync.models import Model +from sync.models.Image import Image def create_date(date_str, date_formats=None): @@ -78,6 +81,29 @@ def create_date_and_title_from_folder_name(folder_name, date_formats=None): return date, title +async def create_post(provider: Provider, folder: str, md: str, sizes): + html = kazimir.create_tree(md) + images = [] + for img in html.cssselect('img'): + src = img.get('src') + relative_image_path = os.path.join(folder, src) + + image_path = provider.get_local(relative_image_path) + if os.path.exists(image_path): + image = await Image.new(provider, image_path, sizes) + if image: + url = image.get_size('big')['url'] + images.append(image) + img.set('src', url) + else: + raise Exception('Fail to get Image', folder, src) + + post = kazimir.html_from_tree(html) + post = await kazimir.typo(post) + + return post, images + + def images_from_html(md): if not md: return [] diff --git a/utils/Sync/sync/models/Article.py b/utils/Sync/sync/models/Article.py index 08556259..1f7a956c 100644 --- a/utils/Sync/sync/models/Article.py +++ b/utils/Sync/sync/models/Article.py @@ -8,7 +8,8 @@ import kazimir import settings from db import collection from kazimir import create_tree -from sync import create_date_and_title_from_folder_name, images_from_html, create_post_from_image_list, create_date +from sync import create_date_and_title_from_folder_name, images_from_html, create_post_from_image_list, create_date, \ + create_post from sync.data import Provider, list_images from sync.models import Model from sync.models.Image import Image @@ -166,26 +167,3 @@ def read_manifest(provider, path): return { **manifest, } - - -async def create_post(provider: Provider, folder: str, md: str, sizes): - html = kazimir.create_tree(md) - images = [] - for img in html.cssselect('img'): - src = img.get('src') - relative_image_path = os.path.join(folder, src) - - image_path = provider.get_local(relative_image_path) - if os.path.exists(image_path): - image = await Image.new(provider, image_path, sizes) - if image: - url = image.get_size('big')['url'] - images.append(image) - img.set('src', url) - else: - logger.error('Fail to get Image', folder, src) - - post = kazimir.html_from_tree(html) - post = await kazimir.typo(post) - - return post, images