import time from re import findall, MULTILINE from asyncio import Lock from pyrogram import filters from misskaty.vars import COMMAND_HANDLER from misskaty import app, botStartTime from misskaty.helper.human_read import get_readable_time from subprocess import run as srun @app.on_message(filters.command(["ping"], COMMAND_HANDLER)) 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)) 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)