From e1723f577943f24d855d093d005d0d8cca8a1d9c Mon Sep 17 00:00:00 2001 From: Bobloy Date: Mon, 14 May 2018 16:12:40 -0400 Subject: [PATCH 1/5] Snap-ons V3 conversion initial commit --- lovecalculator/__init__.py | 5 + lovecalculator/info.json | 23 ++++ lovecalculator/lovecalculator.py | 44 +++++++ recyclingplant/__init__.py | 9 ++ recyclingplant/data/junk.json | 204 +++++++++++++++++++++++++++++++ recyclingplant/info.json | 21 ++++ recyclingplant/recyclingplant.py | 67 ++++++++++ 7 files changed, 373 insertions(+) create mode 100644 lovecalculator/__init__.py create mode 100644 lovecalculator/info.json create mode 100644 lovecalculator/lovecalculator.py create mode 100644 recyclingplant/__init__.py create mode 100644 recyclingplant/data/junk.json create mode 100644 recyclingplant/info.json create mode 100644 recyclingplant/recyclingplant.py diff --git a/lovecalculator/__init__.py b/lovecalculator/__init__.py new file mode 100644 index 0000000..5284684 --- /dev/null +++ b/lovecalculator/__init__.py @@ -0,0 +1,5 @@ +from .lovecalculator import LoveCalculator + + +def setup(bot): + bot.add_cog(LoveCalculator(bot)) diff --git a/lovecalculator/info.json b/lovecalculator/info.json new file mode 100644 index 0000000..c0cb702 --- /dev/null +++ b/lovecalculator/info.json @@ -0,0 +1,23 @@ +{ + "author": [ + "Bobloy", + "SnappyDragon" + ], + "bot_version": [ + 3, + 0, + 0 + ], + "description": "Calculate the love percentage for two users", + "hidden": false, + "install_msg": "Thank you for installing LoveCalculator. Love is in the air.", + "requirements": [ + "beautifulsoup4" + ], + "short": "Calculate love percentage", + "tags": [ + "bobloy", + "fun", + "love" + ] +} \ No newline at end of file diff --git a/lovecalculator/lovecalculator.py b/lovecalculator/lovecalculator.py new file mode 100644 index 0000000..fc2ff8d --- /dev/null +++ b/lovecalculator/lovecalculator.py @@ -0,0 +1,44 @@ +import aiohttp +import discord +from bs4 import BeautifulSoup +from redbot.core import commands + + +class LoveCalculator: + """Calculate the love percentage for two users!""" + + def __init__(self, bot): + self.bot = bot + + @commands.command(aliases=['lovecalc']) + async def lovecalculator(self, ctx: commands.Context, lover: discord.Member, loved: discord.Member): + """Calculate the love percentage!""" + + x = lover.display_name + y = loved.display_name + + url = 'https://www.lovecalculator.com/love.php?name1={}&name2={}'.format(x.replace(" ", "+"), + y.replace(" ", "+")) + async with aiohttp.ClientSession() as session: + async with session.get(url) as response: + soup_object = BeautifulSoup(await response.text(), "html.parser") + try: + description = soup_object.find('div', attrs={'class': 'result score'}).get_text().strip() + except: + description = 'Dr. Love is busy right now' + + try: + z = description[:2] + z = int(z) + if z > 50: + emoji = '❤' + else: + emoji = '💔' + title = 'Dr. Love says that the love percentage for {} and {} is:'.format(x, y) + except: + emoji = '' + title = 'Dr. Love has left a note for you.' + + description = emoji + ' ' + description + ' ' + emoji + em = discord.Embed(title=title, description=description, color=discord.Color.red()) + await ctx.send(embed=em) diff --git a/recyclingplant/__init__.py b/recyclingplant/__init__.py new file mode 100644 index 0000000..e012d18 --- /dev/null +++ b/recyclingplant/__init__.py @@ -0,0 +1,9 @@ +from redbot.core import data_manager + +from .recyclingplant import RecyclingPlant + + +def setup(bot): + plant = RecyclingPlant(bot) + data_manager.load_bundled_data(plant, __file__) + bot.add_cog(plant) diff --git a/recyclingplant/data/junk.json b/recyclingplant/data/junk.json new file mode 100644 index 0000000..c77f881 --- /dev/null +++ b/recyclingplant/data/junk.json @@ -0,0 +1,204 @@ +{ + "can": [ + { + "object": "Apple Core", + "action": "trash" + }, + { + "object": "Paper Cup", + "action": "recycle" + }, + { + "object": "Banana Peel", + "action": "trash" + }, + { + "object": "Paper Bag", + "action": "recycle" + }, + { + "object": "Old Taco", + "action": "trash" + }, + { + "object": "Newspaper", + "action": "recycle" + }, + { + "object": "Chewed Gum", + "action": "trash" + }, + { + "object": "Polythene Bag", + "action": "recycle" + }, + { + "object": "Rotten Eggs", + "action": "trash" + }, + { + "object": "Outdated Telephone Directory", + "action": "recycle" + }, + { + "object": "Stale Bread", + "action": "trash" + }, + { + "object": "Used Notebook", + "action": "recycle" + }, + { + "object": "Sour Milk", + "action": "trash" + }, + { + "object": "Old Textbook", + "action": "recycle" + }, + { + "object": "Week-Old Sandwich", + "action": "trash" + }, + { + "object": "Paper Ball", + "action": "recycle" + }, + { + "object": "Leftovers", + "action": "trash" + }, + { + "object": "Toy Car", + "action": "recycle" + }, + { + "object": "Fish Bones", + "action": "trash" + }, + { + "object": "Superhero Costume", + "action": "recycle" + }, + { + "object": "Dirty Diaper", + "action": "trash" + }, + { + "object": "Silcone Mould", + "action": "recycle" + }, + { + "object": "Mouldy Broccoli", + "action": "trash" + }, + { + "object": "TV Remote", + "action": "recycle" + }, + { + "object": "Withered Rose Bouquet", + "action": "trash" + }, + { + "object": "Paper Plate", + "action": "recycle" + }, + { + "object": "Slimy Bacon", + "action": "trash" + }, + { + "object": "Folders", + "action": "recycle" + }, + { + "object": "Fly Agaric Mushrooms", + "action": "trash" + }, + { + "object": "Phone case", + "action": "recycle" + }, + { + "object": "Napkins", + "action": "trash" + }, + { + "object": "Broken Dualshock 4 Controller", + "action": "recycle" + }, + { + "object": "Wax Paper", + "action": "trash" + }, + { + "object": "iPad", + "action": "recycle" + }, + { + "object": "Paint Can", + "action": "trash" + }, + { + "object": "Glass Bottle", + "action": "recycle" + }, + { + "object": "Light Bulb", + "action": "trash" + }, + { + "object": "Nintendo 3DS", + "action": "recycle" + }, + { + "object": "Styrofoam Container", + "action": "trash" + }, + { + "object": "Flash Cards", + "action": "recycle" + }, + { + "object": "Motor Oil Can", + "action": "trash" + }, + { + "object": "Candy Wrapper", + "action": "recycle" + }, + { + "object": "Waxed Cardboard", + "action": "trash" + }, + { + "object": "Empty Bottle", + "action": "recycle" + }, + { + "object": "Used Toilet Paper", + "action": "trash" + }, + { + "object": "Outdated Calendar", + "action": "recycle" + }, + { + "object": "Ceramic Mug", + "action": "trash" + }, + { + "object": "Plastic Cup", + "action": "recycle" + }, + { + "object": "Gift Wrapping", + "action": "trash" + }, + { + "object": "Soda Bottle", + "action": "recycle" + } + ] +} diff --git a/recyclingplant/info.json b/recyclingplant/info.json new file mode 100644 index 0000000..62ac5df --- /dev/null +++ b/recyclingplant/info.json @@ -0,0 +1,21 @@ +{ + "author": [ + "Bobloy", + "SnappyDragon" + ], + "bot_version": [ + 3, + 0, + 0 + ], + "description": "Apply for a job at the recycling plant! Sort out the garbage!", + "hidden": false, + "install_msg": "Thank you for installing LoveCalculator. Stary recycling today!", + "requirements": [], + "short": "ply for a job at the recycling plant!", + "tags": [ + "bobloy", + "environment", + "games" + ] +} \ No newline at end of file diff --git a/recyclingplant/recyclingplant.py b/recyclingplant/recyclingplant.py new file mode 100644 index 0000000..b4c0d98 --- /dev/null +++ b/recyclingplant/recyclingplant.py @@ -0,0 +1,67 @@ +import asyncio +import json +import random + +from redbot.core import bank +from redbot.core import commands +from redbot.core.data_manager import cog_data_path + + +class RecyclingPlant: + """Apply for a job at the recycling plant!""" + + def __init__(self, bot): + self.bot = bot + self.path = str(cog_data_path(self)).replace('\\', '/') + self.junk_path = self.path + "/bundled_data/junk.json" + + with open(self.junk_path) as json_data: + self.junk = json.load(json_data) + + @commands.command() + async def recyclingplant(self, ctx: commands.Context): + """Apply for a job at the recycling plant!""" + x = 0 + reward = 0 + await ctx.send( + '{0} has signed up for a shift at the Recycling Plant! Type ``exit`` to terminate it early.'.format( + ctx.author.display_name)) + while x in range(0, 10): + used = random.choice(self.junk['can']) + if used['action'] == 'trash': + opp = 'recycle' + else: + opp = 'trash' + await ctx.send('``{}``! Will {} ``trash`` it or ``recycle`` it?'.format(used['object'], + ctx.author.display_name)) + + def check(m): + return m.author == ctx.author and m.channel == ctx.channel + + try: + answer = await self.bot.wait_for('message', timeout=120, check=check) + except asyncio.TimeoutError: + answer = None + + if answer is None: + await ctx.send('``{}`` fell down the conveyor belt to be sorted again!'.format(used['object'])) + elif answer.content.lower().strip() == used['action']: + await ctx.send( + 'Congratulations! You put ``{}`` down the correct chute! (**+50**)'.format(used['object'])) + reward = reward + 50 + x += 1 + elif answer.content.lower().strip() == opp: + await ctx.send('{}, you little brute, you put it down the wrong chute! (**-50**)'.format( + ctx.author.display_name)) + reward = reward - 50 + elif answer.content.lower().strip() == 'exit': + await ctx.send('{} has been relived of their duty.'.format(ctx.author.display_name)) + break + else: + await ctx.send('``{}`` fell down the conveyor belt to be sorted again!'.format(used['object'])) + else: + if reward > 0: + bank.deposit_credits(ctx.author, reward) + await ctx.send( + '{} been given **{} {}s** for your services.'.format(ctx.author.display_name, reward, + bank.get_currency_name(ctx.guild))) From 4cb531ab873c26b796a29ee00cfb6aab815256ae Mon Sep 17 00:00:00 2001 From: Bobloy Date: Tue, 15 May 2018 09:14:11 -0400 Subject: [PATCH 2/5] [Snap-Ons] More converted cogs --- recyclingplant/info.json | 4 +- recyclingplant/recyclingplant.py | 2 +- rpsls/__init__.py | 5 ++ rpsls/info.json | 21 ++++++ rpsls/rpsls.py | 90 ++++++++++++++++++++++++ scp/__init__.py | 5 ++ scp/info.json | 20 ++++++ scp/scp.py | 116 +++++++++++++++++++++++++++++++ unicode/info.json | 11 +++ unicode/unicode.py | 53 ++++++++++++++ 10 files changed, 324 insertions(+), 3 deletions(-) create mode 100644 rpsls/__init__.py create mode 100644 rpsls/info.json create mode 100644 rpsls/rpsls.py create mode 100644 scp/__init__.py create mode 100644 scp/info.json create mode 100644 scp/scp.py create mode 100644 unicode/info.json create mode 100644 unicode/unicode.py diff --git a/recyclingplant/info.json b/recyclingplant/info.json index 62ac5df..3ad2e58 100644 --- a/recyclingplant/info.json +++ b/recyclingplant/info.json @@ -10,9 +10,9 @@ ], "description": "Apply for a job at the recycling plant! Sort out the garbage!", "hidden": false, - "install_msg": "Thank you for installing LoveCalculator. Stary recycling today!", + "install_msg": "Thank you for installing RecyclingPlant. Start recycling today with `[p]recyclingplant`", "requirements": [], - "short": "ply for a job at the recycling plant!", + "short": "Apply for a job at the recycling plant!", "tags": [ "bobloy", "environment", diff --git a/recyclingplant/recyclingplant.py b/recyclingplant/recyclingplant.py index b4c0d98..ce56eda 100644 --- a/recyclingplant/recyclingplant.py +++ b/recyclingplant/recyclingplant.py @@ -18,7 +18,7 @@ class RecyclingPlant: with open(self.junk_path) as json_data: self.junk = json.load(json_data) - @commands.command() + @commands.command(aliases=["recycle"]) async def recyclingplant(self, ctx: commands.Context): """Apply for a job at the recycling plant!""" x = 0 diff --git a/rpsls/__init__.py b/rpsls/__init__.py new file mode 100644 index 0000000..46a1600 --- /dev/null +++ b/rpsls/__init__.py @@ -0,0 +1,5 @@ +from .rpsls import RPSLS + + +def setup(bot): + bot.add_cog(RPSLS(bot)) diff --git a/rpsls/info.json b/rpsls/info.json new file mode 100644 index 0000000..fae70d3 --- /dev/null +++ b/rpsls/info.json @@ -0,0 +1,21 @@ +{ + "author": [ + "Bobloy", + "SnappyDragon" + ], + "bot_version": [ + 3, + 0, + 0 + ], + "description": "Play Rock Papers Scissor Lizard Spock by Sam Kass in Discord!", + "hidden": false, + "install_msg": "Thank you for installing RPSLP. Get started with `[p]rpsls`", + "requirements": [], + "short": "Play Rock Papers Scissor Lizard Spock in Discord!", + "tags": [ + "bobloy", + "star trek", + "games" + ] +} \ No newline at end of file diff --git a/rpsls/rpsls.py b/rpsls/rpsls.py new file mode 100644 index 0000000..7257dc2 --- /dev/null +++ b/rpsls/rpsls.py @@ -0,0 +1,90 @@ +import asyncio +import random + +import discord +from redbot.core import commands + + +class RPSLS: + """Play Rock Paper Scissors Lizard Spock.""" + + weaknesses = { + "rock": [ + "paper", + "spock" + ], + "paper": [ + "scissors", + "lizard" + ], + "scissors": [ + "spock", + "rock" + ], + "lizard": [ + "scissors", + "rock" + ], + "spock": [ + "paper", + "lizard" + ] + } + + def __init__(self, bot): + self.bot = bot + + @commands.command() + async def rpsls(self, ctx: commands.Context, choice: str): + """ + Play Rock Paper Scissors Lizard Spock by Sam Kass in Discord! + + Rules: + Scissors cuts Paper + Paper covers Rock + Rock crushes Lizard + Lizard poisons Spock + Spock smashes Scissors + Scissors decapitates Lizard + Lizard eats Paper + Paper disproves Spock + Spock vaporizes Rock + And as it has always Rock crushes Scissors + """ + + player_choice = choice.lower() + player_emote = self.get_emote(player_choice) + if player_emote is None: + await ctx.maybe_send_embed("Invalid Choice") + return + + bot_choice = random.choice(self.weaknesses) + bot_emote = self.get_emote(bot_choice) + message = '{} vs. {}, who will win?'.format(player_emote, bot_emote) + em = discord.Embed(description=message, color=discord.Color.blue()) + await ctx.send(embed=em) + await asyncio.sleep(2) + if player_choice in self.weaknesses[bot_choice]: + message = 'You win! :sob:' + em_color = discord.Color.green() + elif bot_choice in self.weaknesses[player_choice]: + message = 'I win! :smile:' + em_color = discord.Color.red() + else: + message = 'It\'s a draw! :neutral_face:' + em_color = discord.Color.blue() + em = discord.Embed(description=message, color=em_color) + await ctx.send(embed=em) + + def get_emote(self, choice): + if choice == 'rock': + emote = ':moyai:' + elif choice == 'spock': + emote = ':vulcan:' + elif choice == 'paper': + emote = ':page_facing_up:' + elif choice in ['scissors', 'lizard']: + emote = ':{}:'.format(choice) + else: + emote = None + return emote diff --git a/scp/__init__.py b/scp/__init__.py new file mode 100644 index 0000000..bded2a5 --- /dev/null +++ b/scp/__init__.py @@ -0,0 +1,5 @@ +from .scp import SCP + + +def setup(bot): + bot.add_cog(SCP(bot)) diff --git a/scp/info.json b/scp/info.json new file mode 100644 index 0000000..a351508 --- /dev/null +++ b/scp/info.json @@ -0,0 +1,20 @@ +{ + "author": [ + "Bobloy", + "SnappyDragon" + ], + "bot_version": [ + 3, + 0, + 0 + ], + "description": "Look up SCP articles. Warning: Some of them may be too creepy or gruesome.", + "hidden": false, + "install_msg": "You are now connected to the SCP database. You may now proceed to access the data using `[p]help SCP`", + "requirements": [], + "short": "Look up SCP articles.", + "tags": [ + "bobloy", + "gruesom" + ] +} \ No newline at end of file diff --git a/scp/scp.py b/scp/scp.py new file mode 100644 index 0000000..7e64734 --- /dev/null +++ b/scp/scp.py @@ -0,0 +1,116 @@ +import discord +from redbot.core import commands + + +class SCP: + """Look up SCP articles. Warning: Some of them may be too creepy or gruesome.""" + + def __init__(self, bot): + self.bot = bot + + @commands.command() + async def scp(self, ctx: commands.Context, num: int): + """Look up SCP articles. + + Warning: Some of them may be too creepy or gruesome. + Reminder: You must specify a number between 1 and 3999. + """ + + # Thanks Shigbeard and Redjumpman for helping me! + + if 0 < num <= 3999: + msg = "http://www.scp-wiki.net/scp-{:03}".format(num) + c = discord.Color.green() + else: + msg = "You must specify a number between 1 and 3999." + c = discord.Color.red() + + if ctx.embed_requested(): + await ctx.send(embed=discord.Embed(description=msg, color=c)) + else: + await ctx.maybe_send_embed(msg) + + @commands.command() + async def scpj(self, ctx: commands.Context, joke: str): + """Look up SCP-Js. + + Reminder: Enter the correct name or else the resultant page will be invalid. + Use 001, etc. in case of numbers less than 100. + """ + + msg = "http://www.scp-wiki.net/scp-{}-j".format(joke) + await ctx.maybe_send_embed(msg) + + @commands.command() + async def scparc(self, ctx: commands.Context, num: int): + """Look up SCP archives. + + Warning: Some of them may be too creepy or gruesome.""" + valid_archive = ( + 13, 48, 51, 89, 91, 112, 132, 138, 157, 186, 232, 234, + 244, 252, 257, 338, 356, 361, 400, 406, 503, 515, 517, + 578, 728, 744, 776, 784, 837, 922, 987, 1023) + if num in valid_archive: + msg = "http://www.scp-wiki.net/scp-{:03}-arc".format(num) + c = discord.Color.green() + em = discord.Embed(description=msg, color=c) + else: + ttl = "You must specify a valid archive number." + msg = "{}".format(valid_archive) + c = discord.Color.red() + + em = discord.Embed(title=ttl, description=msg, color=c) + + if ctx.embed_requested(): + await ctx.send(embed=em) + else: + await ctx.maybe_send_embed(msg) + + @commands.command() + async def scpex(self, ctx: commands.Context, num: int): + """Look up explained SCP articles. + + Warning: Some of them may be too creepy or gruesome. + """ + + valid_archive = (711, 920, 1841, 1851, 1974, 2600, 4023, 8900) + if num in valid_archive: + msg = "http://www.scp-wiki.net/scp-{:03}-ex".format(num) + c = discord.Color.green() + em = discord.Embed(description=msg, color=c) + else: + ttl = "You must specify a valid archive number." + msg = "{}".format(valid_archive) + c = discord.Color.red() + + em = discord.Embed(title=ttl, description=msg, color=c) + + if ctx.embed_requested(): + await ctx.send(embed=em) + else: + await ctx.maybe_send_embed(msg) + + @commands.command() + async def anomalousitems(self, ctx: commands.Context): + """Look through the log of anomalous items.""" + + msg = "http://www.scp-wiki.net/log-of-anomalous-items" + await ctx.maybe_send_embed(msg) + + @commands.command() + async def extranormalevents(self, ctx: commands.Context): + """Look through the log of extranormal events.""" + + msg = "http://www.scp-wiki.net/log-of-extranormal-events" + await ctx.maybe_send_embed(msg) + + @commands.command() + async def unexplainedlocations(self, ctx: commands.Context): + """Look through the log of unexplained locations.""" + + msg = "http://www.scp-wiki.net/log-of-unexplained-locations" + await ctx.maybe_send_embed(msg) + + +def setup(bot): + bot.add_cog(SCP(bot)) diff --git a/unicode/info.json b/unicode/info.json new file mode 100644 index 0000000..bec3640 --- /dev/null +++ b/unicode/info.json @@ -0,0 +1,11 @@ +{ + "AUTHOR": "SnappyDragon", + "INSTALL_MSG": "\u0048\u0065\u006c\u006c\u006f\u0021 \u0054\u0068\u0069\u0073 \u006d\u0065\u0073\u0073\u0061\u0067\u0065 \u0077\u0061\u0073 \u0077\u0072\u0069\u0074\u0074\u0065\u006e \u0069\u006e \u0055\u004e\u0049\u0043\u004f\u0044\u0045\u002e", + "NAME": "Unicode", + "SHORT": "Encode/Decode Unicode characters!", + "DESCRIPTION": "Encode/Decode a Unicode character!", + "TAGS": [ + "utility", + "utlities" + ] +} diff --git a/unicode/unicode.py b/unicode/unicode.py new file mode 100644 index 0000000..eaeebbf --- /dev/null +++ b/unicode/unicode.py @@ -0,0 +1,53 @@ +import codecs as c + +import discord +from discord.ext import commands + + +class Unicode: + """Encode/Decode Unicode characters!""" + + def __init__(self, bot): + self.bot = bot + + @commands.group(name='unicode', pass_context=True) + async def unicode(self, context): + """Encode/Decode a Unicode character.""" + if context.invoked_subcommand is None: + await self.bot.send_cmd_help(context) + + @unicode.command() + async def decode(self, character): + """Decode a Unicode character.""" + try: + data = 'U+{:04X}'.format(ord(character[0])) + color = discord.Color.green() + except ValueError: + data = '' + color = discord.Color.red() + em = discord.Embed(title=character, description=data, color=color) + await self.bot.say(embed=em) + + @unicode.command() + async def encode(self, character): + """Encode an Unicode character.""" + try: + if character[:2] == '\\u': + data = repr(c.decode(character, 'unicode-escape')) + data = data.strip("'") + color = discord.Color.green() + elif character[:2] == 'U+': + data = chr(int(character.lstrip('U+'), 16)) + color = discord.Color.green() + else: + data = '' + color = discord.Color.red() + except ValueError: + data = '' + color = discord.Color.red() + em = discord.Embed(title=character, description=data, color=color) + await self.bot.say(embed=em) + + +def setup(bot): + bot.add_cog(Unicode(bot)) From 1494e0e023fb44249687485159286f250f10cad3 Mon Sep 17 00:00:00 2001 From: bobloy Date: Fri, 7 Sep 2018 10:20:06 -0400 Subject: [PATCH 3/5] random of dictionary --- rpsls/rpsls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpsls/rpsls.py b/rpsls/rpsls.py index 7257dc2..7799db5 100644 --- a/rpsls/rpsls.py +++ b/rpsls/rpsls.py @@ -58,7 +58,7 @@ class RPSLS: await ctx.maybe_send_embed("Invalid Choice") return - bot_choice = random.choice(self.weaknesses) + bot_choice = random.choice(list(self.weaknesses.keys())) bot_emote = self.get_emote(bot_choice) message = '{} vs. {}, who will win?'.format(player_emote, bot_emote) em = discord.Embed(description=message, color=discord.Color.blue()) From c27595bb84675ae5d8b7678ee834a9be225b6d45 Mon Sep 17 00:00:00 2001 From: bobloy Date: Fri, 7 Sep 2018 10:35:01 -0400 Subject: [PATCH 4/5] Remaining updates --- scp/scp.py | 6 +++--- unicode/__init__.py | 5 +++++ unicode/info.json | 26 ++++++++++++++++++-------- unicode/unicode.py | 20 ++++++++------------ 4 files changed, 34 insertions(+), 23 deletions(-) create mode 100644 unicode/__init__.py diff --git a/scp/scp.py b/scp/scp.py index 7e64734..72b7cec 100644 --- a/scp/scp.py +++ b/scp/scp.py @@ -13,16 +13,16 @@ class SCP: """Look up SCP articles. Warning: Some of them may be too creepy or gruesome. - Reminder: You must specify a number between 1 and 3999. + Reminder: You must specify a number between 1 and 4999. """ # Thanks Shigbeard and Redjumpman for helping me! - if 0 < num <= 3999: + if 0 < num <= 4999: msg = "http://www.scp-wiki.net/scp-{:03}".format(num) c = discord.Color.green() else: - msg = "You must specify a number between 1 and 3999." + msg = "You must specify a number between 1 and 4999." c = discord.Color.red() if ctx.embed_requested(): diff --git a/unicode/__init__.py b/unicode/__init__.py new file mode 100644 index 0000000..410d42c --- /dev/null +++ b/unicode/__init__.py @@ -0,0 +1,5 @@ +from .unicode import Unicode + + +def setup(bot): + bot.add_cog(Unicode(bot)) diff --git a/unicode/info.json b/unicode/info.json index bec3640..0d8d24b 100644 --- a/unicode/info.json +++ b/unicode/info.json @@ -1,11 +1,21 @@ { - "AUTHOR": "SnappyDragon", - "INSTALL_MSG": "\u0048\u0065\u006c\u006c\u006f\u0021 \u0054\u0068\u0069\u0073 \u006d\u0065\u0073\u0073\u0061\u0067\u0065 \u0077\u0061\u0073 \u0077\u0072\u0069\u0074\u0074\u0065\u006e \u0069\u006e \u0055\u004e\u0049\u0043\u004f\u0044\u0045\u002e", - "NAME": "Unicode", - "SHORT": "Encode/Decode Unicode characters!", - "DESCRIPTION": "Encode/Decode a Unicode character!", - "TAGS": [ + "author": [ + "Bobloy", + "SnappyDragon" + ], + "bot_version": [ + 3, + 0, + 0 + ], + "description": "Encode/Decode Unicode characters!", + "hidden": false, + "install_msg": "\u0048\u0065\u006c\u006c\u006f\u0021 \u0054\u0068\u0069\u0073 \u006d\u0065\u0073\u0073\u0061\u0067\u0065 \u0077\u0061\u0073 \u0077\u0072\u0069\u0074\u0074\u0065\u006e \u0069\u006e \u0055\u004e\u0049\u0043\u004f\u0044\u0045\u002e", + "requirements": [], + "short": "Encode/Decode Unicode characters!", + "tags": [ + "bobloy", "utility", - "utlities" + "tools" ] -} +} \ No newline at end of file diff --git a/unicode/unicode.py b/unicode/unicode.py index eaeebbf..4ad172a 100644 --- a/unicode/unicode.py +++ b/unicode/unicode.py @@ -1,7 +1,7 @@ import codecs as c import discord -from discord.ext import commands +from redbot.core import commands class Unicode: @@ -11,13 +11,13 @@ class Unicode: self.bot = bot @commands.group(name='unicode', pass_context=True) - async def unicode(self, context): + async def unicode(self, ctx): """Encode/Decode a Unicode character.""" - if context.invoked_subcommand is None: - await self.bot.send_cmd_help(context) + if ctx.invoked_subcommand is None: + pass @unicode.command() - async def decode(self, character): + async def decode(self, ctx: commands.Context, character): """Decode a Unicode character.""" try: data = 'U+{:04X}'.format(ord(character[0])) @@ -26,10 +26,10 @@ class Unicode: data = '' color = discord.Color.red() em = discord.Embed(title=character, description=data, color=color) - await self.bot.say(embed=em) + await ctx.send(embed=em) @unicode.command() - async def encode(self, character): + async def encode(self, ctx:commands.Context, character): """Encode an Unicode character.""" try: if character[:2] == '\\u': @@ -46,8 +46,4 @@ class Unicode: data = '' color = discord.Color.red() em = discord.Embed(title=character, description=data, color=color) - await self.bot.say(embed=em) - - -def setup(bot): - bot.add_cog(Unicode(bot)) + await ctx.send(embed=em) From 9c45e8f6ca5219d6c61909731c209e71dc086a0a Mon Sep 17 00:00:00 2001 From: bobloy Date: Fri, 7 Sep 2018 10:46:45 -0400 Subject: [PATCH 5/5] update Readme --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7c516ae..e823411 100644 --- a/README.md +++ b/README.md @@ -14,14 +14,19 @@ Cog Function | hangman | **Alpha** |
Play a game of hangmanSome visual glitches and needs more customization
| | howdoi | **Incomplete** |
Ask coding questions and get results from StackExchangeNot yet functional
| | leaver | **Alpha** |
Send a message in a channel when a user leaves the serverJust released, please report bugs
| +| lovecalculator | **Alpha** |
Calculate the love between two users[Snap-Ons] Just updated to V3
| | lseen | **Alpha** |
Track when a member was last onlineAlpha release, please report bugs
| +| qrinvite | **Alpha** |
Create a QR code invite for the serverAlpha release, please report any bugs
| | reactrestrict | **Alpha** |
Removes reactions by role per channelA bit clunky, but functional
| +| recyclingplant | **Alpha** |
Work at a recycling plant[Snap-Ons] Just updated to V3
| +| rpsls | **Alpha** |
Play Rock-Paper-Scissors-Lizard-Spock[Snap-Ons] Just updated to V3
| | sayurl | **Alpha** |
Convert any URL into text and post to discordNo error checking and pretty spammy
| +| scp | **Alpha** |
Look-up SCP articles[Snap-Ons] Just updated to V3
| | secrethitler | **Incomplete** |
Play the Secret Hitler gameConcept, no work done yet
| | stealemoji | **Alpha** |
Steals any custom emoji it sees in a reactionSome planned upgrades for server generation
| | timerole | **Alpha** |
Add roles to members after specified time on the serverUpgraded from V2, please report any bugs
| | tts | **Alpha** |
Send a Text-to-Speech message as an uploaded mp3Alpha release, please report any bugs
| -| qrinvite | **Alpha** |
Create a QR code invite for the serverAlpha release, please report any bugs
| +| unicode | **Alpha** |
Encode and Decode unicode characters[Snap-Ons] Just updated to V3
| | werewolf | **Alpha** |
Play the classic party game Werewolf within discordAnother massive project currently being developed, will be fully customizable
|