async def personalidad(self, ctx, *, personalidad: to_title): """ **Obtén un listado con todos los aldeanos de una personalidad** <personalidad>: La personalidad en **ingles** a buscar. """ # Verificar personalidad if personalidad not in personality_es: ctx.command.reset_cooldown(ctx) content = ( f"{personalidad} no es una personalidad valida en inglés.\n" "Por favor, elija una de las siguientes personalidades: " f"{get_keys(personality_es)}") await ctx.send(content, delete_after=30) return # Generar paginas pages = [] filtered = [ x for x in self.bot.villagers if x["personality"] == personalidad ] for idx, villager in enumerate(filtered, start=1): embed = villager_embed(villager) embed.set_footer(text=f"Página: {idx} de {len(filtered)}") pages.append(embed) # Crear paginador por 10 minutos msg = f"Aldeanos de personalidad **{personalidad}** ({personality_es[personalidad]})" paginator = Paginator(ctx, msg, pages) await paginator.run(600)
async def villager(self, ctx, *, villager: str): """ **Obtén información de algún aldeano de ACNH** <busqueda>: El nombre en **ingles** del aldeano a buscar. """ async with ctx.typing(): msg = await ctx.send( f"{self.bot.think} | Se esta buscando a tu aldeano.") data = next( (vil for vil in self.bot.villagers if vil["name"] == villager.title()), None, ) if data: embed = villager_embed(data) await msg.delete() await ctx.send(embed=embed) else: err = f"{self.bot.omg} | {villager.title()} no es un aldeano en ACNH." await msg.edit(content=err, delete_after=7)
async def aldeano(self, ctx, *, aldeano: normalize): """ **Obtén información de algún aldeano de ACNH** <busqueda>: El nombre en **español** del aldeano a buscar. """ async with ctx.typing(): msg = await ctx.send( f"{self.bot.think} | Se esta buscando a tu aldeano.") data = next( (x for x in self.bot.villagers if normalize(x["spanish"]) == aldeano), None, ) if data: embed = villager_embed(data) await msg.delete() await ctx.send(embed=embed) else: err = f"{self.bot.omg} | {aldeano.title()} no es un aldeano en ACNH." await msg.edit(content=err, delete_after=7)
async def calendario(self, ctx): # Create paginator pages = [] sorted_list = sorted(self.bot.villagers, key=lambda v: v["birthday"]) for idx, villager in enumerate(sorted_list, start=1): embed = villager_embed(villager) embed.set_footer(text=f"Página: {idx} de {len(sorted_list)}") pages.append(embed) msg = f"Calendario de cumpleaños {self.bot.love}" paginator = Paginator(ctx, msg, pages) # Get closest birthday fmt = "%Y-%m-%d %H:%M:%S" closest = min( sorted_list, key=lambda x: abs( datetime.strptime(x["birthday"], fmt).date() - datetime.today( ).date()), ) paginator.curr = sorted_list.index(closest) await paginator.run(600)
async def especie(self, ctx, *, especie: to_title): """ **Obtén un listado con todos los aldeanos de una especie** <especie>: La especie en **ingles** a buscar. """ # Verificar especie if especie not in species_es: ctx.command.reset_cooldown(ctx) content = (f"{especie} no es una especie valida en inglés.\n" "Por favor, elija una de las siguientes especies: " f"{get_keys(species_es)}") await ctx.send(content, delete_after=30) return # Generar paginas pages = [] filtered = [x for x in self.bot.villagers if x["species"] == especie] for idx, villager in enumerate(filtered, start=1): embed = villager_embed(villager) embed.set_footer(text=f"Página: {idx} de {len(filtered)}") pages.append(embed) # Crear paginador por 10 minutos msg = f"Aldeanos de especie **{especie}** ({species_es[especie]})" paginator = Paginator(ctx, msg, pages) await paginator.run(600)