[Sync] update: removed unnecesarry Sync subclasses

This commit is contained in:
Roman Timashev committed 2017-09-17 16:34:56 +03:00
1 parent 84745ead6d
commit 6fa8564cc8
15 files changed
+163 -471

No files matched your search

+8 -9
View File
@@ -23,16 +23,15 @@ logger = logging.getLogger(settings.name + '.Album')
store = collection(settings.collection_albums)
def find(item_id: str):
q = {'id': item_id}
try:
return store.find_one(q)
except ValueError:
pass
return None
class Album(Model):
@staticmethod
async def find(query):
return store.find(query)
@staticmethod
async def delete(query):
return store.find_one_and_delete(query)
@staticmethod
async def scan(provider):
documents = [i for i in provider.scan('.') if provider.is_dir(i)]
+9 -10
View File
@@ -18,20 +18,19 @@ from utils.hash import hash_str
from utils.io import read_yaml_md, parse_yaml_front_matter
from utils.text.transform import url_encode_text
logger = logging.getLogger(settings.name + '.Person')
logger = logging.getLogger(settings.name + '.Article')
store = collection(settings.collection_articles)
def find(item_id: str):
q = {'id': item_id}
try:
return store.find_one(q)
except ValueError:
pass
return None
class Article(Model):
@staticmethod
async def find(query):
return store.find(query)
@staticmethod
async def delete(query):
return store.find_one_and_delete(query)
@staticmethod
async def scan(provider):
documents = [i for i in provider.scan('.') if provider.is_dir(i)]
+12 -19
View File
@@ -11,17 +11,18 @@ from utils.hash import hash_str
from utils.image.resize import image_magick_pdf_to_img
from utils.text.transform import url_encode_text, url_encode_file
def find(store, item_id: str):
q = {'id': item_id}
try:
return store.find_one(q)
except ValueError:
pass
return None
store = collection(settings.collection_documents)
class Document(Model):
@staticmethod
async def find(query):
return store.find(query)
@staticmethod
async def delete(query):
return store.find_one_and_delete(query)
@staticmethod
async def scan(provider):
paths = scan_subdirs(provider, '.pdf')
@@ -43,8 +44,6 @@ class Document(Model):
)
def __init__(self, provider, file, category=None, title=None):
store = collection(settings.collection_documents)
self.__hash_keys = ['id', 'url']
self.__id_template: str = '{category}-{file}'
@@ -63,15 +62,9 @@ class Document(Model):
self.__set_url()
self.__set_hash()
async def is_changed(self):
i = find(self.store, self.id)
if not i:
return True
if 'hash' not in i:
return True
return not (self.hash == i['hash'])
async def build(self, **kwargs):
sizes = kwargs['sizes']
await self.create_preview(sizes)
async def save(self):
document = self.bake()
+28
View File
@@ -17,6 +17,7 @@ from utils.io import read_yaml_md
from utils.text.transform import url_encode_text
logger = logging.getLogger(settings.name + '.Page')
store = collection(settings.collection_pages)
def find(store, item_id: str):
@@ -29,6 +30,14 @@ def find(store, item_id: str):
class Page(Model):
@staticmethod
async def find(query):
return store.find(query)
@staticmethod
async def delete(query):
return store.find_one_and_delete(query)
@staticmethod
async def scan(provider):
documents = [i for i in provider.scan('.') if provider.is_dir(i)]
@@ -89,6 +98,9 @@ class Page(Model):
return not (self.hash == i['hash'])
async def build(self, **kwargs):
await self.setup_images(settings.image_sizes, get_image_url_fn(self.id))
async def setup_images(self, sizes, url_factory):
folder = self.params['folder']
images = []
@@ -189,3 +201,19 @@ def get_manifest(provider, path):
'title': title_from_html(body),
'images': images_from_html(body)
}
def get_image_url_fn(page_id: str):
image_id = lambda filename: url_encode_text(
os.path.splitext(os.path.basename(filename))[0]
)
def img_url_fn(file, size, ext):
return settings.page_url_base.format(
page=page_id,
id=image_id(file),
size=size,
ext=ext
)
return img_url_fn
+10 -11
View File
@@ -15,16 +15,15 @@ logger = logging.getLogger(settings.name + '.Person')
store = collection(settings.collection_collective)
def find(item_id: str):
q = {'id': item_id}
try:
return store.find_one(q)
except ValueError:
pass
return None
class Person(Model):
@staticmethod
async def find(query):
return store.find(query)
@staticmethod
async def delete(query):
return store.find_one_and_delete(query)
@staticmethod
async def scan(provider):
documents = provider.type_filter('', '.md')
@@ -59,9 +58,9 @@ class Person(Model):
async def build(self, **kwargs):
sizes = kwargs['sizes']
image_path = self.provider.get_abs(self.params['picture'])
image_path = self.provider.get_abs(self.get_param('picture'))
self.picture = await Image.new(self.provider, image_path, sizes, url_factory(self.id))
self.picture = await Image.new(self.provider, image_path, sizes)
def bake(self):
return {
+8 -3
View File
@@ -1,5 +1,3 @@
import logging
from toml import loads as toml_str
from yaml import load as yaml
@@ -10,7 +8,6 @@ from sync.models import Model
from utils.fn import constant
logger = logging.getLogger(settings.name + '.Person')
store = collection(settings.collection_schedules)
@@ -24,6 +21,14 @@ def find(item_id: str):
class Schedule(Model):
@staticmethod
async def find(query):
return store.find(query)
@staticmethod
async def delete(query):
return store.find_one_and_delete(query)
@staticmethod
async def scan(provider):
documents = provider.type_filter('.', '.yaml')
+3
View File
@@ -28,6 +28,9 @@ class Model:
def init(self):
pass
async def upload(self, **kwargs):
pass
async def build(self, **kwargs):
pass