2022-12-30 21:36:06 +02:00
|
|
|
from os import path, sep
|
|
|
|
from ujson import JSONDecodeError
|
2022-12-13 15:24:31 +02:00
|
|
|
from modules.logging import logWrite
|
2022-12-30 21:36:06 +02:00
|
|
|
from modules.utils import configGet, jsonLoad
|
2022-10-26 15:54:55 +03:00
|
|
|
from pyrogram.client import Client
|
2022-12-13 15:24:31 +02:00
|
|
|
from pyrogram.errors import bad_request_400
|
2023-03-26 20:32:07 +03:00
|
|
|
from convopyro import Conversation
|
2022-10-26 15:54:55 +03:00
|
|
|
|
2023-03-09 17:25:06 +02:00
|
|
|
app = Client(
|
|
|
|
"holochecker",
|
|
|
|
bot_token=configGet("bot_token", "bot"),
|
|
|
|
api_id=configGet("api_id", "bot"),
|
|
|
|
api_hash=configGet("api_hash", "bot"),
|
|
|
|
)
|
2022-10-26 15:54:55 +03:00
|
|
|
|
2023-03-26 20:32:07 +03:00
|
|
|
Conversation(app)
|
|
|
|
|
2023-01-03 14:17:59 +02:00
|
|
|
|
2023-03-09 17:25:06 +02:00
|
|
|
async def isAnAdmin(admin_id):
|
2023-01-03 14:17:59 +02:00
|
|
|
# Check if user is mentioned in config
|
2022-12-11 02:31:06 +02:00
|
|
|
if (admin_id == configGet("owner")) or (admin_id in configGet("admins")):
|
2022-10-26 15:54:55 +03:00
|
|
|
return True
|
2023-01-03 14:17:59 +02:00
|
|
|
|
|
|
|
# Check if user is probably in cache
|
2022-12-30 21:36:06 +02:00
|
|
|
if path.exists(f"cache{sep}admins") is True:
|
|
|
|
try:
|
|
|
|
return True if admin_id in jsonLoad(f"cache{sep}admins") else False
|
|
|
|
except (FileNotFoundError, JSONDecodeError):
|
|
|
|
pass
|
2023-03-09 17:25:06 +02:00
|
|
|
|
2023-01-03 14:17:59 +02:00
|
|
|
# Check if user is in admin group
|
2022-12-13 15:24:31 +02:00
|
|
|
try:
|
2023-01-04 20:14:02 +02:00
|
|
|
async for member in app.get_chat_members(configGet("admin", "groups")):
|
2022-12-13 15:24:31 +02:00
|
|
|
if member.user.id == admin_id:
|
|
|
|
return True
|
|
|
|
except bad_request_400.ChannelInvalid:
|
2023-03-09 17:25:06 +02:00
|
|
|
logWrite(
|
|
|
|
f"Could not get users in admin group to answer isAnAdmin(). Bot is likely not in the group."
|
|
|
|
)
|
2022-12-13 15:24:31 +02:00
|
|
|
return False
|
2023-03-09 17:25:06 +02:00
|
|
|
|
|
|
|
return False
|