Modify error message

This commit is contained in:
iwumingz 2022-04-09 13:11:35 +08:00
parent 48e22f89d1
commit c6982b5e9b
6 changed files with 43 additions and 43 deletions

View File

@ -4,7 +4,7 @@ from core import command
from pyrogram import Client
from pyrogram.errors import FloodWait, RPCError
from pyrogram.types import Message
from tools.helpers import Parameters, basher
from tools.helpers import Parameters, basher, show_exception
@Client.on_message(command("cal"))
@ -14,8 +14,7 @@ async def calculate(_: Client, msg: Message):
try:
res = await basher(f"""echo "scale=4;{args}" | bc""", 3)
except asyncio.exceptions.TimeoutError:
await msg.edit_text("❗️ Connection Timeout")
return
return await show_exception(msg, "Connection Timeout")
if not res.get('output'):
await msg.edit_text(f"Error{res.get('error')}")
return

View File

@ -9,7 +9,7 @@ from pyrogram import Client
from pyrogram.errors import FloodWait
from pyrogram.types import Message
from tools.constants import CC_MAX_TIMES, REACTIONS, STORE_CC_DATA, TG_GROUPS
from tools.helpers import Parameters, delete_this, emoji_sender, get_cmd_error
from tools.helpers import Parameters, delete_this, emoji_sender, show_cmd_tip
from tools.storage import SimpleStore
@ -40,8 +40,7 @@ async def cc(cli: Client, msg: Message):
await msg.edit_text(f"Default emoji changed to `{tmp}`")
return
else:
await msg.edit_text(get_cmd_error(cmd))
return
return await show_cmd_tip(msg, cmd)
# 攻击次数
cc_times = cc_times if 1 <= cc_times <= CC_MAX_TIMES else CC_MAX_TIMES

View File

