13
13
14
14
15
15
class StreamerManager :
16
+ discord = None
16
17
streamers = {}
17
18
19
+ def __init__ (self , discord = None ):
20
+ self .discord = discord
21
+
18
22
async def run (self ):
19
23
logging .debug ('启动直播流管理' )
20
24
# while True:
21
25
# for name, streamer in list(self.streamers.items()):
22
26
# state = streamer.getState()
23
27
24
28
def Add (self , name , channelId ):
25
- self .streamers [name ] = Streamer (name , channelId )
29
+ self .streamers [name ] = Streamer (name , channelId , self . discord )
26
30
print ('成功添加:[' + name + ']' + channelId )
27
31
return '成功添加:[' + name + ']' + channelId
28
32
@@ -57,11 +61,11 @@ async def autocheck(self):
57
61
state = await self .check ()
58
62
logging .debug (f'state:{ state } --self.state:{ self .state } ' )
59
63
if state != self .state :
60
- self .changeRebroadcast (state )
64
+ await self .changeRebroadcast (state )
61
65
self .state = state
62
66
await asyncio .sleep (15 )
63
67
64
- def changeRebroadcast (self , state ):
68
+ async def changeRebroadcast (self , state ):
65
69
logging .debug (f'改变转播状态:[{ self .name } ]{ state } ' )
66
70
if not state is None : # 正在直播中
67
71
if not self .rbcThread is None :
@@ -72,13 +76,14 @@ def changeRebroadcast(self, state):
72
76
self .queue .put ((self .name , state ))
73
77
self .rbcThread = Rebroadcast .RebroadcastThread (self .queue )
74
78
self .rbcThread .start ()
75
- self .sendMessage (f'{ self .name } 正在直播中:https://www.youtube.com/watch?v={ state } ' )
79
+ await self .sendMessage (
80
+ f'{ self .name } 正在直播中:https://www.youtube.com/watch?v={ state } \n 转播链接:https://live.acedroidx.top/?stream={ self .name } ' )
76
81
else : # 不在直播中
77
82
if not self .rbcThread is None :
78
83
self .queue .put ('stop' )
79
84
self .rbcThread = None
80
85
self .queue = None
81
- self .sendMessage (f'{ self .name } 直播已结束' )
86
+ await self .sendMessage (f'{ self .name } 直播已结束' )
82
87
83
88
async def check (self ):
84
89
logging .debug ('直播状态检测:' + self .name )
@@ -89,5 +94,8 @@ async def check(self):
89
94
def getState (self ):
90
95
return self .state
91
96
92
- def sendMessage (self ,msg ):
93
- self .discord .send_message (msg )
97
+ async def sendMessage (self , msg ):
98
+ if self .discord is None :
99
+ logging .warning ('Streamer.discord is None' )
100
+ return
101
+ await self .discord .send_message (msg )
0 commit comments