[sync] sync options moved from run parameters to instance fields
This commit is contained in:
1 parent
4c4e800d19
commit
d122d040fe
2 files changed
+29
-12
No files matched your search
+15
-8
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in new issue
Block a user