Captain Ezio commited on
Commit
af45fef
·
1 Parent(s): 26c93b1

Looks good

Browse files
Files changed (1) hide show
  1. Powers/plugins/admin.py +32 -4
Powers/plugins/admin.py CHANGED
@@ -5,11 +5,11 @@ from pyrogram import filters
5
  from Powers.vars import Config
6
  from traceback import format_exc
7
  from Powers.bot_class import Gojo
8
- from pyrogram.types import Message, ChatPrivileges
9
  from Powers.utils.parser import mention_html
10
  from Powers.database.approve_db import Approve
11
  from Powers.database.reporting_db import Reporting
12
  from Powers.utils.extract_user import extract_user
 
13
  from pyrogram.enums import ChatType, ChatMemberStatus as CMS
14
  from Powers import LOGGER, OWNER_ID, DEV_USERS, SUPPORT_GROUP, SUPPORT_STAFF
15
  from Powers.utils.caching import (
@@ -19,6 +19,8 @@ from Powers.utils.custom_filters import (
19
  from pyrogram.errors import (
20
  RPCError, FloodWait, RightForbidden, UserAdminInvalid, ChatAdminRequired,
21
  ChatAdminInviteRequired)
 
 
22
  @Gojo.on_message(command("adminlist"))
23
  async def adminlist_show(_, m: Message):
24
  global ADMIN_CACHE
@@ -73,6 +75,8 @@ async def adminlist_show(_, m: Message):
73
  LOGGER.error(ef)
74
  LOGGER.error(format_exc())
75
  return
 
 
76
  @Gojo.on_message(command("zombies") & owner_filter)
77
  async def zombie_clean(c: Gojo, m: Message):
78
  zombie = 0
@@ -91,6 +95,8 @@ async def zombie_clean(c: Gojo, m: Message):
91
  return await wait.edit_text(
92
  text=f"<b>{zombie}</b> Zombies found and has been banned!",
93
  )
 
 
94
  @Gojo.on_message(command("admincache"))
95
  async def reload_admins(_, m: Message):
96
  global TEMP_ADMIN_CACHE_BLOCK
@@ -117,6 +123,8 @@ async def reload_admins(_, m: Message):
117
  LOGGER.error(ef)
118
  LOGGER.error(format_exc())
119
  return
 
 
120
  @Gojo.on_message(filters.regex(r"^(?i)@admin(s)?") & filters.group)
121
  async def tag_admins(_, m: Message):
122
  db = Reporting(m.chat.id)
@@ -136,6 +144,8 @@ async def tag_admins(_, m: Message):
136
  f" reported the message to admins!{mention_str}"
137
  ),
138
  )
 
 
139
  @Gojo.on_message(command("fullpromote") & promote_filter)
140
  async def fullpromote_usr(c: Gojo, m: Message):
141
  global ADMIN_CACHE
@@ -174,7 +184,7 @@ async def fullpromote_usr(c: Gojo, m: Message):
174
  try:
175
  await m.chat.promote_member(user_id=user_id, privileges=bot.privileges)
176
  if not m.chat.type == ChatType.SUPERGROUP:
177
- title = "Gojo" # Default fullpromote title
178
  if len(m.text.split()) == 3 and not m.reply_to_message:
179
  title = m.text.split()[2]
180
  elif len(m.text.split()) == 2 and m.reply_to_message:
@@ -190,7 +200,9 @@ async def fullpromote_usr(c: Gojo, m: Message):
190
  f"{m.from_user.id} fullpromoted {user_id} in {m.chat.id} with title '{title}'",
191
  )
