47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
import settings
|
|
from db import db, collection
|
|
from sync.album import sync_albums
|
|
from sync.data.fs import FSProvider
|
|
from sync.data.yandexdisk import YDProvider
|
|
from sync.document import sync_documents
|
|
from sync.page import sync_pages
|
|
from sync.person import sync_persons
|
|
from sync.post import sync_posts
|
|
from sync.schedule import sync_schedules
|
|
from utils.fn import lprint_json
|
|
from utils.image import thumbnail
|
|
|
|
|
|
def get_provider(provider_type, root):
|
|
if provider_type == 'fs':
|
|
return FSProvider(root)
|
|
elif provider_type == 'yd':
|
|
return YDProvider(root, settings.yandex_disk_access_token)
|
|
return None
|
|
|
|
|
|
def main(provider, fn, collection_name):
|
|
if provider:
|
|
print('SYNC: %s' % (collection_name.upper()))
|
|
u, d = fn(provider, collection(collection_name), update=settings.do_update, delete=settings.do_update)
|
|
|
|
print('DELETE %s: %s' % (collection_name.upper(), 'NO' if not settings.do_delete else str(len(d))))
|
|
lprint_json(d)
|
|
|
|
print('UPDATE %s: %s' % (collection_name.upper(), 'NO' if not settings.do_update else str(len(u))))
|
|
lprint_json(u)
|
|
|
|
print('')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
io = lambda root: get_provider(settings.sync_provider_type, root)
|
|
|
|
main(io(settings.dir_documents), sync_documents, settings.collection_documents)
|
|
main(io(settings.dir_awards), sync_documents, settings.collection_awards)
|
|
main(io(settings.dir_schedules), sync_schedules, settings.collection_schedules)
|
|
main(io(settings.dir_articles), sync_posts, settings.collection_articles)
|
|
main(io(settings.dir_collective), sync_persons, settings.collection_collective)
|
|
main(io(settings.dir_gallery), sync_albums, settings.collection_albums)
|
|
main(io(settings.dir_pages), sync_pages, settings.collection_pages)
|