""" * @author yasir * @date 2022-12-01 09:12:27 * @lastModified 2022-12-01 09:32:31 * @projectName MissKatyPyro * Copyright @YasirPedia All rights reserved """ import time from asyncio import Lock from re import MULTILINE, findall from subprocess import run as srun from pyrogram import filters from misskaty import app, botStartTime from misskaty.core.decorator.ratelimiter import ratelimiter from misskaty.helper.human_read import get_readable_time from misskaty.vars import COMMAND_HANDLER @app.on_message(filters.command(["ping"], COMMAND_HANDLER)) @ratelimiter async def ping(_, message): currentTime = get_readable_time(time.time() - botStartTime) start_t = time.time() rm = await message.reply_text("🐱 Pong!!...") end_t = time.time() time_taken_s = round(end_t - start_t, 3) try: await rm.edit(f"🐈 MissKatyBot online.\n\nPing: {time_taken_s} detik\nUptime: {currentTime}") except Exception: pass @app.on_message(filters.command(["ping_dc"], COMMAND_HANDLER)) @ratelimiter async def ping_handler(_, message): m = await message.reply("Pinging datacenters...") async with Lock(): ips = { "dc1": "149.154.175.53", "dc2": "149.154.167.51", "dc3": "149.154.175.100", "dc4": "149.154.167.91", "dc5": "91.108.56.130", } text = "**Pings:**\n" for dc, ip in ips.items(): try: shell = srun( ["ping", "-c", "1", "-W", "2", ip], text=True, check=True, capture_output=True, ) resp_time = findall(r"time=.+m?s", shell.stdout, MULTILINE)[0].replace("time=", "") text += f" **{dc.upper()}:** {resp_time} ✅\n" except Exception: # There's a cross emoji here, but it's invisible. text += f" **{dc.upper}:** ❌\n" await m.edit(text)