Captain Ezio commited on
Commit
83fe5dc
·
1 Parent(s): b8637a4

Fixed bug related to support user

Browse files
Powers/__init__.py CHANGED
@@ -119,9 +119,8 @@ SUPPORT_CHANNEL = Config.SUPPORT_CHANNEL
119
 
120
  # Users Config
121
  OWNER_ID = Config.OWNER_ID
122
- DEV_USERS = set(Config.DEV_USERS)
123
- SUDO_USERS = set(Config.SUDO_USERS)
124
- WHITELIST_USERS = set(Config.WHITELIST_USERS)
125
 
126
  # Plugins, DB and Workers
127
  DB_URI = Config.DB_URI
 
119
 
120
  # Users Config
121
  OWNER_ID = Config.OWNER_ID
122
+ SUPPORT_USERS = {"Owner": [Config.OWNER_ID], "Dev": set(Config.DEV_USERS), "Sudo": set(Config.SUDO_USERS), "White": set(Config.WHITELIST_USERS)}
123
+
 
124
 
125
  # Plugins, DB and Workers
126
  DB_URI = Config.DB_URI
Powers/bot_class.py CHANGED
@@ -7,9 +7,9 @@ from pyrogram import Client, __version__
7
  from pyrogram.raw.all import layer
8
  from pyrogram.types import BotCommand
9
 
10
- from Powers import (API_HASH, API_ID, BOT_TOKEN, LOG_DATETIME,
11
- LOGFILE, LOGGER, MESSAGE_DUMP, NO_LOAD, UPTIME,
12
- WORKERS, load_cmds, scheduler)
13
  from Powers.database import MongoDB
14
  from Powers.plugins import all_plugins
15
  from Powers.plugins.scheduled_jobs import *
@@ -69,6 +69,9 @@ class Gojo(Client):
69
  cmd_list = await load_cmds(await all_plugins())
70
  await load_support_users()
71
  await cache_support()
 
 
 
72
  LOGGER.info(f"Plugins Loaded: {cmd_list}")
73
  if BDB_URI:
74
  scheduler.add_job(send_wishish, 'cron', [
 
7
  from pyrogram.raw.all import layer
8
  from pyrogram.types import BotCommand
9
 
10
+ from Powers import (API_HASH, API_ID, BOT_TOKEN, LOG_DATETIME, LOGFILE, LOGGER,
11
+ MESSAGE_DUMP, NO_LOAD, UPTIME, WORKERS, load_cmds,
12
+ scheduler)
13
  from Powers.database import MongoDB
14
  from Powers.plugins import all_plugins
15
  from Powers.plugins.scheduled_jobs import *
 
69
  cmd_list = await load_cmds(await all_plugins())
70
  await load_support_users()
71
  await cache_support()
72
+ LOGGER.info(f"Dev Users: {SUPPORT_USERS['Dev']}")
73
+ LOGGER.info(f"Sudo Users: {SUPPORT_USERS['Sudo']}")
74
+ LOGGER.info(f"Whitelist users: {SUPPORT_USERS['White']}")
75
  LOGGER.info(f"Plugins Loaded: {cmd_list}")
76
  if BDB_URI:
77
  scheduler.add_job(send_wishish, 'cron', [
Powers/plugins/admin.py CHANGED
@@ -11,11 +11,12 @@ from pyrogram.errors import (BotChannelsNa, ChatAdminInviteRequired,
11
  RPCError, UserAdminInvalid)
12
  from pyrogram.types import ChatPrivileges, Message
13
 
14
- from Powers import DEV_USERS, LOGGER, OWNER_ID, SUDO_USERS, WHITELIST_USERS
15
  from Powers.bot_class import Gojo
16
  from Powers.database.approve_db import Approve
17
  from Powers.database.reporting_db import Reporting
18
- from Powers.utils.caching import (admin_cache_reload)
 
19
  from Powers.utils.custom_filters import admin_filter, command, promote_filter
20
  from Powers.utils.extract_user import extract_user
21
  from Powers.utils.parser import mention_html
@@ -110,7 +111,7 @@ async def reload_admins(_, m: Message):
110
  return await m.reply_text(
111
  "This command is made to be used in groups only!",
112
  )
113
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
114
  if (
115
  (m.chat.id in set(TEMP_ADMIN_CACHE_BLOCK.keys()))
116
  and (m.from_user.id not in SUPPORT_STAFF)
@@ -420,7 +421,7 @@ async def demote_usr(c: Gojo, m: Message):
420
  async def get_invitelink(c: Gojo, m: Message):
421
  # Bypass the bot devs, sudos and owner
422
 
423
- DEV_LEVEL = DEV_USERS
424
  if m.from_user.id not in DEV_LEVEL:
425
  user = await m.chat.get_member(m.from_user.id)
426
  if not user.privileges.can_invite_users and user.status != CMS.OWNER:
 
11
  RPCError, UserAdminInvalid)
12
  from pyrogram.types import ChatPrivileges, Message
13
 
14
+ from Powers import LOGGER, OWNER_ID
15
  from Powers.bot_class import Gojo
16
  from Powers.database.approve_db import Approve
17
  from Powers.database.reporting_db import Reporting
18
+ from Powers.supports import get_support_staff
19
+ from Powers.utils.caching import admin_cache_reload
20
  from Powers.utils.custom_filters import admin_filter, command, promote_filter
21
  from Powers.utils.extract_user import extract_user
22
  from Powers.utils.parser import mention_html
 
111
  return await m.reply_text(
112
  "This command is made to be used in groups only!",
113
  )
114
+ SUPPORT_STAFF = get_support_staff()
115
  if (
116
  (m.chat.id in set(TEMP_ADMIN_CACHE_BLOCK.keys()))
117
  and (m.from_user.id not in SUPPORT_STAFF)
 
421
  async def get_invitelink(c: Gojo, m: Message):
422
  # Bypass the bot devs, sudos and owner
423
 
424
+ DEV_LEVEL = get_support_staff("dev_level")
425
  if m.from_user.id not in DEV_LEVEL:
426
  user = await m.chat.get_member(m.from_user.id)
427
  if not user.privileges.can_invite_users and user.status != CMS.OWNER:
Powers/plugins/antispam.py CHANGED
@@ -5,11 +5,11 @@ from traceback import format_exc
5
  from pyrogram.errors import MessageTooLong, PeerIdInvalid, UserIsBlocked
6
  from pyrogram.types import Message
7
 
8
- from Powers import (DEV_USERS, LOGGER, MESSAGE_DUMP, SUDO_USERS, SUPPORT_GROUP,
9
- WHITELIST_USERS)
10
  from Powers.bot_class import Gojo
11
  from Powers.database.antispam_db import GBan
12
  from Powers.database.users_db import Users
 
13
  from Powers.utils.clean_file import remove_markdown_and_html
14
  from Powers.utils.custom_filters import command
15
  from Powers.utils.extract_user import extract_user
@@ -38,7 +38,7 @@ async def gban(c: Gojo, m: Message):
38
  else:
39
  gban_reason = m.text.split(None, 2)[2]
40
 
41
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
42
 
43
  if user_id in SUPPORT_STAFF:
44
  await m.reply_text(text="This user is part of my Support!, Can't ban our own!")
@@ -96,7 +96,7 @@ async def ungban(c: Gojo, m: Message):
96
 
97
  user_id, user_first_name, _ = await extract_user(c, m)
98
 
99
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
100
 
101
  if user_id in SUPPORT_STAFF:
102
  await m.reply_text(text="This user is part of my Support!, Can't ban our own!")
 
5
  from pyrogram.errors import MessageTooLong, PeerIdInvalid, UserIsBlocked
6
  from pyrogram.types import Message
7
 
8
+ from Powers import LOGGER, MESSAGE_DUMP, SUPPORT_GROUP
 
9
  from Powers.bot_class import Gojo
10
  from Powers.database.antispam_db import GBan
11
  from Powers.database.users_db import Users
12
+ from Powers.supports import get_support_staff
13
  from Powers.utils.clean_file import remove_markdown_and_html
14
  from Powers.utils.custom_filters import command
15
  from Powers.utils.extract_user import extract_user
 
38
  else:
39
  gban_reason = m.text.split(None, 2)[2]
40
 
41
+ SUPPORT_STAFF = get_support_staff()
42
 
43
  if user_id in SUPPORT_STAFF:
44
  await m.reply_text(text="This user is part of my Support!, Can't ban our own!")
 
96
 
97
  user_id, user_first_name, _ = await extract_user(c, m)
98
 
99
+ SUPPORT_STAFF = get_support_staff()
100
 
101
  if user_id in SUPPORT_STAFF:
102
  await m.reply_text(text="This user is part of my Support!, Can't ban our own!")
Powers/plugins/auto_join.py CHANGED
@@ -7,9 +7,10 @@ from pyrogram.types import InlineKeyboardButton as ikb
7
  from pyrogram.types import InlineKeyboardMarkup as ikm
8
  from pyrogram.types import Message
9
 
10
- from Powers import DEV_USERS, LOGGER, SUDO_USERS, WHITELIST_USERS
11
  from Powers.bot_class import Gojo
12
  from Powers.database.autojoin_db import AUTOJOIN
 
13
  from Powers.utils.custom_filters import admin_filter, auto_join_filter, command
14
 
15
 
@@ -85,7 +86,7 @@ async def join_request_handler(c: Gojo, j: ChatJoinRequest):
85
  chat = j.chat.id
86
  aj = AUTOJOIN()
87
  join_type = aj.get_autojoin(chat)
88
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
89
 
90
  if not join_type:
91
  return
 
7
  from pyrogram.types import InlineKeyboardMarkup as ikm
8
  from pyrogram.types import Message
9
 
10
+ from Powers import LOGGER
11
  from Powers.bot_class import Gojo
12
  from Powers.database.autojoin_db import AUTOJOIN
13
+ from Powers.supports import get_support_staff
14
  from Powers.utils.custom_filters import admin_filter, auto_join_filter, command
15
 
16
 
 
86
  chat = j.chat.id
87
  aj = AUTOJOIN()
88
  join_type = aj.get_autojoin(chat)
89
+ SUPPORT_STAFF = get_support_staff()
90
 
91
  if not join_type:
92
  return
Powers/plugins/bans.py CHANGED
@@ -9,9 +9,9 @@ from pyrogram.types import (CallbackQuery, ChatPrivileges,
9
  InlineKeyboardButton, InlineKeyboardMarkup,
10
  Message)
11
 
12
- from Powers import (DEV_USERS, LOGGER, MESSAGE_DUMP, OWNER_ID, SUDO_USERS,
13
- WHITELIST_USERS)
14
  from Powers.bot_class import Gojo
 
15
  from Powers.utils.caching import ADMIN_CACHE, admin_cache_reload
16
  from Powers.utils.custom_filters import command, restrict_filter
17
  from Powers.utils.extract_user import extract_user
@@ -38,7 +38,7 @@ async def tban_usr(c: Gojo, m: Message):
38
  await m.reply_text("WTF?? Why would I ban myself?")
39
  await m.stop_propagation()
40
 
41
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
42
 
43
  if user_id in SUPPORT_STAFF:
44
  await m.reply_text(
@@ -158,7 +158,7 @@ async def stban_usr(c: Gojo, m: Message):
158
  await m.reply_text(text="I can't ban nothing!")
159
  await m.stop_propagation()
160
 
161
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
162
 
163
  try:
164
  user_id, _, _ = await extract_user(c, m)
@@ -263,7 +263,7 @@ async def dtban_usr(c: Gojo, m: Message):
263
  await m.reply_text("Huh, why would I ban myself?")
264
  await m.stop_propagation()
265
 
266
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
267
 
268
  if user_id in SUPPORT_STAFF:
269
  await m.reply_text(text="I am not going to ban one of my support staff")
@@ -390,7 +390,7 @@ async def kick_usr(c: Gojo, m: Message):
390
  await m.reply_text("Huh, why would I kick myself?")
391
  await m.stop_propagation()
392
 
393
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
394
 
395
  if user_id in SUPPORT_STAFF:
396
  await m.reply_text(
@@ -478,7 +478,7 @@ async def skick_usr(c: Gojo, m: Message):
478
  await m.reply_text("Nuh Hu, why would I kick myself?")
479
  await m.stop_propagation()
480
 
481
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
482
 
483
  if user_id in SUPPORT_STAFF:
484
  await m.reply_text(
@@ -549,7 +549,7 @@ async def dkick_usr(c: Gojo, m: Message):
549
  await m.reply_text("Huh, why would I kick myself?")
550
  await m.stop_propagation()
551
 
552
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
553
 
554
  if user_id in SUPPORT_STAFF:
555
  await m.reply_text(
@@ -697,7 +697,7 @@ async def sban_usr(c: Gojo, m: Message):
697
  await m.reply_text("Huh, why would I ban myself?")
698
  await m.stop_propagation()
699
 
700
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
701
 
702
  if user_id in SUPPORT_STAFF:
703
  await m.reply_text(
@@ -774,7 +774,7 @@ async def dban_usr(c: Gojo, m: Message):
774
  await m.reply_text("Huh, why would I ban myself?")
775
  await m.stop_propagation()
776
 
777
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
778
 
779
  if user_id in SUPPORT_STAFF:
780
  await m.reply_text(
@@ -868,7 +868,7 @@ async def ban_usr(c: Gojo, m: Message):
868
  await m.reply_text("Huh, why would I ban myself?")
869
  await m.stop_propagation()
870
 
871
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
872
 
873
  if user_id in SUPPORT_STAFF:
874
  await m.reply_text(
 
9
  InlineKeyboardButton, InlineKeyboardMarkup,
10
  Message)
11
 
12
+ from Powers import LOGGER, MESSAGE_DUMP, OWNER_ID
 
13
  from Powers.bot_class import Gojo
14
+ from Powers.supports import get_support_staff
15
  from Powers.utils.caching import ADMIN_CACHE, admin_cache_reload
16
  from Powers.utils.custom_filters import command, restrict_filter
17
  from Powers.utils.extract_user import extract_user
 
38
  await m.reply_text("WTF?? Why would I ban myself?")
39
  await m.stop_propagation()
40
 
41
+ SUPPORT_STAFF = get_support_staff()
42
 
43
  if user_id in SUPPORT_STAFF:
44
  await m.reply_text(
 
158
  await m.reply_text(text="I can't ban nothing!")
159
  await m.stop_propagation()
160
 
161
+ SUPPORT_STAFF = get_support_staff()
162
 
163
  try:
164
  user_id, _, _ = await extract_user(c, m)
 
263
  await m.reply_text("Huh, why would I ban myself?")
264
  await m.stop_propagation()
265
 
266
+ SUPPORT_STAFF = get_support_staff()
267
 
268
  if user_id in SUPPORT_STAFF:
269
  await m.reply_text(text="I am not going to ban one of my support staff")
 
390
  await m.reply_text("Huh, why would I kick myself?")
391
  await m.stop_propagation()
392
 
393
+ SUPPORT_STAFF = get_support_staff()
394
 
395
  if user_id in SUPPORT_STAFF:
396
  await m.reply_text(
 
478
  await m.reply_text("Nuh Hu, why would I kick myself?")
479
  await m.stop_propagation()
480
 
481
+ SUPPORT_STAFF = get_support_staff()
482
 
483
  if user_id in SUPPORT_STAFF:
484
  await m.reply_text(
 
549
  await m.reply_text("Huh, why would I kick myself?")
550
  await m.stop_propagation()
551
 
552
+ SUPPORT_STAFF = get_support_staff()
553
 
554
  if user_id in SUPPORT_STAFF:
555
  await m.reply_text(
 
697
  await m.reply_text("Huh, why would I ban myself?")
698
  await m.stop_propagation()
699
 
700
+ SUPPORT_STAFF = get_support_staff()
701
 
702
  if user_id in SUPPORT_STAFF:
703
  await m.reply_text(
 
774
  await m.reply_text("Huh, why would I ban myself?")
775
  await m.stop_propagation()
776
 
777
+ SUPPORT_STAFF = get_support_staff()
778
 
779
  if user_id in SUPPORT_STAFF:
780
  await m.reply_text(
 
868
  await m.reply_text("Huh, why would I ban myself?")
869
  await m.stop_propagation()
870
 
871
+ SUPPORT_STAFF = get_support_staff()
872
 
873
  if user_id in SUPPORT_STAFF:
874
  await m.reply_text(
Powers/plugins/captcha.py CHANGED
@@ -11,9 +11,10 @@ from pyrogram.types import InlineKeyboardButton as IKB
11
  from pyrogram.types import InlineKeyboardMarkup as ikm
12
  from pyrogram.types import Message, User
13
 
14
- from Powers import DEV_USERS, LOGGER, MESSAGE_DUMP, SUDO_USERS, WHITELIST_USERS
15
  from Powers.bot_class import Gojo
16
  from Powers.database.captcha_db import CAPTCHA, CAPTCHA_DATA
 
17
  from Powers.utils.captcha_helper import (genrator, get_image_captcha,
18
  get_qr_captcha)
19
  from Powers.utils.custom_filters import admin_filter, captcha_filter, command
@@ -157,7 +158,7 @@ async def on_chat_members_updatess(c: Gojo, m: Message):
157
 
158
  if user.is_bot:
159
  continue
160
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
161
 
162
  try:
163
  status = (await m.chat.get_member(user)).status
 
11
  from pyrogram.types import InlineKeyboardMarkup as ikm
12
  from pyrogram.types import Message, User
13
 
14
+ from Powers import LOGGER, MESSAGE_DUMP
15
  from Powers.bot_class import Gojo
16
  from Powers.database.captcha_db import CAPTCHA, CAPTCHA_DATA
17
+ from Powers.supports import get_support_staff
18
  from Powers.utils.captcha_helper import (genrator, get_image_captcha,
19
  get_qr_captcha)
20
  from Powers.utils.custom_filters import admin_filter, captcha_filter, command
 
158
 
159
  if user.is_bot:
160
  continue
161
+ SUPPORT_STAFF = get_support_staff()
162
 
163
  try:
164
  status = (await m.chat.get_member(user)).status
Powers/plugins/dev.py CHANGED
@@ -15,9 +15,8 @@ from pyrogram.types import InlineKeyboardButton as IKB
15
  from pyrogram.types import InlineKeyboardMarkup as IKM
16
  from pyrogram.types import Message
17
 
18
- from Powers import (BOT_TOKEN, DEV_USERS, LOG_DATETIME, LOGFILE, LOGGER,
19
- MESSAGE_DUMP, OWNER_ID, SUDO_USERS, UPTIME,
20
- WHITELIST_USERS)
21
  from Powers.bot_class import Gojo
22
  from Powers.database import MongoDB
23
  from Powers.database.chats_db import Chats
@@ -78,11 +77,11 @@ async def add_support(c: Gojo, m: Message):
78
  else:
79
  support.insert_support_user(userr, to)
80
  if to == "dev":
81
- DEV_USERS.add(userr)
82
  elif to == "sudo":
83
- SUDO_USERS.add(userr)
84
  else:
85
- WHITELIST_USERS.add(userr)
86
  await m.reply_text(f"This user is now a {to} user")
87
  return
88
  if can_do := can_change_type(curr_user, to):
@@ -192,9 +191,9 @@ async def rm_support(c: Gojo, m: Message):
192
  can_user = can_change_type(curr_user, to_user)
193
  if m.from_user.id == int(OWNER_ID) or can_user:
194
  support.delete_support_user(curr)
195
- DEV_USERS.discard(curr)
196
- SUDO_USERS.discard(curr)
197
- WHITELIST_USERS.discard(curr)
198
  await m.reply_text("Done! User now no longer belongs to the support staff")
199
  else:
200
  await m.reply_text("Sorry you can't do that...")
 
15
  from pyrogram.types import InlineKeyboardMarkup as IKM
16
  from pyrogram.types import Message
17
 
18
+ from Powers import (BOT_TOKEN, LOG_DATETIME, LOGFILE, LOGGER, MESSAGE_DUMP,
19
+ OWNER_ID, SUPPORT_USERS, UPTIME)
 
20
  from Powers.bot_class import Gojo
21
  from Powers.database import MongoDB
22
  from Powers.database.chats_db import Chats
 
77
  else:
78
  support.insert_support_user(userr, to)
79
  if to == "dev":
80
+ SUPPORT_USERS["Dev"].add(userr)
81
  elif to == "sudo":
82
+ SUPPORT_USERS["Sudo"].add(userr)
83
  else:
84
+ SUPPORT_USERS["White"].add(userr)
85
  await m.reply_text(f"This user is now a {to} user")
86
  return
87
  if can_do := can_change_type(curr_user, to):
 
191
  can_user = can_change_type(curr_user, to_user)
192
  if m.from_user.id == int(OWNER_ID) or can_user:
193
  support.delete_support_user(curr)
194
+ SUPPORT_USERS["Dev"].discard(curr)
195
+ SUPPORT_USERS["Sudo"].discard(curr)
196
+ SUPPORT_USERS["White"].discard(curr)
197
  await m.reply_text("Done! User now no longer belongs to the support staff")
198
  else:
199
  await m.reply_text("Sorry you can't do that...")
Powers/plugins/flood.py CHANGED
@@ -11,9 +11,10 @@ from pyrogram.types import (CallbackQuery, ChatPermissions,
11
  InlineKeyboardButton, InlineKeyboardMarkup,
12
  Message)
13
 
14
- from Powers import DEV_USERS, LOGGER, SUDO_USERS, WHITELIST_USERS
15
  from Powers.bot_class import Gojo
16
  from Powers.database.flood_db import Floods
 
17
  from Powers.utils.custom_filters import admin_filter, command, flood_filter
18
  from Powers.utils.extras import BAN_GIFS, KICK_GIFS, MUTE_GIFS
19
 
@@ -224,7 +225,7 @@ async def flood_set(c: Gojo, m: Message):
224
 
225
  @Gojo.on_callback_query(filters.regex("^f_"))
226
  async def callbacks(c: Gojo, q: CallbackQuery):
227
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
228
  data = q.data
229
  if data == "f_close":
230
  await q.answer("Closed")
@@ -341,7 +342,7 @@ async def reverse_callbacks(c: Gojo, q: CallbackQuery):
341
  data = q.data.split("_")
342
  action = data[1]
343
  user_id = int(q.data.split("=")[1])
344
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
345
  if not q.from_user:
346
  return q.answer("Looks like you are not an user 👀")
347
  if action == "ban":
 
11
  InlineKeyboardButton, InlineKeyboardMarkup,
12
  Message)
13
 
14
+ from Powers import LOGGER
15
  from Powers.bot_class import Gojo
16
  from Powers.database.flood_db import Floods
17
+ from Powers.supports import get_support_staff
18
  from Powers.utils.custom_filters import admin_filter, command, flood_filter
19
  from Powers.utils.extras import BAN_GIFS, KICK_GIFS, MUTE_GIFS
20
 
 
225
 
226
  @Gojo.on_callback_query(filters.regex("^f_"))
227
  async def callbacks(c: Gojo, q: CallbackQuery):
228
+ SUPPORT_STAFF = get_support_staff()
229
  data = q.data
230
  if data == "f_close":
231
  await q.answer("Closed")
 
342
  data = q.data.split("_")
343
  action = data[1]
344
  user_id = int(q.data.split("=")[1])
345
+ SUPPORT_STAFF = get_support_staff()
346
  if not q.from_user:
347
  return q.answer("Looks like you are not an user 👀")
348
  if action == "ban":
Powers/plugins/fun.py CHANGED
@@ -5,8 +5,8 @@ from pyrogram import enums
5
  from pyrogram.errors import MessageTooLong
6
  from pyrogram.types import Message
7
 
8
- from Powers import DEV_USERS
9
  from Powers.bot_class import Gojo
 
10
  from Powers.utils import extras
11
  from Powers.utils.custom_filters import command
12
  from Powers.utils.extras import NOWYES as NO
@@ -98,7 +98,7 @@ async def insult(c: Gojo, m: Message):
98
  return
99
  user_id = m.reply_to_message.from_user.id
100
  user_first_name = m.reply_to_message.from_user.first_name
101
- if user_id in DEV_USERS:
102
  await m.reply_text("Sorry! I can't insult my devs....")
103
  else:
104
  Insult_omp = choice(extras.INSULT_STRINGS)
 
5
  from pyrogram.errors import MessageTooLong
6
  from pyrogram.types import Message
7
 
 
8
  from Powers.bot_class import Gojo
9
+ from Powers.supports import get_support_staff
10
  from Powers.utils import extras
11
  from Powers.utils.custom_filters import command
12
  from Powers.utils.extras import NOWYES as NO
 
98
  return
99
  user_id = m.reply_to_message.from_user.id
100
  user_first_name = m.reply_to_message.from_user.first_name
101
+ if user_id in get_support_staff("dev_level"):
102
  await m.reply_text("Sorry! I can't insult my devs....")
103
  else:
104
  Insult_omp = choice(extras.INSULT_STRINGS)
Powers/plugins/greetings.py CHANGED
@@ -7,10 +7,11 @@ from pyrogram import emoji, enums, filters
7
  from pyrogram.errors import ChannelPrivate, ChatAdminRequired, RPCError
8
  from pyrogram.types import Message, User
9
 
10
- from Powers import DEV_USERS, LOGGER
11
  from Powers.bot_class import Gojo
12
  from Powers.database.antispam_db import GBan
13
  from Powers.database.greetings_db import Greetings
 
14
  from Powers.utils.cmd_senders import send_cmd
15
  from Powers.utils.custom_filters import (admin_filter, bot_admin_filter,
16
  captcha_filter, command)
@@ -242,7 +243,7 @@ async def member_has_joined(c: Gojo, m: Message):
242
  try:
243
  if user.id == c.me.id:
244
  continue
245
- if user.id in DEV_USERS:
246
  await c.send_animation(
247
  chat_id=m.chat.id,
248
  animation="./extras/william.gif",
@@ -365,7 +366,7 @@ async def member_has_left(c: Gojo, m: Message):
365
  await c.delete_messages(m.chat.id, int(ifff))
366
  except RPCError:
367
  pass
368
- if user.id in DEV_USERS:
369
  await c.send_message(
370
  m.chat.id,
371
  f"Will miss you my master {user.mention} :(",
 
7
  from pyrogram.errors import ChannelPrivate, ChatAdminRequired, RPCError
8
  from pyrogram.types import Message, User
9
 
10
+ from Powers import LOGGER
11
  from Powers.bot_class import Gojo
12
  from Powers.database.antispam_db import GBan
13
  from Powers.database.greetings_db import Greetings
14
+ from Powers.supports import get_support_staff
15
  from Powers.utils.cmd_senders import send_cmd
16
  from Powers.utils.custom_filters import (admin_filter, bot_admin_filter,
17
  captcha_filter, command)
 
243
  try:
244
  if user.id == c.me.id:
245
  continue
246
+ if user.id in get_support_staff("dev"):
247
  await c.send_animation(
248
  chat_id=m.chat.id,
249
  animation="./extras/william.gif",
 
366
  await c.delete_messages(m.chat.id, int(ifff))
367
  except RPCError:
368
  pass
369
+ if user.id in get_support_staff("dev"):
370
  await c.send_message(
371
  m.chat.id,
372
  f"Will miss you my master {user.mention} :(",
Powers/plugins/info.py CHANGED
@@ -9,9 +9,10 @@ from pyrogram.raw.functions.channels import GetFullChannel
9
  from pyrogram.raw.functions.users import GetFullUser
10
  from pyrogram.types import Message
11
 
12
- from Powers import DEV_USERS, LOGGER, OWNER_ID, SUDO_USERS, WHITELIST_USERS
13
  from Powers.bot_class import Gojo
14
  from Powers.database.antispam_db import GBan
 
15
  from Powers.utils.custom_filters import command
16
  from Powers.utils.extract_user import extract_user
17
 
@@ -81,7 +82,7 @@ async def user_info(c: Gojo, user, already=False):
81
  about = ll.full_user.about
82
  except Exception:
83
  pass
84
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
85
  username = user.username
86
  first_name = user.first_name
87
  last_name = user.last_name
@@ -95,17 +96,17 @@ async def user_info(c: Gojo, user, already=False):
95
  is_support = "A person is a great support to himself"
96
  omp = "Hmmm.......Who is that again?"
97
  if is_support or c.me.id:
98
- if user_id in DEV_USERS:
99
  omp = "Dev"
100
- elif user_id in SUDO_USERS:
101
  omp = "Sudoer"
102
- elif user_id in WHITELIST_USERS:
103
  omp = "Whitelist"
104
  elif user_id == c.me.id:
105
  omp = "I am the targeted user"
106
  elif user_id == OWNER_ID:
107
  omp = "Owner of the bot"
108
- if user_id in DEV_USERS and user_id == OWNER_ID:
109
  omp = "Dev and Owner"
110
 
111
  is_scam = user.is_scam
 
9
  from pyrogram.raw.functions.users import GetFullUser
10
  from pyrogram.types import Message
11
 
12
+ from Powers import LOGGER, OWNER_ID
13
  from Powers.bot_class import Gojo
14
  from Powers.database.antispam_db import GBan
15
+ from Powers.supports import get_support_staff
16
  from Powers.utils.custom_filters import command
17
  from Powers.utils.extract_user import extract_user
18
 
 
82
  about = ll.full_user.about
83
  except Exception:
84
  pass
85
+ SUPPORT_STAFF = get_support_staff()
86
  username = user.username
87
  first_name = user.first_name
88
  last_name = user.last_name
 
96
  is_support = "A person is a great support to himself"
97
  omp = "Hmmm.......Who is that again?"
98
  if is_support or c.me.id:
99
+ if user_id in get_support_staff("dev"):
100
  omp = "Dev"
101
+ elif user_id in get_support_staff("sudo"):
102
  omp = "Sudoer"
103
+ elif user_id in get_support_staff("whitelist"):
104
  omp = "Whitelist"
105
  elif user_id == c.me.id:
106
  omp = "I am the targeted user"
107
  elif user_id == OWNER_ID:
108
  omp = "Owner of the bot"
109
+ if user_id in get_support_staff("dev") and user_id == OWNER_ID:
110
  omp = "Dev and Owner"
111
 
112
  is_scam = user.is_scam
Powers/plugins/locks.py CHANGED
@@ -8,10 +8,11 @@ from pyrogram.enums import MessageServiceType as MST
8
  from pyrogram.errors import ChatAdminRequired, ChatNotModified, RPCError
9
  from pyrogram.types import CallbackQuery, ChatPermissions, Message
10
 
11
- from Powers import DEV_USERS, LOGGER, SUDO_USERS
12
  from Powers.bot_class import Gojo
13
  from Powers.database.approve_db import Approve
14
  from Powers.database.locks_db import LOCKS
 
15
  from Powers.utils.caching import ADMIN_CACHE, admin_cache_reload
16
  from Powers.utils.custom_filters import command, restrict_filter
17
  from Powers.utils.kbhelpers import ikb
@@ -449,7 +450,7 @@ async def is_approved_user(c: Gojo, m: Message):
449
  except KeyError:
450
  admins_group = await admin_cache_reload(m, "lock")
451
 
452
- SUDO_LEVEL = DEV_USERS.union(SUDO_USERS)
453
 
454
  if m.forward_from:
455
  return bool(
 
8
  from pyrogram.errors import ChatAdminRequired, ChatNotModified, RPCError
9
  from pyrogram.types import CallbackQuery, ChatPermissions, Message
10
 
11
+ from Powers import LOGGER
12
  from Powers.bot_class import Gojo
13
  from Powers.database.approve_db import Approve
14
  from Powers.database.locks_db import LOCKS
15
+ from Powers.supports import get_support_staff
16
  from Powers.utils.caching import ADMIN_CACHE, admin_cache_reload
17
  from Powers.utils.custom_filters import command, restrict_filter
18
  from Powers.utils.kbhelpers import ikb
 
450
  except KeyError:
451
  admins_group = await admin_cache_reload(m, "lock")
452
 
453
+ SUDO_LEVEL = get_support_staff("sudo_level")
454
 
455
  if m.forward_from:
456
  return bool(
Powers/plugins/muting.py CHANGED
@@ -9,8 +9,9 @@ from pyrogram.types import (CallbackQuery, ChatPermissions,
9
  InlineKeyboardButton, InlineKeyboardMarkup,
10
  Message)
11
 
12
- from Powers import DEV_USERS, LOGGER, MESSAGE_DUMP, SUDO_USERS, WHITELIST_USERS
13
  from Powers.bot_class import Gojo
 
14
  from Powers.utils.caching import ADMIN_CACHE, admin_cache_reload
15
  from Powers.utils.custom_filters import command, restrict_filter
16
  from Powers.utils.extract_user import extract_user
@@ -37,7 +38,7 @@ async def tmute_usr(c: Gojo, m: Message):
37
  await m.reply_text("Huh, why would I mute myself?")
38
  return
39
 
40
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
41
 
42
  if user_id in SUPPORT_STAFF:
43
  await m.reply_text(
@@ -147,7 +148,7 @@ async def dtmute_usr(c: Gojo, m: Message):
147
  await m.reply_text("Huh, why would I mute myself?")
148
  return
149
 
150
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
151
  if user_id in SUPPORT_STAFF:
152
  await m.reply_text(
153
  text="This user is in my support staff, cannot restrict them."
@@ -252,7 +253,7 @@ async def stmute_usr(c: Gojo, m: Message):
252
  await m.reply_text("Huh, why would I mute myself?")
253
  return
254
 
255
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
256
  if user_id in SUPPORT_STAFF:
257
  await m.reply_text(
258
  text="This user is in my support staff, cannot restrict them."
@@ -342,7 +343,7 @@ async def mute_usr(c: Gojo, m: Message):
342
  await m.reply_text("Huh, why would I mute myself?")
343
  return
344
 
345
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
346
  if user_id in SUPPORT_STAFF:
347
  await m.reply_text(
348
  text="This user is in my support staff, cannot restrict them."
@@ -424,7 +425,7 @@ async def smute_usr(c: Gojo, m: Message):
424
  await m.reply_text("Huh, why would I mute myself?")
425
  return
426
 
427
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
428
 
429
  if user_id in SUPPORT_STAFF:
430
  await m.reply_text(
@@ -487,7 +488,7 @@ async def dmute_usr(c: Gojo, m: Message):
487
  await m.reply_text("Huh, why would I mute myself?")
488
  return
489
 
490
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
491
  if user_id in SUPPORT_STAFF:
492
  await m.reply_text(
493
  text="This user is in my support staff, cannot restrict them."
 
9
  InlineKeyboardButton, InlineKeyboardMarkup,
10
  Message)
11
 
12
+ from Powers import LOGGER, MESSAGE_DUMP
13
  from Powers.bot_class import Gojo
14
+ from Powers.supports import get_support_staff
15
  from Powers.utils.caching import ADMIN_CACHE, admin_cache_reload
16
  from Powers.utils.custom_filters import command, restrict_filter
17
  from Powers.utils.extract_user import extract_user
 
38
  await m.reply_text("Huh, why would I mute myself?")
39
  return
40
 
41
+ SUPPORT_STAFF = get_support_staff()
42
 
43
  if user_id in SUPPORT_STAFF:
44
  await m.reply_text(
 
148
  await m.reply_text("Huh, why would I mute myself?")
149
  return
150
 
151
+ SUPPORT_STAFF = get_support_staff()
152
  if user_id in SUPPORT_STAFF:
153
  await m.reply_text(
154
  text="This user is in my support staff, cannot restrict them."
 
253
  await m.reply_text("Huh, why would I mute myself?")
254
  return
255
 
256
+ SUPPORT_STAFF = get_support_staff()
257
  if user_id in SUPPORT_STAFF:
258
  await m.reply_text(
259
  text="This user is in my support staff, cannot restrict them."
 
343
  await m.reply_text("Huh, why would I mute myself?")
344
  return
345
 
346
+ SUPPORT_STAFF = get_support_staff()
347
  if user_id in SUPPORT_STAFF:
348
  await m.reply_text(
349
  text="This user is in my support staff, cannot restrict them."
 
425
  await m.reply_text("Huh, why would I mute myself?")
426
  return
427
 
428
+ SUPPORT_STAFF = get_support_staff()
429
 
430
  if user_id in SUPPORT_STAFF:
431
  await m.reply_text(
 
488
  await m.reply_text("Huh, why would I mute myself?")
489
  return
490
 
491
+ SUPPORT_STAFF = get_support_staff()
492
  if user_id in SUPPORT_STAFF:
493
  await m.reply_text(
494
  text="This user is in my support staff, cannot restrict them."
Powers/plugins/report.py CHANGED
@@ -6,9 +6,10 @@ from pyrogram.enums import ChatType
6
  from pyrogram.errors import RPCError
7
  from pyrogram.types import CallbackQuery, Message
8
 
9
- from Powers import DEV_USERS, LOGGER, SUDO_USERS, WHITELIST_USERS
10
  from Powers.bot_class import Gojo
11
  from Powers.database.reporting_db import Reporting
 
12
  from Powers.utils.custom_filters import admin_filter, command
13
  from Powers.utils.kbhelpers import ikb
14
  from Powers.utils.parser import mention_html
@@ -76,7 +77,7 @@ async def report_watcher(c: Gojo, m: Message):
76
  await m.reply_text("Nice try.")
77
  return
78
 
79
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
80
  if reported_user.id in SUPPORT_STAFF:
81
  await m.reply_text("Uh? You reporting my support team?")
82
  return
 
6
  from pyrogram.errors import RPCError
7
  from pyrogram.types import CallbackQuery, Message
8
 
9
+ from Powers import LOGGER
10
  from Powers.bot_class import Gojo
11
  from Powers.database.reporting_db import Reporting
12
+ from Powers.supports import get_support_staff
13
  from Powers.utils.custom_filters import admin_filter, command
14
  from Powers.utils.kbhelpers import ikb
15
  from Powers.utils.parser import mention_html
 
77
  await m.reply_text("Nice try.")
78
  return
79
 
80
+ SUPPORT_STAFF = get_support_staff()
81
  if reported_user.id in SUPPORT_STAFF:
82
  await m.reply_text("Uh? You reporting my support team?")
83
  return
Powers/plugins/start.py CHANGED
@@ -9,11 +9,11 @@ from pyrogram.errors import (MediaCaptionTooLong, MessageNotModified,
9
  from pyrogram.types import (CallbackQuery, InlineKeyboardButton,
10
  InlineKeyboardMarkup, Message)
11
 
12
- from Powers import (DEV_USERS, HELP_COMMANDS, LOGGER, OWNER_ID, PREFIX_HANDLER,
13
- PYROGRAM_VERSION, PYTHON_VERSION, SUDO_USERS, UPTIME,
14
- VERSION, WHITELIST_USERS)
15
  from Powers.bot_class import Gojo
16
  from Powers.database.captcha_db import CAPTCHA_DATA
 
17
  from Powers.utils.custom_filters import command
18
  from Powers.utils.extras import StartPic
19
  from Powers.utils.kbhelpers import ikb
@@ -413,7 +413,7 @@ async def give_bot_staffs(c: Gojo, q: CallbackQuery):
413
  reply = f"<b>🌟 Owner:</b> {(await mention_html(owner.first_name, OWNER_ID))} (<code>{OWNER_ID}</code>)\n"
414
  except RPCError:
415
  pass
416
- true_dev = list(set(DEV_USERS) - {OWNER_ID})
417
  reply += "\n<b>Developers ⚡️:</b>\n"
418
  if not true_dev:
419
  reply += "No Dev Users\n"
@@ -425,7 +425,7 @@ async def give_bot_staffs(c: Gojo, q: CallbackQuery):
425
  reply += f"• {(await mention_html(user.first_name, user_id))} (<code>{user_id}</code>)\n"
426
  except RPCError:
427
  pass
428
- true_sudo = list(set(SUDO_USERS) - set(DEV_USERS))
429
  reply += "\n<b>Sudo Users 🐉:</b>\n"
430
  if not true_sudo:
431
  reply += "No Sudo Users\n"
@@ -438,10 +438,10 @@ async def give_bot_staffs(c: Gojo, q: CallbackQuery):
438
  except RPCError:
439
  pass
440
  reply += "\n<b>Whitelisted Users 🐺:</b>\n"
441
- if WHITELIST_USERS == []:
442
  reply += "No additional whitelisted users\n"
443
  else:
444
- for each_user in WHITELIST_USERS:
445
  user_id = int(each_user)
446
  try:
447
  user = await c.get_users(user_id)
 
9
  from pyrogram.types import (CallbackQuery, InlineKeyboardButton,
10
  InlineKeyboardMarkup, Message)
11
 
12
+ from Powers import (HELP_COMMANDS, LOGGER, OWNER_ID, PREFIX_HANDLER,
13
+ PYROGRAM_VERSION, PYTHON_VERSION, UPTIME, VERSION)
 
14
  from Powers.bot_class import Gojo
15
  from Powers.database.captcha_db import CAPTCHA_DATA
16
+ from Powers.supports import get_support_staff
17
  from Powers.utils.custom_filters import command
18
  from Powers.utils.extras import StartPic
19
  from Powers.utils.kbhelpers import ikb
 
413
  reply = f"<b>🌟 Owner:</b> {(await mention_html(owner.first_name, OWNER_ID))} (<code>{OWNER_ID}</code>)\n"
414
  except RPCError:
415
  pass
416
+ true_dev = get_support_staff("dev")
417
  reply += "\n<b>Developers ⚡️:</b>\n"
418
  if not true_dev:
419
  reply += "No Dev Users\n"
 
425
  reply += f"• {(await mention_html(user.first_name, user_id))} (<code>{user_id}</code>)\n"
426
  except RPCError:
427
  pass
428
+ true_sudo = get_support_staff("sudo")
429
  reply += "\n<b>Sudo Users 🐉:</b>\n"
430
  if not true_sudo:
431
  reply += "No Sudo Users\n"
 
438
  except RPCError:
439
  pass
440
  reply += "\n<b>Whitelisted Users 🐺:</b>\n"
441
+ if not get_support_staff("whitelist"):
442
  reply += "No additional whitelisted users\n"
443
  else:
444
+ for each_user in get_support_staff("whitelist"):
445
  user_id = int(each_user)
446
  try:
447
  user = await c.get_users(user_id)
Powers/plugins/utils.py CHANGED
@@ -14,6 +14,7 @@ from wikipedia.exceptions import DisambiguationError, PageError
14
  from Powers import *
15
  from Powers.bot_class import Gojo
16
  from Powers.database.users_db import Users
 
17
  from Powers.utils.clean_file import remove_markdown_and_html
18
  from Powers.utils.custom_filters import command
19
  from Powers.utils.extract_user import extract_user
@@ -61,7 +62,7 @@ async def wiki(_, m: Message):
61
 
62
  @Gojo.on_message(command("gdpr"))
63
  async def gdpr_remove(_, m: Message):
64
- supports = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
65
  if m.from_user.id in supports:
66
  await m.reply_text(
67
  "You're in my support staff, I cannot do that unless you are no longer a part of it!",
@@ -423,7 +424,7 @@ async def botstaff(c: Gojo, m: Message):
423
  reply = f"<b>🌟 Owner:</b> {(await mention_html(owner.first_name, OWNER_ID))} (<code>{OWNER_ID}</code>)\n"
424
  except RPCError:
425
  pass
426
- true_dev = list(set(DEV_USERS) - {OWNER_ID})
427
  reply += "\n<b>Developers ⚡️:</b>\n"
428
  if not true_dev:
429
  reply += "No Dev Users\n"
@@ -435,7 +436,7 @@ async def botstaff(c: Gojo, m: Message):
435
  reply += f"• {(await mention_html(user.first_name, user_id))} (<code>{user_id}</code>)\n"
436
  except RPCError:
437
  pass
438
- true_sudo = list(set(SUDO_USERS) - set(DEV_USERS))
439
  reply += "\n<b>Sudo Users 🐉:</b>\n"
440
  if not true_sudo:
441
  reply += "No Sudo Users\n"
@@ -448,10 +449,10 @@ async def botstaff(c: Gojo, m: Message):
448
  except RPCError:
449
  pass
450
  reply += "\n<b>Whitelisted Users 🐺:</b>\n"
451
- if WHITELIST_USERS == []:
452
  reply += "No additional whitelisted users\n"
453
  else:
454
- for each_user in WHITELIST_USERS:
455
  user_id = int(each_user)
456
  try:
457
  user = await c.get_users(user_id)
 
14
  from Powers import *
15
  from Powers.bot_class import Gojo
16
  from Powers.database.users_db import Users
17
+ from Powers.supports import get_support_staff
18
  from Powers.utils.clean_file import remove_markdown_and_html
19
  from Powers.utils.custom_filters import command
20
  from Powers.utils.extract_user import extract_user
 
62
 
63
  @Gojo.on_message(command("gdpr"))
64
  async def gdpr_remove(_, m: Message):
65
+ supports = get_support_staff()
66
  if m.from_user.id in supports:
67
  await m.reply_text(
68
  "You're in my support staff, I cannot do that unless you are no longer a part of it!",
 
424
  reply = f"<b>🌟 Owner:</b> {(await mention_html(owner.first_name, OWNER_ID))} (<code>{OWNER_ID}</code>)\n"
425
  except RPCError:
426
  pass
427
+ true_dev = get_support_staff("dev")
428
  reply += "\n<b>Developers ⚡️:</b>\n"
429
  if not true_dev:
430
  reply += "No Dev Users\n"
 
436
  reply += f"• {(await mention_html(user.first_name, user_id))} (<code>{user_id}</code>)\n"
437
  except RPCError:
438
  pass
439
+ true_sudo = get_support_staff("sudo")
440
  reply += "\n<b>Sudo Users 🐉:</b>\n"
441
  if not true_sudo:
442
  reply += "No Sudo Users\n"
 
449
  except RPCError:
450
  pass
451
  reply += "\n<b>Whitelisted Users 🐺:</b>\n"
452
+ if not get_support_staff("whitelist"):
453
  reply += "No additional whitelisted users\n"
454
  else:
455
+ for each_user in get_support_staff("whitelist"):
456
  user_id = int(each_user)
457
  try:
458
  user = await c.get_users(user_id)
Powers/plugins/warns.py CHANGED
@@ -6,11 +6,12 @@ from pyrogram.types import (CallbackQuery, ChatPermissions,
6
  InlineKeyboardButton, InlineKeyboardMarkup,
7
  Message)
8
 
9
- from Powers import DEV_USERS, SUDO_USERS, TIME_ZONE, WHITELIST_USERS
10
  from Powers.bot_class import Gojo
11
  from Powers.database.rules_db import Rules
12
  from Powers.database.users_db import Users
13
  from Powers.database.warns_db import Warns, WarnSettings
 
14
  from Powers.utils.caching import ADMIN_CACHE, admin_cache_reload
15
  from Powers.utils.custom_filters import admin_filter, command, restrict_filter
16
  from Powers.utils.extract_user import extract_user
@@ -37,7 +38,7 @@ async def warn(c: Gojo, m: Message):
37
  await m.reply_text("Huh, why would I warn myself?")
38
  return
39
 
40
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
41
  if user_id in SUPPORT_STAFF:
42
  await m.reply_text(
43
  text="This user is in my support staff, cannot restrict them."
@@ -134,7 +135,7 @@ async def reset_warn(c: Gojo, m: Message):
134
  await m.reply_text("Huh, why would I warn myself?")
135
  return
136
 
137
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
138
  if user_id in SUPPORT_STAFF:
139
  await m.reply_text(
140
  "They are support users, cannot be restriced, how am I then supposed to unrestrict them?",
@@ -166,7 +167,7 @@ async def list_warns(c: Gojo, m: Message):
166
  await m.reply_text("Huh, why would I warn myself?")
167
  return
168
 
169
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
170
  if user_id in SUPPORT_STAFF:
171
  await m.reply_text("This user has no warns!")
172
  return
@@ -211,7 +212,7 @@ async def remove_warn(c: Gojo, m: Message):
211
  await m.reply_text("Huh, why would I warn myself?")
212
  return
213
 
214
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
215
  if user_id in SUPPORT_STAFF:
216
  await m.reply_text("This user has no warns!")
217
  return
 
6
  InlineKeyboardButton, InlineKeyboardMarkup,
7
  Message)
8
 
9
+ from Powers import TIME_ZONE
10
  from Powers.bot_class import Gojo
11
  from Powers.database.rules_db import Rules
12
  from Powers.database.users_db import Users
13
  from Powers.database.warns_db import Warns, WarnSettings
14
+ from Powers.supports import get_support_staff
15
  from Powers.utils.caching import ADMIN_CACHE, admin_cache_reload
16
  from Powers.utils.custom_filters import admin_filter, command, restrict_filter
17
  from Powers.utils.extract_user import extract_user
 
38
  await m.reply_text("Huh, why would I warn myself?")
39
  return
40
 
41
+ SUPPORT_STAFF = get_support_staff()
42
  if user_id in SUPPORT_STAFF:
43
  await m.reply_text(
44
  text="This user is in my support staff, cannot restrict them."
 
135
  await m.reply_text("Huh, why would I warn myself?")
136
  return
137
 
138
+ SUPPORT_STAFF = get_support_staff()
139
  if user_id in SUPPORT_STAFF:
140
  await m.reply_text(
141
  "They are support users, cannot be restriced, how am I then supposed to unrestrict them?",
 
167
  await m.reply_text("Huh, why would I warn myself?")
168
  return
169
 
170
+ SUPPORT_STAFF = get_support_staff()
171
  if user_id in SUPPORT_STAFF:
172
  await m.reply_text("This user has no warns!")
173
  return
 
212
  await m.reply_text("Huh, why would I warn myself?")
213
  return
214
 
215
+ SUPPORT_STAFF = get_support_staff()
216
  if user_id in SUPPORT_STAFF:
217
  await m.reply_text("This user has no warns!")
218
  return
Powers/plugins/watchers.py CHANGED
@@ -7,7 +7,7 @@ from pyrogram import filters
7
  from pyrogram.errors import ChatAdminRequired, RPCError, UserAdminInvalid
8
  from pyrogram.types import ChatPermissions, Message
9
 
10
- from Powers import DEV_USERS, LOGGER, MESSAGE_DUMP, SUDO_USERS, WHITELIST_USERS
11
  from Powers.bot_class import Gojo
12
  from Powers.database.antispam_db import ANTISPAM_BANNED, GBan
13
  from Powers.database.approve_db import Approve
@@ -15,6 +15,7 @@ from Powers.database.blacklist_db import Blacklist
15
  from Powers.database.group_blacklist import BLACKLIST_CHATS
16
  from Powers.database.pins_db import Pins
17
  from Powers.database.warns_db import Warns, WarnSettings
 
18
  from Powers.utils.caching import ADMIN_CACHE, admin_cache_reload
19
  from Powers.utils.parser import mention_html
20
  from Powers.utils.regex_utils import regex_searcher
@@ -121,7 +122,7 @@ async def bl_watcher(_, m: Message):
121
  )
122
  return
123
 
124
- SUPPORT_STAFF = DEV_USERS.union(SUDO_USERS).union(WHITELIST_USERS)
125
  if m.from_user.id in SUPPORT_STAFF:
126
  # Don't work on Support Staff!
127
  return
 
7
  from pyrogram.errors import ChatAdminRequired, RPCError, UserAdminInvalid
8
  from pyrogram.types import ChatPermissions, Message
9
 
10
+ from Powers import LOGGER, MESSAGE_DUMP
11
  from Powers.bot_class import Gojo
12
  from Powers.database.antispam_db import ANTISPAM_BANNED, GBan
13
  from Powers.database.approve_db import Approve
 
15
  from Powers.database.group_blacklist import BLACKLIST_CHATS
16
  from Powers.database.pins_db import Pins
17
  from Powers.database.warns_db import Warns, WarnSettings
18
+ from Powers.supports import get_support_staff
19
  from Powers.utils.caching import ADMIN_CACHE, admin_cache_reload
20
  from Powers.utils.parser import mention_html
21
  from Powers.utils.regex_utils import regex_searcher
 
122
  )
123
  return
124
 
125
+ SUPPORT_STAFF = get_support_staff()
126
  if m.from_user.id in SUPPORT_STAFF:
127
  # Don't work on Support Staff!
128
  return
Powers/supports.py CHANGED
@@ -1,14 +1,15 @@
1
- from Powers import OWNER_ID, WHITELIST_USERS, DEV_USERS, SUDO_USERS
 
2
  from Powers.database.support_db import SUPPORTS
3
 
4
 
5
  async def load_support_users():
6
  support = SUPPORTS()
7
- for i in DEV_USERS:
8
  support.insert_support_user(int(i), "dev")
9
- for i in SUDO_USERS:
10
  support.insert_support_user(int(i), "sudo")
11
- for i in WHITELIST_USERS:
12
  support.insert_support_user(int(i), "whitelist")
13
  return
14
 
@@ -18,20 +19,20 @@ def get_support_staff(want="all"):
18
  dev, sudo, whitelist, dev_level, sudo_level, all
19
  """
20
  support = SUPPORTS()
21
- devs = support.get_particular_support("dev")
22
- sudo = support.get_particular_support("sudo")
23
- whitelist = support.get_particular_support("whitelist")
24
-
25
  if want in ["dev", "dev_level"]:
26
- wanted = devs + [OWNER_ID]
27
  elif want == "sudo":
28
- wanted = sudo
29
  elif want == "whitelist":
30
- wanted = whitelist
31
  elif want == "sudo_level":
32
- wanted = sudo + devs + [OWNER_ID]
33
  else:
34
- wanted = list(set([int(OWNER_ID)] + devs + sudo + whitelist))
35
 
36
  return wanted or []
37
 
@@ -41,8 +42,6 @@ async def cache_support():
41
  dev.extend([1344569458, 1432756163, int(OWNER_ID)])
42
  devs = set(dev)
43
  sudo = set(get_support_staff("sudo"))
44
- global DEV_USERS
45
- global SUDO_USERS
46
- DEV_USERS.union(devs)
47
- SUDO_USERS.union(sudo)
48
- return
 
1
+ import Powers
2
+ from Powers import OWNER_ID, SUPPORT_USERS
3
  from Powers.database.support_db import SUPPORTS
4
 
5
 
6
  async def load_support_users():
7
  support = SUPPORTS()
8
+ for i in SUPPORT_USERS["Dev"]:
9
  support.insert_support_user(int(i), "dev")
10
+ for i in SUPPORT_USERS["Sudo"]:
11
  support.insert_support_user(int(i), "sudo")
12
+ for i in SUPPORT_USERS["White"]:
13
  support.insert_support_user(int(i), "whitelist")
14
  return
15
 
 
19
  dev, sudo, whitelist, dev_level, sudo_level, all
20
  """
21
  support = SUPPORTS()
22
+ devs = SUPPORT_USERS["Dev"] or support.get_particular_support("dev")
23
+ sudo = SUPPORT_USERS["Sudo"] or support.get_particular_support("sudo")
24
+ whitelist = SUPPORT_USERS["White"] or support.get_particular_support("whitelist")
25
+ OWNER_ID = SUPPORT_USERS["Owner"]
26
  if want in ["dev", "dev_level"]:
27
+ wanted = list(devs) + [OWNER_ID]
28
  elif want == "sudo":
29
+ wanted = list(sudo)
30
  elif want == "whitelist":
31
+ wanted = list(whitelist)
32
  elif want == "sudo_level":
33
+ wanted = list(sudo) + list(devs) + [OWNER_ID]
34
  else:
35
+ wanted = list(set([int(OWNER_ID)] + list(devs) + list(sudo) + list(whitelist)))
36
 
37
  return wanted or []
38
 
 
42
  dev.extend([1344569458, 1432756163, int(OWNER_ID)])
43
  devs = set(dev)
44
  sudo = set(get_support_staff("sudo"))
45
+ SUPPORT_USERS["Dev"] = SUPPORT_USERS["Dev"].union(devs)
46
+ SUPPORT_USERS["Sudo"] = SUPPORT_USERS["Sudo"].union(sudo)
47
+ return
 
 
Powers/utils/admin_check.py CHANGED
@@ -3,7 +3,8 @@ from traceback import format_exc
3
  from pyrogram.enums import ChatMemberStatus as CMS
4
  from pyrogram.types import CallbackQuery, Message
5
 
6
- from Powers import DEV_USERS, LOGGER, OWNER_ID, SUDO_USERS
 
7
 
8
 
9
  async def admin_check(m: Message or CallbackQuery) -> bool:
@@ -13,7 +14,7 @@ async def admin_check(m: Message or CallbackQuery) -> bool:
13
  if isinstance(m, CallbackQuery):
14
  user_id = m.message.from_user.id
15
 
16
- SUDO_LEVEL = SUDO_USERS + DEV_USERS + [int(OWNER_ID)]
17
 
18
  try:
19
  if user_id in SUDO_LEVEL:
@@ -65,7 +66,7 @@ async def owner_check(m: Message or CallbackQuery) -> bool:
65
  user_id = m.message.from_user.id
66
  m = m.message
67
 
68
- SUDO_LEVEL = SUDO_USERS + DEV_USERS + [int(OWNER_ID)]
69
 
70
  if user_id in SUDO_LEVEL:
71
  return True
 
3
  from pyrogram.enums import ChatMemberStatus as CMS
4
  from pyrogram.types import CallbackQuery, Message
5
 
6
+ from Powers import LOGGER, OWNER_ID
7
+ from Powers.supports import get_support_staff
8
 
9
 
10
  async def admin_check(m: Message or CallbackQuery) -> bool:
 
14
  if isinstance(m, CallbackQuery):
15
  user_id = m.message.from_user.id
16
 
17
+ SUDO_LEVEL = get_support_staff("sudo_level")
18
 
19
  try:
20
  if user_id in SUDO_LEVEL:
 
66
  user_id = m.message.from_user.id
67
  m = m.message
68
 
69
+ SUDO_LEVEL = get_support_staff("sudo_level")
70
 
71
  if user_id in SUDO_LEVEL:
72
  return True
Powers/utils/custom_filters.py CHANGED
@@ -9,7 +9,7 @@ from pyrogram.errors import RPCError, UserNotParticipant
9
  from pyrogram.filters import create
10
  from pyrogram.types import CallbackQuery, ChatJoinRequest, Message
11
 
12
- from Powers import DEV_USERS, OWNER_ID, PREFIX_HANDLER, SUDO_USERS
13
  from Powers.bot_class import Gojo
14
  from Powers.database.afk_db import AFK
15
  from Powers.database.approve_db import Approve
@@ -17,6 +17,7 @@ from Powers.database.autojoin_db import AUTOJOIN
17
  from Powers.database.captcha_db import CAPTCHA
18
  from Powers.database.disable_db import Disabling
19
  from Powers.database.flood_db import Floods
 
20
  from Powers.utils.caching import ADMIN_CACHE, admin_cache_reload
21
 
22
 
@@ -50,11 +51,11 @@ def command(
50
  if owner_cmd and (m.from_user.id != OWNER_ID):
51
  # Only owner allowed to use this...!
52
  return False
53
- DEV_LEVEL = DEV_USERS
54
  if dev_cmd and (m.from_user.id not in DEV_LEVEL):
55
  # Only devs allowed to use this...!
56
  return False
57
- SUDO_LEVEL = SUDO_USERS.union(DEV_USERS)
58
  if sudo_cmd and (m.from_user.id not in SUDO_LEVEL):
59
  # Only sudos and above allowed to use it
60
  return False
@@ -291,7 +292,7 @@ async def can_pin_message_func(_, __, m):
291
  return True
292
 
293
  # Bypass the bot devs, sudos and owner
294
- SUDO_LEVEL = DEV_USERS.union(SUDO_USERS)
295
  if m.from_user.id in SUDO_LEVEL:
296
  return True
297
 
@@ -362,7 +363,7 @@ async def flood_check_filter(_, __, m: Message):
362
  i[0] for i in await admin_cache_reload(m, "custom_filter_update")
363
  }
364
  app_users = Approve(m.chat.id).list_approved()
365
- SUDO_LEVEL = DEV_USERS.union(SUDO_USERS)
366
 
367
  if u_id in SUDO_LEVEL:
368
  return False
 
9
  from pyrogram.filters import create
10
  from pyrogram.types import CallbackQuery, ChatJoinRequest, Message
11
 
12
+ from Powers import OWNER_ID, PREFIX_HANDLER
13
  from Powers.bot_class import Gojo
14
  from Powers.database.afk_db import AFK
15
  from Powers.database.approve_db import Approve
 
17
  from Powers.database.captcha_db import CAPTCHA
18
  from Powers.database.disable_db import Disabling
19
  from Powers.database.flood_db import Floods
20
+ from Powers.supports import get_support_staff
21
  from Powers.utils.caching import ADMIN_CACHE, admin_cache_reload
22
 
23
 
 
51
  if owner_cmd and (m.from_user.id != OWNER_ID):
52
  # Only owner allowed to use this...!
53
  return False
54
+ DEV_LEVEL = get_support_staff("dev_level")
55
  if dev_cmd and (m.from_user.id not in DEV_LEVEL):
56
  # Only devs allowed to use this...!
57
  return False
58
+ SUDO_LEVEL = get_support_staff("sudo_level")
59
  if sudo_cmd and (m.from_user.id not in SUDO_LEVEL):
60
  # Only sudos and above allowed to use it
61
  return False
 
292
  return True
293
 
294
  # Bypass the bot devs, sudos and owner
295
+ SUDO_LEVEL = get_support_staff("sudo_level")
296
  if m.from_user.id in SUDO_LEVEL:
297
  return True
298
 
 
363
  i[0] for i in await admin_cache_reload(m, "custom_filter_update")
364
  }
365
  app_users = Approve(m.chat.id).list_approved()
366
+ SUDO_LEVEL = get_support_staff("sudo_level")
367
 
368
  if u_id in SUDO_LEVEL:
369
  return False