@ -6,7 +6,7 @@ from platform import node
from core import command
from pyrogram import Client
from pyrogram.types import Message
from tools.helpers import Parameters, basher, delete_this, get_cmd_error
from tools.helpers import Parameters, basher, delete_this, show_cmd_tip, show_exception
@Client.on_message(command("sh"))
@ -14,27 +14,25 @@ async def shell(_: Client, msg: Message):
"""执行shell脚本"""
cmd, _input = Parameters.get(msg)
if not _input:
await msg.edit_text(get_cmd_error(cmd))
return
return await show_cmd_tip(msg, cmd)
try:
res = await basher(_input, timeout=30)
except asyncio.exceptions.TimeoutError:
await msg.edit_text('❗️ Connection Timeout')
return
return await show_exception(msg, "Connection Timeout")
_output: str = res.get('output') if not res.get('error') else res.get('error')
_output: str = res.get('output') if not res.get(
'error') else res.get('error')
header = f"**{getuser()}@{node()}**\n"
all_bytes = len(header.encode() + _input.encode() + _output.encode())
if all_bytes >= 2048:
await delete_this(msg)
await msg.reply_document(
return await msg.reply_document(
document=BytesIO(_output.encode()),
caption=f"{header}> # `{_input}`",
file_name="output.log",
parse_mode='md'
)
return
await msg.edit_text(
f"{header}> # `{_input}`\n```{_output.strip()}```",

View File

@ -5,8 +5,8 @@ from core import command
from pyrogram import Client
from pyrogram.errors import FloodWait
from pyrogram.types import Message
from tools.constants import SPEEDTEST_RUN
from tools.helpers import Parameters, delete_this, get_cmd_error, show_error
from tools.constants import SPEEDTEST_RUN, SYCGRAM_INFO
from tools.helpers import Parameters, delete_this, show_cmd_tip, show_exception
from tools.speedtests import Speedtester
@ -21,19 +21,23 @@ async def speedtest(_: Client, msg: Message):
try:
update_res = await tester.init_for_speedtest('update')
except asyncio.exceptions.TimeoutError:
await msg.edit_text("⚠️ Update Timeout")
await show_exception(msg, "Update Timeout")
except Exception as e:
await show_error(msg, e)
await show_exception(msg, e)
else:
# TODO有个未知错误
await msg.edit_text(f"Result\n```{update_res}```")
await msg.edit_text(
f"**{SYCGRAM_INFO}**\n> # `{update_res}`",
parse_mode='md'
)
return
elif opt == 'list':
try:
text = await tester.list_servers_ids(f"{SPEEDTEST_RUN} -L")
await msg.edit_text(text, parse_mode='md')
except asyncio.exceptions.TimeoutError:
await msg.edit_text("⚠️ Speedtest Timeout")
await show_exception(msg, "Speedtest Timeout")
except Exception as e:
await show_exception(msg, e)
return
elif bool(re.match(r'[0-9]+', opt)) or not opt:
try:
@ -41,15 +45,12 @@ async def speedtest(_: Client, msg: Message):
f"""{SPEEDTEST_RUN}{'' if not opt else f' -s {opt}'}"""
)
except asyncio.exceptions.TimeoutError:
await msg.edit_text("⚠️ Speedtest Timeout")
return
return await show_exception(msg, "Speedtest Timeout")
else:
await msg.edit_text(get_cmd_error(cmd))
return
return await show_cmd_tip(msg, cmd)
if not link:
await msg.edit_text(text)
return
return await show_exception(msg, "Speedtest Connection Error")
# send speed report
try:
@ -58,6 +59,6 @@ async def speedtest(_: Client, msg: Message):
await asyncio.sleep(e.x)
await msg.reply_photo(photo=link, caption=text, parse_mode='md')
except Exception as e:
await show_error(msg, e)
await show_exception(msg, e)
# delete cmd history
await delete_this(msg)

View File

@ -6,7 +6,8 @@ from loguru import logger
from pyrogram import Client, filters
from pyrogram.types import Message
from tools.constants import STICKER_BOT, STICKER_ERROR_LIST
from tools.helpers import Parameters, check_if_package_existed, get_default_pkg
from tools.helpers import (Parameters, check_if_package_existed,
get_default_pkg, show_exception)
from tools.stickers import StickerAdder, sticker_cond, sticker_locker
from tools.storage import SimpleStore
@ -40,7 +41,7 @@ async def sticker(cli: Client, msg: Message):
# 处理参数
if len(args) != 2:
pkg_title, pkg_name = get_default_pkg(msg.from_user)
await msg.edit('✅ Reset sticker title and name to default..')
await msg.edit_text('✅ Reset sticker title and name to default..')
else:
pkg_title, pkg_name = args
if len(pkg_title.encode()) >= 168:
@ -49,22 +50,21 @@ async def sticker(cli: Client, msg: Message):
elif len(pkg_title.encode()) >= 58:
await msg.edit_text('❗️ Too long sticker set name.')
return
await msg.edit('✅ Customize sticker title and name successfully.')
await msg.edit_text('✅ Customize sticker title and name successfully.')
async with SimpleStore() as store:
store.data['sticker_set_title'] = pkg_title
store.data['sticker_set_name'] = pkg_name
return
async with SimpleStore() as store:
async with SimpleStore(auto_flush=False) as store:
pkg_title = store.data.get('sticker_set_title')
pkg_name = store.data.get('sticker_set_name')
if not pkg_title or not pkg_name:
await msg.edit_text(
return await msg.edit_text(
"⚠️ The default sticker title and name are empty, "
"please use `-s` reset!"
)
return
# 尝试检查贴纸包是否存在
try:
@ -72,8 +72,7 @@ async def sticker(cli: Client, msg: Message):
except Exception as e:
# 无法判定是否贴纸包存在
logger.error(e)
await msg.edit_text('⚠️ Network Error | Please try again later ...')
return
return await show_exception(msg, e)
# 开始前的检查
await msg.edit_text('👆 Working on adding stickers ...')

View File

@ -3,12 +3,13 @@ import re
from typing import Any, Dict, List, Tuple, Union
from bs4 import BeautifulSoup
from core.custom import CMDS_PREFIX
from loguru import logger
from pyrogram import Client
from pyrogram.errors import FloodWait, RPCError
from pyrogram.types import Message, User
from .constants import STICKER_DESCRIP
from .constants import STICKER_DESCRIP, SYCGRAM_ERROR, SYCGRAM_INFO
from .sessions import session
@ -86,8 +87,15 @@ def is_deleted_id(msg: Message) -> bool:
return bool(msg.message_id > 1 and msg.from_user and msg.from_user.is_self)
def get_cmd_error(cmd: str) -> str:
return f"Use `-help {cmd.replace('-', '', 1)}` to view detailed usage."
async def show_exception(msg: Message, e: Any) -> None:
text = f"**{SYCGRAM_ERROR}**\n> # `{e}`"
await msg.edit_text(text, parse_mode='md')
async def show_cmd_tip(msg: Message, cmd: str) -> str:
tip = f"Use `{CMDS_PREFIX}help {cmd.replace(CMDS_PREFIX, '', 1)}` to view detailed usage."
text = f"**{SYCGRAM_INFO}**\n> # {tip}"
await msg.edit_text(text, parse_mode='md')
async def check_if_package_existed(pkg_name: str) -> bool:
@ -161,10 +169,6 @@ async def execute(command: str) -> Dict[str, Any]:
}
async def show_error(msg: Message, e: Any) -> None:
await msg.edit_text(f"⚠️ Error\n```{e}```")
async def kick_one(cli: Client, cid: Union[int, str], uid: Union[int, str]):
me = await cli.get_chat_member(cid, 'me')
if me.can_restrict_members and await cli.ban_chat_member(cid, uid):