mirror of
https://github.com/yasirarism/MissKatyPyro.git
synced 2026-01-06 20:04: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_LOAD = []
|
||||||
MOD_NOLOAD = []
|
MOD_NOLOAD = []
|
||||||
HELPABLE = {}
|
HELPABLE = {}
|
||||||
|
DL_TASK = {}
|
||||||
cleanmode = {}
|
cleanmode = {}
|
||||||
botStartTime = time.time()
|
botStartTime = time.time()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,14 +8,14 @@
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
from asyncio import gather, sleep
|
from asyncio import gather, sleep, Lock
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
from shutil import rmtree
|
from shutil import rmtree
|
||||||
|
|
||||||
from pyrogram import enums, filters
|
from pyrogram import enums, filters
|
||||||
from pyrogram.errors import FloodWait
|
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.core.decorator.errors import capture_err
|
||||||
from misskaty.helper.ffmpeg_helper import genss_link, take_ss
|
from misskaty.helper.ffmpeg_helper import genss_link, take_ss
|
||||||
from misskaty.helper.pyro_progress import progress_for_pyrogram
|
from misskaty.helper.pyro_progress import progress_for_pyrogram
|
||||||
|
|
@ -41,9 +41,13 @@ async def genss(client, message):
|
||||||
if media is None:
|
if media is None:
|
||||||
return await message.reply("Reply to a Telegram Video or document as video to generate screenshoot!")
|
return await message.reply("Reply to a Telegram Video or document as video to generate screenshoot!")
|
||||||
process = await message.reply_text("`Processing, please wait..`")
|
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()
|
c_time = time.time()
|
||||||
the_real_download_location = await client.download_media(
|
the_real_download_location = await replied.download(
|
||||||
message=message.reply_to_message,
|
|
||||||
progress=progress_for_pyrogram,
|
progress=progress_for_pyrogram,
|
||||||
progress_args=("Trying to download, please wait..", process, c_time),
|
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}",
|
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,
|
reply_to_message_id=message.id,
|
||||||
)
|
)
|
||||||
|
del DL_TASK[message.from_user.id]
|
||||||
await process.delete()
|
await process.delete()
|
||||||
try:
|
try:
|
||||||
os.remove(images)
|
os.remove(images)
|
||||||
|
|
@ -91,6 +96,7 @@ async def genss(client, message):
|
||||||
except Exception:
|
except Exception:
|
||||||
exc = traceback.format_exc()
|
exc = traceback.format_exc()
|
||||||
await message.reply(f"Gagal generate screenshot.\n\n{exc}")
|
await message.reply(f"Gagal generate screenshot.\n\n{exc}")
|
||||||
|
del DL_TASK[message.from_user.id]
|
||||||
try:
|
try:
|
||||||
os.remove(images)
|
os.remove(images)
|
||||||
os.remove(the_real_download_location)
|
os.remove(the_real_download_location)
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ from pyrogram import filters
|
||||||
from pyrogram.errors import FloodWait
|
from pyrogram.errors import FloodWait
|
||||||
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
|
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.media_helper import post_to_telegraph, runcmd
|
||||||
from misskaty.helper.pyro_progress import progress_for_pyrogram
|
from misskaty.helper.pyro_progress import progress_for_pyrogram
|
||||||
from misskaty.vars import COMMAND_HANDLER
|
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)
|
process = await message.reply_text("`Sedang memproses, lama waktu tergantung ukuran file kamu...`", quote=True)
|
||||||
file_info = get_file_id(message.reply_to_message)
|
file_info = get_file_id(message.reply_to_message)
|
||||||
if file_info is None:
|
if file_info is None:
|
||||||
await process.edit_text("Balas ke format media yang valid")
|
return await process.edit_text("Balas ke format media yang valid")
|
||||||
return
|
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()
|
c_time = time.time()
|
||||||
try:
|
file_path = await message.reply_to_message.download(
|
||||||
file_path = await client.download_media(
|
progress=progress_for_pyrogram,
|
||||||
message=message.reply_to_message,
|
progress_args=("trying to download, sabar yakk..", process, c_time),
|
||||||
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}")
|
|
||||||
output_ = await runcmd(f'mediainfo "{file_path}"')
|
output_ = await runcmd(f'mediainfo "{file_path}"')
|
||||||
out = output_[0] if len(output_) != 0 else None
|
out = output_[0] if len(output_) != 0 else None
|
||||||
body_text = f"""
|
body_text = f"""
|
||||||
|
|
@ -54,9 +55,10 @@ async def mediainfo(client, message):
|
||||||
link = post_to_telegraph(title, body_text)
|
link = post_to_telegraph(title, body_text)
|
||||||
markup = InlineKeyboardMarkup([[InlineKeyboardButton(text=text_, url=link)]])
|
markup = InlineKeyboardMarkup([[InlineKeyboardButton(text=text_, url=link)]])
|
||||||
try:
|
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:
|
except FloodWait as f:
|
||||||
await asyncio.sleep(f.value)
|
await asyncio.sleep(f.value)
|
||||||
|
del DL_TASK[message.from_user.id]
|
||||||
await process.delete()
|
await process.delete()
|
||||||
try:
|
try:
|
||||||
osremove(file_path)
|
osremove(file_path)
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ async def wastepaste(_, message):
|
||||||
if not reply and len(message.command) < 2:
|
if not reply and len(message.command) < 2:
|
||||||
return await message.reply_text(f"**Reply To A Message With /{target} or with command**")
|
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 = ""
|
data = ""
|
||||||
limit = 1024 * 1024
|
limit = 1024 * 1024
|
||||||
if reply and reply.document:
|
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}")],
|
[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))
|
await msg.edit(pasted, reply_markup=InlineKeyboardMarkup(button))
|
||||||
|
|
||||||
# Nekobin Paste
|
# Nekobin Paste
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue