aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Sebastiaan Zeeff <[email protected]>2019-06-21 21:25:42 +0200
committerGravatar GitHub <[email protected]>2019-06-21 21:25:42 +0200
commit3eb2cf37d497ffc0cd2206c42e758f934e82e4e0 (patch)
tree26462af462c08e959fbf37c9ec47281e19a125fb
parentCreate FUNDING.yml (diff)
parentChanged Path() arguments for readability (diff)
Merge pull request #227 from AvianAnalyst/master
Implemented .prideanthem command
-rw-r--r--bot/__init__.py2
-rw-r--r--bot/resources/pride/anthems.json455
-rw-r--r--bot/seasons/easter/april_fools_vids.py2
-rw-r--r--bot/seasons/easter/avatar_easterifier.py2
-rw-r--r--bot/seasons/easter/conversationstarters.py2
-rw-r--r--bot/seasons/easter/egg_decorating.py6
-rw-r--r--bot/seasons/easter/egg_hunt/cog.py2
-rw-r--r--bot/seasons/easter/egghead_quiz.py2
-rw-r--r--bot/seasons/easter/traditions.py2
-rw-r--r--bot/seasons/evergreen/magic_8ball.py2
-rw-r--r--bot/seasons/evergreen/snakes/utils.py2
-rw-r--r--bot/seasons/halloween/8ball.py2
-rw-r--r--bot/seasons/halloween/hacktoberstats.py2
-rw-r--r--bot/seasons/halloween/halloween_facts.py2
-rw-r--r--bot/seasons/halloween/halloweenify.py14
-rw-r--r--bot/seasons/halloween/spookyrating.py2
-rw-r--r--bot/seasons/halloween/spookysound.py2
-rw-r--r--bot/seasons/pride/pride_anthem.py58
-rw-r--r--bot/seasons/pride/pride_avatar.py2
-rw-r--r--bot/seasons/season.py4
-rw-r--r--bot/seasons/valentines/be_my_valentine.py2
-rw-r--r--bot/seasons/valentines/lovecalculator.py2
-rw-r--r--bot/seasons/valentines/myvalenstate.py2
-rw-r--r--bot/seasons/valentines/pickuplines.py2
-rw-r--r--bot/seasons/valentines/savethedate.py2
-rw-r--r--bot/seasons/valentines/valentine_zodiac.py2
-rw-r--r--bot/seasons/valentines/whoisvalentine.py2
27 files changed, 547 insertions, 34 deletions
diff --git a/bot/__init__.py b/bot/__init__.py
index 861a27fe..9e0290a7 100644
--- a/bot/__init__.py
+++ b/bot/__init__.py
@@ -30,7 +30,7 @@ logging.Logger.trace = monkeypatch_trace
start_time = arrow.utcnow()
# Set up file logging
-log_dir = Path("bot", "log")
+log_dir = Path("bot/log")
log_file = log_dir / "hackbot.log"
os.makedirs(log_dir, exist_ok=True)
diff --git a/bot/resources/pride/anthems.json b/bot/resources/pride/anthems.json
new file mode 100644
index 00000000..d80d7558
--- /dev/null
+++ b/bot/resources/pride/anthems.json
@@ -0,0 +1,455 @@
+[
+ {
+ "title": "Bi",
+ "artist": "Alicia Champion",
+ "url": "https://www.youtube.com/watch?v=HekhW9STg58",
+ "genre": [
+ "pop"
+ ]
+ },
+ {
+ "title": "Queer Kidz",
+ "artist": "Ashby and the Oceanns",
+ "url": "https://www.youtube.com/watch?v=tSdCciMIlO8",
+ "genre": [
+ "folk"
+ ]
+ },
+ {
+ "title": "I Like Boys",
+ "artist": "Todrick Hall",
+ "url": "https://www.youtube.com/watch?v=RIbGksV3YBY",
+ "genre": [
+ "dance",
+ "electronic"
+ ]
+ },
+ {
+ "title": "It Girl",
+ "artist": "Mister Wallace",
+ "url": "https://www.youtube.com/watch?v=NEnmporrBuo",
+ "genre": [
+ "dance",
+ "electronic"
+ ]
+ },
+ {
+ "title": "Gay Sex",
+ "artist": "Be Steadwell",
+ "url": "https://www.youtube.com/watch?v=XnbQu_pzf8o",
+ "genre": [
+ "pop"
+ ]
+ },
+ {
+ "title": "Pynk",
+ "artist": "Janelle Monae",
+ "url": "https://www.youtube.com/watch?v=PaYvlVR_BEc",
+ "genre": [
+ "rnb",
+ "rhythm and blues",
+ "r&b",
+ "soul"
+ ]
+ },
+ {
+ "title": "I don't do boys",
+ "artist": "Elektra",
+ "url": "https://www.youtube.com/watch?v=MxAvsYrHOmI",
+ "genre": [
+ "rock",
+ "pop"
+ ]
+ },
+ {
+ "title": "Girls Like Girls",
+ "artist": "Hayley Kiyoko",
+ "url": "https://www.youtube.com/watch?v=I0MT8SwNa_U",
+ "genre": [
+ "pop",
+ "electropop"
+ ]
+ },
+ {
+ "title": "Girls/Girls/Boys",
+ "artist": "Panic! at the Disco",
+ "url": "https://www.youtube.com/watch?v=Yk8jV7r6VMk",
+ "genre": [
+ "alt",
+ "alternative",
+ "indie",
+ "new-wave",
+ "electropop",
+ "pop",
+ "rock"
+ ]
+ },
+ {
+ "title": "I Will Survive",
+ "artist": "Gloria Gaynor",
+ "url": "https://www.youtube.com/watch?v=gYkACVDFmeg",
+ "genre": [
+ "jazz",
+ "disco",
+ "rnb",
+ "r&b",
+ "rhythm and blues",
+ "soul",
+ "dance",
+ "electronic",
+ "pop"
+ ]
+ },
+ {
+ "title": "Born This Way",
+ "artist": "Lady Gaga",
+ "url": "https://www.youtube.com/watch?v=wV1FrqwZyKw",
+ "genre": [
+ "pop",
+ "electropop"
+ ]
+ },
+ {
+ "title": "Raise Your Glass",
+ "artist": "P!nk",
+ "url": "https://www.youtube.com/watch?v=XjVNlG5cZyQ",
+ "genre": [
+ "pop",
+ "rock",
+ "pop-rock"
+ ]
+ },
+ {
+ "title": "We R Who We R",
+ "artist": "Ke$ha",
+ "url": "https://www.youtube.com/watch?v=mXvmSaE0JXA",
+ "genre": [
+ "pop",
+ "dance-pop"
+ ]
+ },
+ {
+ "title": "I'm Coming Out",
+ "artist": "Diana Ross",
+ "url": "https://www.youtube.com/watch?v=zbYcte4ZEgQ",
+ "genre": [
+ "disco",
+ "funk",
+ "soul"
+ ]
+ },
+ {
+ "title": "She Keeps Me Warm",
+ "artist": "Mary Lambert",
+ "url": "https://www.youtube.com/watch?v=NhqH-r7Xj0E",
+ "genre": [
+ "pop"
+ ]
+ },
+ {
+ "title": "June",
+ "artist": "Florence + The Machine",
+ "url": "https://www.youtube.com/watch?v=Sosmd6RjeA0",
+ "genre": [
+ "alt",
+ "indie",
+ "alternative"
+ ]
+ },
+ {
+ "title": "Do I Wanna Know",
+ "artist": "MS MR",
+ "url": "https://youtu.be/0DCDf1O4e1Q",
+ "genre": [
+ "indie",
+ "indie-pop"
+ ]
+ },
+ {
+ "title": "Delilah",
+ "artist": "Florence + The Machine",
+ "url": "https://www.youtube.com/watch?v=zZr5Tid3Qw4",
+ "genre": [
+ "alt",
+ "alternative",
+ "indie"
+ ]
+ },
+ {
+ "title": "Queen",
+ "artist": "Janelle Monae",
+ "url": "https://www.youtube.com/watch?v=tEddixS-UoU",
+ "genre": [
+ "neo-soul"
+ ]
+ },
+ {
+ "title": "Aesthetic",
+ "artist": "Hi, I'm Case",
+ "url": "https://www.youtube.com/watch?v=cgq-XaSC1aY",
+ "genre": [
+ "pop",
+ "pop-rock"
+ ]
+ },
+ {
+ "title": "Break Free",
+ "artist": "Queen",
+ "url": "https://www.youtube.com/watch?v=f4Mc-NYPHaQ",
+ "genre": [
+ "rock",
+ "synth-pop"
+ ]
+ },
+ {
+ "title": "LGBT",
+ "artist": "CupcakKe",
+ "url": "https://www.youtube.com/watch?v=U_OArkw5yeQ",
+ "genre": [
+ "hip-hop",
+ "rap"
+ ]
+ },
+ {
+ "title": "Rainbow Connections",
+ "artist": "Garfunkel and Oates",
+ "url": "https://www.youtube.com/watch?v=MneRtx7x2vs",
+ "genre": [
+ "folk"
+ ]
+ },
+ {
+ "title": "Proud",
+ "artist": "Heather Small",
+ "url": "https://www.youtube.com/watch?v=LEoxGJ79PMs",
+ "genre": [
+ "dance-pop",
+ "r&b",
+ "rhythm and blues",
+ "rnb"
+ ]
+ },
+ {
+ "title": "LGBT",
+ "artist": "Lowell",
+ "url": "https://www.youtube.com/watch?v=QgE6nZmTGLw",
+ "genre": [
+ "alternative",
+ "indie",
+ "alt",
+ "pop"
+ ]
+ },
+ {
+ "title": "Kiss the Boy",
+ "artist": "Keiynan Lonsdale",
+ "url": "https://www.youtube.com/watch?v=bXzLZ7QQnpQ",
+ "genre": [
+ "pop"
+ ]
+ },
+ {
+ "title": "Boys Aside",
+ "artist": "Sofya Wang",
+ "url": "https://www.youtube.com/watch?v=NlAW7l6dmeA",
+ "genre": [
+ "pop"
+ ]
+ },
+ {
+ "title": "Everyone is Gay",
+ "artist": "A Great Big World",
+ "url": "https://www.youtube.com/watch?v=0VG1bj4Lj1Q",
+ "genre": [
+ "pop"
+ ]
+ },
+ {
+ "title": "The Queer Gospel",
+ "artist": "Erin McKeown",
+ "url": "https://www.youtube.com/watch?v=2vvOEoT-q_o",
+ "genre": [
+ "christian",
+ "gospel"
+ ]
+ },
+ {
+ "title": "Girls",
+ "artist": "Girl in Red",
+ "url": "https://www.youtube.com/watch?v=_BMBDY01kPk",
+ "genre": [
+ "alternative",
+ "indie",
+ "alt"
+ ]
+ },
+ {
+ "title": "Crazy World",
+ "artist": "MNEK",
+ "url": "https://www.youtube.com/watch?v=YBwzTgNL-zw",
+ "genre": [
+ "pop"
+ ]
+ },
+ {
+ "title": "Pride",
+ "artist": "Grace Petrie",
+ "url": "https://www.youtube.com/watch?v=y5rMrPJzFGs",
+ "genre": [
+ "alt",
+ "alternative",
+ "indie"
+ ]
+ },
+ {
+ "title": "Good Guys",
+ "artist": "MIKA",
+ "url": "https://www.youtube.com/watch?v=VZQ_9eebry0",
+ "genre": [
+ "pop"
+ ]
+ },
+ {
+ "title": "Gender is Boring",
+ "artist": "She/Her/Hers",
+ "url": "https://www.youtube.com/watch?v=glJW2vlBAQg",
+ "genre": [
+ "punk"
+ ]
+ },
+ {
+ "title": "GUY.exe",
+ "artist": "Superfruit",
+ "url": "https://www.youtube.com/watch?v=r2Kh_XMIDPU",
+ "genre": [
+ "pop"
+ ]
+ },
+ {
+ "title": "That's So Gay",
+ "artist": "Pansy Division",
+ "url": "https://www.youtube.com/watch?v=xlpcyeadaTk",
+ "genre": [
+ "rock"
+ ]
+ },
+ {
+ "title": "Strangers",
+ "artist": "Halsey",
+ "url": "https://www.youtube.com/watch?v=RVd_71ZdRd4",
+ "genre": [
+ "pop",
+ "alt",
+ "alternative",
+ "indie",
+ "electropop"
+ ]
+ },
+ {
+ "title": "LGBTQIA",
+ "artist": "Matt Fishel",
+ "url": "https://www.youtube.com/watch?v=KQq9f5hNOxE",
+ "genre": [
+ "rock"
+ ]
+ },
+ {
+ "title": "Tell Me a Story",
+ "artist": "Skylar Kergil",
+ "url": "https://www.youtube.com/watch?v=nbQDTE2s3dI",
+ "genre": [
+ "folk"
+ ]
+ },
+ {
+ "title": "Trans Is Love",
+ "artist": "Marissa Kay",
+ "url": "https://www.youtube.com/watch?v=-5f_1H0RD1I",
+ "genre": [
+ "alt",
+ "alternative",
+ "indie",
+ "alt-country",
+ "alt-folk",
+ "indie-rock",
+ "new-southern-rock"
+ ]
+ },
+ {
+ "title": "You Can't Tell Me",
+ "artist": "Jake Edwards",
+ "url": "https://www.youtube.com/watch?v=CwqDG5269Ak",
+ "genre": [
+ "pop"
+ ]
+ },
+ {
+ "title": "Closet Femme",
+ "artist": "Kate Reid",
+ "url": "https://www.youtube.com/watch?v=va-nqcNxP_k",
+ "genre": [
+ "folk"
+ ]
+ },
+ {
+ "title": "Let's Have a Kiki",
+ "artist": "Scissor Sisters",
+ "url": "https://www.youtube.com/watch?v=eGCD4xb-Tr8",
+ "genre": [
+ "electropop",
+ "pop"
+ ]
+ },
+ {
+ "title": "Gimme Gimme Gimme",
+ "artist": "ABBA",
+ "url": "https://www.youtube.com/watch?v=JWay7CDEyAI",
+ "genre": [
+ "disco"
+ ]
+ },
+ {
+ "title": "Dancing Queen",
+ "artist": "ABBA",
+ "url": "https://www.youtube.com/watch?v=xFrGuyw1V8s",
+ "genre": [
+ "disco",
+ "europop",
+ "euero-disco"
+ ]
+ },
+ {
+ "title": "City Grrl",
+ "artist": "CSS",
+ "url": "https://www.youtube.com/watch?v=duOA3FgpZqY",
+ "genre": [
+ "electropop"
+ ]
+ },
+ {
+ "title": "Blame it on the Girls",
+ "artist": "MIKA",
+ "url": "https://www.youtube.com/watch?v=iF_w7oaBHNo",
+ "genre": [
+ "pop",
+ "pop-rock"
+ ]
+ },
+ {
+ "title": "Bye Bye Bye",
+ "artist": "*NSYNC",
+ "url": "https://www.youtube.com/watch?v=Eo-KmOd3i7s",
+ "genre": [
+ "pop",
+ "europop"
+ ]
+ },
+ {
+ "title": "Gettin Bi",
+ "artist": "Crazy Ex-Girlfriend",
+ "url": "https://www.youtube.com/watch?v=5e7844P77Is",
+ "genre": [
+ "pop"
+ ]
+ }
+] \ No newline at end of file
diff --git a/bot/seasons/easter/april_fools_vids.py b/bot/seasons/easter/april_fools_vids.py
index c504229d..9fbe87a0 100644
--- a/bot/seasons/easter/april_fools_vids.py
+++ b/bot/seasons/easter/april_fools_vids.py
@@ -19,7 +19,7 @@ class AprilFoolVideos(commands.Cog):
@staticmethod
def load_json():
"""A function to load JSON data."""
- p = Path('bot', 'resources', 'easter', 'april_fools_vids.json')
+ p = Path('bot/resources/easterapril_fools_vids.json')
with p.open() as json_file:
all_vids = load(json_file)
return all_vids
diff --git a/bot/seasons/easter/avatar_easterifier.py b/bot/seasons/easter/avatar_easterifier.py
index 0e0b5934..ad8b5473 100644
--- a/bot/seasons/easter/avatar_easterifier.py
+++ b/bot/seasons/easter/avatar_easterifier.py
@@ -104,7 +104,7 @@ class AvatarEasterifier(commands.Cog):
im.alpha_composite(egg, (im.width - egg.width, (im.height - egg.height)//2)) # Right centre.
ctx.send = send_message # Reassigns ctx.send
else:
- bunny = Image.open(Path("bot", "resources", "easter", "chocolate_bunny.png"))
+ bunny = Image.open(Path("bot/resources/easter/chocolate_bunny.png"))
im.alpha_composite(bunny, (im.width - bunny.width, (im.height - bunny.height)//2)) # Right centre.
bufferedio = BytesIO()
diff --git a/bot/seasons/easter/conversationstarters.py b/bot/seasons/easter/conversationstarters.py
index 4432c348..c2cdf26c 100644
--- a/bot/seasons/easter/conversationstarters.py
+++ b/bot/seasons/easter/conversationstarters.py
@@ -7,7 +7,7 @@ from discord.ext import commands
log = logging.getLogger(__name__)
-with open(Path('bot', 'resources', 'easter', 'starter.json'), 'r', encoding="utf8") as f:
+with open(Path("bot/resources/easter/starter.json"), "r", encoding="utf8") as f:
starters = json.load(f)
diff --git a/bot/seasons/easter/egg_decorating.py b/bot/seasons/easter/egg_decorating.py
index 58d070bc..ee8a80e5 100644
--- a/bot/seasons/easter/egg_decorating.py
+++ b/bot/seasons/easter/egg_decorating.py
@@ -12,10 +12,10 @@ from discord.ext import commands
log = logging.getLogger(__name__)
-with open(Path("bot", "resources", "evergreen", "html_colours.json")) as f:
+with open(Path("bot/resources/evergreen/html_colours.json")) as f:
HTML_COLOURS = json.load(f)
-with open(Path("bot", "resources", "evergreen", "xkcd_colours.json")) as f:
+with open(Path("bot/resources/evergreen/xkcd_colours.json")) as f:
XKCD_COLOURS = json.load(f)
COLOURS = [
@@ -77,7 +77,7 @@ class EggDecorating(commands.Cog):
q, r = divmod(8, colours_n)
colours = colours * q + colours[:r]
num = random.randint(1, 6)
- im = Image.open(Path("bot", "resources", "easter", "easter_eggs", f"design{num}.png"))
+ im = Image.open(Path(f"bot/resources/easter/easter_eggs/design{num}.png"))
data = list(im.getdata())
replaceable = {x for x in data if x not in IRREPLACEABLE}
diff --git a/bot/seasons/easter/egg_hunt/cog.py b/bot/seasons/easter/egg_hunt/cog.py
index 110a39f5..30fd3284 100644
--- a/bot/seasons/easter/egg_hunt/cog.py
+++ b/bot/seasons/easter/egg_hunt/cog.py
@@ -15,7 +15,7 @@ from .constants import Colours, EggHuntSettings, Emoji, Roles
log = logging.getLogger(__name__)
-DB_PATH = Path("bot", "resources", "persist", "egg_hunt.sqlite")
+DB_PATH = Path("bot/resources/persist/egg_hunt.sqlite")
TEAM_MAP = {
Roles.white: Emoji.egg_white,
diff --git a/bot/seasons/easter/egghead_quiz.py b/bot/seasons/easter/egghead_quiz.py
index 7adeaebd..3e0cc598 100644
--- a/bot/seasons/easter/egghead_quiz.py
+++ b/bot/seasons/easter/egghead_quiz.py
@@ -11,7 +11,7 @@ from bot.constants import Colours
log = logging.getLogger(__name__)
-with open(Path('bot', 'resources', 'easter', 'egghead_questions.json'), 'r', encoding="utf8") as f:
+with open(Path("bot/resources/easter/egghead_questions.json"), "r", encoding="utf8") as f:
EGGHEAD_QUESTIONS = load(f)
diff --git a/bot/seasons/easter/traditions.py b/bot/seasons/easter/traditions.py
index bed874f9..f04b8828 100644
--- a/bot/seasons/easter/traditions.py
+++ b/bot/seasons/easter/traditions.py
@@ -7,7 +7,7 @@ from discord.ext import commands
log = logging.getLogger(__name__)
-with open(Path('bot', 'resources', 'easter', 'traditions.json'), 'r', encoding="utf8") as f:
+with open(Path("bot/resources/easter/traditions.json"), "r", encoding="utf8") as f:
traditions = json.load(f)
diff --git a/bot/seasons/evergreen/magic_8ball.py b/bot/seasons/evergreen/magic_8ball.py
index 9add06af..55652af7 100644
--- a/bot/seasons/evergreen/magic_8ball.py
+++ b/bot/seasons/evergreen/magic_8ball.py
@@ -13,7 +13,7 @@ class Magic8ball(commands.Cog):
def __init__(self, bot):
self.bot = bot
- with open(Path("bot", "resources", "evergreen", "magic8ball.json"), "r") as file:
+ with open(Path("bot/resources/evergreen/magic8ball.json"), "r") as file:
self.answers = json.load(file)
@commands.command(name="8ball")
diff --git a/bot/seasons/evergreen/snakes/utils.py b/bot/seasons/evergreen/snakes/utils.py
index 3754a122..88fb2032 100644
--- a/bot/seasons/evergreen/snakes/utils.py
+++ b/bot/seasons/evergreen/snakes/utils.py
@@ -13,7 +13,7 @@ from PIL.ImageDraw import ImageDraw
from discord import File, Member, Reaction
from discord.ext.commands import Context
-SNAKE_RESOURCES = Path('bot', 'resources', 'snakes').absolute()
+SNAKE_RESOURCES = Path("bot/resources/snakes").absolute()
h1 = r'''```
----
diff --git a/bot/seasons/halloween/8ball.py b/bot/seasons/halloween/8ball.py
index d7bddbfb..faf59ca9 100644
--- a/bot/seasons/halloween/8ball.py
+++ b/bot/seasons/halloween/8ball.py
@@ -8,7 +8,7 @@ from discord.ext import commands
log = logging.getLogger(__name__)
-with open(Path('bot', 'resources', 'halloween', 'responses.json'), 'r', encoding="utf8") as f:
+with open(Path("bot/resources/halloween/responses.json"), "r", encoding="utf8") as f:
responses = json.load(f)
diff --git a/bot/seasons/halloween/hacktoberstats.py b/bot/seasons/halloween/hacktoberstats.py
index c30ad90f..b6b5a900 100644
--- a/bot/seasons/halloween/hacktoberstats.py
+++ b/bot/seasons/halloween/hacktoberstats.py
@@ -18,7 +18,7 @@ class HacktoberStats(commands.Cog):
def __init__(self, bot):
self.bot = bot
- self.link_json = Path("bot", "resources", "github_links.json")
+ self.link_json = Path("bot/resources/github_links.json")
self.linked_accounts = self.load_linked_users()
@commands.group(
diff --git a/bot/seasons/halloween/halloween_facts.py b/bot/seasons/halloween/halloween_facts.py
index 00d91bc5..f09aa4ad 100644
--- a/bot/seasons/halloween/halloween_facts.py
+++ b/bot/seasons/halloween/halloween_facts.py
@@ -30,7 +30,7 @@ class HalloweenFacts(commands.Cog):
def __init__(self, bot):
self.bot = bot
- with open(Path("bot", "resources", "halloween", "halloween_facts.json"), "r") as file:
+ with open(Path("bot/resources/halloween/halloween_facts.json"), "r") as file:
self.halloween_facts = json.load(file)
self.channel = None
self.facts = list(enumerate(self.halloween_facts))
diff --git a/bot/seasons/halloween/halloweenify.py b/bot/seasons/halloween/halloweenify.py
index 4d56e2f8..334781ab 100644
--- a/bot/seasons/halloween/halloweenify.py
+++ b/bot/seasons/halloween/halloweenify.py
@@ -21,23 +21,23 @@ class Halloweenify(commands.Cog):
async def halloweenify(self, ctx):
"""Change your nickname into a much spookier one!"""
async with ctx.typing():
- with open(Path('bot', 'resources', 'halloween', 'halloweenify.json'), 'r') as f:
+ with open(Path("bot/resources/halloween/halloweenify.json"), "r") as f:
data = load(f)
# Choose a random character from our list we loaded above and set apart the nickname and image url.
- character = choice(data['characters'])
+ character = choice(data["characters"])
nickname = ''.join([nickname for nickname in character])
image = ''.join([character[nickname] for nickname in character])
# Build up a Embed
embed = discord.Embed()
embed.colour = discord.Colour.dark_orange()
- embed.title = 'Not spooky enough?'
+ embed.title = "Not spooky enough?"
embed.description = (
- f'**{ctx.author.display_name}** wasn\'t spooky enough for you? That\'s understandable, '
- f'{ctx.author.display_name} isn\'t scary at all! '
- 'Let me think of something better. Hmm... I got it!\n\n '
- f'Your new nickname will be: \n :ghost: **{nickname}** :jack_o_lantern:'
+ f"**{ctx.author.display_name}** wasn\'t spooky enough for you? That\'s understandable, "
+ f"{ctx.author.display_name} isn\'t scary at all! "
+ "Let me think of something better. Hmm... I got it!\n\n "
+ f"Your new nickname will be: \n :ghost: **{nickname}** :jack_o_lantern:"
)
embed.set_image(url=image)
diff --git a/bot/seasons/halloween/spookyrating.py b/bot/seasons/halloween/spookyrating.py
index 18a963e0..08c17a27 100644
--- a/bot/seasons/halloween/spookyrating.py
+++ b/bot/seasons/halloween/spookyrating.py
@@ -11,7 +11,7 @@ from bot.constants import Colours
log = logging.getLogger(__name__)
-with Path('bot', 'resources', 'halloween', 'spooky_rating.json').open() as file:
+with Path("bot/resources/halloween/spooky_rating.json").open() as file:
SPOOKY_DATA = json.load(file)
SPOOKY_DATA = sorted((int(key), value) for key, value in SPOOKY_DATA.items())
diff --git a/bot/seasons/halloween/spookysound.py b/bot/seasons/halloween/spookysound.py
index 995f0403..44fdd9d6 100644
--- a/bot/seasons/halloween/spookysound.py
+++ b/bot/seasons/halloween/spookysound.py
@@ -15,7 +15,7 @@ class SpookySound(commands.Cog):
def __init__(self, bot):
self.bot = bot
- self.sound_files = list(Path("bot", "resources", "halloween", "spookysounds").glob("*.mp3"))
+ self.sound_files = list(Path("bot/resources/halloween/spookysounds").glob("*.mp3"))
self.channel = None
@commands.cooldown(rate=1, per=1)
diff --git a/bot/seasons/pride/pride_anthem.py b/bot/seasons/pride/pride_anthem.py
new file mode 100644
index 00000000..f226f4bb
--- /dev/null
+++ b/bot/seasons/pride/pride_anthem.py
@@ -0,0 +1,58 @@
+import json
+import logging
+import random
+from pathlib import Path
+
+from discord.ext import commands
+
+log = logging.getLogger(__name__)
+
+
+class PrideAnthem(commands.Cog):
+ """Embed a random youtube video for a gay anthem!"""
+
+ def __init__(self, bot):
+ self.bot = bot
+ self.anthems = self.load_vids()
+
+ def get_video(self, genre: str = None) -> dict:
+ """
+ Picks a random anthem from the list.
+
+ If `genre` is supplied, it will pick from videos attributed with that genre.
+ If none can be found, it will log this as well as provide that information to the user.
+ """
+ if not genre:
+ return random.choice(self.anthems)
+ else:
+ songs = [song for song in self.anthems if genre.casefold() in song["genre"]]
+ try:
+ return random.choice(songs)
+ except IndexError:
+ log.info("No videos for that genre.")
+
+ @staticmethod
+ def load_vids() -> list:
+ """Loads a list of videos from the resources folder as dictionaries."""
+ with open(Path("bot/resources/pride/anthems.json"), "r", encoding="utf-8") as f:
+ anthems = json.load(f)
+ return anthems
+
+ @commands.command(name="prideanthem", aliases=["anthem", "pridesong"])
+ async def prideanthem(self, ctx, genre: str = None):
+ """
+ Sends a message with a video of a random pride anthem.
+
+ If `genre` is supplied, it will select from that genre only.
+ """
+ anthem = self.get_video(genre)
+ if anthem:
+ await ctx.send(anthem["url"])
+ else:
+ await ctx.send("I couldn't find a video, sorry!")
+
+
+def setup(bot):
+ """Cog loader for pride anthem."""
+ bot.add_cog(PrideAnthem(bot))
+ log.info("Pride anthems cog loaded!")
diff --git a/bot/seasons/pride/pride_avatar.py b/bot/seasons/pride/pride_avatar.py
index b7cd1331..a5b38d20 100644
--- a/bot/seasons/pride/pride_avatar.py
+++ b/bot/seasons/pride/pride_avatar.py
@@ -106,7 +106,7 @@ class PrideAvatar(commands.Cog):
avatar = self.crop_avatar(avatar)
- ring = Image.open(Path("bot", "resources", "pride", "flags", f"{flag}.png")).resize((1024, 1024))
+ ring = Image.open(Path(f"bot/resources/pride/flags/{flag}.png")).resize((1024, 1024))
ring = ring.convert("RGBA")
ring = self.crop_ring(ring, pixels)
diff --git a/bot/seasons/season.py b/bot/seasons/season.py
index e6a262c8..cd2306a6 100644
--- a/bot/seasons/season.py
+++ b/bot/seasons/season.py
@@ -24,7 +24,7 @@ def get_seasons() -> List[str]:
"""Returns all the Season objects located in /bot/seasons/."""
seasons = []
- for module in pkgutil.iter_modules([Path("bot", "seasons")]):
+ for module in pkgutil.iter_modules([Path("bot/seasons")]):
if module.ispkg:
seasons.append(module.name)
return seasons
@@ -308,7 +308,7 @@ class SeasonBase:
for ext_folder in {self.name, "evergreen"}:
if ext_folder:
log.info(f"Start loading extensions from seasons/{ext_folder}/")
- path = Path("bot", "seasons", ext_folder)
+ path = Path("bot/seasons") / ext_folder
for ext_name in [i[1] for i in pkgutil.iter_modules([path])]:
extensions.append(f"bot.seasons.{ext_folder}.{ext_name}")
diff --git a/bot/seasons/valentines/be_my_valentine.py b/bot/seasons/valentines/be_my_valentine.py
index 08fea33d..ac140896 100644
--- a/bot/seasons/valentines/be_my_valentine.py
+++ b/bot/seasons/valentines/be_my_valentine.py
@@ -25,7 +25,7 @@ class BeMyValentine(commands.Cog):
@staticmethod
def load_json():
"""Load Valentines messages from the static resources."""
- p = Path('bot', 'resources', 'valentines', 'bemyvalentine_valentines.json')
+ p = Path("bot/resources/valentines/bemyvalentine_valentines.json")
with p.open() as json_data:
valentines = load(json_data)
return valentines
diff --git a/bot/seasons/valentines/lovecalculator.py b/bot/seasons/valentines/lovecalculator.py
index ca8eaaf6..1d5a028d 100644
--- a/bot/seasons/valentines/lovecalculator.py
+++ b/bot/seasons/valentines/lovecalculator.py
@@ -15,7 +15,7 @@ from bot.constants import Roles
log = logging.getLogger(__name__)
-with Path('bot', 'resources', 'valentines', 'love_matches.json').open() as file:
+with Path("bot/resources/valentines/love_matches.json").open() as file:
LOVE_DATA = json.load(file)
LOVE_DATA = sorted((int(key), value) for key, value in LOVE_DATA.items())
diff --git a/bot/seasons/valentines/myvalenstate.py b/bot/seasons/valentines/myvalenstate.py
index 6a8d8b1d..fad202e3 100644
--- a/bot/seasons/valentines/myvalenstate.py
+++ b/bot/seasons/valentines/myvalenstate.py
@@ -11,7 +11,7 @@ from bot.constants import Colours
log = logging.getLogger(__name__)
-with open(Path('bot', 'resources', 'valentines', 'valenstates.json'), 'r') as file:
+with open(Path("bot/resources/valentines/valenstates.json"), "r") as file:
STATES = json.load(file)
diff --git a/bot/seasons/valentines/pickuplines.py b/bot/seasons/valentines/pickuplines.py
index 00ed5453..46772197 100644
--- a/bot/seasons/valentines/pickuplines.py
+++ b/bot/seasons/valentines/pickuplines.py
@@ -10,7 +10,7 @@ from bot.constants import Colours
log = logging.getLogger(__name__)
-with open(Path('bot', 'resources', 'valentines', 'pickup_lines.json'), 'r', encoding="utf8") as f:
+with open(Path("bot/resources/valentines/pickup_lines.json"), "r", encoding="utf8") as f:
pickup_lines = load(f)
diff --git a/bot/seasons/valentines/savethedate.py b/bot/seasons/valentines/savethedate.py
index a2d9a22d..34264183 100644
--- a/bot/seasons/valentines/savethedate.py
+++ b/bot/seasons/valentines/savethedate.py
@@ -12,7 +12,7 @@ log = logging.getLogger(__name__)
HEART_EMOJIS = [":heart:", ":gift_heart:", ":revolving_hearts:", ":sparkling_heart:", ":two_hearts:"]
-with open(Path('bot', 'resources', 'valentines', 'date_ideas.json'), 'r', encoding="utf8") as f:
+with open(Path("bot/resources/valentines/date_ideas.json"), "r", encoding="utf8") as f:
VALENTINES_DATES = load(f)
diff --git a/bot/seasons/valentines/valentine_zodiac.py b/bot/seasons/valentines/valentine_zodiac.py
index 7f78d3bc..fa849cb2 100644
--- a/bot/seasons/valentines/valentine_zodiac.py
+++ b/bot/seasons/valentines/valentine_zodiac.py
@@ -24,7 +24,7 @@ class ValentineZodiac(commands.Cog):
@staticmethod
def load_json():
"""Load zodiac compatibility from static JSON resource."""
- p = Path('bot', 'resources', 'valentines', 'zodiac_compatibility.json')
+ p = Path("bot/resources/valentines/zodiac_compatibility.json")
with p.open() as json_data:
zodiacs = load(json_data)
return zodiacs
diff --git a/bot/seasons/valentines/whoisvalentine.py b/bot/seasons/valentines/whoisvalentine.py
index 0a868fe6..d73ccd9b 100644
--- a/bot/seasons/valentines/whoisvalentine.py
+++ b/bot/seasons/valentines/whoisvalentine.py
@@ -10,7 +10,7 @@ from bot.constants import Colours
log = logging.getLogger(__name__)
-with open(Path("bot", "resources", "valentines", "valentine_facts.json"), "r") as file:
+with open(Path("bot/resources/valentines/valentine_facts.json"), "r") as file:
FACTS = json.load(file)