From cd02852691ad025d36d9d6f16c5bd627feeecf31 Mon Sep 17 00:00:00 2001 From: DasMoorhuhn Date: Fri, 3 Feb 2023 12:53:52 +0100 Subject: [PATCH] first push --- .gitignore | 1 + Dockerfile | 16 +++++ README.md | 86 ------------------------- docker-compose.yml | 11 ++++ icon/icon.png | Bin 0 -> 98479 bytes requirements.txt | 3 + src/addons.py | 24 +++++++ src/main.py | 146 +++++++++++++++++++++++++++++++++++++++++++ src/secretHandler.py | 69 ++++++++++++++++++++ 9 files changed, 270 insertions(+), 86 deletions(-) create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 icon/icon.png create mode 100644 requirements.txt create mode 100644 src/addons.py create mode 100644 src/main.py create mode 100644 src/secretHandler.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c395bde --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +secret.txt \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5048f09 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM python:3.11-slim + +WORKDIR /app + +COPY requirements.txt requirements.txt +RUN /usr/local/bin/python -m pip install --upgrade pip +RUN pip3 install -r requirements.txt +RUN rm requirements.txt + +COPY ./src/ . + +RUN mkdir ./data +RUN mkdir ./data/log +RUN mkdir ./data/config + +CMD [ "python3", "main.py" ] diff --git a/README.md b/README.md index 71a910f..a4441b4 100644 --- a/README.md +++ b/README.md @@ -4,89 +4,3 @@ ## Getting started -To make it easy for you to get started with GitLab, here's a list of recommended next steps. - -Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)! - -## Add your files - -- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files -- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command: - -``` -cd existing_repo -git remote add origin https://gitlab.com/HendrikHeine/it-discord-bot.git -git branch -M main -git push -uf origin main -``` - -## Integrate with your tools - -- [ ] [Set up project integrations](https://gitlab.com/HendrikHeine/it-discord-bot/-/settings/integrations) - -## Collaborate with your team - -- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/) -- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html) -- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically) -- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/) -- [ ] [Automatically merge when pipeline succeeds](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html) - -## Test and Deploy - -Use the built-in continuous integration in GitLab. - -- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html) -- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)](https://docs.gitlab.com/ee/user/application_security/sast/) -- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html) -- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/) -- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html) - -*** - -# Editing this README - -When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com/) for this template. - -## Suggestions for a good README -Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information. - -## Name -Choose a self-explaining name for your project. - -## Description -Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors. - -## Badges -On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge. - -## Visuals -Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method. - -## Installation -Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection. - -## Usage -Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README. - -## Support -Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc. - -## Roadmap -If you have ideas for releases in the future, it is a good idea to list them in the README. - -## Contributing -State if you are open to contributions and what your requirements are for accepting them. - -For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self. - -You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser. - -## Authors and acknowledgment -Show your appreciation to those who have contributed to the project. - -## License -For open source projects, say how it is licensed. - -## Project status -If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers. diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..e0e7f35 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,11 @@ +version: '3' +services: + app: + container_name: TuxDiscordBot + image: 'tux-discord-bot:beta' + restart: unless-stopped + build: . + volumes: + - ./data/log:/app/data/log + - ./data/config:/app/data/config + - ./secret.txt:/app/secret.txt \ No newline at end of file diff --git a/icon/icon.png b/icon/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bcd64b8756ddd7300bf26f1c145ff7f1297ed012 GIT binary patch literal 98479 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

