diff --git a/.env b/.env new file mode 100644 index 0000000..ee5a896 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +DISCORD_TOKEN=MTM1NzQyNTQzNjAxNDkzNjA3NA.G_Iphl.ddfL8lYLJJs3OAyFBwi9Pn4V4Xe57ptualP_Mc \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/ansibleVaultSettings.xml b/.idea/ansibleVaultSettings.xml new file mode 100644 index 0000000..7c0cf63 --- /dev/null +++ b/.idea/ansibleVaultSettings.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..453c8eb --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..492b95f --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/tutorial-idently.iml b/.idea/tutorial-idently.iml new file mode 100644 index 0000000..74d515a --- /dev/null +++ b/.idea/tutorial-idently.iml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..73140ce --- /dev/null +++ b/main.py @@ -0,0 +1,52 @@ +from typing import Final +import os +from dotenv import load_dotenv +from discord import Intents, Client, Message +from responses import get_response + +load_dotenv() +TOKEN: Final[str] = os.getenv('DISCORD_TOKEN') + + +intents: Intents = Intents.default() +intents.message_content = True # NOQA +client: Client = Client(intents=intents) + + +async def send_message(message: Message, user_message: str) -> None: + if not user_message: + print('(Message was empty because intents were not enabled probably)') + return + if is_private := user_message[0] == '?': + user_message = user_message[1:] + + try: + response: str = get_response(user_message) + await message.author.send(response) if is_private else await message.channel.send(response) + except Exception as e: + print(e) + + +@client.event +async def on_ready() -> None: + print(f'{client.user} is now running') + +@client.event +async def on_message(message: Message) -> None: + if message.author == client.user: + return + + username: str = str(message.author) + user_message: str = message.content + channel: str = str(message.channel) + + print(f'[{channel}] {username}: "{user_message}"') + await send_message(message, user_message) + + +def main() -> None: + client.run(token=TOKEN) + + +if __name__ == '__main__': + main() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..062c9a8 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +discord +python-dotenv diff --git a/responses.py b/responses.py new file mode 100644 index 0000000..4b4bf97 --- /dev/null +++ b/responses.py @@ -0,0 +1,20 @@ +from random import choice, randint + + +def get_response(user_input: str) -> str: + lowered: str = user_input.lower() + + if lowered == '': + return 'Gut, du bist sehr still ...' + elif 'hello' in lowered: + return 'Hello there!' + elif 'how are you' in lowered: + return 'Good, Thanks!' + elif 'bye' in lowered: + return "See you later!" + elif 'roll dice' in lowered: + return f'you rolled: {randint(1, 6)}' + else: + return choice(['I do not understand...', + 'What are you talking abaout?', + 'Do you mind rephrasing that?'])