aboutsummaryrefslogtreecommitdiffstats
path: root/bot/exts
diff options
context:
space:
mode:
Diffstat (limited to 'bot/exts')
-rw-r--r--bot/exts/evergreen/avatar_modification/avatar_modify.py44
-rw-r--r--bot/exts/evergreen/trivia_quiz.py29
-rw-r--r--bot/exts/halloween/hacktoberstats.py8
3 files changed, 21 insertions, 60 deletions
diff --git a/bot/exts/evergreen/avatar_modification/avatar_modify.py b/bot/exts/evergreen/avatar_modification/avatar_modify.py
index 17f34ed4..bd324f67 100644
--- a/bot/exts/evergreen/avatar_modification/avatar_modify.py
+++ b/bot/exts/evergreen/avatar_modification/avatar_modify.py
@@ -9,7 +9,6 @@ from concurrent.futures import ThreadPoolExecutor
from pathlib import Path
import discord
-from aiohttp import client_exceptions
from discord.ext import commands
from bot.bot import Bot
@@ -236,37 +235,6 @@ class AvatarModify(commands.Cog):
await self.send_pride_image(ctx, image_bytes, pixels, flag, option)
@prideavatar.command()
- async def image(self, ctx: commands.Context, url: str, option: str = "lgbt", pixels: int = 64) -> None:
- """
- This surrounds the image specified by the URL with a border of a specified LGBT flag.
-
- This defaults to the LGBT rainbow flag if none is given.
- The amount of pixels can be given which determines the thickness of the flag border.
- This has a maximum of 512px and defaults to a 64px border.
- The full image is 1024x1024.
- """
- option = option.lower()
- pixels = max(0, min(512, pixels))
- flag = GENDER_OPTIONS.get(option)
- if flag is None:
- await ctx.send("I don't have that flag!")
- return
-
- async with ctx.typing():
- try:
- async with self.bot.http_session.get(url) as response:
- if response.status != 200:
- await ctx.send("Bad response from provided URL!")
- return
- image_bytes = await response.read()
- except client_exceptions.ClientConnectorError:
- raise commands.BadArgument("Cannot connect to provided URL!")
- except client_exceptions.InvalidURL:
- raise commands.BadArgument("Invalid URL!")
-
- await self.send_pride_image(ctx, image_bytes, pixels, flag, option)
-
- @prideavatar.command()
async def flags(self, ctx: commands.Context) -> None:
"""This lists the flags that can be used with the prideavatar command."""
choices = sorted(set(GENDER_OPTIONS.values()))
@@ -283,12 +251,9 @@ class AvatarModify(commands.Cog):
root_aliases=("spookyavatar", "spookify", "savatar"),
brief="Spookify an user's avatar."
)
- async def spookyavatar(self, ctx: commands.Context, member: discord.Member = None) -> None:
- """This "spookifies" the given user's avatar, with a random *spooky* effect."""
- if member is None:
- member = ctx.author
-
- user = await self._fetch_user(member.id)
+ async def spookyavatar(self, ctx: commands.Context) -> None:
+ """This "spookifies" the user's avatar, with a random *spooky* effect."""
+ user = await self._fetch_user(ctx.author.id)
if not user:
await ctx.send(f"{Emojis.cross_mark} Could not get user info.")
return
@@ -296,7 +261,7 @@ class AvatarModify(commands.Cog):
async with ctx.typing():
image_bytes = await user.avatar_url_as(size=1024).read()
- file_name = file_safe_name("spooky_avatar", member.display_name)
+ file_name = file_safe_name("spooky_avatar", ctx.author.display_name)
file = await in_executor(
PfpEffects.apply_effect,
@@ -309,7 +274,6 @@ class AvatarModify(commands.Cog):
title="Is this you or am I just really paranoid?",
colour=Colours.soft_red
)
- embed.set_author(name=member.name, icon_url=member.avatar_url)
embed.set_image(url=f"attachment://{file_name}")
embed.set_footer(text=f"Made by {ctx.author.display_name}.", icon_url=ctx.author.avatar_url)
diff --git a/bot/exts/evergreen/trivia_quiz.py b/bot/exts/evergreen/trivia_quiz.py
index a8d10afd..28924aed 100644
--- a/bot/exts/evergreen/trivia_quiz.py
+++ b/bot/exts/evergreen/trivia_quiz.py
@@ -17,8 +17,8 @@ from bot.constants import Colours, NEGATIVE_REPLIES, Roles
logger = logging.getLogger(__name__)
DEFAULT_QUESTION_LIMIT = 6
-STANDARD_VARIATION_TOLERANCE = 83
-DYNAMICALLY_GEN_VARIATION_TOLERANCE = 95
+STANDARD_VARIATION_TOLERANCE = 88
+DYNAMICALLY_GEN_VARIATION_TOLERANCE = 97
WRONG_ANS_RESPONSE = [
"No one answered correctly!",
@@ -210,6 +210,8 @@ class TriviaQuiz(commands.Cog):
"retro": "Questions related to retro gaming.",
"math": "General questions about mathematics ranging from grade 8 to grade 12.",
"science": "Put your understanding of science to the test!",
+ "cs": "A large variety of computer science questions.",
+ "python": "Trivia on our amazing language, Python!",
}
@staticmethod
@@ -225,10 +227,12 @@ class TriviaQuiz(commands.Cog):
Start a quiz!
Questions for the quiz can be selected from the following categories:
- - general: Test your general knowledge. (default)
+ - general: Test your general knowledge.
- retro: Questions related to retro gaming.
- math: General questions about mathematics ranging from grade 8 to grade 12.
- science: Put your understanding of science to the test!
+ - cs: A large variety of computer science questions.
+ - python: Trivia on our amazing language, Python!
(More to come!)
"""
@@ -290,7 +294,7 @@ class TriviaQuiz(commands.Cog):
start_embed = self.make_start_embed(category)
await ctx.send(embed=start_embed) # send an embed with the rules
- await asyncio.sleep(1)
+ await asyncio.sleep(5)
done_question = []
hint_no = 0
@@ -430,21 +434,18 @@ class TriviaQuiz(commands.Cog):
"""Generate a starting/introduction embed for the quiz."""
start_embed = discord.Embed(
colour=Colours.blue,
- title="Quiz game starting!",
+ title="A quiz game is starting!",
description=(
- f"This game consists of {self.question_limit + 1} questions.\n"
- "**Rules: **No cheating and have fun!\n"
+ f"This game consists of {self.question_limit + 1} questions.\n\n"
+ "**Rules: **\n"
+ "1. Only enclose your answer in backticks when the question tells you to.\n"
+ "2. If the question specifies an answer format, follow it or else it won't be accepted.\n"
+ "3. You have 30s per question. Points for each question reduces by 25 after 10s or after a hint.\n"
+ "4. No cheating and have fun!\n\n"
f"**Category**: {category}"
),
)
- start_embed.set_footer(
- text=(
- "Points for each question reduces by 25 after 10s or after a hint. "
- "Total time is 30s per question"
- )
- )
-
return start_embed
@staticmethod
diff --git a/bot/exts/halloween/hacktoberstats.py b/bot/exts/halloween/hacktoberstats.py
index b74e680b..50d3aaf6 100644
--- a/bot/exts/halloween/hacktoberstats.py
+++ b/bot/exts/halloween/hacktoberstats.py
@@ -10,15 +10,14 @@ from async_rediscache import RedisCache
from discord.ext import commands
from bot.bot import Bot
-from bot.constants import Channels, Colours, Month, NEGATIVE_REPLIES, Tokens, WHITELISTED_CHANNELS
-from bot.utils.decorators import in_month, whitelist_override
+from bot.constants import Colours, Month, NEGATIVE_REPLIES, Tokens
+from bot.utils.decorators import in_month
log = logging.getLogger(__name__)
CURRENT_YEAR = datetime.now().year # Used to construct GH API query
PRS_FOR_SHIRT = 4 # Minimum number of PRs before a shirt is awarded
REVIEW_DAYS = 14 # number of days needed after PR can be mature
-HACKTOBER_WHITELIST = WHITELISTED_CHANNELS + (Channels.hacktoberfest_2020,)
REQUEST_HEADERS = {"User-Agent": "Python Discord Hacktoberbot"}
# using repo topics API during preview period requires an accept header
@@ -44,7 +43,6 @@ class HacktoberStats(commands.Cog):
@in_month(Month.SEPTEMBER, Month.OCTOBER, Month.NOVEMBER)
@commands.group(name="hacktoberstats", aliases=("hackstats",), invoke_without_command=True)
- @whitelist_override(channels=HACKTOBER_WHITELIST)
async def hacktoberstats_group(self, ctx: commands.Context, github_username: str = None) -> None:
"""
Display an embed for a user's Hacktoberfest contributions.
@@ -72,7 +70,6 @@ class HacktoberStats(commands.Cog):
@in_month(Month.SEPTEMBER, Month.OCTOBER, Month.NOVEMBER)
@hacktoberstats_group.command(name="link")
- @whitelist_override(channels=HACKTOBER_WHITELIST)
async def link_user(self, ctx: commands.Context, github_username: str = None) -> None:
"""
Link the invoking user's Github github_username to their Discord ID.
@@ -96,7 +93,6 @@ class HacktoberStats(commands.Cog):
@in_month(Month.SEPTEMBER, Month.OCTOBER, Month.NOVEMBER)
@hacktoberstats_group.command(name="unlink")
- @whitelist_override(channels=HACKTOBER_WHITELIST)
async def unlink_user(self, ctx: commands.Context) -> None:
"""Remove the invoking user's account link from the log."""
author_id, author_mention = self._author_mention_from_context(ctx)