-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathcalculator.py
46 lines (39 loc) · 1.35 KB
/
calculator.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import asyncio
from pyrogram import Client, filters
from pyrogram.types import Message
from utils.misc import modules_help, prefix
@Client.on_message(filters.command("calc", prefix) & filters.me)
async def calc(_, message: Message):
if len(message.command) <= 1:
return
args = " ".join(message.command[1:])
try:
result = str(eval(args))
if len(result) > 4096:
i = 0
for x in range(0, len(result), 4096):
if i == 0:
await message.edit(
f"<i>{args}</i><b>=</b><code>{result[x:x + 4000]}</code>",
parse_mode="HTML",
)
else:
await message.reply(
f"<code>{result[x:x + 4096]}</code>", parse_mode="HTML"
)
i += 1
await asyncio.sleep(0.18)
else:
await message.edit(
f"<i>{args}</i><b>=</b><code>{result}</code>", parse_mode="HTML"
)
except Exception as e:
await message.edit(f"<i>{args}=</i><b>=</b><code>{e}</code>", parse_mode="HTML")
modules_help["calculator"] = {
"calc [expression]*": "solve a math problem\n"
"+ – addition\n"
"– – subtraction\n"
"* – multiplication\n"
"/ – division\n"
"** – degree"
}