added auto leave from vc after finished streaming video
This commit is contained in:
levina 2021-09-13 05:35:49 +07:00 committed by GitHub
parent 306d697070
commit 22b076260f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,6 +4,7 @@ import subprocess
from pytgcalls import idle from pytgcalls import idle
from pytgcalls import PyTgCalls from pytgcalls import PyTgCalls
from pytgcalls import StreamType from pytgcalls import StreamType
from pytgcalls.types import Update
from pytgcalls.types.input_stream import AudioParameters from pytgcalls.types.input_stream import AudioParameters
from pytgcalls.types.input_stream import InputAudioStream from pytgcalls.types.input_stream import InputAudioStream
from pytgcalls.types.input_stream import InputVideoStream from pytgcalls.types.input_stream import InputVideoStream
@ -32,6 +33,20 @@ def raw_converter(dl, song, video):
cwd=None, cwd=None,
) )
async def leave_call(chat_id: int):
process = FFMPEG_PROCESSES.get(chat_id)
if process:
try:
process.send_signal(SIGINT)
await asyncio.sleep(3)
except Exception as e:
print(e)
pass
try:
await call_py.leave_group_call(chat_id)
except Exception as e:
print(f"🚫 error - {e}")
def youtube(url: str): def youtube(url: str):
try: try:
params = {"format": "best[height=?480]/best", "noplaylist": True} params = {"format": "best[height=?480]/best", "noplaylist": True}
@ -151,7 +166,13 @@ async def stopvideo(client, m: Message):
await asyncio.sleep(3) await asyncio.sleep(3)
except Exception as e: except Exception as e:
print(e) print(e)
pass
await call_py.leave_group_call(chat_id) await call_py.leave_group_call(chat_id)
await m.reply("✅ **successfully left vc !**") await m.reply("✅ **successfully left vc !**")
except Exception as e: except Exception as e:
await m.reply(f"🚫 **error** | `{e}`") await m.reply(f"🚫 **error** | `{e}`")
@call_py.on_stream_end()
async def handler(client: PyTgCalls, update: Update):
chat_id = update.chat.id
await leave_call(chat_id)