sycgram/plugins/calculate.py

29 lines
858 B
Python
Raw Permalink Normal View History

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)