192
  await m.reply_text(
193
- ("{promoter} promoted {promoted} in chat <b>{chat_title}</b> with full rights!").format(
 
 
194
  promoter=(await mention_html(m.from_user.first_name, m.from_user.id)),
195
  promoted=(await mention_html(user_first_name, user_id)),
196
  chat_title=f"{escape(m.chat.title)} title set to {title}"
@@ -225,6 +237,8 @@ async def fullpromote_usr(c: Gojo, m: Message):
225
  LOGGER.error(e)
226
  LOGGER.error(format_exc())
227
  return
 
 
228
  @Gojo.on_message(command("promote") & promote_filter)
229
  async def promote_usr(c: Gojo, m: Message):
230
  global ADMIN_CACHE
@@ -278,7 +292,7 @@ async def promote_usr(c: Gojo, m: Message):
278
  title = m.text.split()[1]
279
  if title and len(title) > 16:
280
  title = title[0:16] # trim title to 16 characters
281
-
282
  try:
283
  await c.set_administrator_title(m.chat.id, user_id, title)
284
  except RPCError as e:
@@ -322,6 +336,8 @@ async def promote_usr(c: Gojo, m: Message):
322
  LOGGER.error(e)
323
  LOGGER.error(format_exc())
324
  return
 
 
325
  @Gojo.on_message(command("demote") & promote_filter)
326
  async def demote_usr(c: Gojo, m: Message):
327
  global ADMIN_CACHE
@@ -388,6 +404,8 @@ async def demote_usr(c: Gojo, m: Message):
388
  LOGGER.error(ef)
389
  LOGGER.error(format_exc())
390
  return
 
 
391
  @Gojo.on_message(command("invitelink"))
392
  async def get_invitelink(c: Gojo, m: Message):
393
  # Bypass the bot devs, sudos and owner
@@ -416,6 +434,8 @@ async def get_invitelink(c: Gojo, m: Message):
416
  LOGGER.error(ef)
417
  LOGGER.error(format_exc())
418
  return
 
 
419
  @Gojo.on_message(command("setgtitle") & admin_filter)
420
  async def setgtitle(_, m: Message):
421
  user = await m.chat.get_member(m.from_user.id)
@@ -434,6 +454,8 @@ async def setgtitle(_, m: Message):
434
  return await m.reply_text(
435
  f"Successfully Changed Group Title From {m.chat.title} To {gtit}",
436
  )
 
 
437
  @Gojo.on_message(command("setgdes") & admin_filter)
438
  async def setgdes(_, m: Message):
439
  user = await m.chat.get_member(m.from_user.id)
@@ -452,6 +474,8 @@ async def setgdes(_, m: Message):
452
  return await m.reply_text(
453
  f"Successfully Changed Group description From {m.chat.description} To {desp}",
454
  )
 
 
455
  @Gojo.on_message(command("title") & admin_filter)
456
  async def set_user_title(c: Gojo, m: Message):
457
  user = await m.chat.get_member(m.from_user.id)
@@ -487,6 +511,8 @@ async def set_user_title(c: Gojo, m: Message):
487
  return await m.reply_text(
488
  f"Successfully Changed {from_user.mention}'s Admin Title To {title}",
489
  )
 
 
490
  @Gojo.on_message(command("setgpic") & admin_filter)
491
  async def setgpic(c: Gojo, m: Message):
492
  user = await m.chat.get_member(m.from_user.id)
@@ -507,6 +533,8 @@ async def setgpic(c: Gojo, m: Message):
507
  return await m.reply_text(f"Error: {e}")
508
  await m.reply_text("Successfully Changed Group Photo!")
509
  remove(photo)
 
 
510
  __PLUGIN__ = "admin"
511
  __alt_name__ = [
512
  "admins",
 
5
  from Powers.vars import Config
6
  from traceback import format_exc
7
  from Powers.bot_class import Gojo
 
8
  from Powers.utils.parser import mention_html
9
  from Powers.database.approve_db import Approve
10
  from Powers.database.reporting_db import Reporting
11
  from Powers.utils.extract_user import extract_user
12
+ from pyrogram.types import Message, ChatPrivileges
13
  from pyrogram.enums import ChatType, ChatMemberStatus as CMS
14
  from Powers import LOGGER, OWNER_ID, DEV_USERS, SUPPORT_GROUP, SUPPORT_STAFF
15
  from Powers.utils.caching import (
 
19
  from pyrogram.errors import (
20
  RPCError, FloodWait, RightForbidden, UserAdminInvalid, ChatAdminRequired,
21
  ChatAdminInviteRequired)
22
+
23
+
24
  @Gojo.on_message(command("adminlist"))
25
  async def adminlist_show(_, m: Message):
26
  global ADMIN_CACHE
 
75
  LOGGER.error(ef)
76
  LOGGER.error(format_exc())
77
  return
78
+
79
+
80
  @Gojo.on_message(command("zombies") & owner_filter)
81
  async def zombie_clean(c: Gojo, m: Message):
82
  zombie = 0
 
95
  return await wait.edit_text(
96
  text=f"<b>{zombie}</b> Zombies found and has been banned!",
97
  )
98
+
99
+
100
  @Gojo.on_message(command("admincache"))
101
  async def reload_admins(_, m: Message):
102
  global TEMP_ADMIN_CACHE_BLOCK
 
123
  LOGGER.error(ef)
124
  LOGGER.error(format_exc())
125
  return
126
+
127
+
128
  @Gojo.on_message(filters.regex(r"^(?i)@admin(s)?") & filters.group)
129
  async def tag_admins(_, m: Message):
130
  db = Reporting(m.chat.id)
 
144
  f" reported the message to admins!{mention_str}"
145
  ),
146
  )
147
+
148
+
149
  @Gojo.on_message(command("fullpromote") & promote_filter)
150
  async def fullpromote_usr(c: Gojo, m: Message):
151
  global ADMIN_CACHE
 
184
  try:
185
  await m.chat.promote_member(user_id=user_id, privileges=bot.privileges)
186
  if not m.chat.type == ChatType.SUPERGROUP:
187
+ title = "Gojo" # Default fullpromote title
188
  if len(m.text.split()) == 3 and not m.reply_to_message:
189
  title = m.text.split()[2]
190
  elif len(m.text.split()) == 2 and m.reply_to_message:
 
200
  f"{m.from_user.id} fullpromoted {user_id} in {m.chat.id} with title '{title}'",
201
  )
202
  await m.reply_text(
203
+ (
204
+ "{promoter} promoted {promoted} in chat <b>{chat_title}</b> with full rights!"
205
+ ).format(
206
  promoter=(await mention_html(m.from_user.first_name, m.from_user.id)),
207
  promoted=(await mention_html(user_first_name, user_id)),
208
  chat_title=f"{escape(m.chat.title)} title set to {title}"
 
237
  LOGGER.error(e)
238
  LOGGER.error(format_exc())
239
  return
240
+
241
+
242
  @Gojo.on_message(command("promote") & promote_filter)
243
  async def promote_usr(c: Gojo, m: Message):
244
  global ADMIN_CACHE
 
292
  title = m.text.split()[1]
293
  if title and len(title) > 16:
294
  title = title[0:16] # trim title to 16 characters
295
+
296
  try:
297
  await c.set_administrator_title(m.chat.id, user_id, title)
298
  except RPCError as e:
 
336
  LOGGER.error(e)
337
  LOGGER.error(format_exc())
338
  return
339
+
340
+
341
  @Gojo.on_message(command("demote") & promote_filter)
342
  async def demote_usr(c: Gojo, m: Message):
343
  global ADMIN_CACHE
 
404
  LOGGER.error(ef)
405
  LOGGER.error(format_exc())
406
  return
407
+
408
+
409
  @Gojo.on_message(command("invitelink"))
410
  async def get_invitelink(c: Gojo, m: Message):
411
  # Bypass the bot devs, sudos and owner
 
434
  LOGGER.error(ef)
435
  LOGGER.error(format_exc())
436
  return
437
+
438
+
439
  @Gojo.on_message(command("setgtitle") & admin_filter)
440
  async def setgtitle(_, m: Message):
441
  user = await m.chat.get_member(m.from_user.id)
 
454
  return await m.reply_text(
455
  f"Successfully Changed Group Title From {m.chat.title} To {gtit}",
456
  )
457
+
458
+
459
  @Gojo.on_message(command("setgdes") & admin_filter)
460
  async def setgdes(_, m: Message):
461
  user = await m.chat.get_member(m.from_user.id)
 
474
  return await m.reply_text(
475
  f"Successfully Changed Group description From {m.chat.description} To {desp}",
476
  )
477
+
478
+
479
  @Gojo.on_message(command("title") & admin_filter)
480
  async def set_user_title(c: Gojo, m: Message):
481
  user = await m.chat.get_member(m.from_user.id)
 
511
  return await m.reply_text(
512
  f"Successfully Changed {from_user.mention}'s Admin Title To {title}",
513
  )
514
+
515
+
516
  @Gojo.on_message(command("setgpic") & admin_filter)
517
  async def setgpic(c: Gojo, m: Message):
518
  user = await m.chat.get_member(m.from_user.id)
 
533
  return await m.reply_text(f"Error: {e}")
534
  await m.reply_text("Successfully Changed Group Photo!")
535
  remove(photo)
536
+
537
+
538
  __PLUGIN__ = "admin"
539
  __alt_name__ = [
540
  "admins",