mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 08:24:53 +01:00
add sync to specific projects or listen only
This commit is contained in:
parent
0cdeda5396
commit
122a4dc9db
2 changed files with 37 additions and 4 deletions
|
|
@ -124,19 +124,31 @@ def push_to_zou(login, password):
|
||||||
|
|
||||||
|
|
||||||
@cli_main.command()
|
@cli_main.command()
|
||||||
|
@click.option("-prjs", "--projects", envvar="SYNC_PROJECTS", help="Sync specific kitsu projects")
|
||||||
@click.option("-l", "--login", envvar="KITSU_LOGIN", help="Kitsu login")
|
@click.option("-l", "--login", envvar="KITSU_LOGIN", help="Kitsu login")
|
||||||
@click.option(
|
@click.option(
|
||||||
"-p", "--password", envvar="KITSU_PWD", help="Password for kitsu username"
|
"-p", "--password", envvar="KITSU_PWD", help="Password for kitsu username"
|
||||||
)
|
)
|
||||||
def sync_service(login, password):
|
def sync_service(login, password, projects="^"):
|
||||||
"""Synchronize openpype database from Zou sever database.
|
"""Synchronize openpype database from Zou sever database.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
login (str): Kitsu user login
|
login (str): Kitsu user login
|
||||||
password (str): Kitsu user password
|
password (str): Kitsu user password
|
||||||
|
projects (str): specific kitsu projects
|
||||||
|
|
||||||
|
SYNC_PROJECTS:
|
||||||
|
*: all projects
|
||||||
|
^: dont sync any project just listen
|
||||||
|
"project01 project02 ...": to choose custom projects
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from .utils.update_op_with_zou import sync_all_projects
|
from .utils.update_op_with_zou import sync_all_projects
|
||||||
from .utils.sync_service import start_listeners
|
from .utils.sync_service import start_listeners
|
||||||
|
|
||||||
sync_all_projects(login, password)
|
projects = projects.strip()
|
||||||
|
projects = projects.split(' ')
|
||||||
|
|
||||||
|
sync_all_projects(login, password, specific_projects=projects)
|
||||||
start_listeners(login, password)
|
start_listeners(login, password)
|
||||||
|
|
|
||||||
|
|
@ -359,7 +359,7 @@ def write_project_to_op(project: dict, dbcon: AvalonMongoDB) -> UpdateOne:
|
||||||
|
|
||||||
|
|
||||||
def sync_all_projects(
|
def sync_all_projects(
|
||||||
login: str, password: str, ignore_projects: list = None
|
login: str, password: str, ignore_projects: list = None, specific_projects: list = None
|
||||||
):
|
):
|
||||||
"""Update all OP projects in DB with Zou data.
|
"""Update all OP projects in DB with Zou data.
|
||||||
|
|
||||||
|
|
@ -367,6 +367,7 @@ def sync_all_projects(
|
||||||
login (str): Kitsu user login
|
login (str): Kitsu user login
|
||||||
password (str): Kitsu user password
|
password (str): Kitsu user password
|
||||||
ignore_projects (list): List of unsynced project names
|
ignore_projects (list): List of unsynced project names
|
||||||
|
specific_projects (list): List of synced project names
|
||||||
Raises:
|
Raises:
|
||||||
gazu.exception.AuthFailedException: Wrong user login and/or password
|
gazu.exception.AuthFailedException: Wrong user login and/or password
|
||||||
"""
|
"""
|
||||||
|
|
@ -381,7 +382,27 @@ def sync_all_projects(
|
||||||
dbcon = AvalonMongoDB()
|
dbcon = AvalonMongoDB()
|
||||||
dbcon.install()
|
dbcon.install()
|
||||||
all_projects = gazu.project.all_projects()
|
all_projects = gazu.project.all_projects()
|
||||||
for project in all_projects:
|
|
||||||
|
|
||||||
|
project_to_sync = []
|
||||||
|
if specific_projects == ['*']:
|
||||||
|
project_to_sync = all_projects
|
||||||
|
|
||||||
|
elif specific_projects == ['^']:
|
||||||
|
return
|
||||||
|
|
||||||
|
elif isinstance(specific_projects, list):
|
||||||
|
all_kitsu_projects = {p['name']: p for p in all_projects}
|
||||||
|
for proj_name in specific_projects:
|
||||||
|
if proj_name in all_kitsu_projects:
|
||||||
|
project_to_sync.append(all_kitsu_projects[proj_name])
|
||||||
|
else:
|
||||||
|
log.info(f'`{proj_name}` project does not exists in kitsu.'
|
||||||
|
f' Please make sure you write the project correctly.')
|
||||||
|
else:
|
||||||
|
return
|
||||||
|
|
||||||
|
for project in project_to_sync:
|
||||||
if ignore_projects and project["name"] in ignore_projects:
|
if ignore_projects and project["name"] in ignore_projects:
|
||||||
continue
|
continue
|
||||||
sync_project_from_kitsu(dbcon, project)
|
sync_project_from_kitsu(dbcon, project)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue