| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | from . import get_help |
| |
|
| | __doc__ = get_help("help_calculator") |
| |
|
| | import re |
| |
|
| | from . import Button, asst, callback, get_string, in_pattern, udB, ultroid_cmd |
| |
|
| | CALC = {} |
| |
|
| | m = [ |
| | "AC", |
| | "C", |
| | "⌫", |
| | "%", |
| | "7", |
| | "8", |
| | "9", |
| | "+", |
| | "4", |
| | "5", |
| | "6", |
| | "-", |
| | "1", |
| | "2", |
| | "3", |
| | "x", |
| | "00", |
| | "0", |
| | ".", |
| | "÷", |
| | ] |
| | tultd = [Button.inline(f"{x}", data=f"calc{x}") for x in m] |
| | lst = list(zip(tultd[::4], tultd[1::4], tultd[2::4], tultd[3::4])) |
| | lst.append([Button.inline("=", data="calc=")]) |
| |
|
| |
|
| | @ultroid_cmd(pattern="calc") |
| | async def icalc(e): |
| | udB.del_key("calc") |
| | if e.client._bot: |
| | return await e.reply(get_string("calc_1"), buttons=lst) |
| | results = await e.client.inline_query(asst.me.username, "calc") |
| | await results[0].click(e.chat_id, silent=True, hide_via=True) |
| | await e.delete() |
| |
|
| |
|
| | @in_pattern("calc", owner=True) |
| | async def _(e): |
| | calc = e.builder.article("Calc", text=get_string("calc_1"), buttons=lst) |
| | await e.answer([calc]) |
| |
|
| |
|
| | @callback(re.compile("calc(.*)"), owner=True) |
| | async def _(e): |
| | x = (e.data_match.group(1)).decode() |
| | user = e.query.user_id |
| | get = None |
| | if x == "AC": |
| | if CALC.get(user): |
| | CALC.pop(user) |
| | await e.edit( |
| | get_string("calc_1"), |
| | buttons=[Button.inline(get_string("calc_2"), data="recalc")], |
| | ) |
| | elif x == "C": |
| | if CALC.get(user): |
| | CALC.pop(user) |
| | await e.answer("cleared") |
| | elif x == "⌫": |
| | if CALC.get(user): |
| | get = CALC[user] |
| | if get: |
| | CALC.update({user: get[:-1]}) |
| | await e.answer(str(get[:-1])) |
| | elif x == "%": |
| | if CALC.get(user): |
| | get = CALC[user] |
| | if get: |
| | CALC.update({user: f"{get}/100"}) |
| | await e.answer(str(f"{get}/100")) |
| | elif x == "÷": |
| | if CALC.get(user): |
| | get = CALC[user] |
| | if get: |
| | CALC.update({user: f"{get}/"}) |
| | await e.answer(str(f"{get}/")) |
| | elif x == "x": |
| | if CALC.get(user): |
| | get = CALC[user] |
| | if get: |
| | CALC.update({user: f"{get}*"}) |
| | await e.answer(str(f"{get}*")) |
| | elif x == "=": |
| | if CALC.get(user): |
| | get = CALC[user] |
| | if get: |
| | if get.endswith(("*", ".", "/", "-", "+")): |
| | get = get[:-1] |
| | out = eval(get) |
| | try: |
| | num = float(out) |
| | await e.answer(f"Answer : {num}", cache_time=0, alert=True) |
| | except BaseException: |
| | CALC.pop(user) |
| | await e.answer(get_string("sf_8"), cache_time=0, alert=True) |
| | await e.answer("None") |
| | else: |
| | if CALC.get(user): |
| | get = CALC[user] |
| | if get: |
| | CALC.update({user: get + x}) |
| | return await e.answer(str(get + x)) |
| | CALC.update({user: x}) |
| | await e.answer(str(x)) |
| |
|
| |
|
| | @callback("recalc", owner=True) |
| | async def _(e): |
| | m = [ |
| | "AC", |
| | "C", |
| | "⌫", |
| | "%", |
| | "7", |
| | "8", |
| | "9", |
| | "+", |
| | "4", |
| | "5", |
| | "6", |
| | "-", |
| | "1", |
| | "2", |
| | "3", |
| | "x", |
| | "00", |
| | "0", |
| | ".", |
| | "÷", |
| | ] |
| | tultd = [Button.inline(f"{x}", data=f"calc{x}") for x in m] |
| | lst = list(zip(tultd[::4], tultd[1::4], tultd[2::4], tultd[3::4])) |
| | lst.append([Button.inline("=", data="calc=")]) |
| | await e.edit(get_string("calc_1"), buttons=lst) |
| |
|