blob: 39c3198ec69e7bd006be64de964a97e43251ce4b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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
|