diff options
Diffstat (limited to 'bot/seasons/evergreen')
| -rw-r--r-- | bot/seasons/evergreen/game.py | 29 | 
1 files changed, 14 insertions, 15 deletions
| diff --git a/bot/seasons/evergreen/game.py b/bot/seasons/evergreen/game.py index 68fc7422..a644fe97 100644 --- a/bot/seasons/evergreen/game.py +++ b/bot/seasons/evergreen/game.py @@ -198,25 +198,24 @@ class Games(Cog):              games = await self.get_games_list(amount, self.genres[genre], offset=random.randint(0, 150))          except KeyError:              possibilities = await self.get_best_results(genre) -            possibility = None -            # Check is there any possibility that ratio is higher than 0.60 -            for p in possibilities: -                # If there is more than 1 genre that have higher than 0.60 ratio, then show list of possibilities -                if sum(1 for po in possibilities if po[0] >= 0.60) > 1: -                    break -                if p[0] >= 0.60: -                    possibility = await self.get_games_list(amount, self.genres[p[1]], offset=random.randint(0, 150)) -                    genre = p[1] -                    break -            if possibility: -                games = possibility -            else: -                display_possibilities = ", ".join(p[1] for p in possibilities if p[0] >= 0.40) +            # If there is more than 1 possibilities, show these. +            # If there is only 1 possibility, use it as genre. +            # Otherwise send message about invalid genre. +            if len(possibilities) > 1: +                display_possibilities = "`, `".join(p[1] for p in possibilities if p[0] >= 0.40)                  await ctx.send(                      f"Invalid genre `{genre}`. "                      f"{f'Maybe you meant `{display_possibilities}`?' if display_possibilities else ''}"                  )                  return +            elif len(possibilities) == 1: +                games = await self.get_games_list( +                    amount, self.genres[possibilities[0][1]], offset=random.randint(0, 150) +                ) +                genre = possibilities[0][1] +            else: +                await ctx.send(f"Invalid genre `{genre}`.") +                return          # Create pages and paginate          pages = [await self.create_page(game) for game in games] @@ -413,7 +412,7 @@ class Games(Cog):              for word in REGEX_NON_ALPHABET.split(genre):                  ratios.append(difflib.SequenceMatcher(None, query, word).ratio())              results.append((round(max(ratios), 2), genre)) -        return sorted(results, reverse=True)[:4] +        return sorted((item for item in results if item[0] >= 0.60), reverse=True)[:4]  def setup(bot: SeasonalBot) -> None: | 
