[Sync] Article's create_post moved to base sync
This commit is contained in:
1 parent
096848a3d1
commit
9e0a6437a9
2 files changed
+28
-24
No files matched your search
@@ -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 []
|
||||
|
||||
@@ -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
|
||||
Reference in new issue
Block a user