2022-04-06 14:39:27 +00:00
|
|
|
|
import asyncio
|
|
|
|
|
|
|
|
|
|
from core import command
|
|
|
|
|
from pyrogram import Client
|
|
|
|
|
from pyrogram.errors import FloodWait, RPCError
|
|
|
|
|
from pyrogram.types import Message
|
2022-04-09 05:11:35 +00:00
|
|
|
|
from tools.helpers import Parameters, basher, show_exception
|
2022-04-06 14:39:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Client.on_message(command("cal"))
|
|
|
|
|
async def calculate(_: Client, msg: Message):
|
|
|
|
|
"""计算器"""
|
|
|
|
|
_, args = Parameters.get(msg)
|
|
|
|
|
try:
|
|
|
|
|
res = await basher(f"""echo "scale=4;{args}" | bc""", 3)
|
|
|
|
|
except asyncio.exceptions.TimeoutError:
|
2022-04-09 05:11:35 +00:00
|
|
|
|
return await show_exception(msg, "Connection Timeout!")
|
2022-04-06 14:39:27 +00:00
|
|
|
|
if not res.get('output'):
|
|
|
|
|
await msg.edit_text(f"Error:{res.get('error')}")
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
text = f"""In:`{args}`\nOut:`{res.get('output')}`"""
|
|
|
|
|
try:
|
|
|
|
|
await msg.edit_text(text)
|
|
|
|
|
except FloodWait as e:
|
|
|
|
|
await asyncio.sleep(e.x)
|
|
|
|
|
except RPCError:
|
|
|
|
|
await msg.edit_text(text)
|