From be4ac63db7cf59c4003e99a6875363bb3e525bc2 Mon Sep 17 00:00:00 2001
From: Jiri Karlik
Date: Sat, 10 Aug 2024 09:10:28 +0200
Subject: [PATCH] Transfer to Gitea
---
.gitignore | 2 +
LICENSE.txt | 21 ++++
README.md | 211 ++++++++++++++++++++++++++++++++++++++
commands.py | 157 ++++++++++++++++++++++++++++
images/discord_token.png | Bin 0 -> 5957 bytes
images/logo.png | Bin 0 -> 118408 bytes
images/mongo_document.png | Bin 0 -> 13874 bytes
images/mongo_token.png | Bin 0 -> 19277 bytes
images/oauth.png | Bin 0 -> 67343 bytes
messages.py | 142 +++++++++++++++++++++++++
randbot.py | 54 ++++++++++
requirements.txt | 4 +
tokens.py | 2 +
13 files changed, 593 insertions(+)
create mode 100644 .gitignore
create mode 100644 LICENSE.txt
create mode 100644 README.md
create mode 100644 commands.py
create mode 100644 images/discord_token.png
create mode 100644 images/logo.png
create mode 100644 images/mongo_document.png
create mode 100644 images/mongo_token.png
create mode 100644 images/oauth.png
create mode 100644 messages.py
create mode 100644 randbot.py
create mode 100644 requirements.txt
create mode 100644 tokens.py
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2483976
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+.idea/
+__pycache__/
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..f626319
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 Karlik Jiri
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..97cfe53
--- /dev/null
+++ b/README.md
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+[![Contributors][contributors-shield]][contributors-url]
+[![Forks][forks-shield]][forks-url]
+[![Stargazers][stars-shield]][stars-url]
+[![Issues][issues-shield]][issues-url]
+[![MIT License][license-shield]][license-url]
+[![LinkedIn][linkedin-shield]][linkedin-url]
+
+
+
+
+
+
+
+
+
+
+
RandBot
+ PROJECT DISCONTINUED due to lack of interest
+
+
+ Discord bot randomizer. Users can create a list that is stored in MongoDB and the bot can select a random item from this list.
+ ·
+ Report Bug
+ ·
+ Request Feature
+
+
+
+
+
+
+
+ Table of Contents
+
+ -
+ About The Project
+
+
+ -
+ Getting Started
+
+
+ - Bot Commands
+ - Roadmap
+ - Contributing
+ - License
+ - Contact
+
+
+
+
+
+
+## About The Project
+
+Discord bot created in Python using [discord.py](https://discordpy.readthedocs.io/).
+The bot can create custom lists using the ?list command and stores those lists in MongoDB.
+Those lists can also be deleted using the command ?delete.
+Bot returns 1 random item from the selected list when command ?random is used.
+
+The project is now in the beta version. This is the first working version that I am using on my Discord server to randomize drop location in Call of Duty: Warzone.
+It is currently working, but error handling should be updated and new features can be added. This was a fun project to use on my Discord, but I have decided to share it with others. I am currently hosting the bot as well, so you can also invite the bot to your server instead of running it on your own.
+
+
+### Built With
+
+* [Python](https://www.python.org/)
+* [MongoDB](https://www.mongodb.com/)
+
+
+
+
+## Getting Started
+
+
+Download the repository and create the MongoDB Atlas database. More details in the Installation section.
+
+### Prerequisites
+
+- [Python 3](https://www.python.org/)
+- Following Python modules are needed. I recommend installing them with [pip](https://pip.pypa.io/en/stable/installing/):
+ - [discord](https://discordpy.readthedocs.io/)
+ - [pymongo](https://pymongo.readthedocs.io/)
+ - [asyncio](https://docs.python.org/3/library/asyncio.html)
+ - [dnspython](https://www.dnspython.org/)
+- [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) - There is free database option. I am currently using following DB structure "bot.lists", which is also part of the code in commands.py. It can be changed there:
+ ```sh
+ db = clientDB.bot
+ collection = db.lists
+ ```
+
+
+### Installation
+
+1. Clone the repo
+ ```sh
+ git clone https://github.com/karlji/RandBot-Discord-Randomizer.git
+ ```
+2. Create Discord bot on [Discord Developer Portal](https://discord.com/developers/docs/intro) & store the bot token to tokens.py
+ -
+4. Create [MongoDB Atlas cluster](https://www.mongodb.com/cloud/atlas) with DB structure "bot.lists", Document structure visible below, add IP adress of your bot machine, copy "connection string" to tokens.py
+ -
+ -
+5. Run randbot.py
+6. Create OAuth2 link on [Discord Developer Portal](https://discord.com/developers/). Options "bot" and "send messages" should be enough. This link can be used to invite bot to Discord servers.
+ -
+
+
+
+## Commands
+
+Following commands are available:
+
+- ?commands
+ - Lists all available commands.
+- ?list {ListName}
+ - Creates new list.
+- ?shuffle {ListName}
+ - Randomly selects one item from list.
+- ?delete {ListName}
+ - Deletes existing list.
+- ?showlists
+ - Shows existing lists.
+- ?yesno
+ - Randomly answers Yes/No.
+- ?8ball
+ - Answers like The Magic 8 Ball.
+
+
+
+## Roadmap
+
+See the [open issues](https://github.com/github_username/repo_name/issues) for a list of proposed features (and known issues).
+
+
+
+
+## Contributing
+
+Contributions are what makes the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
+
+1. Fork the Project
+2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
+3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
+4. Push to the Branch (`git push origin feature/AmazingFeature`)
+5. Open a Pull Request
+
+
+
+
+## License
+
+Distributed under the MIT License. See `LICENSE` for more information.
+
+
+
+
+## Contact
+
+Jiri Karlik- [Linkedin](https://www.linkedin.com/in/jiri-karlik/)
+
+Project Link: [https://github.com/karlji/RandBot-Discord-Randomizer](https://github.com/karlji/RandBot-Discord-Randomizer)
+
+
+
+
+
+
+
+
+
+
+[contributors-shield]: https://img.shields.io/github/contributors/karlji/RandBot-Discord-Randomizer.svg?style=for-the-badge
+[contributors-url]: https://github.com/karlji/RandBot-Discord-Randomizer/graphs/contributors
+[forks-shield]: https://img.shields.io/github/forks/karlji/RandBot-Discord-Randomizer.svg?style=for-the-badge
+[forks-url]: https://github.com/karlji/RandBot-Discord-Randomizer/network/members
+[stars-shield]: https://img.shields.io/github/stars/karlji/repo.svg?style=for-the-badge
+[stars-url]: https://github.com/karlji/RandBot-Discord-Randomizer/stargazers
+[issues-shield]: https://img.shields.io/github/issues/karlji/RandBot-Discord-Randomizer.svg?style=for-the-badge
+[issues-url]: https://github.com/karlji/RandBot-Discord-Randomizer/issues
+[license-shield]: https://img.shields.io/github/license/karlji/RandBot-Discord-Randomizer.svg?style=for-the-badge
+[license-url]: https://github.com/karlji/RandBot-Discord-Randomizer/blob/master/LICENSE.txt
+[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
+[linkedin-url]: https://www.linkedin.com/in/jiri-karlik/
diff --git a/commands.py b/commands.py
new file mode 100644
index 0000000..7ee612d
--- /dev/null
+++ b/commands.py
@@ -0,0 +1,157 @@
+import random
+import json
+import asyncio
+import pymongo
+import messages as mes
+import tokens as tok
+import time
+
+clientDB = pymongo.MongoClient(tok.mongo_token)
+db = clientDB.bot
+
+
+# Base class for other exceptions
+class Error(Exception):
+ pass
+
+
+# Raised when the list format is wrong
+class ListFormatError(Error):
+ pass
+
+
+class ListExistsError(Error):
+ pass
+
+
+async def list_command(client, message):
+ server_name = message.guild.name
+ collection = db[server_name]
+ list_name = message.content.replace('?list ', '')
+ title = "Creating list: " + list_name
+ full_user = message.author.name + "#" + message.author.discriminator
+ await message.channel.send(embed=mes.list_message(title))
+
+ try:
+ def check(m):
+ # checking if awaited message is from the same user that used the command
+ if full_user == m.author.name + "#" + m.author.discriminator:
+ # checking if user input contains ; ... else returning Format error
+ if m.content.find(";") != -1:
+ return True
+ else:
+ raise ListFormatError
+ else:
+ return False
+
+ if collection.find_one({"User": full_user, "List_Name": list_name}, {"List": 1, "_id": False}) is None:
+ message = await client.wait_for('message', timeout=60.0, check=check)
+ else:
+ raise ListExistsError
+ # Format error + timeout error
+ except asyncio.TimeoutError:
+ await message.channel.send(embed=mes.timeout_message())
+ except ListFormatError:
+ await message.channel.send(embed=mes.format_error_message())
+ except ListExistsError:
+ await message.channel.send(embed=mes.list_exists_error_message())
+
+ # if no errors occurred, create new list
+ else:
+ now = int(time.time())
+ collection.insert_one(
+ {"User": full_user, "List_Name": list_name, "List": message.content, "Timestamp": now})
+ title = list_name + " created!"
+ await message.channel.send(embed=mes.list_created_message(title))
+ return
+
+
+async def random_command(message):
+ list_name = message.content.replace('?random ', '')
+ server_name = message.guild.name
+ full_user = message.author.name + "#" + message.author.discriminator
+ # calling randomize function to get random item from list
+ item = randomize(server_name, full_user, list_name)
+ await message.channel.send(embed=mes.random_message(item))
+ return
+
+
+async def delete_command(message):
+ list_name = message.content.replace('?delete ', '')
+ server_name = message.guild.name
+ collection = db[server_name]
+ full_user = message.author.name + "#" + message.author.discriminator
+ collection.delete_one({"User": full_user, "List_Name": list_name})
+ title = list_name + " deleted!"
+ await message.channel.send(embed=mes.delete_message(title))
+ return
+
+
+async def commands_command(message):
+ await message.channel.send(embed=mes.commands_message())
+ return
+
+
+# retrieving random item from list
+def randomize(server_name, full_user, list_name):
+ collection = db[server_name]
+ # query based on listname & username
+ output = collection.find_one({"User": full_user, "List_Name": list_name}, {"List": 1, "_id": False})
+ # adding timestamp of the latest use to the list
+ now = int(time.time())
+ timestamp = {"$set": {"Timestamp": now}}
+ collection.update_one(output, timestamp)
+ # formatting the query output
+ output = json.dumps(output)
+ output = output.replace('{"List": "', '')
+ output = output.replace('"}', '')
+ output = output.split(";")
+ # selecting random item from the output
+ output = random.choice(tuple(output))
+ # check for when query returns null
+ if output == "null":
+ output = "List not found!"
+ return output
+
+
+async def eightball_command(message):
+ answers = ("It is certain.", "It is decidedly so.", "Without a doubt.", "Yes – definitely.", "You may rely on it.",
+ "As I see it, yes.", "Most likely.", "Outlook good.", "Yes.", "Signs point to yes.",
+ "Reply hazy, try again.", "Ask again later.", "Better not tell you now.", "Cannot predict now.",
+ "Concentrate and ask again.", "Don't count on it.", "My reply is no.", "My sources say no.",
+ "Outlook not so good.", "Very doubtful.")
+ item = random.choice(answers)
+ await message.channel.send(embed=mes.random_message(item))
+ return
+
+
+async def yesno_command(message):
+ answers = ("yes", "no")
+ item = random.choice(answers)
+ await message.channel.send(embed=mes.random_message(item))
+ return
+
+
+async def clean():
+ col_list = db.list_collection_names()
+ now = int(time.time())
+ difference = now - 2592000
+
+ # Loops through all collections and deletes those that are older than 30 days from now
+ for i in range(len(col_list)):
+ col = col_list[i]
+ collection = db[col]
+ myquery = {"Timestamp": {"$lt": difference}}
+ collection.delete_many(myquery)
+ return
+
+
+async def print_lists(message):
+ server_name = message.guild.name
+ full_user = message.author.name + "#" + message.author.discriminator
+ collection = db[server_name]
+ query = collection.find({"User": full_user}, {"List_Name": 1, "_id": False})
+ array = list(query)
+ length = len(array)
+ await message.channel.send(embed=mes.print_lists_message(array,length))
+ return
diff --git a/images/discord_token.png b/images/discord_token.png
new file mode 100644
index 0000000000000000000000000000000000000000..8a4e28cc85750ba31d67aca396b2238645f5472b
GIT binary patch
literal 5957
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
Og2(E*&>B^ni2niz8bYK1
literal 0
HcmV?d00001
diff --git a/images/logo.png b/images/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..c5f369e3578937f34708209fa94fdd9dbfda04fc
GIT binary patch
literal 118408
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