diff options
author | AL-LCL <alvin@alvinhavel.com> | 2023-05-19 11:01:49 +0200 |
---|---|---|
committer | AL-LCL <alvin@alvinhavel.com> | 2023-05-19 11:01:49 +0200 |
commit | 20dbeb2f38684c65ff0a4b99012c161295708e88 (patch) | |
tree | a5b8445f55da2fbbb92443b68e9d7354a290c598 /domestic/utility/loading.py |
Diffstat (limited to 'domestic/utility/loading.py')
-rw-r--r-- | domestic/utility/loading.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/domestic/utility/loading.py b/domestic/utility/loading.py new file mode 100644 index 0000000..39c3198 --- /dev/null +++ b/domestic/utility/loading.py @@ -0,0 +1,31 @@ +import threading +import time +import sys + +from domestic.utility.status_message import * +from domestic.global_state import * + + +def loading(text, blacklist): + if state['settings']['loading-animation']: + start_time = time.time() + + while True: + for i in range(len(text)): + if not state['settings']['dynamic']['is-loading']: + sys.exit(0) + if text[i].lower() in blacklist: + continue + text = text[:i].lower() + text[i:].capitalize() + time_taken = time.time() - start_time + status_message(f'[{time_taken:.1f}] {text}', 'loading', {'end': True}) + time.sleep(0.1) + else: + status_message(text.capitalize(), 'loading', {'end': True}) + +def start_loading(text, blacklist=('.', ' ')): + state['settings']['dynamic']['is-loading'] = True + threading.Thread(target=loading, args=(text, blacklist), daemon=True).start() + +def stop_loading(): + state['settings']['dynamic']['is-loading'] = False
\ No newline at end of file |