1313
1414isRunning : bool = True
1515isOnline : bool = True
16+ hasSetted = False
1617
1718#!#
1819TP = Client (ID )
1920
21+
2022#*#
2123def updateStates (set : bool = False ):
22- global ID , CHANNELS , DYNAMIC , isOnline
24+ global ID , CHANNELS , DYNAMIC , isOnline , hasSetted
2325
2426 isOnline = checkOnline ()
2527
2628 if isOnline :
27- TP .stateUpdate (f'{ ID } .state.refresh_state' , 'refresh' )
29+ if hasSetted :
30+ TP .stateUpdate (f'{ ID } .state.refresh_state' , 'refresh' )
31+
32+ infos : list = getChannelsInfo (CHANNELS , set )
33+ for info in infos :
34+ icon : str = info ['defIcon' ] if info ['cState' ] == 'Online' else getGrayImage (info ['defIcon' ]) if DYNAMIC else info ['defIcon' ]
2835
29- infos :list = getChannelsInfo (CHANNELS , set )
30- for info in infos :
31- icon :str = info ['defIcon' ] if info ['cState' ] == 'Online' else getGrayImage (info ['defIcon' ]) if DYNAMIC else info ['defIcon' ]
36+ TP .stateUpdateMany ([
37+ {'id' : f'{ ID } .state.{ info ["display_name" ]} .state' , 'value' : info ['cState' ]}, # Update state state
38+ {'id' : f'{ ID } .state.{ info ["display_name" ]} .icon' , 'value' : icon }, # Update icon state
39+ {'id' : f'{ ID } .state.{ info ["display_name" ]} .viewers' , 'value' : info ['cViewers' ]}, # Update viewers state
40+ ]) # yapf: disable
3241
33- TP .stateUpdateMany ([
34- {'id' : f'{ ID } .state.{ info ["display_name" ]} .state' , 'value' : info ['cState' ]}, # Update state state
35- {'id' : f'{ ID } .state.{ info ["display_name" ]} .icon' , 'value' : icon }, # Update icon state
36- {'id' : f'{ ID } .state.{ info ["display_name" ]} .viewers' , 'value' : info ['cViewers' ]}, # Update viewers state
37- ]) # yapf: disable
42+ TP .stateUpdate (f'{ ID } .state.refresh_state' , 'idle' )
43+ else :
44+ hasSetted = True
45+ updateSettings ([], True )
3846
39- TP .stateUpdate (f'{ ID } .state.refresh_state' , 'idle' )
4047 else :
4148 TP .stateUpdate (f'{ ID } .state.refresh_state' , 'connection error' )
4249
4350
44- def updateSettings (data ):
45- global ID , REFRESH , CHANNELS , DYNAMIC
51+ def updateSettings (data :list , noData :bool = False ):
52+ global ID , REFRESH , CHANNELS , DYNAMIC , isOnline , hasSetted
53+
54+ TP .stateUpdate (f'{ ID } .state.time_until_refresh' , 'x' )
4655
4756 # Remove old states
4857 for channel in CHANNELS :
@@ -53,9 +62,10 @@ def updateSettings(data):
5362 ]) # yapf: disable
5463
5564 # Update settings
56- REFRESH ['time' ] = int (data [1 ]['Refresh Time (m)' ])
57- CHANNELS = data [0 ]['Channel names' ].replace (' ' , '' ).split (',' )[:100 ]
58- DYNAMIC = True if data [2 ]['Dynamic image (bool)' ] == '1' else False
65+ if not noData :
66+ REFRESH ['time' ] = int (data [1 ]['Refresh Time (m)' ])
67+ CHANNELS = data [0 ]['Channel names' ].replace (' ' , '' ).split (',' )[:100 ]
68+ DYNAMIC = True if data [2 ]['Dynamic image (bool)' ] == '1' else False
5969
6070 # Create new states
6171 for channel in CHANNELS :
@@ -64,7 +74,7 @@ def updateSettings(data):
6474 {'id' : f'{ ID } .state.{ channel } .icon' , 'desc' : f'{ channel } icon' , 'value' : '' , 'parentGroup' : channel }, # Create icon state
6575 {'id' : f'{ ID } .state.{ channel } .viewers' , 'desc' : f'{ channel } viewers' , 'value' : '0' , 'parentGroup' : channel } # Create viewers state
6676 ]) # yapf: disable
67-
77+
6878 updateStates (True )
6979
7080
0 commit comments