From ebd6290ccf80f4fd78f2bbf764cb87c655bd8724 Mon Sep 17 00:00:00 2001 From: Roman Timashev Date: Tue, 25 Feb 2020 03:59:12 +0300 Subject: [PATCH] remove Person model from sync as it never exist --- modules/sync/settings.py | 12 --- modules/sync/sync.py | 9 -- modules/sync/sync/models/Person.py | 130 ---------------------------- modules/sync/sync/models/product.py | 13 --- 4 files changed, 164 deletions(-) delete mode 100644 modules/sync/sync/models/Person.py diff --git a/modules/sync/settings.py b/modules/sync/settings.py index a3841cf8..87f87591 100644 --- a/modules/sync/settings.py +++ b/modules/sync/settings.py @@ -41,15 +41,6 @@ database_uri = value('database_uri') # env('MONGO_URI') skip_unchanged = value('skip_unchanged') -person_uri = { - 'Н.В.Андреева': 'nv-andreeva', - 'И.Н.Втюрина': 'in-vturina', - 'О.Д.Гоголева': 'od-gogoleva', - 'В.А.Саржин': 'va-sarzhin', - 'Р.К.Тимашев': 'rk-timashev', - 'А.С.Тимашева': 'as-timasheva', -} - image_processing_enabled = value('image_processing') album_html_img_class = 'hudozka-product' @@ -104,7 +95,6 @@ collection_images = 'images' collection_documents = 'documents' collection_schedules = 'schedules' collection_articles = 'articles' -collection_collective = 'collective' collection_albums = 'albums' collection_pages = 'pages' @@ -113,7 +103,6 @@ hash_salt_pages = '4' hash_salt_albums = '1' hash_salt_documents = '4' hash_salt_images = '5' -hash_salt_person = '4' provider_name = value('provider')['name'] # env('SYNC_PROVIDER', 'fs') provider_root = value('provider')['root'] # env('SYNC_PROVIDER', 'fs') @@ -124,7 +113,6 @@ dir_settings = './Settings' dir_documents = './Documents' dir_schedules = './Schedules' dir_articles = './Articles' -dir_persons = './Collective' dir_albums = './Gallery' dir_pages = './Pages' dir_images = './Images' diff --git a/modules/sync/sync.py b/modules/sync/sync.py index be97324e..02017656 100644 --- a/modules/sync/sync.py +++ b/modules/sync/sync.py @@ -11,7 +11,6 @@ from sync.models.Image import Image from sync.models.Album import Album from sync.models.Article import Article from sync.models.Page import Page -from sync.models.Person import Person from sync.models.Schedule import Schedule from sync.models.Settings import Settings @@ -58,13 +57,6 @@ async def run(run_interval=0): ) sync_pages.set_options(True, True, True) - sync_persons = Sync( - provider=io(settings.provider_root), - model=Person, - ) - sync_persons.set_options(True, True, True) - sync_persons.validate_urls = False - sync_articles = Sync( provider=io(settings.provider_root), model=Article, @@ -105,7 +97,6 @@ async def run(run_interval=0): await asyncio.wait([ run_sync(sync_documents), run_sync(sync_pages), - run_sync(sync_persons), run_sync(sync_articles), run_sync(sync_schedules), run_sync(sync_albums), diff --git a/modules/sync/sync/models/Person.py b/modules/sync/sync/models/Person.py deleted file mode 100644 index 79836453..00000000 --- a/modules/sync/sync/models/Person.py +++ /dev/null @@ -1,130 +0,0 @@ -import logging - -import os - -import settings -from db import collection -from sync import create_post -from sync.data import Provider -from sync.models import Model -from sync.models.Image import Image - -from utils.fn import swap_ext -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') -store = collection(settings.collection_collective) - - -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): - scan_dir = settings.dir_persons - documents = provider.type_filter(scan_dir, '.md') - documents = [Person.read(provider, i) for i in documents] - return documents - - @staticmethod - def read(provider, path): - params = get_manifest(provider, path) - - return Person( - provider, - path, - params=params, - ) - - def __init__(self, provider, file, params=None): - self.__hash_salt = settings.hash_salt_person - self.__hash_keys = ['id', 'url'] - - self.__id_template: str = '{category}-{file}' - self.__url_template: str = settings.document_url_template - self.__url_preview_template: str = settings.document_url_preview_template - - self.picture = None - self.preview = None - self.post = None - self.images = None - self.documents = None - - super().__init__(provider, store, file, params) - - def init(self): - pass - self.__set_id() - self.__set_hash() - - async def build(self, **kwargs): - sizes = kwargs['sizes'] - image_path = self._get_relpath(self.get_param('picture')) - - self.picture = await Image.new(self.provider, image_path, sizes) - - markdown_post = self.get_param('content') - post, images, documents = await create_post(self.provider, self.get_param('folder'), markdown_post, sizes) - self.post = post - self.images = images - self.documents = documents - - if self.has_param('preview'): - preview = self.get_param('preview') - preview = self._get_relpath(preview) - self.preview = await Image.new(self.provider, preview, sizes) - - def bake(self): - return { - **self.params, - 'post': self.post, - 'images': [x.ref for x in self.images], - 'documents': [x.ref for x in self.documents], - 'id': self.id, - 'hash': self.hash, - 'file': self.file, - 'picture': self.picture.ref, - 'preview': self.preview.ref if self.preview else None, - } - - def __set_id(self): - if 'id' in self.params: - self.id = self.params['id'] - else: - self.id = url_encode_text(self.params['name']) - - def __set_hash(self): - files = [self.file] - files.append(self._get_relpath(self.get_param('picture'))) - - if self.has_param('preview'): - files.append(self._get_relpath(self.get_param('preview'))) - - hashes = [self.provider.hash(x) for x in files] - self.hash = hash_str( - self.__hash_salt + ''.join(hashes) - ) - - def __str__(self): - return f'' - - -def get_manifest(provider: Provider, path: str) -> dict: - data = provider.read(path).read().decode('utf-8') - - manifest = parse_yaml_front_matter(data) - return { - **manifest, - 'picture': manifest['picture'] if 'picture' in manifest else os.path.basename(swap_ext('.jpg')(path)), - 'preview': manifest['preview'] if 'preview' in manifest else os.path.basename(swap_ext('.jpg')(path)), - 'folder': os.path.dirname(path), - 'hidden': manifest['hidden'] if 'hidden' in manifest else False, - } diff --git a/modules/sync/sync/models/product.py b/modules/sync/sync/models/product.py index 42534242..0eb373fd 100644 --- a/modules/sync/sync/models/product.py +++ b/modules/sync/sync/models/product.py @@ -1,6 +1,5 @@ import settings from db import collection -from sync.core.person import SyncPerson from utils.text.transform import interpolate_swift @@ -15,14 +14,6 @@ def resolve_value(param, store): return store(i) -def resolve_teacher(i): - sync = SyncPerson( - collection(settings.collection_collective), - None, - '' - ) - return resolve_value(i, lambda teacher_id: sync.read({'id': teacher_id})) - def create_product(doc): # author, image, title, awards, teacher, date @@ -33,8 +24,4 @@ def create_product(doc): product = {**doc} # unpop_image(product) - # product['teacher'] = resolve_teacher(doc['teacher']) - # if (product['teacher']): - # unpop_teacher(product) - return product