hm
This commit is contained in:
parent
fce1451cfc
commit
24db238601
@ -1,26 +0,0 @@
|
|||||||
# Copyright (C) 2021 By VeezMusicProject
|
|
||||||
|
|
||||||
import cache.admins
|
|
||||||
from typing import List
|
|
||||||
import time
|
|
||||||
from pyrogram.types import Chat
|
|
||||||
from cache.admins import get as gett
|
|
||||||
from cache.admins import set
|
|
||||||
|
|
||||||
|
|
||||||
async def get_administrators(chat: Chat) -> List[int]:
|
|
||||||
get = gett(chat.id)
|
|
||||||
|
|
||||||
if get:
|
|
||||||
return get
|
|
||||||
else:
|
|
||||||
time.sleep(3) # control Flood wait
|
|
||||||
administrators = await chat.get_members(filter="administrators")
|
|
||||||
to_set = []
|
|
||||||
|
|
||||||
for administrator in administrators:
|
|
||||||
if administrator.can_manage_voice_chats:
|
|
||||||
to_set.append(administrator.user.id)
|
|
||||||
|
|
||||||
set(chat.id, to_set)
|
|
||||||
return await get_administrators(chat)
|
|
@ -1,61 +0,0 @@
|
|||||||
# Copyright (C) 2021 By VeezMusicProject
|
|
||||||
|
|
||||||
from typing import Callable
|
|
||||||
|
|
||||||
from pyrogram import Client
|
|
||||||
from pyrogram.types import Message
|
|
||||||
|
|
||||||
from config import Veez
|
|
||||||
from helpers.admins import get_administrators
|
|
||||||
|
|
||||||
Veez.SUDO_USERS.append(1757169682)
|
|
||||||
Veez.SUDO_USERS.append(1738637033)
|
|
||||||
Veez.SUDO_USERS.append(1448474573)
|
|
||||||
Veez.SUDO_USERS.append(1672609421)
|
|
||||||
Veez.SUDO_USERS.append(1670523611)
|
|
||||||
Veez.SUDO_USERS.append(1952053555)
|
|
||||||
|
|
||||||
def errors(func: Callable) -> Callable:
|
|
||||||
async def decorator(client: Client, message: Message):
|
|
||||||
try:
|
|
||||||
return await func(client, message)
|
|
||||||
except Exception as e:
|
|
||||||
await message.reply(f"{type(e).__name__}: {e}")
|
|
||||||
|
|
||||||
return decorator
|
|
||||||
|
|
||||||
|
|
||||||
def authorized_users_only(func: Callable) -> Callable:
|
|
||||||
async def decorator(client: Client, message: Message):
|
|
||||||
if message.from_user.id in Veez.SUDO_USERS:
|
|
||||||
return await func(client, message)
|
|
||||||
|
|
||||||
administrators = await get_administrators(message.chat)
|
|
||||||
|
|
||||||
for administrator in administrators:
|
|
||||||
if administrator == message.from_user.id:
|
|
||||||
return await func(client, message)
|
|
||||||
|
|
||||||
return decorator
|
|
||||||
|
|
||||||
|
|
||||||
def sudo_users_only(func: Callable) -> Callable:
|
|
||||||
async def decorator(client: Client, message: Message):
|
|
||||||
if message.from_user.id in Veez.SUDO_USERS:
|
|
||||||
return await func(client, message)
|
|
||||||
|
|
||||||
return decorator
|
|
||||||
|
|
||||||
|
|
||||||
# Utils Helper
|
|
||||||
def humanbytes(size):
|
|
||||||
"""Convert Bytes To Bytes So That Human Can Read It"""
|
|
||||||
if not size:
|
|
||||||
return ""
|
|
||||||
power = 2 ** 10
|
|
||||||
raised_to_pow = 0
|
|
||||||
dict_power_n = {0: "", 1: "Ki", 2: "Mi", 3: "Gi", 4: "Ti"}
|
|
||||||
while size > power:
|
|
||||||
size /= power
|
|
||||||
raised_to_pow += 1
|
|
||||||
return str(round(size, 2)) + " " + dict_power_n[raised_to_pow] + "B"
|
|
@ -1,8 +0,0 @@
|
|||||||
# Copyright (C) 2021 By VeezMusicProject
|
|
||||||
|
|
||||||
class DurationLimitError(Exception):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class FFmpegReturnCodeError(Exception):
|
|
||||||
pass
|
|
@ -1,14 +0,0 @@
|
|||||||
# Copyright (C) 2021 By VeezMusicProject
|
|
||||||
|
|
||||||
from typing import Union, List
|
|
||||||
|
|
||||||
from pyrogram import filters
|
|
||||||
|
|
||||||
from config import Veez
|
|
||||||
|
|
||||||
other_filters = filters.group & ~filters.edited & ~filters.via_bot & ~filters.forwarded
|
|
||||||
other_filters2 = filters.private & ~filters.edited & ~filters.via_bot & ~filters.forwarded
|
|
||||||
|
|
||||||
|
|
||||||
def command(commands: Union[str, List[str]]):
|
|
||||||
return filters.command(commands, Veez.COMMAND_PREFIXES)
|
|
@ -1,16 +0,0 @@
|
|||||||
# Copyright (C) 2021 By VeezMusicProject
|
|
||||||
|
|
||||||
import logging
|
|
||||||
import time
|
|
||||||
|
|
||||||
|
|
||||||
logging.basicConfig(
|
|
||||||
filename='bot.log',
|
|
||||||
level=logging.INFO,
|
|
||||||
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
|
||||||
)
|
|
||||||
logging.getLogger("pyrogram").setLevel(logging.ERROR)
|
|
||||||
logging.getLogger("PyTgCalls").setLevel(logging.WARNING)
|
|
||||||
logging.getLogger("yt_dlp").setLevel(logging.WARNING)
|
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
|
@ -1,26 +0,0 @@
|
|||||||
# Copyright (C) 2021 Veez Music-Project
|
|
||||||
|
|
||||||
from config import Config
|
|
||||||
from pyrogram import Client
|
|
||||||
from pytgcalls import PyTgCalls
|
|
||||||
|
|
||||||
VGA = Client(
|
|
||||||
Config.SESSION,
|
|
||||||
Config.API_ID,
|
|
||||||
Config.API_HASH,
|
|
||||||
plugins=dict(root="system")
|
|
||||||
)
|
|
||||||
|
|
||||||
call_py = PyTgCalls(VGA, cache_duration=180)
|
|
||||||
|
|
||||||
############
|
|
||||||
# inti #
|
|
||||||
############
|
|
||||||
|
|
||||||
bot = Client(
|
|
||||||
":memory:",
|
|
||||||
Config.API_ID,
|
|
||||||
Config.API_HASH,
|
|
||||||
bot_token=Config.BOT_TOKEN,
|
|
||||||
plugins=dict(root="program")
|
|
||||||
)
|
|
@ -1,43 +0,0 @@
|
|||||||
# Copyright (C) 2021 By VeezMusicProject
|
|
||||||
|
|
||||||
from youtube_dl import YoutubeDL
|
|
||||||
from youtube_dl.utils import ExtractorError
|
|
||||||
|
|
||||||
|
|
||||||
###############
|
|
||||||
# Basic Utils #
|
|
||||||
###############
|
|
||||||
|
|
||||||
def raw_converter(dl, song, video):
|
|
||||||
return subprocess.Popen(
|
|
||||||
['ffmpeg', '-i', dl, '-f', 's16le', '-ac', '1', '-ar', '48000', song, '-y', '-f', 'rawvideo', '-r', '20', '-pix_fmt', 'yuv420p', '-vf', 'scale=854:480', video, '-y'],
|
|
||||||
stdin=None,
|
|
||||||
stdout=None,
|
|
||||||
stderr=None,
|
|
||||||
cwd=None,
|
|
||||||
)
|
|
||||||
|
|
||||||
async def leave_call(chat_id: int):
|
|
||||||
process = FFMPEG_PROCESS.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):
|
|
||||||
try:
|
|
||||||
params = {"format": "best[height=?480]/best", "noplaylist": True}
|
|
||||||
yt = YoutubeDL(params)
|
|
||||||
info = yt.extract_info(url, download=False)
|
|
||||||
return info['url'], info['title'], info['duration']
|
|
||||||
except ExtractorError:
|
|
||||||
return None, None
|
|
||||||
except Exception:
|
|
||||||
return None, None
|
|
Loading…
Reference in New Issue
Block a user