dshellInterpreter 0.2.4.4__tar.gz → 0.2.5.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dshellInterpreter might be problematic. Click here for more details.

Files changed (27) hide show
  1. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/DISCORD_COMMANDS/dshell_member.py +62 -4
  2. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/DISCORD_COMMANDS/dshell_role.py +4 -0
  3. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/_DshellTokenizer/dshell_keywords.py +7 -5
  4. {dshellinterpreter-0.2.4.4/dshellInterpreter.egg-info → dshellinterpreter-0.2.5.1}/PKG-INFO +1 -1
  5. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1/dshellInterpreter.egg-info}/PKG-INFO +1 -1
  6. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/setup.py +1 -1
  7. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/DISCORD_COMMANDS/__init__.py +0 -0
  8. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/DISCORD_COMMANDS/dshell_channel.py +0 -0
  9. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/DISCORD_COMMANDS/dshell_message.py +0 -0
  10. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/DISCORD_COMMANDS/dshell_pastbin.py +0 -0
  11. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/_DshellInterpreteur/__init__.py +0 -0
  12. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/_DshellInterpreteur/dshell_interpreter.py +0 -0
  13. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/_DshellParser/__init__.py +0 -0
  14. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/_DshellParser/ast_nodes.py +0 -0
  15. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/_DshellParser/dshell_parser.py +0 -0
  16. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/_DshellTokenizer/__init__.py +0 -0
  17. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/_DshellTokenizer/dshell_token_type.py +0 -0
  18. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/_DshellTokenizer/dshell_tokenizer.py +0 -0
  19. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/__init__.py +0 -0
  20. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/Dshell/_utils.py +0 -0
  21. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/LICENSE +0 -0
  22. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/README.md +0 -0
  23. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/dshellInterpreter.egg-info/SOURCES.txt +0 -0
  24. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/dshellInterpreter.egg-info/dependency_links.txt +0 -0
  25. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/dshellInterpreter.egg-info/requires.txt +0 -0
  26. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/dshellInterpreter.egg-info/top_level.txt +0 -0
  27. {dshellinterpreter-0.2.4.4 → dshellinterpreter-0.2.5.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
- from datetime import timedelta, datetime
1
+ from datetime import timedelta, datetime, UTC
2
2
 
3
- from discord import MISSING, Message, Member, Permissions
3
+ from discord import MISSING, Message, Member, Permissions, Role
4
4
 
5
5
  __all__ = [
6
6
  "dshell_ban_member",
@@ -11,7 +11,9 @@ __all__ = [
11
11
  "dshell_remove_roles",
12
12
  "dshell_check_permissions",
13
13
  "dshell_timeout_member",
14
- "dshell_move_member"
14
+ "dshell_move_member",
15
+ "dshell_give_member_roles",
16
+ "dshell_remove_member_roles"
15
17
  ]
16
18
 
17
19
 
@@ -78,7 +80,7 @@ async def dshell_timeout_member(ctx: Message, duration: int, member=None, reason
78
80
  if duration < 0:
79
81
  raise ValueError("Duration must be a non-negative integer.")
80
82
 
81
- await target_member.timeout(until=datetime.now() + timedelta(seconds=duration), reason=reason)
83
+ await target_member.timeout(until=datetime.now(UTC) + timedelta(seconds=duration), reason=reason)
82
84
 
83
85
  return target_member.id
84
86
 
@@ -184,3 +186,59 @@ async def dshell_move_member(ctx: Message, member=None, channel=None, disconnect
184
186
  await target_member.move_to(target_channel, reason=reason)
185
187
 
186
188
  return target_member.id
189
+
190
+
191
+ async def dshell_give_member_roles(ctx: Message, roles, member=None, reason=None):
192
+ """
193
+ Give roles to the target member
194
+ """
195
+ target_member = ctx.author if member is None else ctx.guild.get_member(member)
196
+
197
+ if target_member is None:
198
+ raise Exception(f'Member {member} not found in the server !')
199
+
200
+ if isinstance(roles, int):
201
+ roles = (roles, )
202
+
203
+ list_roles: list[Role] = []
204
+ for i in roles:
205
+ role_to_give = ctx.guild.get_role(i)
206
+
207
+ if role_to_give is None:
208
+ raise Exception(f'Role {i} not found in the server !')
209
+
210
+ list_roles.append(role_to_give)
211
+
212
+ list_roles.extend(target_member.roles)
213
+
214
+ await target_member.edit(roles=roles, reason=str(reason))
215
+
216
+ return target_member.id
217
+
218
+
219
+ async def dshell_remove_member_roles(ctx: Message, roles, member=None, reason=None):
220
+ """
221
+ Remove roles to the target member
222
+ """
223
+ target_member = ctx.author if member is None else ctx.guild.get_member(member)
224
+
225
+ if target_member is None:
226
+ raise Exception(f'Member {member} not found in the server !')
227
+
228
+ if isinstance(roles, int):
229
+ roles = (roles,)
230
+
231
+ list_roles: set[Role] = set()
232
+ for i in roles:
233
+ role_to_give = target_member.get_role(i)
234
+
235
+ if role_to_give is None:
236
+ raise Exception(f"{target_member.name} member doesn't have {i} role !")
237
+
238
+ list_roles.add(role_to_give)
239
+
240
+ new_set_role = list(list_roles - set(target_member.roles))
241
+
242
+ await target_member.edit(roles=new_set_role, reason=str(reason))
243
+
244
+ return target_member.id
@@ -71,6 +71,8 @@ async def dshell_delete_roles(ctx: Message, roles, reason=None):
71
71
 
72
72
  await role_to_delete.delete(reason=str(reason))
73
73
 
74
+ return role_to_delete.id
75
+
74
76
 
75
77
  async def dshell_edit_role(ctx: Message,
76
78
  role,
@@ -121,3 +123,5 @@ async def dshell_edit_role(ctx: Message,
121
123
  mentionable=mentionable if mentionable is not None else role_to_edit.mentionable,
122
124
  position=position if position is not None else role_to_edit.position,
123
125
  reason=str(reason))
126
+
127
+ return role_to_edit.id
@@ -43,6 +43,8 @@ dshell_commands: dict[str, Callable] = {
43
43
  "mm": dshell_move_member, # move member to another channel
44
44
  "rm": dshell_rename_member, # rename member
45
45
  "cp": dshell_check_permissions, # check permissions
46
+ "gmr": dshell_give_member_roles, # give roles
47
+ "rmr": dshell_remove_member_roles, # remove roles
46
48
 
47
49
  "ghm": dshell_get_hystory_messages, # research regex in message
48
50
  "src": dshell_research_regex_in_content, # research regex in content
@@ -50,12 +52,12 @@ dshell_commands: dict[str, Callable] = {
50
52
  "ec": dshell_edit_text_channel, # edit text channel
51
53
  "evc": dshell_edit_voice_channel, # edit voice channel
52
54
 
53
- "cr": dshell_create_role,
54
- "dr": dshell_delete_roles,
55
- "er": dshell_edit_role,
55
+ "cr": dshell_create_role, # create role
56
+ "dr": dshell_delete_roles, # delete role
57
+ "er": dshell_edit_role, # edit role
56
58
 
57
- "amr": dshell_add_reactions, # add reactions to a message
58
- "rmr": dshell_remove_reactions, # remove reactions from a message
59
+ "ar": dshell_add_reactions, # add reactions to a message
60
+ "rr": dshell_remove_reactions, # remove reactions from a message
59
61
 
60
62
  }
61
63
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dshellInterpreter
3
- Version: 0.2.4.4
3
+ Version: 0.2.5.1
4
4
  Summary: A Discord bot interpreter for creating custom commands and automations.
5
5
  Home-page: https://github.com/BOXERRMD/Dshell_Interpreter
6
6
  Author: Chronos
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dshellInterpreter
3
- Version: 0.2.4.4
3
+ Version: 0.2.5.1
4
4
  Summary: A Discord bot interpreter for creating custom commands and automations.
5
5
  Home-page: https://github.com/BOXERRMD/Dshell_Interpreter
6
6
  Author: Chronos
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
5
5
 
6
6
  setup(
7
7
  name="dshellInterpreter",
8
- version="0.2.4.4",
8
+ version="0.2.5.1",
9
9
  author="Chronos",
10
10
  author_email="vagabonwalybi@gmail.com",
11
11
  description="A Discord bot interpreter for creating custom commands and automations.",