taslim19 commited on
Commit
ee4aeab
·
1 Parent(s): 98e44f0

fix: Resolve flooddb crash and correct admin permissions

Browse files
DragMusic/utils/database.py CHANGED
@@ -1,8 +1,9 @@
1
  import random
 
2
  from typing import Dict, List, Union
3
 
4
  from DragMusic import userbot
5
- from DragMusic.core.mongo import mongodb
6
 
7
  authdb = mongodb.adminauth
8
  authuserdb = mongodb.authuser
@@ -19,7 +20,6 @@ onoffdb = mongodb.onoffper
19
  playmodedb = mongodb.playmode
20
  playtypedb = mongodb.playtypedb
21
  skipdb = mongodb.skipmode
22
- sudoersdb = mongodb.sudoers
23
  usersdb = mongodb.tgusersdb
24
 
25
  # Shifting to memory [mongo sucks often]
 
1
  import random
2
+ from functools import wraps
3
  from typing import Dict, List, Union
4
 
5
  from DragMusic import userbot
6
+ from DragMusic.core.mongo import mongodb, flooddb, sudoersdb
7
 
8
  authdb = mongodb.adminauth
9
  authuserdb = mongodb.authuser
 
20
  playmodedb = mongodb.playmode
21
  playtypedb = mongodb.playtypedb
22
  skipdb = mongodb.skipmode
 
23
  usersdb = mongodb.tgusersdb
24
 
25
  # Shifting to memory [mongo sucks often]
DragMusic/utils/decorators/admins.py CHANGED
@@ -1,4 +1,4 @@
1
- from pyrogram.enums import ChatType
2
  from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
3
 
4
  from DragMusic import app
@@ -126,11 +126,17 @@ def AdminActual(mystic):
126
  if message.from_user.id not in SUDOERS:
127
  try:
128
  member = await app.get_chat_member(message.chat.id, message.from_user.id)
129
- if not member.privileges.can_promote_members:
130
- return await message.reply_text(_["admin_18"])
131
- except:
132
- return await message.reply_text("You are not an admin.")
 
 
 
133
 
 
 
 
134
  return await mystic(client, message, _)
135
 
136
  return wrapper
 
1
+ from pyrogram.enums import ChatType, ChatMemberStatus
2
  from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
3
 
4
  from DragMusic import app
 
126
  if message.from_user.id not in SUDOERS:
127
  try:
128
  member = await app.get_chat_member(message.chat.id, message.from_user.id)
129
+
130
+ if member.status == ChatMemberStatus.OWNER:
131
+ pass # Owner is always allowed
132
+ elif member.status == ChatMemberStatus.ADMINISTRATOR and member.privileges.can_promote_members:
133
+ pass # Admin with promote rights is allowed
134
+ else:
135
+ return await message.reply_text(_["admin_18"]) # "You don't have permission to promote users."
136
 
137
+ except Exception:
138
+ return await message.reply_text("You are not an admin in this chat.")
139
+
140
  return await mystic(client, message, _)
141
 
142
  return wrapper