RaHwe< 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 None: + self.__url = "http://programmingexcuses.com" + + def getExcuse(self): + page = requests.get(url=self.__url) + content = page.content.decode().split("\n") + for html in content: + if 'href="/"' in html: + start_index = html.find('3;">') + end_index = html.find("") + return html[start_index+4:end_index] + +class XKCD: + def __init__(self) -> None: + self.__url = "https://xkcd.com" + + def getRandomComic(self): + pass + + def getLastComic(self): + pass \ No newline at end of file diff --git a/src/main.py b/src/main.py new file mode 100644 index 0000000..1c4652a --- /dev/null +++ b/src/main.py @@ -0,0 +1,146 @@ +import time as t +import asyncio +import logging +import datetime +from unicodedata import category +import secretHandler +from addons import ProgrammerExcuses +from addons import XKCD + +import discord +from discord import Status +from discord import app_commands +from discord import Interaction +from discord import Embed +from discord import Guild +from discord import Color +from discord.activity import Game + +botVersion = "1.0.1" +botDate = "03.02.2023" + +secret = secretHandler.secret() +token = secret.loadSecret("secret.txt") +if token[0] != 0: + exit(f"Cannot load token. Error Code {token[0]}") +botToken = token[1] + +# Init Logger +logger = logging.getLogger('discord') +logger.setLevel(logging.DEBUG) +handler = logging.FileHandler(filename='discord.log', encoding='utf-8', mode='a') +handler.setFormatter(logging.Formatter('%(asctime)s|%(levelname)s|%(name)s|:%(message)s')) +logger.addHandler(handler) + +#Init Addons +programmerExcuses = ProgrammerExcuses() +xkcd = XKCD() + +class client(discord.Client): + async def startup(self): + await self.wait_until_ready() + +def getDateTime(): + dateNow = datetime.datetime.now() + dateNow = str(dateNow).split(" ") + unix = t.time() + time = dateNow[1] + time = time.split(".") + time = time[0] + dateNow = dateNow[0] + return dateNow, time, unix + +startTime = getDateTime()[2] + +bot = client(intents=discord.Intents.all()) +tree = app_commands.CommandTree(client=bot) + +async def chnagePresence(): + while True: + await bot.change_presence(activity=Game(name="with penguins"), status=Status.online) + await asyncio.sleep(20) + + countGuilds = 0 + async for guild in bot.fetch_guilds(): + countGuilds += 1 + + await bot.change_presence(activity=Game(name=f"on {countGuilds} Servers"), status=Status.online) + await asyncio.sleep(20) + +@bot.event +async def on_ready(): + startTime = getDateTime()[2] + bot.loop.create_task(chnagePresence()) + logger.info(f"Logged in as: {bot.user.name} with ID {bot.user.id}") + await bot.change_presence(activity=Game(name="with penguins"), status=Status.online) + await tree.sync() + +@bot.event +async def on_guild_join(guild: Guild): + logger.info("Added to Guild") + await guild.system_channel.send("Hii^^") + + + +@tree.command(name='excuse', description='Get a random excuse from programmer excuses') +async def slash(interaction: Interaction): + await interaction.response.send_message(programmerExcuses.getExcuse()) + + + + + +@tree.command(name="info", description="get info about this server") +async def slash(interaction: Interaction): + logger.info("Command: info") + timeNow = getDateTime()[2] + uptime = timeNow - startTime + + serverString = \ + f"""\ + Owner: {interaction.guild.owner} + Name: {interaction.guild.name} + """ + botString = \ + f"""\ + Uptime: {int(round(uptime/60, 1))}m + Version: {botVersion} from {botDate} + Developer: DasMoorhuhn.py#2604 + Sourcecode: https://gitlab.com/HendrikHeine/it-discord-bot + """ + + embed = discord.Embed(title=f"Info", description="about this Server", timestamp=datetime.datetime.utcnow(), color=Color.blue()) + #embed.set_thumbnail(url=interaction.guild.icon) + embed.add_field(name="Server", value=serverString, inline=False) + embed.add_field(name="Bot", value=botString, inline=False) + await interaction.response.send_message(embed=embed) + +@tree.command(name="help", description="List of all Commands") +async def slash(interaction: Interaction): + logger.info("Command: help") + commandListString = \ + """\ + `/info`: Get infos about the server and the Bot + `/help`: Get this view + """ + embed = discord.Embed(title=f"Help", description="List of commands", color=Color.blue()) + #embed.set_thumbnail(url=interaction.guild.icon) + embed.add_field(name="Commands", value=commandListString, inline=True) + + await interaction.response.send_message(embed=embed) + +@tree.error +async def on_app_command_error(interaction: Interaction, error): + if isinstance(error, app_commands.MissingPermissions): + await interaction.response.send_message(content="Du hast keine Adminrechte", ephemeral=True) + else: + raise error + +#Prevent Gateway Heartbeat Block +try: + bot.run(token=botToken) +except Exception as err: + raise err + exit(1) +finally: + logger.info("Stopped") diff --git a/src/secretHandler.py b/src/secretHandler.py new file mode 100644 index 0000000..0b4a902 --- /dev/null +++ b/src/secretHandler.py @@ -0,0 +1,69 @@ +'''https://gitlab.com/HendrikHeine/py-secret-handler''' + +import json + +class __fileType: + def __init__(self) -> None: + pass + + def _loadFromTXT(self, fileName:str): + '''!!!DONT USE!!!''' + try: + with open(file=fileName, mode="r") as file: + return [0, str(file.readlines()[0].strip("\n"))] + except: + return [1] + + def _loadFromJSON(self, fileName:str, item:str): + '''!!!DONT USE!!!''' + if item == "": + return [2] + else: + try: + with open(file=fileName, mode="r") as file: + try:return [0, json.loads(file.read())[item]] + except:return [5] + except: + return [1] + +class secret(__fileType): + '''Class for load secrets like API keys or tokens''' + def __init__(self) -> None: + super().__init__() + + def loadSecret(self, fileName:str, item=""): + ''' + fileName(str) + the name of the secret file. + Valid formats: .json and .txt + + item(str) + name of the item in the JSON file. By default empty + + Return Values(list): + 0: Ok + 1: File could not load + 2: No item given for JSON + 3: Invalid file format (for example .exe, .csv) + 4: No format for file given + 5: Invalid item for JSON + ''' + try:fileType = fileName.split(".")[1] + except:return [4] + + if fileType == "json": + result = self._loadFromJSON(fileName=fileName, item=item) + if result[0] == 0: + return result + else: + return [result[0]] + + elif fileType == "txt": + result = self._loadFromTXT(fileName=fileName) + if result[0] == 0: + return result + else: + return [result[0]] + + else: + return [3]