From 41bcfe01bc7393d0009617a5b403149ee343bb43 Mon Sep 17 00:00:00 2001 From: Marco Kohn Date: Thu, 3 Apr 2025 21:56:53 +0200 Subject: [PATCH] working simple bot --- .env | 1 + .idea/.gitignore | 3 ++ .idea/ansibleVaultSettings.xml | 6 +++ .../inspectionProfiles/profiles_settings.xml | 6 +++ .idea/misc.xml | 4 ++ .idea/modules.xml | 8 +++ .idea/tutorial-idently.iml | 10 ++++ .idea/vcs.xml | 6 +++ main.py | 52 +++++++++++++++++++ requirements.txt | 2 + responses.py | 20 +++++++ 11 files changed, 118 insertions(+) create mode 100644 .env create mode 100644 .idea/.gitignore create mode 100644 .idea/ansibleVaultSettings.xml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/tutorial-idently.iml create mode 100644 .idea/vcs.xml create mode 100644 main.py create mode 100644 requirements.txt create mode 100644 responses.py 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?'])