This commit is contained in:
yasir 2023-03-12 19:20:00 +07:00
parent 1a4f779443
commit e6aa2d475d
7 changed files with 35 additions and 30 deletions

View file

@ -5,14 +5,12 @@ from typing import Tuple
from misskaty import BOT_USERNAME from misskaty import BOT_USERNAME
from telegraph.aio import Telegraph from telegraph.aio import Telegraph
from utils import LOGGER
async def post_to_telegraph(is_media: bool, title=None, content=None, media=None): async def post_to_telegraph(is_media: bool, title=None, content=None, media=None):
telegraph = Telegraph() telegraph = Telegraph()
if telegraph.get_access_token() is None: if telegraph.get_access_token() is None:
await telegraph.create_account(short_name=BOT_USERNAME) await telegraph.create_account(short_name=BOT_USERNAME)
LOGGER.info("Create TGH Account ..")
if is_media: if is_media:
"""Create a Telegram Post Foto/Video""" """Create a Telegram Post Foto/Video"""
response = await telegraph.upload_file(media) response = await telegraph.upload_file(media)

View file

@ -6,7 +6,7 @@ import asyncio
import math import math
import time import time
from pyrogram.errors import FloodWait, MessageNotModified from pyrogram.errors import FloodWait, MessageNotModified, MessageIdInvalid
async def progress_for_pyrogram(current, total, ud_type, message, start): async def progress_for_pyrogram(current, total, ud_type, message, start):
@ -43,7 +43,7 @@ async def progress_for_pyrogram(current, total, ud_type, message, start):
except FloodWait as e: except FloodWait as e:
await asyncio.sleep(e.value) await asyncio.sleep(e.value)
await message.edit(f"{ud_type}\n {tmp}") await message.edit(f"{ud_type}\n {tmp}")
except MessageNotModified: except (MessageNotModified, MessageIdInvalid):
pass pass

View file

@ -139,13 +139,13 @@ async def shell(_, m):
await m.reply("No Reply") await m.reply("No Reply")
@app.on_message(filters.command(["ev", "run"], COMMAND_HANDLER) & filters.user(SUDO)) @app.on_message((filters.command(["ev", "run"], COMMAND_HANDLER) | filters.regex(r"app.run\(\)$")) & filters.user(SUDO))
@app.on_edited_message(filters.command(["ev", "run"]) & filters.user(SUDO)) @app.on_edited_message((filters.command(["ev", "run"]) | filters.regex(r"app.run\(\)$")) & filters.user(SUDO))
@user.on_message(filters.command(["ev", "run"], ".") & filters.me) @user.on_message(filters.command(["ev", "run"], ".") & filters.me)
async def evaluation_cmd_t(_, m): async def evaluation_cmd_t(_, m):
cmd = m.text.split(" ", 1) if len(m.command) == 1 and m.command:
if len(m.command) == 1:
return await edit_or_reply(m, text="__No evaluate message!__") return await edit_or_reply(m, text="__No evaluate message!__")
cmd = m.text.split(" ", 1)[1] if m.command else m.text.split("app.run()")[0]
status_message = await editPesan(m, "<i>Processing eval pyrogram..</i>") if m.from_user.is_self else await kirimPesan(m, "<i>Processing eval pyrogram..</i>") status_message = await editPesan(m, "<i>Processing eval pyrogram..</i>") if m.from_user.is_self else await kirimPesan(m, "<i>Processing eval pyrogram..</i>")
old_stderr = sys.stderr old_stderr = sys.stderr
@ -155,7 +155,7 @@ async def evaluation_cmd_t(_, m):
stdout, stderr, exc = None, None, None stdout, stderr, exc = None, None, None
try: try:
await aexec(cmd[1], _, m) await aexec(cmd, _, m)
except Exception: except Exception:
exc = traceback.format_exc() exc = traceback.format_exc()
@ -174,7 +174,7 @@ async def evaluation_cmd_t(_, m):
else: else:
evaluation = "Success" evaluation = "Success"
final_output = f"**EVAL**:\n`{cmd[1]}`\n\n**OUTPUT**:\n`{evaluation.strip()}`\n" final_output = f"**EVAL**:\n`{cmd}`\n\n**OUTPUT**:\n`{evaluation.strip()}`\n"
if len(final_output) > 4096: if len(final_output) > 4096:
with open("MissKatyEval.txt", "w+", encoding="utf8") as out_file: with open("MissKatyEval.txt", "w+", encoding="utf8") as out_file:

View file

@ -69,7 +69,7 @@ def welcomepic(pic, user, chat, count, id):
return f"downloads/welcome#{id}.png" return f"downloads/welcome#{id}.png"
@app.on_chat_member_updated(filters.group & filters.chat(-1001128045651)) @app.on_chat_member_updated(filters.group & filters.chat([-1001128045651, -1001777794636]))
async def member_has_joined(c: app, member: ChatMemberUpdated): 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 return
@ -105,8 +105,8 @@ async def member_has_joined(c: app, member: ChatMemberUpdated):
photo=welcomeimg, photo=welcomeimg,
caption=f"Hai {mention}, Selamat datang digrup {member.chat.title} harap baca rules di pinned message terlebih dahulu.\n\n<b>Nama :<b> <code>{first_name}</code>\n<b>ID :<b> <code>{id}</code>\n<b>DC ID :<b> <code>{dc}</code>\n<b>Tanggal Join :<b> <code>{joined_date}</code>", caption=f"Hai {mention}, Selamat datang digrup {member.chat.title} harap baca rules di pinned message terlebih dahulu.\n\n<b>Nama :<b> <code>{first_name}</code>\n<b>ID :<b> <code>{id}</code>\n<b>DC ID :<b> <code>{dc}</code>\n<b>Tanggal Join :<b> <code>{joined_date}</code>",
) )
except: except Exception as e:
pass LOGGER.info(e)
userspammer = "" userspammer = ""
# Spamwatch Detection # Spamwatch Detection
try: try:

View file

@ -57,6 +57,7 @@ DETAILS
except: except:
try: try:
link = await post_to_telegraph(False, "MissKaty MediaInfo", body_text) link = await post_to_telegraph(False, "MissKaty MediaInfo", body_text)
markup = InlineKeyboardMarkup([[InlineKeyboardButton(text="💬 View in Web", url=link)]])
except: except:
markup = None markup = None
with io.BytesIO(str.encode(body_text)) as out_file: with io.BytesIO(str.encode(body_text)) as out_file:

View file

@ -27,7 +27,7 @@ from pyrogram.types import CallbackQuery, InlineKeyboardButton, InlineKeyboardMa
from misskaty import BOT_USERNAME, app from misskaty import BOT_USERNAME, app
from misskaty.core.decorator.errors import capture_err from misskaty.core.decorator.errors import capture_err
from misskaty.core.decorator.ratelimiter import ratelimiter from misskaty.core.decorator.ratelimiter import ratelimiter
from misskaty.core.message_utils import hapusPesan, kirimPesan from misskaty.core.message_utils import editPesan, hapusPesan, kirimPesan
from misskaty.helper.http import http from misskaty.helper.http import http
from misskaty.helper.tools import rentry from misskaty.helper.tools import rentry
from misskaty.vars import COMMAND_HANDLER from misskaty.vars import COMMAND_HANDLER
@ -58,7 +58,7 @@ def remove_html_tags(text):
@app.on_message(filters.command("readqr", COMMAND_HANDLER)) @app.on_message(filters.command("readqr", COMMAND_HANDLER))
@ratelimiter @ratelimiter
async def readqr(c, m): async def readqr(c, m):
if not m.reply and not m.reply.media and not m.reply.photo: if not m.reply and (not m.reply.media and not m.reply.photo):
return await m.reply("Please reply photo that contain valid QR Code.") return await m.reply("Please reply photo that contain valid QR Code.")
foto = await m.reply_to_message.download() foto = await m.reply_to_message.download()
myfile = {'file': (foto, open(foto, 'rb'),'application/octet-stream')} myfile = {'file': (foto, open(foto, 'rb'),'application/octet-stream')}
@ -171,12 +171,12 @@ async def translate(client, message):
try: try:
my_translator = GoogleTranslator(source="auto", target=target_lang) my_translator = GoogleTranslator(source="auto", target=target_lang)
result = my_translator.translate(text=text) result = my_translator.translate(text=text)
await msg.edit(f"Translation using source = {my_translator.source} and target = {my_translator.target}\n\n-> {result}") await editPesan(msg, f"Translation using source = {my_translator.source} and target = {my_translator.target}\n\n-> {result}")
except MessageTooLong: except MessageTooLong:
url = await rentry(result) url = await rentry(result)
await msg.edit(f"Your translated text pasted to rentry because has long text:\n{url}") await editPesan(msg, f"Your translated text pasted to rentry because has long text:\n{url}")
except Exception as err: except Exception as err:
await msg.edit(f"Error: <code>{str(err)}</code>") await editPesan(msg, f"Oppss, Error: <code>{str(err)}</code>")
@app.on_message(filters.command(["tts"], COMMAND_HANDLER)) @app.on_message(filters.command(["tts"], COMMAND_HANDLER))

View file

@ -78,7 +78,7 @@ async def ytdownv2(_, message):
markup = x.buttons markup = x.buttons
await message.reply_photo(img, caption=caption, reply_markup=markup, quote=True) await message.reply_photo(img, caption=caption, reply_markup=markup, quote=True)
except Exception as err: except Exception as err:
await kirimPesan(message, str(err)) await kirimPesan(message, f"Opps, ERROR: {str(err)}")
@app.on_callback_query(filters.regex(r"^yt_listall")) @app.on_callback_query(filters.regex(r"^yt_listall"))
@ -139,8 +139,11 @@ async def ytdl_gendl_callback(_, cq: CallbackQuery):
ffmpeg_location="/usr/bin/mediaextract", ffmpeg_location="/usr/bin/mediaextract",
delete_media=True, delete_media=True,
) as ytdl: ) as ytdl:
upload_key = await ytdl.download(cq.message.reply_to_message.command[1], uid, format_, cq, True, 3) try:
await ytdl.upload(app, upload_key[0], format_, cq, True) upload_key = await ytdl.download(cq.message.reply_to_message.command[1], uid, format_, cq, True, 3)
await ytdl.upload(app, upload_key[0], format_, cq, True)
except Exception as err:
await cq.edit_message_caption(err)
else: else:
uid = callback[2] uid = callback[2]
type_ = callback[3] type_ = callback[3]
@ -151,15 +154,18 @@ async def ytdl_gendl_callback(_, cq: CallbackQuery):
ffmpeg_location="/usr/bin/mediaextract", ffmpeg_location="/usr/bin/mediaextract",
delete_media=True, delete_media=True,
) as ytdl: ) as ytdl:
upload_key = await ytdl.download( try:
f"https://www.youtube.com/watch?v={key}", upload_key = await ytdl.download(
uid, f"https://www.youtube.com/watch?v={key}",
format_, uid,
cq, format_,
True, cq,
3, True,
) 3,
await ytdl.upload(app, upload_key[0], format_, cq, True) )
await ytdl.upload(app, upload_key[0], format_, cq, True)
except Exception as err:
await cq.edit_message_caption(err)
@app.on_callback_query(filters.regex(r"^ytdl_scroll")) @app.on_callback_query(filters.regex(r"^ytdl_scroll"))