[sync] sync options moved from run parameters to instance fields

This commit is contained in:
tmshv committed 2019-10-14 20:42:05 +03:00
1 parent 4c4e800d19
commit d122d040fe
2 files changed
+29 -12

No files matched your search

+15 -8
View File
@@ -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:
+14 -4
View File
@@ -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)