Hellbot / HellBot /plugins /user /federation.py
Ufoptg's picture
Upload 93 files
78b07ad verified
raw
history blame
4.82 kB
import re
from pyrogram import Client
from pyrogram.types import Message
from . import HelpMenu, Symbols, handler, hellbot, on_message
@on_message("newfed", allow_stan=True)
async def newfed(client: Client, message: Message):
if len(message.command) < 2:
return await hellbot.delete(message, f"Usage: {handler}newfed <fedname>")
bot_un = "@MissRose_bot"
await client.unblock_user(bot_un)
fedname = await hellbot.input(message)
hell = await hellbot.edit(message, f"__Creating new federation__ **{fedname}**")
extract_fedid = (
lambda text: re.search(r"FedID: (\S+)", text).group(1)
if re.search(r"FedID: (\S+)", text)
else None
)
try:
msg1 = await client.ask(bot_un, f"/newfed {fedname}", timeout=60)
except Exception as e:
return await hellbot.error(hell, f"`{e}`")
if "created new federation" in msg1.text.lower():
await hell.edit(
f"**𝖭𝖾𝗐 π–₯π–Ύπ–½π–Ύπ—‹π–Ίπ—π—‚π—ˆπ—‡ 𝖼𝗋𝖾𝖺𝗍𝖾𝖽 π—ˆπ—‡ {bot_un}:** `{fedname}` \n**π–₯𝖾𝖽𝖨𝖽:** `{extract_fedid(msg1.text)[:-1]}`"
)
else:
await hellbot.delete(hell, f"**Failed to create federation!**\n\n`{msg1.text}`")
try:
await msg1.request.delete()
await msg1.delete()
except:
pass
@on_message("renamefed", allow_stan=True)
async def renamefed(client: Client, message: Message):
if len(message.command) < 2:
return await hellbot.delete(message, f"Usage: {handler}renamefed <new fedname>")
bot_un = "@MissRose_bot"
await client.unblock_user(bot_un)
fedname = await hellbot.input(message)
hell = await hellbot.edit(message, f"__Renaming federation to__ **{fedname}**")
try:
msg1 = await client.ask(bot_un, f"/renamefed {fedname}", timeout=60)
except Exception as e:
return await hellbot.error(hell, f"`{e}`")
if "renamed your federation from" in msg1.text.lower():
await hell.edit(f"**π–₯π–Ύπ–½π–Ύπ—‹π–Ίπ—π—‚π—ˆπ—‡ 𝗋𝖾𝗇𝖺𝗆𝖾𝖽 π—π—ˆ** `{fedname}`")
else:
await hellbot.delete(hell, f"**Failed to rename federation!**\n\n`{msg1.text}`")
try:
await msg1.request.delete()
await msg1.delete()
except:
pass
@on_message("fedinfo", allow_stan=True)
async def fedinfo(client: Client, message: Message):
if len(message.command) < 2:
fedid = ""
else:
fedid = message.command[1]
bot_un = "@MissRose_bot"
await client.unblock_user(bot_un)
get_value = lambda pattern: pattern.group(1) if pattern else None
hell = await hellbot.edit(message, "__Fetching federation info__")
try:
msg1 = await client.ask(bot_un, f"/fedinfo {fedid}", timeout=60)
except Exception as e:
return await hellbot.error(hell, f"`{e}`")
if "fed info" in msg1.text.lower():
fedid, name, creator, admins, bans, connected_chats, subscribed_feds = map(
get_value,
(
re.search(r"FedID: (\S+)", msg1.text),
re.search(r"Name: (.+)", msg1.text),
re.search(r"Creator: (.+)", msg1.text),
re.search(r"admins: (\d+)", msg1.text),
re.search(r"bans: (\d+)", msg1.text),
re.search(r"connected chats: (\d+)", msg1.text),
re.search(r"subscribed feds: (\d+)", msg1.text),
),
)
await hell.edit(
f"**{Symbols.anchor} π–₯𝖾𝖽𝖨𝖽:** `{fedid}`\n"
f"**{Symbols.anchor} 𝖭𝖺𝗆𝖾:** `{name}`\n"
f"**{Symbols.anchor} π–’π—‹π–Ύπ–Ίπ—π—ˆπ—‹:** {creator}\n"
f"**{Symbols.anchor} π–³π—ˆπ—π–Ίπ—… π–Ίπ–½π—†π—‚π—‡π—Œ:** `{admins}`\n"
f"**{Symbols.anchor} π–³π—ˆπ—π–Ίπ—… π–»π–Ίπ—‡π—Œ::** `{bans}`\n"
f"**{Symbols.anchor} π–’π—ˆπ—‡π—‡π–Ύπ–Όπ—π–Ύπ–½ π–’π—π–Ίπ—π—Œ:** `{connected_chats}`\n"
f"**{Symbols.anchor} π–²π—Žπ–»π—Œπ–Όπ—‹π—‚π–»π–Ύπ–½ π–₯𝖾𝖽𝖲:** `{subscribed_feds}`\n"
)
else:
await hellbot.delete(hell, f"**Failed to fetch federation info!**\n\n`{msg1.text}`")
try:
await msg1.request.delete()
await msg1.delete()
except:
pass
HelpMenu("federation").add(
"newfed", "<name>", "Create a new federation on Rose Bot.", "newfed Example Name",
).add(
"renamefed", "<name>", "Rename your federation on Rose Bot.", "renamefed Example Name",
).add(
"fedinfo", "<fedid>", "Get info about a federation on Rose Bot.", "fedinfo fed-id",
).info(
"MissRose Federation"
).done()