mirror of
				https://gitlab.com/ddorn/tfjm-discord-bot.git
				synced 2025-10-31 00:59:51 +01:00 
			
		
		
		
	✨ individual hug stats
This commit is contained in:
		| @@ -312,10 +312,17 @@ class MiscCog(Cog, name="Divers"): | ||||
|  | ||||
|         await ctx.invoke(self.hug, str(last_hug.hugger)) | ||||
|  | ||||
|     @command(name="hug-stats") | ||||
|     @command(name="hug-stats", aliases=["hs"]) | ||||
|     @commands.has_role(Role.PRETRESSE_CALINS) | ||||
|     async def hugs_stats_cmd(self, ctx: Context): | ||||
|     async def hugs_stats_cmd(self, ctx: Context, who: Member = None): | ||||
|         """(prêtresse des calins) Affiche qui est le plus câliné """ | ||||
|  | ||||
|         if who is None: | ||||
|             await self.send_all_hug_stats(ctx) | ||||
|         else: | ||||
|             await self.send_hugs_stats_for(ctx, who) | ||||
|  | ||||
|     async def send_all_hug_stats(self, ctx): | ||||
|         medals = [ | ||||
|             ":first_place:", | ||||
|             ":second_place:", | ||||
| @@ -326,7 +333,9 @@ class MiscCog(Cog, name="Divers"): | ||||
|         ranks = ["Gros Nounours", "Petit Panda", "Ours en peluche"] | ||||
|  | ||||
|         embed = discord.Embed( | ||||
|             title="Prix du plus câliné", color=discord.Colour.magenta(), | ||||
|             title="Prix du plus câliné", | ||||
|             color=discord.Colour.magenta(), | ||||
|             description=f"Nombre de total de câlins : {len(self.hugs)} {Emoji.HEART}", | ||||
|         ) | ||||
|  | ||||
|         diffs = defaultdict(set) | ||||
| @@ -360,8 +369,51 @@ class MiscCog(Cog, name="Divers"): | ||||
|             for id, qte in top[8:13] | ||||
|         ) | ||||
|         embed.add_field(name="Pelote de laine de canard", value=top8to13) | ||||
|  | ||||
|         await ctx.send(embed=embed) | ||||
|  | ||||
|     async def send_hugs_stats_for(self, ctx: Context, who: Member): | ||||
|         embed = discord.Embed( | ||||
|             title=f"Calins de {who.display_name}", color=discord.Colour.magenta() | ||||
|         ) | ||||
|  | ||||
|         w = who.id | ||||
|  | ||||
|         given = [h.hugged for h in self.hugs if h.hugger == w and h.hugged != w] | ||||
|         received = [h.hugger for h in self.hugs if h.hugged == w and h.hugger != w] | ||||
|         auto = [h for h in self.hugs if h.hugged == w == h.hugger] | ||||
|         cut = [h for h in self.hugs if h.hugger == w and "coupé en deux" in h.text] | ||||
|         infos = { | ||||
|             "Câlins donnés": len(given), | ||||
|             "Câlins reçus": len(received), | ||||
|             "Personnes câlinées": len(set(given)), | ||||
|             "Câliné par": len(set(received)), | ||||
|             "Auto-câlins": len(auto), | ||||
|             "Coupé en deux": len(cut), | ||||
|         } | ||||
|  | ||||
|         for f, v in infos.items(): | ||||
|             embed.add_field(name=f, value=f"{v} {self.heart_for_stat(v)}") | ||||
|  | ||||
|         await ctx.send(embed=embed) | ||||
|  | ||||
|     def heart_for_stat(self, v): | ||||
|         hearts = [ | ||||
|             ":broken_heart:", | ||||
|             ":green_heart:", | ||||
|             ":yellow_heart:", | ||||
|             ":orange_heart:", | ||||
|             ":heart:", | ||||
|             ":sparkling_heart:", | ||||
|         ] | ||||
|  | ||||
|         if v <= 0: | ||||
|             return hearts[0] | ||||
|         elif v >= 2000: | ||||
|             return hearts[-1] | ||||
|         else: | ||||
|             return hearts[len(str(v)) - 1] | ||||
|  | ||||
|     def name_for(self, ctx, member_or_role_id): | ||||
|         memb = ctx.guild.get_member(member_or_role_id) | ||||
|         if memb is not None: | ||||
|   | ||||
| @@ -79,6 +79,7 @@ class Role: | ||||
|  | ||||
|  | ||||
| class Emoji: | ||||
|     HEART = "❤️" | ||||
|     JOY = "😂" | ||||
|     SOB = "😭" | ||||
|     BIN = "🗑️" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user