Download extensions/sd-model-organizer/scripts/mo/ui_navigation.py from dikdimon/ext: direct link, hf CLI and curl.
- Browser
- Download file 4.58 kB
-
https://huggingface.co/dikdimon/ext/resolve/main/extensions/sd-model-organizer/scripts/mo/ui_navigation.py
- Command line
-
hf download hf://dikdimon/ext/extensions/sd-model-organizer/scripts/mo/ui_navigation.py
-
curl -L -o ui_navigation.py https://huggingface.co/dikdimon/ext/resolve/main/extensions/sd-model-organizer/scripts/mo/ui_navigation.py
4.58 kB
| import json | |
| import random | |
| import string | |
| _HOME = 'home' | |
| _DETAILS = 'details' | |
| _EDIT = 'edit' | |
| _REMOVE = 'remove' | |
| _DOWNLOAD = 'download' | |
| _IMPORT_EXPORT = 'import_export' | |
| _DEBUG = 'debug' | |
| _RECORD_INFO = 'record_info' | |
| _NODE_SCREEN = 'screen' | |
| _NODE_RECORD_ID = 'record_id' | |
| _NODE_PREFILLED_JSON = 'prefilled_json' | |
| _NODE_GROUP = 'group' | |
| _NODE_RECORD_INFO_ID = 'record_info_id' | |
| def navigate_home() -> str: | |
| return '{}' | |
| def navigate_details(record_id) -> str: | |
| nav_dict = { | |
| _NODE_SCREEN: _DETAILS, | |
| _NODE_RECORD_ID: record_id | |
| } | |
| return json.dumps(nav_dict) | |
| def navigate_add() -> str: | |
| nav_dict = { | |
| _NODE_SCREEN: _EDIT, | |
| } | |
| return json.dumps(nav_dict) | |
| def navigate_edit(record_id) -> str: | |
| nav_dict = { | |
| _NODE_SCREEN: _EDIT, | |
| _NODE_RECORD_ID: record_id | |
| } | |
| return json.dumps(nav_dict) | |
| def navigate_remove(record_id) -> str: | |
| nav_dict = { | |
| _NODE_SCREEN: _REMOVE, | |
| _NODE_RECORD_ID: record_id | |
| } | |
| return json.dumps(nav_dict) | |
| def navigate_download_single(record_id) -> str: | |
| nav_dict = { | |
| _NODE_SCREEN: _DOWNLOAD, | |
| _NODE_RECORD_ID: record_id | |
| } | |
| return json.dumps(nav_dict) | |
| def navigate_download_group(group) -> str: | |
| nav_dict = { | |
| _NODE_SCREEN: _DOWNLOAD, | |
| _NODE_GROUP: group | |
| } | |
| return json.dumps(nav_dict) | |
| def get_nav_state(json_nav) -> dict: | |
| nav_dict = json.loads(json_nav) | |
| state = { | |
| 'is_home_visible': False, | |
| 'is_details_visible': False, | |
| 'is_edit_visible': False, | |
| 'is_remove_visible': False, | |
| 'is_download_visible': False, | |
| 'is_import_export_visible': False, | |
| 'is_debug_visible': False, | |
| 'details_record_id': '', | |
| 'edit_data': {}, | |
| 'remove_record_id': '', | |
| 'download_info': '', | |
| 'filter_state': {}, | |
| 'details_record_info_id': '' | |
| } | |
| if nav_dict.get(_NODE_SCREEN) is None: | |
| state['is_home_visible'] = True | |
| else: | |
| if nav_dict[_NODE_SCREEN] == _DETAILS: | |
| state['is_details_visible'] = True | |
| state['details_record_id'] = nav_dict[_NODE_RECORD_ID] | |
| elif nav_dict[_NODE_SCREEN] == _EDIT: | |
| state['is_edit_visible'] = True | |
| edit_data = {'token': generate_ui_token()} | |
| if nav_dict.get(_NODE_RECORD_ID) is not None: | |
| edit_data[_NODE_RECORD_ID] = nav_dict[_NODE_RECORD_ID] | |
| if nav_dict.get(_NODE_PREFILLED_JSON) is not None: | |
| edit_data[_NODE_PREFILLED_JSON] = nav_dict[_NODE_PREFILLED_JSON] | |
| state['edit_data'] = json.dumps(edit_data) | |
| elif nav_dict[_NODE_SCREEN] == _REMOVE: | |
| state['is_remove_visible'] = True | |
| state['remove_record_id'] = nav_dict[_NODE_RECORD_ID] | |
| elif nav_dict[_NODE_SCREEN] == _DOWNLOAD: | |
| state['is_download_visible'] = True | |
| download_dict = {'token': generate_ui_token()} | |
| if nav_dict.get(_NODE_RECORD_ID) is not None: | |
| download_dict[_NODE_RECORD_ID] = nav_dict[_NODE_RECORD_ID] | |
| if nav_dict.get(_NODE_GROUP) is not None: | |
| download_dict[_NODE_GROUP] = nav_dict[_NODE_GROUP] | |
| if nav_dict.get('filter_state') is not None: | |
| download_dict['filter_state'] = nav_dict['filter_state'] | |
| state['download_info'] = json.dumps(download_dict) | |
| elif nav_dict[_NODE_SCREEN] == _IMPORT_EXPORT: | |
| state['is_import_export_visible'] = True | |
| state['filter_state'] = nav_dict['filter_state'] | |
| elif nav_dict[_NODE_SCREEN] == _DEBUG: | |
| state['is_debug_visible'] = True | |
| elif nav_dict[_NODE_SCREEN] == _RECORD_INFO: | |
| state['details_record_info_id'] = nav_dict[_NODE_RECORD_INFO_ID] | |
| state['is_home_visible'] = True | |
| return state | |
| def get_download_record_id(data): | |
| download_dict = json.loads(data) | |
| if download_dict.get(_NODE_RECORD_ID) is None: | |
| return None | |
| else: | |
| return download_dict[_NODE_RECORD_ID] | |
| def get_download_group(data): | |
| download_dict = json.loads(data) | |
| if download_dict.get(_NODE_GROUP) is None: | |
| return None | |
| else: | |
| return download_dict[_NODE_GROUP] | |
| def get_download_filter_state(data): | |
| download_dict = json.loads(data) | |
| if download_dict.get('filter_state') is None: | |
| return None | |
| else: | |
| return download_dict['filter_state'] | |
| def generate_ui_token() -> str: | |
| characters = string.ascii_letters + string.digits | |
| return ''.join(random.choice(characters) for _ in range(6)) | |