diff options
Diffstat (limited to 'bot/seasons/valentines')
| -rw-r--r-- | bot/seasons/valentines/__init__.py | 4 | ||||
| -rw-r--r-- | bot/seasons/valentines/be_my_valentine.py | 21 | ||||
| -rw-r--r-- | bot/seasons/valentines/lovecalculator.py | 23 | ||||
| -rw-r--r-- | bot/seasons/valentines/movie_generator.py | 12 | ||||
| -rw-r--r-- | bot/seasons/valentines/myvalenstate.py | 5 | ||||
| -rw-r--r-- | bot/seasons/valentines/pickuplines.py | 4 | ||||
| -rw-r--r-- | bot/seasons/valentines/savethedate.py | 4 | ||||
| -rw-r--r-- | bot/seasons/valentines/valentine_zodiac.py | 11 | ||||
| -rw-r--r-- | bot/seasons/valentines/whoisvalentine.py | 5 | 
9 files changed, 30 insertions, 59 deletions
diff --git a/bot/seasons/valentines/__init__.py b/bot/seasons/valentines/__init__.py index e3e04421..6e5d16f7 100644 --- a/bot/seasons/valentines/__init__.py +++ b/bot/seasons/valentines/__init__.py @@ -17,4 +17,6 @@ class Valentines(SeasonBase):      end_date = "01/03"      colour = Colours.pink -    icon = "/logos/logo_seasonal/valentines/loved_up.png" +    icon = ( +        "/logos/logo_seasonal/valentines/loved_up.png", +    ) diff --git a/bot/seasons/valentines/be_my_valentine.py b/bot/seasons/valentines/be_my_valentine.py index 55c4adb1..ac140896 100644 --- a/bot/seasons/valentines/be_my_valentine.py +++ b/bot/seasons/valentines/be_my_valentine.py @@ -8,7 +8,7 @@ import discord  from discord.ext import commands  from discord.ext.commands.cooldowns import BucketType -from bot.constants import Client, Colours, Lovefest +from bot.constants import Channels, Client, Colours, Lovefest  log = logging.getLogger(__name__) @@ -25,8 +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 @@ -41,13 +40,11 @@ class BeMyValentine(commands.Cog):          1) use the command \".lovefest sub\" to get the lovefest role.          2) use the command \".lovefest unsub\" to get rid of the lovefest role.          """ - -        await ctx.invoke(self.bot.get_command("help"), "lovefest") +        await ctx.send_help(ctx.command)      @lovefest_role.command(name="sub")      async def add_role(self, ctx):          """Adds the lovefest role.""" -          user = ctx.author          role = discord.utils.get(ctx.guild.roles, id=Lovefest.role_id)          if Lovefest.role_id not in [role.id for role in ctx.message.author.roles]: @@ -59,7 +56,6 @@ class BeMyValentine(commands.Cog):      @lovefest_role.command(name="unsub")      async def remove_role(self, ctx):          """Removes the lovefest role.""" -          user = ctx.author          role = discord.utils.get(ctx.guild.roles, id=Lovefest.role_id)          if Lovefest.role_id not in [role.id for role in ctx.message.author.roles]: @@ -82,7 +78,6 @@ class BeMyValentine(commands.Cog):          example: .bemyvalentine Iceman Hey I love you, wanna hang around ? (sends the custom message to Iceman)          NOTE : AVOID TAGGING THE USER MOST OF THE TIMES.JUST TRIM THE '@' when using this command.          """ -          if ctx.guild is None:              # This command should only be used in the server              msg = "You are supposed to use this command in the server." @@ -99,7 +94,7 @@ class BeMyValentine(commands.Cog):          emoji_1, emoji_2 = self.random_emoji()          lovefest_role = discord.utils.get(ctx.guild.roles, id=Lovefest.role_id) -        channel = self.bot.get_channel(Lovefest.channel_id) +        channel = self.bot.get_channel(Channels.seasonalbot_chat)          valentine, title = self.valentine_check(valentine_type)          if user is None: @@ -132,7 +127,6 @@ class BeMyValentine(commands.Cog):          example : .bemyvalentine secret Iceman#6508 Hey I love you, wanna hang around ? (sends the custom message to          Iceman in DM making you anonymous)          """ -          if ctx.guild is not None:              # This command is only DM specific              msg = "You are not supposed to use this command in the server, DM the command to the bot." @@ -172,7 +166,6 @@ class BeMyValentine(commands.Cog):      def valentine_check(self, valentine_type):          """Return the appropriate Valentine type & title based on the invoking user's input.""" -          if valentine_type is None:              valentine, title = self.random_valentine() @@ -200,7 +193,6 @@ class BeMyValentine(commands.Cog):          :param author: member who invoked the command          :param members: list of discord.Member objects          """ -          if author in members:              members.remove(author) @@ -209,14 +201,12 @@ class BeMyValentine(commands.Cog):      @staticmethod      def random_emoji():          """Return two random emoji from the module-defined constants.""" -          EMOJI_1 = random.choice(HEART_EMOJIS)          EMOJI_2 = random.choice(HEART_EMOJIS)          return EMOJI_1, EMOJI_2      def random_valentine(self):          """Grabs a random poem or a compliment (any message).""" -          valentine_poem = random.choice(self.valentines['valentine_poems'])          valentine_compliment = random.choice(self.valentines['valentine_compliments'])          random_valentine = random.choice([valentine_compliment, valentine_poem]) @@ -228,19 +218,16 @@ class BeMyValentine(commands.Cog):      def valentine_poem(self):          """Grabs a random poem.""" -          valentine_poem = random.choice(self.valentines['valentine_poems'])          return valentine_poem      def valentine_compliment(self):          """Grabs a random compliment.""" -          valentine_compliment = random.choice(self.valentines['valentine_compliments'])          return valentine_compliment  def setup(bot):      """Be my Valentine Cog load.""" -      bot.add_cog(BeMyValentine(bot))      log.info("BeMyValentine cog loaded") diff --git a/bot/seasons/valentines/lovecalculator.py b/bot/seasons/valentines/lovecalculator.py index cd684f9d..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()) @@ -49,41 +49,39 @@ class LoveCalculator(Cog):          If only one argument is provided, the subject will become one of the helpers at random.          """ -          if whom is None:              staff = ctx.guild.get_role(Roles.helpers).members              whom = random.choice(staff)          def normalize(arg):              if isinstance(arg, Member): -                # if we are given a member, return name#discrim without any extra changes +                # If we are given a member, return name#discrim without any extra changes                  arg = str(arg)              else: -                # otherwise normalise case and remove any leading/trailing whitespace +                # Otherwise normalise case and remove any leading/trailing whitespace                  arg = arg.strip().title() -            # this has to be done manually to be applied to usernames +            # This has to be done manually to be applied to usernames              return clean_content(escape_markdown=True).convert(ctx, arg)          who, whom = [await normalize(arg) for arg in (who, whom)] -        # make sure user didn't provide something silly such as 10 spaces +        # Make sure user didn't provide something silly such as 10 spaces          if not (who and whom):              raise BadArgument('Arguments be non-empty strings.') -        # hash inputs to guarantee consistent results (hashing algorithm choice arbitrary) +        # Hash inputs to guarantee consistent results (hashing algorithm choice arbitrary)          # -        # hashlib is used over the builtin hash() function -        # to guarantee same result over multiple runtimes +        # hashlib is used over the builtin hash() to guarantee same result over multiple runtimes          m = hashlib.sha256(who.encode() + whom.encode()) -        # mod 101 for [0, 100] +        # Mod 101 for [0, 100]          love_percent = sum(m.digest()) % 101          # We need the -1 due to how bisect returns the point          # see the documentation for further detail          # https://docs.python.org/3/library/bisect.html#bisect.bisect          index = bisect.bisect(LOVE_DATA, (love_percent,)) - 1 -        # we already have the nearest "fit" love level -        # we only need the dict, so we can ditch the first element +        # We already have the nearest "fit" love level +        # We only need the dict, so we can ditch the first element          _, data = LOVE_DATA[index]          status = random.choice(data['titles']) @@ -102,6 +100,5 @@ class LoveCalculator(Cog):  def setup(bot):      """Love calculator Cog load.""" -      bot.add_cog(LoveCalculator(bot))      log.info("LoveCalculator cog loaded") diff --git a/bot/seasons/valentines/movie_generator.py b/bot/seasons/valentines/movie_generator.py index a09a563f..fa5f236a 100644 --- a/bot/seasons/valentines/movie_generator.py +++ b/bot/seasons/valentines/movie_generator.py @@ -12,7 +12,7 @@ log = logging.getLogger(__name__)  class RomanceMovieFinder(commands.Cog): -    """A cog that returns a random romance movie suggestion to a user.""" +    """A Cog that returns a random romance movie suggestion to a user."""      def __init__(self, bot):          self.bot = bot @@ -20,8 +20,7 @@ class RomanceMovieFinder(commands.Cog):      @commands.command(name="romancemovie")      async def romance_movie(self, ctx):          """Randomly selects a romance movie and displays information about it.""" - -        # selecting a random int to parse it to the page parameter +        # Selecting a random int to parse it to the page parameter          random_page = random.randint(0, 20)          # TMDB api params          params = { @@ -33,13 +32,13 @@ class RomanceMovieFinder(commands.Cog):              "page": random_page,              "with_genres": "10749"          } -        # the api request url +        # The api request url          request_url = "https://api.themoviedb.org/3/discover/movie?" + parse.urlencode(params)          async with self.bot.http_session.get(request_url) as resp: -            # trying to load the json file returned from the api +            # Trying to load the json file returned from the api              try:                  data = await resp.json() -                # selecting random result from results object in the json file +                # Selecting random result from results object in the json file                  selected_movie = random.choice(data["results"])                  embed = discord.Embed( @@ -60,6 +59,5 @@ class RomanceMovieFinder(commands.Cog):  def setup(bot):      """Romance movie Cog load.""" -      bot.add_cog(RomanceMovieFinder(bot))      log.info("RomanceMovieFinder cog loaded") diff --git a/bot/seasons/valentines/myvalenstate.py b/bot/seasons/valentines/myvalenstate.py index 344f52f6..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) @@ -23,7 +23,6 @@ class MyValenstate(commands.Cog):      def levenshtein(self, source, goal):          """Calculates the Levenshtein Distance between source and goal.""" -          if len(source) < len(goal):              return self.levenshtein(goal, source)          if len(source) == 0: @@ -45,7 +44,6 @@ class MyValenstate(commands.Cog):      @commands.command()      async def myvalenstate(self, ctx, *, name=None):          """Find the vacation spot(s) with the most matching characters to the invoking user.""" -          eq_chars = collections.defaultdict(int)          if name is None:              author = ctx.message.author.name.lower().replace(' ', '') @@ -85,6 +83,5 @@ class MyValenstate(commands.Cog):  def setup(bot):      """Valenstate Cog load.""" -      bot.add_cog(MyValenstate(bot))      log.info("MyValenstate cog loaded") diff --git a/bot/seasons/valentines/pickuplines.py b/bot/seasons/valentines/pickuplines.py index ad75c93f..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) @@ -27,7 +27,6 @@ class PickupLine(commands.Cog):          Note that most of them are very cheesy.          """ -          random_line = random.choice(pickup_lines['lines'])          embed = discord.Embed(              title=':cheese: Your pickup line :cheese:', @@ -42,6 +41,5 @@ class PickupLine(commands.Cog):  def setup(bot):      """Pickup lines Cog load.""" -      bot.add_cog(PickupLine(bot))      log.info('PickupLine cog loaded') diff --git a/bot/seasons/valentines/savethedate.py b/bot/seasons/valentines/savethedate.py index 281625a4..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) @@ -25,7 +25,6 @@ class SaveTheDate(commands.Cog):      @commands.command()      async def savethedate(self, ctx):          """Gives you ideas for what to do on a date with your valentine.""" -          random_date = random.choice(VALENTINES_DATES['ideas'])          emoji_1 = random.choice(HEART_EMOJIS)          emoji_2 = random.choice(HEART_EMOJIS) @@ -39,6 +38,5 @@ class SaveTheDate(commands.Cog):  def setup(bot):      """Save the date Cog Load.""" -      bot.add_cog(SaveTheDate(bot))      log.info("SaveTheDate cog loaded") diff --git a/bot/seasons/valentines/valentine_zodiac.py b/bot/seasons/valentines/valentine_zodiac.py index 1700260e..fa849cb2 100644 --- a/bot/seasons/valentines/valentine_zodiac.py +++ b/bot/seasons/valentines/valentine_zodiac.py @@ -15,7 +15,7 @@ HEART_EMOJIS = [":heart:", ":gift_heart:", ":revolving_hearts:", ":sparkling_hea  class ValentineZodiac(commands.Cog): -    """A cog that returns a counter compatible zodiac sign to the given user's zodiac sign.""" +    """A Cog that returns a counter compatible zodiac sign to the given user's zodiac sign."""      def __init__(self, bot):          self.bot = bot @@ -23,9 +23,8 @@ class ValentineZodiac(commands.Cog):      @staticmethod      def load_json(): -        """Load Zodiac compatibility from static JSON resource.""" - -        p = Path('bot', 'resources', 'valentines', 'zodiac_compatibility.json') +        """Load zodiac compatibility from static JSON resource.""" +        p = Path("bot/resources/valentines/zodiac_compatibility.json")          with p.open() as json_data:              zodiacs = load(json_data)              return zodiacs @@ -33,7 +32,6 @@ class ValentineZodiac(commands.Cog):      @commands.command(name="partnerzodiac")      async def counter_zodiac(self, ctx, zodiac_sign):          """Provides a counter compatible zodiac sign to the given user's zodiac sign.""" -          try:              compatible_zodiac = random.choice(self.zodiacs[zodiac_sign.lower()])          except KeyError: @@ -55,7 +53,6 @@ class ValentineZodiac(commands.Cog):  def setup(bot): -    """Valentine Zodiac Cog load.""" - +    """Valentine zodiac Cog load."""      bot.add_cog(ValentineZodiac(bot))      log.info("ValentineZodiac cog loaded") diff --git a/bot/seasons/valentines/whoisvalentine.py b/bot/seasons/valentines/whoisvalentine.py index 96d97e22..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) @@ -23,7 +23,6 @@ class ValentineFacts(commands.Cog):      @commands.command(aliases=('whoisvalentine', 'saint_valentine'))      async def who_is_valentine(self, ctx):          """Displays info about Saint Valentine.""" -          embed = discord.Embed(              title="Who is Saint Valentine?",              description=FACTS['whois'], @@ -39,7 +38,6 @@ class ValentineFacts(commands.Cog):      @commands.command()      async def valentine_fact(self, ctx):          """Shows a random fact about Valentine's Day.""" -          embed = discord.Embed(              title=choice(FACTS['titles']),              description=choice(FACTS['text']), @@ -51,6 +49,5 @@ class ValentineFacts(commands.Cog):  def setup(bot):      """Who is Valentine Cog load.""" -      bot.add_cog(ValentineFacts(bot))      log.info("ValentineFacts cog loaded")  |