abhay2245 commited on
Commit
e6f9288
Β·
verified Β·
1 Parent(s): e0b6ec4

Create _misc/__init__.py

Browse files
Files changed (1) hide show
  1. pyUltroid/_misc/__init__.py +74 -0
pyUltroid/_misc/__init__.py ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultroid - UserBot
2
+ # Copyright (C) 2021-2025 TeamUltroid
3
+ #
4
+ # This file is a part of < https://github.com/TeamUltroid/Ultroid/ >
5
+ # PLease read the GNU Affero General Public License in
6
+ # <https://github.com/TeamUltroid/pyUltroid/blob/main/LICENSE>.
7
+
8
+
9
+ from .. import *
10
+
11
+ CMD_HELP = {}
12
+ # ----------------------------------------------#
13
+
14
+
15
+ class _SudoManager:
16
+ def __init__(self):
17
+ self.db = None
18
+ self.owner = None
19
+ self._owner_sudos = []
20
+
21
+ def _init_db(self):
22
+ if not self.db:
23
+ from .. import udB
24
+
25
+ self.db = udB
26
+ return self.db
27
+
28
+ def get_sudos(self):
29
+ db = self._init_db()
30
+ SUDOS = db.get_key("SUDOS")
31
+ return SUDOS or []
32
+
33
+ @property
34
+ def should_allow_sudo(self):
35
+ db = self._init_db()
36
+ return db.get_key("SUDO")
37
+
38
+ def owner_and_sudos(self):
39
+ if not self.owner:
40
+ db = self._init_db()
41
+ self.owner = db.get_key("OWNER_ID")
42
+ return [self.owner, *self.get_sudos()]
43
+
44
+ @property
45
+ def fullsudos(self):
46
+ db = self._init_db()
47
+ fsudos = db.get("FULLSUDO")
48
+ if not self.owner:
49
+ self.owner = db.get_key("OWNER_ID")
50
+ if not fsudos:
51
+ return [self.owner]
52
+ fsudos = fsudos.split()
53
+ fsudos.append(self.owner)
54
+ return [int(_) for _ in fsudos]
55
+
56
+ def is_sudo(self, id_):
57
+ return bool(id_ in self.get_sudos())
58
+
59
+
60
+ SUDO_M = _SudoManager()
61
+ owner_and_sudos = SUDO_M.owner_and_sudos
62
+ sudoers = SUDO_M.get_sudos
63
+ is_sudo = SUDO_M.is_sudo
64
+
65
+ # ------------------------------------------------ #
66
+
67
+
68
+ def append_or_update(load, func, name, arggs):
69
+ if isinstance(load, list):
70
+ return load.append(func)
71
+ if isinstance(load, dict):
72
+ if load.get(name):
73
+ return load[name].append((func, arggs))
74
+ return load.update({name: [(func, arggs)]})