diff --git a/.gitignore b/.gitignore index 6e1135a..f1c5b59 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ /venv/ .idea/ __pycache__/ + +.token diff --git a/VocalMaisBot.py b/VocalMaisBot.py new file mode 100755 index 0000000..5f439dc --- /dev/null +++ b/VocalMaisBot.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 +import argparse +import logging +import sys +from pathlib import Path + +import discord +import discord.utils + +logger = logging.getLogger("VocalMaisBot") + + +class VocalMaisBot(discord.Client): + + def __init__(self, token: str): + super().__init__() + self.run(token) + + async def on_ready(self): + logger.info("Connected and ready!") + logger.debug(f"Logged as {self.user}") + + oauth_url = discord.utils.oauth_url( + self.user.id, + discord.Permissions(manage_channels = True, read_messages = True, send_messages = True, move_members = True) + ) + logger.info(f"You can invite the bot to your server using the following link: {oauth_url}") + + +if __name__ == '__main__': + argparser = argparse.ArgumentParser(description = "Discord bot to automatically create temporary voice channels for users when they connect to a special channel", formatter_class = argparse.ArgumentDefaultsHelpFormatter) + argparser.add_argument("-t", "--token-file", default = ".token", help = "File where the discord bot token is stored") + # argparser.add_argument("-c", "--config-file", default = "config.json", help = "Bot config file") + argparser.add_argument("-v", "--verbose", action = "store_true", help = "Print debug messages") + + ARGS = argparser.parse_args() + + logging.basicConfig( + level = logging.DEBUG if ARGS.verbose else logging.INFO, + format = "%(asctime)s %(name)s [%(levelname)s] %(message)s'" + ) + + token_file_path = Path(ARGS.token_file).absolute() + if not token_file_path.is_file(): + logger.error(f"Token file {token_file_path} does not exist") + sys.exit(1) + with token_file_path.open("r") as token_file: + token = token_file.readline().strip() + + VocalMaisBot(token)