async def my_characters(self, ctx, user: discord.User = None): if user is not None: user_ = user user_characters: UserCharacters = self.cool_down_checks.get( ctx.author.id, None) if user_characters is not None: rolls = user_characters.rolls_left else: if ctx.has_voted(user_id=ctx.author.id): rolls = NON_VOTE_ROLLS + VOTE_ROLLS_MOD else: rolls = NON_VOTE_ROLLS user_characters = UserCharacters( user_id=user.id, database=self.database, rolls=rolls, expires_in=self.cool_down_checks.get('expires_in', None), callback=self.callback) self.bot.cache.store('characters', user.id, user_characters) else: user_ = ctx.author user_characters: UserCharacters = self.bot.cache.get( 'characters', ctx.author.id) if user_characters is None: user_characters: UserCharacters = self.cool_down_checks.get( ctx.author.id, None) if user_characters is not None: rolls = user_characters.rolls_left expires = user_characters.expires_in else: if ctx.has_voted(user_id=ctx.author.id): rolls, expires = NON_VOTE_ROLLS + VOTE_ROLLS_MOD, None else: rolls, expires = NON_VOTE_ROLLS, None user_characters = UserCharacters(user_id=ctx.author.id, database=self.database, rolls=rolls, expires_in=expires, callback=self.callback) self.bot.cache.store('characters', ctx.author.id, user_characters) if user_characters.amount_of_items <= 0: embed = discord.Embed(color=self.bot.colour) \ .set_footer(text="Hint: Vote for Crunchy on top.gg to get more perks!") embed.description = f"Oops! {'You' if user is None else 'They'} dont " \ f"have any collected characters,\n lets get them filling list!" embed.set_thumbnail(url=random.choice(SAD_URL)) embed.set_author(name=f"{user_.name}'s collected characters", icon_url=user_.avatar_url) return await ctx.send(embed=embed) else: embeds = await self.generate_embeds(user=user_, area=user_characters) if len(embeds) > 1: pager = Paginator(embed_list=embeds, bot=self.bot, message=ctx.message, colour=self.bot.colour) return self.bot.loop.create_task(pager.start()) else: return await ctx.send(embed=embeds[0])
async def my_recommended(self, ctx, option=None): """ Get your or someone else's recommended list args: option - This can be any string but can only be valid as a bool or a member to be used by the member converter but not Both. In this case Member will always be picked over the cycle option. """ cycle = False member = None if option is not None: cycle = option.lower() == "--cycle" or option.lower() == "-c" try: member = await convert_member(ctx, option) except commands.BadArgument: member = None if cycle: user_area = UserRecommended(user_id=ctx.author.id, database=self.bot.database) if user_area.amount_of_items <= 0: embed = discord.Embed(color=self.bot.colour) \ .set_footer(text="Hint: Vote for Crunchy on top.gg to get more perks!") embed.description = f"Oops! {'You' if member is None else 'They'} dont " \ f"have anything in {'your' if member is None else 'their'} recommended,\n" \ f" lets get filling it!" embed.set_thumbnail(url=random.choice(SAD_URL)) embed.set_author(name=f"{ctx.author.name}'s {user_area.type}", icon_url=ctx.author.avatar_url) return await ctx.send(embed=embed) return await self.cycle_items(ctx, user_area) if member is not None: user_ = member user_area = UserRecommended(user_id=member.id, database=self.bot.database) if not user_area.is_public: return await ctx.send( "Oops! This user has their recommended firewalled (Private)." ) else: user_ = ctx.author user_area = UserRecommended(user_id=ctx.author.id, database=self.bot.database) if user_area.amount_of_items <= 0: embed = discord.Embed(color=self.bot.colour) \ .set_footer(text="Hint: Vote for Crunchy on top.gg to get more perks!") embed.description = f"Oops! {'You' if member is None else 'They'} dont " \ f"have anything in {'your' if member is None else 'their'} recommended,\n" \ f" lets get filling it!" embed.set_thumbnail(url=random.choice(SAD_URL)) embed.set_author(name=f"{user_.name}'s {user_area.type}", icon_url=user_.avatar_url) return await ctx.send(embed=embed) else: embeds = await self.generate_embeds(user=user_, area=user_area) if len(embeds) > 1: pager = Paginator(embed_list=embeds, bot=self.bot, message=ctx.message, colour=self.bot.colour) return self.bot.loop.create_task(pager.start()) return await ctx.send(embed=embeds[0])
async def help(self, ctx, sub_sec: str = None): if sub_sec is not None: return await self.get_sub_page(ctx, sub_sec) else: embed1 = discord.Embed( description= f"Do `{ctx.prefix}help <command> for more info on each command`", color=self.bot.colour) embed1.set_author( name=f"{ctx.author.name} - Crunchy's Commands: | Page 1 / 2", icon_url=ctx.author.avatar_url) f1 = f"<:discord:642859572524220427> **General Commands** <:discord:642859572524220427>\n" \ f"" + "\n".join(self.GENERAL_COMMANDS) f4 = f"<:gelati_cute:704784002355036190> **Watch List Commands & Favourites** <:gelati_cute:704784002355036190>\n" \ f"" + "\n".join(self.TRACKING_COMMANDS) f3_2 = f"⚙️ **User config** ⚙️\n" \ f"" + "\n".join(self.CONFIG_COMMANDS) embed1.add_field(name="\u200b", value=f1, inline=False) embed1.add_field(name="\u200b", value=f4, inline=False) embed1.add_field(name="\u200b", value=f3_2, inline=False) embed2 = discord.Embed( description= f"Do `{ctx.prefix}help <command> for more info on each command`", color=self.bot.colour) embed2.set_author( name=f"{ctx.author.name} - Crunchy's Commands: | Page 2 / 2", icon_url=ctx.author.avatar_url) f2 = f"<:9887_ServerOwner:653722257356750889> **Anime Commands** <:9887_ServerOwner:653722257356750889>\n" \ f"" + "\n".join(self.ANIME_COMMANDS) f3 = f"<:CrunchyRollLogo:676087821596885013> **Live Feeds** <:CrunchyRollLogo:676087821596885013>\n" \ f"" + "\n".join(self.LIVE_COMMANDS) f5 = f"<:HimeHappy:677852789074034691> **Character Collection** <:HimeHappy:677852789074034691>\n" \ f"" + "\n".join(self.CHARACTER_COMMANDS) embed2.add_field(name="\u200b", value=f3, inline=False) embed2.add_field(name="\u200b", value=f5, inline=False) embed2.add_field(name="\u200b", value=f2, inline=False) if ctx.guild_config is not None: if ctx.guild_config.nsfw_enabled: f6 = f"🔞 **NSFW** 🔞\n" \ f"" + "\n".join(self.NSFW_COMMANDS) embed2.add_field(name="\u200b", value=f6, inline=False) else: f6 = f"🔞 **NSFW** 🔞\n" \ f"" + "\n".join(self.NSFW_COMMANDS) embed2.add_field(name="\u200b", value=f6, inline=False) embed1.set_footer( text= "Part of the Crunchy the Crunchyroll Discord bot, Powered by CF8" ) embed2.set_footer( text= "Part of the Crunchy the Crunchyroll Discord bot, Powered by CF8" ) pager = Paginator(embed_list=[embed1, embed2], bot=self.bot, message=ctx.message, colour=self.bot.colour) return self.bot.loop.create_task(pager.start())