[Sync] Article's create_post moved to base sync

This commit is contained in:
Roman Timashev committed 2017-10-15 22:00:25 +03:00
1 parent 096848a3d1
commit 9e0a6437a9
2 files changed
+28 -24

No files matched your search

+26
View File
@@ -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 []
+2 -24
View File
@@ -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