dshellInterpreter 0.2.19.1__tar.gz → 0.2.19.3__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.
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/dshell_message.py +9 -3
- dshellinterpreter-0.2.19.3/Dshell/DISCORD_COMMANDS/utils/__init__.py +8 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/utils/utils_message.py +34 -6
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/utils/utils_permissions.py +3 -4
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_DshellInterpreteur/__init__.py +1 -0
- dshellinterpreter-0.2.19.3/Dshell/_DshellInterpreteur/cached_messages.py +4 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_DshellInterpreteur/dshell_interpreter.py +14 -2
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_DshellParser/ast_nodes.py +8 -8
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_DshellTokenizer/dshell_keywords.py +12 -54
- {dshellinterpreter-0.2.19.1/dshellInterpreter.egg-info → dshellinterpreter-0.2.19.3}/PKG-INFO +1 -1
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3/dshellInterpreter.egg-info}/PKG-INFO +1 -1
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/dshellInterpreter.egg-info/SOURCES.txt +1 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/setup.py +1 -1
- dshellinterpreter-0.2.19.1/Dshell/DISCORD_COMMANDS/utils/__init__.py +0 -4
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/__init__.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/dshell_channel.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/dshell_interaction.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/dshell_member.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/dshell_pastbin.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/dshell_role.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/utils/utils_global.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/utils/utils_list.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/utils/utils_member.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/utils/utils_string.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/utils/utils_thread.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_DshellInterpreteur/errors.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_DshellParser/__init__.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_DshellParser/dshell_parser.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_DshellTokenizer/__init__.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_DshellTokenizer/dshell_token_type.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_DshellTokenizer/dshell_tokenizer.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/__init__.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_utils.py +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/LICENSE +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/README.md +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/dshellInterpreter.egg-info/dependency_links.txt +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/dshellInterpreter.egg-info/requires.txt +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/dshellInterpreter.egg-info/top_level.txt +0 -0
- {dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/setup.cfg +0 -0
{dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/dshell_message.py
RENAMED
|
@@ -6,6 +6,7 @@ from discord.ext import commands
|
|
|
6
6
|
from pycordViews import EasyModifiedViews
|
|
7
7
|
|
|
8
8
|
from .utils.utils_message import utils_get_message, utils_autorised_mentions
|
|
9
|
+
from .._DshellInterpreteur.cached_messages import dshell_cached_messages
|
|
9
10
|
from .._utils import NoneType
|
|
10
11
|
|
|
11
12
|
__all__ = [
|
|
@@ -167,7 +168,9 @@ async def dshell_edit_message(ctx: Message, message, new_content=None, embeds=No
|
|
|
167
168
|
return edit_message.id
|
|
168
169
|
|
|
169
170
|
|
|
170
|
-
async def dshell_get_history_messages(ctx: Message,
|
|
171
|
+
async def dshell_get_history_messages(ctx: Message,
|
|
172
|
+
channel=None,
|
|
173
|
+
limit=None) -> "ListNode":
|
|
171
174
|
"""
|
|
172
175
|
Searches for messages matching a regex in a channel
|
|
173
176
|
"""
|
|
@@ -182,13 +185,16 @@ async def dshell_get_history_messages(ctx: Message, channel=None, limit=None) ->
|
|
|
182
185
|
|
|
183
186
|
from .._DshellParser.ast_nodes import ListNode
|
|
184
187
|
|
|
188
|
+
cached_messages = dshell_cached_messages.get()
|
|
185
189
|
messages = ListNode([])
|
|
186
190
|
async for message in search_channel.history(limit=limit):
|
|
187
|
-
|
|
191
|
+
message_id = message.id
|
|
192
|
+
messages.add(message_id)
|
|
193
|
+
cached_messages[message_id] = message
|
|
188
194
|
|
|
189
195
|
if not messages:
|
|
190
196
|
raise commands.CommandError(f"No messages in {search_channel.mention}.")
|
|
191
|
-
|
|
197
|
+
dshell_cached_messages.set(cached_messages)
|
|
192
198
|
return messages
|
|
193
199
|
|
|
194
200
|
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
from discord import Message, PartialMessage, AllowedMentions
|
|
2
|
-
from typing import Union
|
|
2
|
+
from typing import Union, Optional
|
|
3
3
|
from re import search
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
from ..._DshellInterpreteur.cached_messages import dshell_cached_messages
|
|
6
|
+
|
|
7
|
+
def utils_get_message(ctx: Message, message: Union[int, str]) -> Union[PartialMessage]:
|
|
6
8
|
"""
|
|
7
9
|
Returns the message object of the specified message ID or link.
|
|
8
10
|
Message is only available in the same server as the command and in the same channel.
|
|
9
11
|
If the message is a link, it must be in the format: https://discord.com/channels/{guild_id}/{channel_id}/{message_id}
|
|
10
12
|
"""
|
|
13
|
+
cached_messages = dshell_cached_messages.get()
|
|
11
14
|
|
|
12
15
|
if isinstance(message, int):
|
|
13
|
-
|
|
16
|
+
if message in cached_messages:
|
|
17
|
+
return cached_messages[message]
|
|
18
|
+
|
|
19
|
+
cached_messages[message] = ctx.channel.get_partial_message(message)
|
|
20
|
+
dshell_cached_messages.set(cached_messages)
|
|
21
|
+
return cached_messages[message]
|
|
14
22
|
|
|
15
23
|
elif isinstance(message, str):
|
|
16
24
|
match = search(r'https://discord\.com/channels/(\d+)/(\d+)/(\d+)', message)
|
|
@@ -23,7 +31,9 @@ def utils_get_message(ctx: Message, message: Union[int, str]) -> PartialMessage:
|
|
|
23
31
|
if guild_id != ctx.guild.id:
|
|
24
32
|
raise Exception("The message must be from the same server as the command !")
|
|
25
33
|
|
|
26
|
-
|
|
34
|
+
cached_messages[message_id] = ctx.guild.get_channel(channel_id).get_partial_message(message_id)
|
|
35
|
+
dshell_cached_messages.set(cached_messages)
|
|
36
|
+
return cached_messages[message_id]
|
|
27
37
|
|
|
28
38
|
raise Exception(f"Message must be an integer or a string, not {type(message)} !")
|
|
29
39
|
|
|
@@ -40,7 +50,7 @@ def utils_autorised_mentions(global_mentions: bool = None,
|
|
|
40
50
|
|
|
41
51
|
from discord import AllowedMentions
|
|
42
52
|
|
|
43
|
-
if not isinstance(global_mentions,
|
|
53
|
+
if global_mentions is not None and not isinstance(global_mentions, bool):
|
|
44
54
|
raise Exception(f'Mention parameter must be a boolean or None, not {type(global_mentions)} !')
|
|
45
55
|
|
|
46
56
|
if not isinstance(everyone_mention, bool):
|
|
@@ -65,4 +75,22 @@ def utils_autorised_mentions(global_mentions: bool = None,
|
|
|
65
75
|
return AllowedMentions(everyone=everyone_mention,
|
|
66
76
|
roles=roles_mentions,
|
|
67
77
|
users=users_mentions,
|
|
68
|
-
replied_user=reply_mention)
|
|
78
|
+
replied_user=reply_mention)
|
|
79
|
+
|
|
80
|
+
async def utils_get_author_id_message(ctx: Message, message: Optional[int] = None):
|
|
81
|
+
"""
|
|
82
|
+
Return author ID of the message given (or ctx if message=None)
|
|
83
|
+
:param ctx:
|
|
84
|
+
:param message: message ID
|
|
85
|
+
:return:
|
|
86
|
+
"""
|
|
87
|
+
if message is not None and not isinstance(message, int):
|
|
88
|
+
raise Exception(f'Message parameter must be an integer or None, not {type(message)} !')
|
|
89
|
+
|
|
90
|
+
target_message = ctx
|
|
91
|
+
if message is not None:
|
|
92
|
+
try:
|
|
93
|
+
target_message = await utils_get_message(ctx, message).fetch()
|
|
94
|
+
except:
|
|
95
|
+
raise Exception(f"[message_author] Author ID message to get is not found !")
|
|
96
|
+
return target_message.author.id
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
from typing import Union
|
|
1
|
+
from typing import Union
|
|
2
2
|
from discord import Guild, Member, Role, Permissions, PermissionOverwrite
|
|
3
3
|
|
|
4
|
-
from ..._DshellParser.ast_nodes import ListNode
|
|
5
4
|
from .utils_global import utils_what_discord_type_is, DiscordType
|
|
6
5
|
|
|
7
6
|
class DshellPermissions:
|
|
8
|
-
|
|
9
7
|
def __init__(self, target: dict[str, list[int]]):
|
|
10
8
|
"""
|
|
11
9
|
Creates a Dshell permissions object.
|
|
@@ -13,7 +11,7 @@ class DshellPermissions:
|
|
|
13
11
|
Expected parameters: “allow”, “deny”, ‘members’, “roles”.
|
|
14
12
|
For “members” and “roles”, values must be ID ListNodes.
|
|
15
13
|
"""
|
|
16
|
-
self.target: dict[str, Union[ListNode, int]] = target
|
|
14
|
+
self.target: dict[str, Union["ListNode", int]] = target
|
|
17
15
|
|
|
18
16
|
@staticmethod
|
|
19
17
|
def get_member(guild, member_id: int) -> Member:
|
|
@@ -46,6 +44,7 @@ class DshellPermissions:
|
|
|
46
44
|
:param guild: The Discord server
|
|
47
45
|
:return: A dictionary of PermissionOverwrite objects with members and roles as keys
|
|
48
46
|
"""
|
|
47
|
+
from ..._DshellParser.ast_nodes import ListNode
|
|
49
48
|
permissions: dict[Union[Member, Role, None], PermissionOverwrite] = {}
|
|
50
49
|
target_keys = self.target.keys()
|
|
51
50
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from asyncio import sleep
|
|
1
|
+
from asyncio import sleep
|
|
2
2
|
from re import findall
|
|
3
3
|
from typing import TypeVar, Union, Any, Optional, Callable
|
|
4
4
|
from copy import deepcopy
|
|
@@ -18,6 +18,7 @@ from .._DshellTokenizer.dshell_keywords import *
|
|
|
18
18
|
from .._DshellTokenizer.dshell_token_type import DshellTokenType as DTT
|
|
19
19
|
from .._DshellTokenizer.dshell_token_type import Token
|
|
20
20
|
from .._DshellTokenizer.dshell_tokenizer import DshellTokenizer
|
|
21
|
+
from .cached_messages import dshell_cached_messages
|
|
21
22
|
|
|
22
23
|
All_nodes = TypeVar('All_nodes', IfNode, LoopNode, ElseNode, ElifNode, ArgsCommandNode, VarNode)
|
|
23
24
|
context = TypeVar('context', AutoShardedBot, Message, PrivateChannel, Interaction)
|
|
@@ -49,18 +50,26 @@ class DshellInterpreteur:
|
|
|
49
50
|
'__ret__': None, # environment variables, '__ret__' is used to store the return value of commands
|
|
50
51
|
|
|
51
52
|
'__author__': message.author.id,
|
|
53
|
+
'__author_name__': message.author.name,
|
|
52
54
|
'__author_display_name__': message.author.display_name,
|
|
53
55
|
'__author_avatar__': message.author.display_avatar.url if message.author.display_avatar else None,
|
|
54
56
|
'__author_discriminator__': message.author.discriminator,
|
|
55
57
|
'__author_bot__': message.author.bot,
|
|
56
58
|
'__author_nick__': message.author.nick if hasattr(message.author, 'nick') else None,
|
|
57
59
|
'__author_id__': message.author.id,
|
|
60
|
+
'__author_add_reaction__': None, # Can be overwritten by add vars_env parameter to get the author on message add event reaction
|
|
61
|
+
'__author_remove_reaction__': None, # Can be overwritten by add vars_env parameter to get the author on message remove event reaction
|
|
58
62
|
|
|
59
63
|
'__message__': message.content,
|
|
60
64
|
'__message_content__': message.content,
|
|
61
65
|
'__message_id__': message.id,
|
|
62
66
|
'__message_author__': message.author.id,
|
|
63
67
|
'__message_before__': message.content, # same as __message__, but before edit. Can be overwritten by add vars_env parameter
|
|
68
|
+
'__message_created_at__': str(message.created_at),
|
|
69
|
+
'__message_edited_at__': str(message.edited_at),
|
|
70
|
+
'__message_reactions__': ListNode([str(reaction.emoji) for reaction in message.reactions]),
|
|
71
|
+
'__message_add_reaction__': None, # Can be overwritten by add vars_env parameter to get the reaction added on message add event reaction
|
|
72
|
+
'__message_remove_reaction__': None, # Can be overwritten by add vars_env parameter to get the reaction removed on message remove event reaction
|
|
64
73
|
'__message_url__': message.jump_url if hasattr(message, 'jump_url') else None,
|
|
65
74
|
'__last_message__': message.channel.last_message_id,
|
|
66
75
|
|
|
@@ -93,8 +102,9 @@ class DshellInterpreteur:
|
|
|
93
102
|
} if message is not None and not debug else {'__ret__': None} # {} is used in debug mode, when ctx is None
|
|
94
103
|
if vars_env is not None: # add the variables to the environment
|
|
95
104
|
self.env.update(vars_env)
|
|
96
|
-
self.vars = vars
|
|
105
|
+
self.vars = vars or ''
|
|
97
106
|
self.ctx: context = ctx
|
|
107
|
+
dshell_cached_messages.set(dict()) # save all messages view in the current scoop
|
|
98
108
|
if debug:
|
|
99
109
|
print_ast(self.ast)
|
|
100
110
|
|
|
@@ -198,6 +208,8 @@ class DshellInterpreteur:
|
|
|
198
208
|
else:
|
|
199
209
|
raise DshellInterpreterStopExecution()
|
|
200
210
|
|
|
211
|
+
dshell_cached_messages.reset()
|
|
212
|
+
|
|
201
213
|
async def eval_data_token(self, token: Token):
|
|
202
214
|
"""
|
|
203
215
|
Eval a data token and returns its value in Python.
|
|
@@ -548,7 +548,7 @@ class ListNode(ASTNode):
|
|
|
548
548
|
"""
|
|
549
549
|
self.iterable: list[Any] = body
|
|
550
550
|
self.len_iterable: int = len(body)
|
|
551
|
-
self.
|
|
551
|
+
self.iterator_count: int = 0
|
|
552
552
|
|
|
553
553
|
def to_dict(self):
|
|
554
554
|
"""
|
|
@@ -564,8 +564,8 @@ class ListNode(ASTNode):
|
|
|
564
564
|
"""
|
|
565
565
|
Add a value to the list.
|
|
566
566
|
"""
|
|
567
|
-
if self.len_iterable >
|
|
568
|
-
raise PermissionError('The list is too long, it must not exceed
|
|
567
|
+
if self.len_iterable > 1000:
|
|
568
|
+
raise PermissionError('The list is too long, it must not exceed 1000 elements !')
|
|
569
569
|
|
|
570
570
|
self.iterable.append(value)
|
|
571
571
|
self.len_iterable += 1
|
|
@@ -612,7 +612,7 @@ class ListNode(ASTNode):
|
|
|
612
612
|
"""
|
|
613
613
|
self.iterable = []
|
|
614
614
|
self.len_iterable = 0
|
|
615
|
-
self.
|
|
615
|
+
self.iterator_count = 0
|
|
616
616
|
|
|
617
617
|
def sort(self, reverse: bool = False):
|
|
618
618
|
"""
|
|
@@ -654,12 +654,12 @@ class ListNode(ASTNode):
|
|
|
654
654
|
:return: an element from the list.
|
|
655
655
|
"""
|
|
656
656
|
|
|
657
|
-
if self.
|
|
658
|
-
self.
|
|
657
|
+
if self.iterator_count >= self.len_iterable:
|
|
658
|
+
self.iterator_count = 0
|
|
659
659
|
raise StopIteration()
|
|
660
660
|
|
|
661
|
-
v = self.iterable[self.
|
|
662
|
-
self.
|
|
661
|
+
v = self.iterable[self.iterator_count]
|
|
662
|
+
self.iterator_count += 1
|
|
663
663
|
return v
|
|
664
664
|
|
|
665
665
|
def __len__(self):
|
{dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_DshellTokenizer/dshell_keywords.py
RENAMED
|
@@ -28,8 +28,20 @@ dshell_keyword: set[str] = {
|
|
|
28
28
|
dshell_discord_keyword: set[str] = {
|
|
29
29
|
'embed', '#embed', 'field', 'perm', 'permission', '#perm', '#permission', 'ui', '#ui', 'button', 'select'
|
|
30
30
|
}
|
|
31
|
+
|
|
32
|
+
async def dshell_debug(ctx, x):
|
|
33
|
+
"""
|
|
34
|
+
Print all x parameter
|
|
35
|
+
:param ctx:
|
|
36
|
+
:param x:
|
|
37
|
+
:return:
|
|
38
|
+
"""
|
|
39
|
+
print(x)
|
|
40
|
+
return x
|
|
41
|
+
|
|
31
42
|
dshell_commands: dict[str, Callable] = {
|
|
32
43
|
|
|
44
|
+
"debug": dshell_debug,
|
|
33
45
|
## global utils
|
|
34
46
|
'random': utils_random,
|
|
35
47
|
|
|
@@ -161,57 +173,3 @@ dshell_logical_operators: dict[str, tuple[Callable, int]] = {
|
|
|
161
173
|
dshell_operators: dict[str, tuple[Callable, int]] = dshell_logical_operators.copy()
|
|
162
174
|
dshell_operators.update(dshell_logical_word_operators)
|
|
163
175
|
dshell_operators.update(dshell_mathematical_operators)
|
|
164
|
-
|
|
165
|
-
'''
|
|
166
|
-
C_create_var = "var"
|
|
167
|
-
C_obligate_var = "ovar" # makes variables mandatory
|
|
168
|
-
|
|
169
|
-
# guild
|
|
170
|
-
C_create_channel = "cc"
|
|
171
|
-
C_create_voice_channel = "cvc"
|
|
172
|
-
C_create_forum_channel = "cfc"
|
|
173
|
-
C_create_category = "cca"
|
|
174
|
-
C_create_role = "cr"
|
|
175
|
-
|
|
176
|
-
C_delete_channel = "dc"
|
|
177
|
-
C_delete_category = "dca"
|
|
178
|
-
C_delete_role = "dr"
|
|
179
|
-
|
|
180
|
-
C_edit_channel = "ec"
|
|
181
|
-
C_edit_voice_channel = "evc"
|
|
182
|
-
C_edit_forum_channel = "efc"
|
|
183
|
-
C_edit_category = "eca"
|
|
184
|
-
C_edit_role = "er"
|
|
185
|
-
C_edit_guild = "eg"
|
|
186
|
-
|
|
187
|
-
# forum
|
|
188
|
-
C_edit_ForumTag = "eft"
|
|
189
|
-
C_create_thread = "ct"
|
|
190
|
-
C_delete_tread = "dt"
|
|
191
|
-
|
|
192
|
-
# member
|
|
193
|
-
C_edit_nickname = "en"
|
|
194
|
-
C_ban_member = "bm"
|
|
195
|
-
C_unban_member = "um"
|
|
196
|
-
C_kick_member = "km"
|
|
197
|
-
C_timeout_member = "tm"
|
|
198
|
-
C_move_member = "mm"
|
|
199
|
-
C_add_roles = "ar"
|
|
200
|
-
C_remove_roles = "rr"
|
|
201
|
-
|
|
202
|
-
# message
|
|
203
|
-
C_send_message = "sm"
|
|
204
|
-
C_respond_message = "rm"
|
|
205
|
-
C_edit_message = "em"
|
|
206
|
-
C_send_user_message = "sum"
|
|
207
|
-
C_delete_message = "dm"
|
|
208
|
-
C_purge_message = "pm"
|
|
209
|
-
C_create_embed = "e"
|
|
210
|
-
C_regex = "regex"
|
|
211
|
-
C_add_emoji = "ae"
|
|
212
|
-
C_remove_emoji = "re"
|
|
213
|
-
C_clear_emoji = "ce"
|
|
214
|
-
C_remove_reaction = "rre"
|
|
215
|
-
|
|
216
|
-
# button
|
|
217
|
-
C_create_button = "b"'''
|
{dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/dshellInterpreter.egg-info/SOURCES.txt
RENAMED
|
@@ -19,6 +19,7 @@ Dshell/DISCORD_COMMANDS/utils/utils_permissions.py
|
|
|
19
19
|
Dshell/DISCORD_COMMANDS/utils/utils_string.py
|
|
20
20
|
Dshell/DISCORD_COMMANDS/utils/utils_thread.py
|
|
21
21
|
Dshell/_DshellInterpreteur/__init__.py
|
|
22
|
+
Dshell/_DshellInterpreteur/cached_messages.py
|
|
22
23
|
Dshell/_DshellInterpreteur/dshell_interpreter.py
|
|
23
24
|
Dshell/_DshellInterpreteur/errors.py
|
|
24
25
|
Dshell/_DshellParser/__init__.py
|
|
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
|
|
|
5
5
|
|
|
6
6
|
setup(
|
|
7
7
|
name="dshellInterpreter",
|
|
8
|
-
version="0.2.19.
|
|
8
|
+
version="0.2.19.3",
|
|
9
9
|
author="Chronos",
|
|
10
10
|
author_email="vagabonwalybi@gmail.com",
|
|
11
11
|
description="A Discord bot interpreter for creating custom commands and automations.",
|
{dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/__init__.py
RENAMED
|
File without changes
|
{dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/dshell_channel.py
RENAMED
|
File without changes
|
|
File without changes
|
{dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/dshell_member.py
RENAMED
|
File without changes
|
{dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/dshell_pastbin.py
RENAMED
|
File without changes
|
{dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/DISCORD_COMMANDS/dshell_role.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_DshellInterpreteur/errors.py
RENAMED
|
File without changes
|
|
File without changes
|
{dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_DshellParser/dshell_parser.py
RENAMED
|
File without changes
|
{dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/Dshell/_DshellTokenizer/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/dshellInterpreter.egg-info/requires.txt
RENAMED
|
File without changes
|
{dshellinterpreter-0.2.19.1 → dshellinterpreter-0.2.19.3}/dshellInterpreter.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|