diff --git a/utils/Sync/sync.py b/utils/Sync/sync.py index ee8e0022..be97324e 100644 --- a/utils/Sync/sync.py +++ b/utils/Sync/sync.py @@ -56,54 +56,61 @@ async def run(run_interval=0): provider=io(settings.provider_root), model=Page, ) + 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, ) + sync_articles.set_options(True, True, True) sync_articles.validate_urls = False sync_schedules = Sync( provider=io(settings.provider_root), model=Schedule, ) + sync_schedules.set_options(True, True, True) sync_schedules.validate_urls = False sync_albums = Sync( provider=io(settings.provider_root), model=Album, ) + sync_albums.set_options(True, True, True) sync_albums.validate_urls = False sync_settings = Sync( provider=io(settings.provider_root), model=Settings, ) + sync_settings.set_options(True, True, True) sync_settings.validate_urls = False sync_images = Sync( provider=io(settings.provider_root), model=Image, ) + sync_images.set_options(True, True, True) sync_images.strict_origin = True sync_images.validate_urls = False while True: await asyncio.wait([ - run_sync(sync_documents, skip_changed=False, update=True, remove=True), - run_sync(sync_pages, skip_changed=False, update=True, remove=True), - run_sync(sync_persons, skip_changed=False, update=True, remove=True), - run_sync(sync_articles, skip_changed=False, update=True, remove=True), - run_sync(sync_schedules, skip_changed=False, update=True, remove=True), - run_sync(sync_albums, skip_changed=False, update=True, remove=True), - run_sync(sync_settings, skip_changed=False, update=True, remove=True), - run_sync(sync_images, skip_changed=False, update=True, remove=True), + run_sync(sync_documents), + run_sync(sync_pages), + run_sync(sync_persons), + run_sync(sync_articles), + run_sync(sync_schedules), + run_sync(sync_albums), + run_sync(sync_settings), + run_sync(sync_images), ]) if run_interval == 0: diff --git a/utils/Sync/sync/core/__init__.py b/utils/Sync/sync/core/__init__.py index 32c013d8..baabe1e1 100644 --- a/utils/Sync/sync/core/__init__.py +++ b/utils/Sync/sync/core/__init__.py @@ -30,6 +30,16 @@ class Sync: self.model = model self.filter_item_fn = filter_item_fn if filter_item_fn else lambda x: True + self.skip_unchanged = True + self.update_enabled = True + self.delete_enabled = True + + def set_options(self, su: bool, u: bool, d: bool): + self.skip_unchanged = su + self.update_enabled = u + self.delete_enabled = d + return self + async def clean(self): pass @@ -60,7 +70,7 @@ class Sync: return query - async def run(self, skip_changed=False, update=True, remove=True): + async def run(self): """ # Get scope files # Validate these files. Raise an error @@ -87,18 +97,18 @@ class Sync: self.check_urls_uniqueness(items) # SKIP UNTOUCHED DOCUMENTS - if not skip_changed: + if self.skip_unchanged: items = await untouched(items) self.logger.info(f'Ready to process {len(items)} item(s)') # UPDATING - if update: + if self.update_enabled: for item in items: await self.update(item) self.logger.info('Updated Item {}'.format(item)) # DELETING - if remove: + if self.delete_enabled: obsolete_items = await self.model.find(self.__items_to_delete_query(items)) obsolete_items = list(obsolete_items)