mirror of
https://github.com/yasirarism/MissKatyPyro.git
synced 2026-01-03 02:54:52 +00:00
fix
This commit is contained in:
parent
1ea03aa5b5
commit
a82c129a83
13 changed files with 150 additions and 43 deletions
|
|
@ -1,4 +1,4 @@
|
|||
from logging import basicConfig, FileHandler, StreamHandler, getLogger
|
||||
from logging import basicConfig, FileHandler, StreamHandler
|
||||
import time
|
||||
from pyrogram import Client
|
||||
from misskaty.vars import API_ID, API_HASH, BOT_TOKEN, USER_SESSION
|
||||
|
|
@ -12,7 +12,6 @@ basicConfig(
|
|||
MOD_LOAD = []
|
||||
MOD_NOLOAD = []
|
||||
HELPABLE = {}
|
||||
LOGGER = getLogger(__name__)
|
||||
botStartTime = time.time()
|
||||
|
||||
# Pyrogram Bot Client
|
||||
|
|
|
|||
|
|
@ -6,7 +6,8 @@
|
|||
* Copyright @YasirPedia All rights reserved
|
||||
"""
|
||||
import asyncio, importlib, re
|
||||
from misskaty import app, user, HELPABLE, LOGGER
|
||||
from logging import getLogger
|
||||
from misskaty import app, user, HELPABLE
|
||||
from misskaty.plugins import ALL_MODULES
|
||||
from misskaty.helper import paginate_modules
|
||||
from misskaty.helper.tools import bot_sys_stats
|
||||
|
|
@ -17,6 +18,7 @@ from pyrogram.raw.all import layer
|
|||
from pyrogram import idle, __version__, filters
|
||||
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
|
||||
|
||||
LOGGER = getLogger(__name__)
|
||||
loop = asyncio.get_event_loop()
|
||||
|
||||
# Run Bot
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import asyncio, re
|
||||
from logging import getLogger
|
||||
from misskaty import app
|
||||
from misskaty.helper.functions import (
|
||||
extract_user_and_reason,
|
||||
|
|
@ -21,6 +22,8 @@ from misskaty.core.keyboard import ikb
|
|||
from misskaty.vars import SUDO, COMMAND_HANDLER
|
||||
from database.warn_db import get_warn, remove_warns, add_warn
|
||||
|
||||
LOGGER = getLogger(__name__)
|
||||
|
||||
__MODULE__ = "Admin"
|
||||
__HELP__ = """
|
||||
/ban - Ban A User From A Group
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
# Code copy from https://github.com/AbirHasan2005/Forward-Client
|
||||
from misskaty import user, LOGGER
|
||||
from misskaty import user
|
||||
from logging import getLogger
|
||||
from pyrogram import filters
|
||||
from asyncio import sleep
|
||||
from pyrogram.types import Message
|
||||
|
|
@ -13,6 +14,8 @@ from misskaty.vars import (
|
|||
MINIMUM_FILE_SIZE,
|
||||
)
|
||||
|
||||
LOGGER = getLogger(__name__)
|
||||
|
||||
|
||||
async def FilterMessage(message: Message):
|
||||
if (message.forward_from or message.forward_from_chat) and (
|
||||
|
|
|
|||
|
|
@ -5,8 +5,9 @@ import os
|
|||
import aiohttp
|
||||
import json
|
||||
from misskaty.helper.http import http
|
||||
from logging import getLogger
|
||||
from bs4 import BeautifulSoup
|
||||
from misskaty import app, LOGGER
|
||||
from misskaty import app
|
||||
from pySmartDL import SmartDL
|
||||
from datetime import datetime
|
||||
from misskaty.core.decorator.errors import capture_err
|
||||
|
|
@ -18,6 +19,8 @@ from misskaty.helper.pyro_progress import (
|
|||
humanbytes,
|
||||
)
|
||||
|
||||
LOGGER = getLogger(__name__)
|
||||
|
||||
__MODULE__ = "Download/Upload"
|
||||
__HELP__ = """
|
||||
/download [url] - Download file from URL (Sudo Only)
|
||||
|
|
|
|||
|
|
@ -8,13 +8,16 @@
|
|||
import os, time, traceback
|
||||
from asyncio import sleep, gather
|
||||
from shutil import rmtree
|
||||
from logging import getLogger
|
||||
from pyrogram import filters, enums
|
||||
from pyrogram.errors import FloodWait
|
||||
from misskaty import app, LOGGER
|
||||
from misskaty import app
|
||||
from misskaty.helper.ffmpeg_helper import take_ss, genss_link
|
||||
from misskaty.vars import COMMAND_HANDLER
|
||||
from misskaty.helper.pyro_progress import progress_for_pyrogram
|
||||
|
||||
LOGGER = getLogger(__name__)
|
||||
|
||||
__MODULE__ = "MediaTool"
|
||||
__HELP__ = """"
|
||||
/genss [reply to video] - Generate Screenshot From Video.
|
||||
|
|
|
|||
|
|
@ -1,11 +1,17 @@
|
|||
from datetime import datetime, timedelta
|
||||
import time
|
||||
import os
|
||||
from logging import getLogger
|
||||
from misskaty.helper.http import http
|
||||
from pyrogram import enums, filters
|
||||
from pyrogram.types import ChatMemberUpdated, InlineKeyboardButton, InlineKeyboardMarkup
|
||||
from pyrogram.errors import ChatSendMediaForbidden, MessageTooLong, RPCError, SlowmodeWait
|
||||
from misskaty import app, LOGGER
|
||||
from pyrogram.errors import (
|
||||
ChatSendMediaForbidden,
|
||||
MessageTooLong,
|
||||
RPCError,
|
||||
SlowmodeWait,
|
||||
)
|
||||
from misskaty import app
|
||||
from misskaty.core.decorator.errors import capture_err, asyncify
|
||||
from PIL import Image, ImageChops, ImageDraw, ImageFont
|
||||
import textwrap
|
||||
|
|
@ -14,6 +20,8 @@ from utils import temp
|
|||
from pyrogram.errors import ChatAdminRequired
|
||||
from misskaty.vars import SUDO, LOG_CHANNEL, SUPPORT_CHAT, COMMAND_HANDLER
|
||||
|
||||
LOGGER = getLogger(__name__)
|
||||
|
||||
|
||||
def circle(pfp, size=(215, 215)):
|
||||
pfp = pfp.resize(size, Image.ANTIALIAS).convert("RGBA")
|
||||
|
|
@ -37,7 +45,9 @@ def draw_multiple_line_text(image, text, font, text_start_height):
|
|||
lines = textwrap.wrap(text, width=50)
|
||||
for line in lines:
|
||||
line_width, line_height = font.getsize(line)
|
||||
draw.text(((image_width - line_width) / 2, y_text), line, font=font, fill="black")
|
||||
draw.text(
|
||||
((image_width - line_width) / 2, y_text), line, font=font, fill="black"
|
||||
)
|
||||
y_text += line_height
|
||||
|
||||
|
||||
|
|
@ -47,20 +57,38 @@ def welcomepic(pic, user, chat, count, id):
|
|||
background = background.resize((1024, 500), Image.ANTIALIAS)
|
||||
pfp = Image.open(pic).convert("RGBA")
|
||||
pfp = circle(pfp)
|
||||
pfp = pfp.resize((265, 265)) # Resizes the Profilepicture so it fits perfectly in the circle
|
||||
font = ImageFont.truetype("Calistoga-Regular.ttf", 37) # <- Text Font of the Member Count. Change the text size for your preference
|
||||
pfp = pfp.resize(
|
||||
(265, 265)
|
||||
) # Resizes the Profilepicture so it fits perfectly in the circle
|
||||
font = ImageFont.truetype(
|
||||
"Calistoga-Regular.ttf", 37
|
||||
) # <- Text Font of the Member Count. Change the text size for your preference
|
||||
member_text = f"User#{count}, Selamat Datang {user}" # <- Text under the Profilepicture with the Membercount
|
||||
draw_multiple_line_text(background, member_text, font, 395)
|
||||
draw_multiple_line_text(background, chat, font, 47)
|
||||
ImageDraw.Draw(background).text((530, 460), "Generated by @MissKatyRoBot", font=ImageFont.truetype("Calistoga-Regular.ttf", 28), size=20, align="right")
|
||||
background.paste(pfp, (379, 123), pfp) # Pastes the Profilepicture on the Background Image
|
||||
background.save(f"downloads/welcome#{id}.png") # Saves the finished Image in the folder with the filename
|
||||
ImageDraw.Draw(background).text(
|
||||
(530, 460),
|
||||
"Generated by @MissKatyRoBot",
|
||||
font=ImageFont.truetype("Calistoga-Regular.ttf", 28),
|
||||
size=20,
|
||||
align="right",
|
||||
)
|
||||
background.paste(
|
||||
pfp, (379, 123), pfp
|
||||
) # Pastes the Profilepicture on the Background Image
|
||||
background.save(
|
||||
f"downloads/welcome#{id}.png"
|
||||
) # Saves the finished Image in the folder with the filename
|
||||
return f"downloads/welcome#{id}.png"
|
||||
|
||||
|
||||
@app.on_chat_member_updated(filters.group & filters.chat(-1001128045651))
|
||||
async def member_has_joined(c: app, member: ChatMemberUpdated):
|
||||
if not member.new_chat_member or member.new_chat_member.status in {"banned", "left", "restricted"} or member.old_chat_member:
|
||||
if (
|
||||
not member.new_chat_member
|
||||
or member.new_chat_member.status in {"banned", "left", "restricted"}
|
||||
or member.old_chat_member
|
||||
):
|
||||
return
|
||||
user = member.new_chat_member.user if member.new_chat_member else member.from_user
|
||||
if user.id in SUDO:
|
||||
|
|
@ -79,15 +107,21 @@ async def member_has_joined(c: app, member: ChatMemberUpdated):
|
|||
pass
|
||||
mention = f"<a href='tg://user?id={user.id}'>{user.first_name}</a>"
|
||||
joined_date = datetime.fromtimestamp(time.time()).strftime("%Y.%m.%d %H:%M:%S")
|
||||
first_name = f"{user.first_name} {user.last_name}" if user.last_name else user.first_name
|
||||
first_name = (
|
||||
f"{user.first_name} {user.last_name}" if user.last_name else user.first_name
|
||||
)
|
||||
id = user.id
|
||||
dc = user.dc_id or "Member tanpa PP"
|
||||
count = await app.get_chat_members_count(member.chat.id)
|
||||
try:
|
||||
pic = await app.download_media(user.photo.big_file_id, file_name=f"pp{user.id}.png")
|
||||
pic = await app.download_media(
|
||||
user.photo.big_file_id, file_name=f"pp{user.id}.png"
|
||||
)
|
||||
except AttributeError:
|
||||
pic = "img/profilepic.png"
|
||||
welcomeimg = await welcomepic(pic, user.first_name, member.chat.title, count, user.id)
|
||||
welcomeimg = await welcomepic(
|
||||
pic, user.first_name, member.chat.title, count, user.id
|
||||
)
|
||||
temp.MELCOW[f"welcome-{member.chat.id}"] = await c.send_photo(
|
||||
member.chat.id,
|
||||
photo=welcomeimg,
|
||||
|
|
@ -96,18 +130,30 @@ async def member_has_joined(c: app, member: ChatMemberUpdated):
|
|||
userspammer = ""
|
||||
# Spamwatch Detection
|
||||
try:
|
||||
headers = {"Authorization": "Bearer XvfzE4AUNXkzCy0DnIVpFDlxZi79lt6EnwKgBj8Quuzms0OSdHvf1k6zSeyzZ_lz"}
|
||||
apispamwatch = (await http.get(f"https://api.spamwat.ch/banlist/{user.id}", headers=headers)).json()
|
||||
headers = {
|
||||
"Authorization": "Bearer XvfzE4AUNXkzCy0DnIVpFDlxZi79lt6EnwKgBj8Quuzms0OSdHvf1k6zSeyzZ_lz"
|
||||
}
|
||||
apispamwatch = (
|
||||
await http.get(
|
||||
f"https://api.spamwat.ch/banlist/{user.id}", headers=headers
|
||||
)
|
||||
).json()
|
||||
if not apispamwatch.get("error"):
|
||||
await app.ban_chat_member(member.chat.id, user.id, datetime.now() + timedelta(seconds=30))
|
||||
await app.ban_chat_member(
|
||||
member.chat.id, user.id, datetime.now() + timedelta(seconds=30)
|
||||
)
|
||||
userspammer += f"<b>#SpamWatch Federation Ban</b>\nUser {mention} [<code>{user.id}</code>] has been kicked because <code>{apispamwatch.get('reason')}</code>.\n"
|
||||
except Exception as err:
|
||||
LOGGER.error(f"ERROR in Spamwatch Detection. {err}")
|
||||
# Combot API Detection
|
||||
try:
|
||||
apicombot = (await http.get(f"https://api.cas.chat/check?user_id={user.id}")).json()
|
||||
apicombot = (
|
||||
await http.get(f"https://api.cas.chat/check?user_id={user.id}")
|
||||
).json()
|
||||
if apicombot.get("ok") == "true":
|
||||
await app.ban_chat_member(member.chat.id, user.id, datetime.now() + timedelta(seconds=30))
|
||||
await app.ban_chat_member(
|
||||
member.chat.id, user.id, datetime.now() + timedelta(seconds=30)
|
||||
)
|
||||
userspammer += f"<b>#CAS Federation Ban</b>\nUser {mention} [<code>{user.id}</code>] detected as spambot and has been kicked. Powered by <a href='https://api.cas.chat/check?user_id={user.id}'>Combot AntiSpam.</a>"
|
||||
except Exception as err:
|
||||
LOGGER.error(f"ERROR in Combot API Detection. {err}")
|
||||
|
|
@ -135,7 +181,9 @@ async def save_group(bot, message):
|
|||
await db.add_chat(message.chat.id, message.chat.title)
|
||||
if message.chat.id in temp.BANNED_CHATS:
|
||||
# Inspired from a boat of a banana tree
|
||||
buttons = [[InlineKeyboardButton("Support", url=f"https://t.me/{SUPPORT_CHAT}")]]
|
||||
buttons = [
|
||||
[InlineKeyboardButton("Support", url=f"https://t.me/{SUPPORT_CHAT}")]
|
||||
]
|
||||
reply_markup = InlineKeyboardMarkup(buttons)
|
||||
k = await message.reply(
|
||||
text="<b>CHAT NOT ALLOWED 🐞\n\nMy admins has restricted me from working here ! If you want to know more about it contact support..</b>",
|
||||
|
|
@ -148,17 +196,31 @@ async def save_group(bot, message):
|
|||
pass
|
||||
await bot.leave_chat(message.chat.id)
|
||||
return
|
||||
buttons = [[InlineKeyboardButton("ℹ️ Help", url=f"https://t.me/{temp.U_NAME}?start=help"), InlineKeyboardButton("📢 Updates", url="https://t.me/YasirPediaChannel")]]
|
||||
buttons = [
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
"ℹ️ Help", url=f"https://t.me/{temp.U_NAME}?start=help"
|
||||
),
|
||||
InlineKeyboardButton("📢 Updates", url="https://t.me/YasirPediaChannel"),
|
||||
]
|
||||
]
|
||||
reply_markup = InlineKeyboardMarkup(buttons)
|
||||
await message.reply_text(text=f"<b>Terimakasih sudah menambahkan saya di {message.chat.title} ❣️\n\nJika ada kendala atau saran bisa kontak ke saya.</b>", reply_markup=reply_markup)
|
||||
await message.reply_text(
|
||||
text=f"<b>Terimakasih sudah menambahkan saya di {message.chat.title} ❣️\n\nJika ada kendala atau saran bisa kontak ke saya.</b>",
|
||||
reply_markup=reply_markup,
|
||||
)
|
||||
else:
|
||||
for u in message.new_chat_members:
|
||||
count = await app.get_chat_members_count(message.chat.id)
|
||||
try:
|
||||
pic = await app.download_media(u.photo.big_file_id, file_name=f"pp{u.id}.png")
|
||||
pic = await app.download_media(
|
||||
u.photo.big_file_id, file_name=f"pp{u.id}.png"
|
||||
)
|
||||
except AttributeError:
|
||||
pic = "img/profilepic.png"
|
||||
welcomeimg = await welcomepic(pic, u.first_name, message.chat.title, count, u.id)
|
||||
welcomeimg = await welcomepic(
|
||||
pic, u.first_name, message.chat.title, count, u.id
|
||||
)
|
||||
if (temp.MELCOW).get(f"welcome-{message.chat.id}") is not None:
|
||||
try:
|
||||
await (temp.MELCOW[f"welcome-{message.chat.id}"]).delete()
|
||||
|
|
@ -189,7 +251,9 @@ async def leave_a_chat(bot, message):
|
|||
except:
|
||||
chat = chat
|
||||
try:
|
||||
buttons = [[InlineKeyboardButton("Support", url=f"https://t.me/{SUPPORT_CHAT}")]]
|
||||
buttons = [
|
||||
[InlineKeyboardButton("Support", url=f"https://t.me/{SUPPORT_CHAT}")]
|
||||
]
|
||||
reply_markup = InlineKeyboardMarkup(buttons)
|
||||
await bot.send_message(
|
||||
chat_id=chat,
|
||||
|
|
@ -221,14 +285,22 @@ async def disable_chat(bot, message):
|
|||
if not cha_t:
|
||||
return await message.reply("Chat Not Found In DB")
|
||||
if cha_t["is_disabled"]:
|
||||
return await message.reply(f"This chat is already disabled:\nReason-<code> {cha_t['reason']} </code>")
|
||||
return await message.reply(
|
||||
f"This chat is already disabled:\nReason-<code> {cha_t['reason']} </code>"
|
||||
)
|
||||
await db.disable_chat(chat_, reason)
|
||||
temp.BANNED_CHATS.append(chat_)
|
||||
await message.reply("Chat Succesfully Disabled")
|
||||
try:
|
||||
buttons = [[InlineKeyboardButton("Support", url=f"https://t.me/{SUPPORT_CHAT}")]]
|
||||
buttons = [
|
||||
[InlineKeyboardButton("Support", url=f"https://t.me/{SUPPORT_CHAT}")]
|
||||
]
|
||||
reply_markup = InlineKeyboardMarkup(buttons)
|
||||
await bot.send_message(chat_id=chat_, text=f"<b>Hello Friends, \nMy admin has told me to leave from group so i go! If you wanna add me again contact my support group.</b> \nReason : <code>{reason}</code>", reply_markup=reply_markup)
|
||||
await bot.send_message(
|
||||
chat_id=chat_,
|
||||
text=f"<b>Hello Friends, \nMy admin has told me to leave from group so i go! If you wanna add me again contact my support group.</b> \nReason : <code>{reason}</code>",
|
||||
reply_markup=reply_markup,
|
||||
)
|
||||
await bot.leave_chat(chat_)
|
||||
except Exception as e:
|
||||
await message.reply(f"Error - {e}")
|
||||
|
|
@ -267,24 +339,32 @@ async def gen_invite(bot, message):
|
|||
try:
|
||||
link = await bot.create_chat_invite_link(chat)
|
||||
except ChatAdminRequired:
|
||||
return await message.reply("Invite Link Generation Failed, Iam Not Having Sufficient Rights")
|
||||
return await message.reply(
|
||||
"Invite Link Generation Failed, Iam Not Having Sufficient Rights"
|
||||
)
|
||||
except Exception as e:
|
||||
return await message.reply(f"Error {e}")
|
||||
await message.reply(f"Here is your Invite Link {link.invite_link}")
|
||||
|
||||
|
||||
@app.on_message(filters.command(["adminlist", "adminlist@MissKatyRoBot"], COMMAND_HANDLER))
|
||||
@app.on_message(
|
||||
filters.command(["adminlist", "adminlist@MissKatyRoBot"], COMMAND_HANDLER)
|
||||
)
|
||||
@capture_err
|
||||
async def adminlist(_, message):
|
||||
if message.chat.type == enums.ChatType.PRIVATE:
|
||||
return await message.reply("Perintah ini hanya untuk grup")
|
||||
try:
|
||||
administrators = []
|
||||
async for m in app.get_chat_members(message.chat.id, filter=enums.ChatMembersFilter.ADMINISTRATORS):
|
||||
async for m in app.get_chat_members(
|
||||
message.chat.id, filter=enums.ChatMembersFilter.ADMINISTRATORS
|
||||
):
|
||||
administrators.append(f"{m.user.first_name}")
|
||||
|
||||
res = "".join(f"~ {i}\n" for i in administrators)
|
||||
return await message.reply(f"Daftar Admin di <b>{message.chat.title}</b> ({message.chat.id}):\n~ {res}")
|
||||
return await message.reply(
|
||||
f"Daftar Admin di <b>{message.chat.title}</b> ({message.chat.id}):\n~ {res}"
|
||||
)
|
||||
except Exception as e:
|
||||
await message.reply(f"ERROR: {str(e)}")
|
||||
|
||||
|
|
@ -302,7 +382,9 @@ async def kickme(_, message):
|
|||
await message.reply_text(txt)
|
||||
await message.unban_member(message.from_user.id)
|
||||
except RPCError as ef:
|
||||
await message.reply_text(f"Sepertinya ada error, silahkan report ke owner saya. \nERROR: {str(ef)}")
|
||||
await message.reply_text(
|
||||
f"Sepertinya ada error, silahkan report ke owner saya. \nERROR: {str(ef)}"
|
||||
)
|
||||
return
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -18,12 +18,15 @@ from misskaty.vars import COMMAND_HANDLER
|
|||
from utils import extract_user, get_file_id, demoji
|
||||
import time
|
||||
from datetime import datetime
|
||||
from logging import getLogger
|
||||
from pykeyboard import InlineKeyboard
|
||||
from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton, CallbackQuery
|
||||
from misskaty.core.decorator.errors import capture_err
|
||||
from misskaty.helper.tools import rentry, GENRES_EMOJI
|
||||
from misskaty.helper.http import http
|
||||
from misskaty import app, LOGGER
|
||||
from misskaty import app
|
||||
|
||||
LOGGER = getLogger(__name__)
|
||||
|
||||
__MODULE__ = "Misc"
|
||||
__HELP__ = """
|
||||
|
|
|
|||
|
|
@ -5,7 +5,8 @@
|
|||
* @projectName MissKatyPyro
|
||||
* Copyright @YasirPedia All rights reserved
|
||||
"""
|
||||
from misskaty import app, LOGGER
|
||||
from misskaty import app
|
||||
from logging import getLogger
|
||||
from pyrogram import filters
|
||||
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
|
||||
from misskaty.vars import COMMAND_HANDLER
|
||||
|
|
@ -17,6 +18,8 @@ from re import split as ngesplit, I
|
|||
from urllib.parse import unquote
|
||||
from misskaty.helper.tools import get_random_string
|
||||
|
||||
LOGGER = getLogger(__name__)
|
||||
|
||||
ARCH_EXT = [".mkv", ".avi", ".mp4", ".mov"]
|
||||
|
||||
__MODULE__ = "MediaExtract"
|
||||
|
|
|
|||
|
|
@ -2,11 +2,14 @@ from asyncio import gather
|
|||
from base64 import b64decode
|
||||
from io import BytesIO
|
||||
from pyrogram import filters
|
||||
from misskaty import app, LOGGER
|
||||
from logging import getLogger
|
||||
from misskaty import app
|
||||
from misskaty.vars import COMMAND_HANDLER
|
||||
from misskaty.core.decorator.errors import capture_err
|
||||
from misskaty.helper.http import post
|
||||
|
||||
LOGGER = getLogger(__name__)
|
||||
|
||||
__MODULE__ = "WebSS"
|
||||
__HELP__ = """
|
||||
/webss [URL] [FULL_SIZE?, use (y|yes|true) to get full size image. (optional)] - Take A Screenshot Of A Webpage.
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
import os, json, shutil, asyncio, time
|
||||
from misskaty import app, LOGGER
|
||||
from misskaty import app
|
||||
from PIL import Image
|
||||
from pyrogram import filters
|
||||
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
|
||||
from misskaty.vars import COMMAND_HANDLER
|
||||
from datetime import datetime
|
||||
from logging import getLogger
|
||||
from hachoir.metadata import extractMetadata
|
||||
from hachoir.parser import createParser
|
||||
from misskaty.helper.ytdl_helper import random_char, DownLoadFile
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
from misskaty import LOGGER
|
||||
from logging import getLogger
|
||||
from os import environ
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv("config.env", override=True)
|
||||
LOGGER = getLogger(__name__)
|
||||
|
||||
|
||||
def getConfig(name: str):
|
||||
|
|
|
|||
3
utils.py
3
utils.py
|
|
@ -5,13 +5,14 @@ from pyrogram.errors import (
|
|||
UserIsBlocked,
|
||||
)
|
||||
import asyncio
|
||||
from misskaty import LOGGER
|
||||
from logging import getLogger
|
||||
from pyrogram.types import Message
|
||||
from typing import Union
|
||||
import os
|
||||
import emoji
|
||||
from database.users_chats_db import db
|
||||
|
||||
LOGGER = getLogger(__name__)
|
||||
BANNED = {}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue