mirror of
https://github.com/yasirarism/MissKatyPyro.git
synced 2026-01-02 18:44:51 +00:00
One task per user
This commit is contained in:
parent
10a76f2049
commit
096bcb6931
4 changed files with 27 additions and 18 deletions
|
|
@ -15,6 +15,7 @@ getLogger("pyrogram").setLevel(ERROR)
|
|||
MOD_LOAD = []
|
||||
MOD_NOLOAD = []
|
||||
HELPABLE = {}
|
||||
DL_TASK = {}
|
||||
cleanmode = {}
|
||||
botStartTime = time.time()
|
||||
|
||||
|
|
|
|||
|
|
@ -8,14 +8,14 @@
|
|||
import os
|
||||
import time
|
||||
import traceback
|
||||
from asyncio import gather, sleep
|
||||
from asyncio import gather, sleep, Lock
|
||||
from logging import getLogger
|
||||
from shutil import rmtree
|
||||
|
||||
from pyrogram import enums, filters
|
||||
from pyrogram.errors import FloodWait
|
||||
|
||||
from misskaty import BOT_USERNAME, app
|
||||
from misskaty import BOT_USERNAME, DL_TASK, app
|
||||
from misskaty.core.decorator.errors import capture_err
|
||||
from misskaty.helper.ffmpeg_helper import genss_link, take_ss
|
||||
from misskaty.helper.pyro_progress import progress_for_pyrogram
|
||||
|
|
@ -41,9 +41,13 @@ async def genss(client, message):
|
|||
if media is None:
|
||||
return await message.reply("Reply to a Telegram Video or document as video to generate screenshoot!")
|
||||
process = await message.reply_text("`Processing, please wait..`")
|
||||
if not DL_TASK.get(message.from_user.id):
|
||||
DL_TASK[message.from_user.id] = Lock()
|
||||
|
||||
if DL_TASK[message.from_user.id].locked():
|
||||
return await process.edit("Sorry to avoid flood and error, bot only process one task at a time.")
|
||||
c_time = time.time()
|
||||
the_real_download_location = await client.download_media(
|
||||
message=message.reply_to_message,
|
||||
the_real_download_location = await replied.download(
|
||||
progress=progress_for_pyrogram,
|
||||
progress_args=("Trying to download, please wait..", process, c_time),
|
||||
)
|
||||
|
|
@ -82,6 +86,7 @@ async def genss(client, message):
|
|||
f"☑️ Uploaded [1] screenshoot.\n\n{message.from_user.first_name} (<code>{message.from_user.id}</code>)\n#️⃣ #ssgen #id{message.from_user.id}\n\nSS Generate by @{BOT_USERNAME}",
|
||||
reply_to_message_id=message.id,
|
||||
)
|
||||
del DL_TASK[message.from_user.id]
|
||||
await process.delete()
|
||||
try:
|
||||
os.remove(images)
|
||||
|
|
@ -91,6 +96,7 @@ async def genss(client, message):
|
|||
except Exception:
|
||||
exc = traceback.format_exc()
|
||||
await message.reply(f"Gagal generate screenshot.\n\n{exc}")
|
||||
del DL_TASK[message.from_user.id]
|
||||
try:
|
||||
os.remove(images)
|
||||
os.remove(the_real_download_location)
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ from pyrogram import filters
|
|||
from pyrogram.errors import FloodWait
|
||||
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
|
||||
|
||||
from misskaty import app
|
||||
from misskaty import app, DL_TASK
|
||||
from misskaty.helper.media_helper import post_to_telegraph, runcmd
|
||||
from misskaty.helper.pyro_progress import progress_for_pyrogram
|
||||
from misskaty.vars import COMMAND_HANDLER
|
||||
|
|
@ -28,17 +28,18 @@ async def mediainfo(client, message):
|
|||
process = await message.reply_text("`Sedang memproses, lama waktu tergantung ukuran file kamu...`", quote=True)
|
||||
file_info = get_file_id(message.reply_to_message)
|
||||
if file_info is None:
|
||||
await process.edit_text("Balas ke format media yang valid")
|
||||
return
|
||||
return await process.edit_text("Balas ke format media yang valid")
|
||||
if not DL_TASK.get(message.from_user.id):
|
||||
DL_TASK[message.from_user.id] = asyncio.Lock()
|
||||
|
||||
if DL_TASK[message.from_user.id].locked():
|
||||
return await process.edit("Sorry to avoid flood and error, bot only process one task at a time.")
|
||||
|
||||
c_time = time.time()
|
||||
try:
|
||||
file_path = await client.download_media(
|
||||
message=message.reply_to_message,
|
||||
progress=progress_for_pyrogram,
|
||||
progress_args=("trying to download, sabar yakk..", process, c_time),
|
||||
)
|
||||
except Exception as err:
|
||||
return await message.reply(f"Failed to download media. Err detail -> {err}")
|
||||
file_path = await message.reply_to_message.download(
|
||||
progress=progress_for_pyrogram,
|
||||
progress_args=("trying to download, sabar yakk..", process, c_time),
|
||||
)
|
||||
output_ = await runcmd(f'mediainfo "{file_path}"')
|
||||
out = output_[0] if len(output_) != 0 else None
|
||||
body_text = f"""
|
||||
|
|
@ -54,9 +55,10 @@ async def mediainfo(client, message):
|
|||
link = post_to_telegraph(title, body_text)
|
||||
markup = InlineKeyboardMarkup([[InlineKeyboardButton(text=text_, url=link)]])
|
||||
try:
|
||||
await message.reply("ℹ️ **MEDIA INFO**", reply_markup=markup, quote=True)
|
||||
await message.reply("ℹ️ <b>MEDIA INFO</b>", reply_markup=markup, quote=True)
|
||||
except FloodWait as f:
|
||||
await asyncio.sleep(f.value)
|
||||
del DL_TASK[message.from_user.id]
|
||||
await process.delete()
|
||||
try:
|
||||
osremove(file_path)
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ async def wastepaste(_, message):
|
|||
if not reply and len(message.command) < 2:
|
||||
return await message.reply_text(f"**Reply To A Message With /{target} or with command**")
|
||||
|
||||
msg = await message.reply_text("`Pasting to Wastebin...`")
|
||||
msg = await message.reply_text("`Pasting to YasirBin...`")
|
||||
data = ""
|
||||
limit = 1024 * 1024
|
||||
if reply and reply.document:
|
||||
|
|
@ -125,7 +125,7 @@ async def wastepaste(_, message):
|
|||
[InlineKeyboardButton("Share Link", url=f"https://telegram.me/share/url?url={url}")],
|
||||
]
|
||||
|
||||
pasted = f"**Successfully pasted your data to Nekobin<a href='{url}'>.</a>\n\nPaste by {uname}**"
|
||||
pasted = f"**Successfully pasted your data to YasirBin<a href='{url}'>.</a>\n\nPaste by {uname}**"
|
||||
await msg.edit(pasted, reply_markup=InlineKeyboardMarkup(button))
|
||||
|
||||
# Nekobin Paste
|
||||
|
|
|
|||
Loading…
Reference in a new issue