musicbot

 avatar
unknown
python
2 years ago
3.6 kB
10
Indexable
def prestartPlayer(channel,playid,userid):
	global playing
	try:
		startPlayer(channel,playid,userid)
	except:
		PrintException()
	s = Save()
	print("REMOVIENDO LO QUE ESTA EN REPRODUCCION DE",channel.chatid)
	try:
		s.removeReproduciendo(channel.chatid)
		ram = psutil.virtual_memory().available/1048576
		cpu = psutil.cpu_percent()

		if(ram < 200):
			try:
				s.updateInfo(instanceid,ram,2,cpu)
			except:
				pass
			activado = False
		else:
			activado = True
			s.updateInfo(instanceid,ram,1,cpu)
	except:
		PrintException()
	s.close()
	checkQueue(channel.chatid)
	playing -= 1
	try:
		playLock.release()
	except Exception as e:
		pass
		# print(e)
def startPlayer(channel,playid,userid):
		token = channel.token
		name = channel.name
		uid = channel.uid
		volume = channel.volume
		t = channel.type
			
		if(not playid.startswith('https://www3.animeflv.net/ver/') and playid.startswith('http') ):
			streams = [playid]
			killChat(channel.chatid)
			if(platform == 'win32'):
				args = [simplePlayer,name,token,str(uid),str(volume),str(t) ] + streams
			else:
				args = [simplePlayer,name,token,str(uid),str(volume),str(t) ] + streams
			proc = subprocess.Popen(args,stdout=subprocess.PIPE)
			data = proc.communicate()[0]
		else:
			if(playid.startswith('https://www3.animeflv.net/ver/')):
				filename = getanime(playid[25:])
				streams = [filename]
			else:
				streams = getStreams(playid,t)
				filename = streams[0]
			killChat(channel.chatid)
			if(platform == 'win32'):
				args = [playerFile,name,token,str(uid),str(volume),playid,userid,str(t) ] + streams
			else:
				args = [playerFile,name,token,str(uid),str(volume),playid,userid,str(t) ] + streams
			print('iniciando player',args)
			waitState[channel.name] = threading.Event()
			proc = subprocess.Popen(args,stdout=subprocess.PIPE)
			waitState[channel.name].wait()
			t = threading.Thread(target=waitClose,args=(proc,))
			t.daemon = True
			t.start()
			print('player iniciado')
			print('name',channel.name)
			conn = stateCon[channel.name]
			try:
				data = conn.recv(1024)
			except Exception as e:
				PrintException()
				os.remove(filename)
				return
			js = json.loads(data.decode('utf-8'))
			state = js['state']
			if(state=='success'):
				js['comando'] = 'playing'
				js['chatid'] = channel.chatid
				print('sending playing command')
				r = json.dumps(js)
				print(r)
				sendToBot(r.encode('utf-8'))
			else:
				os.remove(filename)
				return
			try:
				print('ESPERANDO POR EL MENSAJE FINAL')
				state = json.loads(conn.recv(1024).decode('utf-8'))['state']
				print('LLEGO EL MENSAJE FINAL',state)
			except Exception as e:
				print('NO LLEGO EL MENSAJE FINAL')
				print(e)
				state = 'ended'
			if(state == 'ended'):
				os.remove(filename)
				return
			killChat(channel.chatid)
def play_audio(channel,playid):
	global activado
	token = channel.token
	name = channel.name
	uid = channel.uid
	volume = channel.volume
	t = channel.type
	streams = [playid]
	killChat(channel.chatid)
	
	args = [simplePlayer,name,token,str(uid),str(volume),"1" ] + streams
	print(args)
	proc = subprocess.Popen(args,stdout=subprocess.PIPE)
	data = proc.communicate()[0]
	killChat(channel.chatid)
	s = Save()
	print("REMOVIENDO LO QUE ESTA EN REPRODUCCION DE",channel.chatid)
	try:
		s.removeReproduciendo(channel.chatid)
		ram = psutil.virtual_memory().available/1048576
		cpu = psutil.cpu_percent()

		if(ram < 200):
			try:
				s.updateInfo(instanceid,ram,2,cpu)
			except:
				pass
			activado = False
		else:
			activado = True
			s.updateInfo(instanceid,ram,1,cpu)
	except:
		PrintException()
	s.close()
	checkQueue(channel.chatid)
Editor is loading...