Skip to content

Commit f17b77c

Browse files
committed
feature: add console emoji and split up embeds
1 parent 59f51dc commit f17b77c

File tree

1 file changed

+30
-8
lines changed

1 file changed

+30
-8
lines changed

src/achievements.py

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import discord
2+
import json
23
from datetime import datetime
34

45
from services.api import UserProgressGameInfo, UserCompletionRecent, UserProfile, UserCompletionProgress, GameUnlocks
@@ -66,20 +67,19 @@ def process_game_mastery(game, user_completion, profile, mastery_embeds, mastery
6667
mastery_embed = create_mastery_embed(game, user_completion.user, profile, game_progress, mastered_count, mastery_time, highest_unlock, mastery_percentage)
6768
mastery_embeds.append((datetime.strptime(game_progress.highest_award_date, "%Y-%m-%dT%H:%M:%S%z"), mastery_embed))
6869

69-
7070
async def send_achievement_embeds(achievement_embeds, achievements_channel):
7171
achievement_embeds.sort(key=lambda x: x[0])
7272
if achievement_embeds:
7373
logger.info(f"Sending {len(achievement_embeds)} embeds to {achievements_channel}")
74-
for i in range(0, len(achievement_embeds), 10):
75-
await achievements_channel.send(embeds=[embed[1] for embed in achievement_embeds[i:i+10]])
74+
for embed in achievement_embeds:
75+
await achievements_channel.send(embed=embed[1]) # Send each embed individually
7676

7777
async def send_mastery_embeds(mastery_embeds, mastery_channel):
7878
mastery_embeds.sort(key=lambda x: x[0])
7979
if mastery_embeds:
8080
logger.info(f"Sending {len(mastery_embeds)} mastery embeds to {mastery_channel}")
81-
for i in range(0, len(mastery_embeds), 10):
82-
await mastery_channel.send(embeds=[embed[1] for embed in mastery_embeds[i:i+10]])
81+
for embed in mastery_embeds:
82+
await mastery_channel.send(embed=embed[1]) # Send each embed individually
8383

8484
def get_game_details(game_id, username, api_username, api_key):
8585
try:
@@ -120,10 +120,32 @@ def create_achievement_embed(game, user, achievement, profile, current, total):
120120
percentage = (completion / game.total_achievements) * 100
121121
unlock_percentage = (game.achievements[achievement.title]['NumAwardedHardcore'] / game.total_players_hardcore) * 100 if game.total_players_hardcore else 0
122122
most_common_color = get_discord_color(achievement.badge_url)
123-
embed = discord.Embed(description=f"**[{achievement.game_title}]({achievement.game_url})** ({game.remap_console_name()}) \n\n{achievement.description}\n\nUnlocked by {game.achievements[achievement.title]['NumAwardedHardcore']} out of {game.total_players_hardcore} players ({unlock_percentage:.2f}%)", color=most_common_color)
124-
123+
124+
# Load emoji mappings
125+
with open('emoji.json') as f:
126+
emoji_mappings = json.load(f)
127+
# Get the emoji ID based on console name, with a general emoji if no specific match is found
128+
console_name = game.remap_console_name()
129+
emoji_id = emoji_mappings.get(console_name.lower())
130+
emoji = f"<:{console_name}:{emoji_id}>" if emoji_id else ":video_game:"
131+
132+
embed = discord.Embed(
133+
description=(
134+
f"**[{achievement.game_title}]({achievement.game_url})** "
135+
f"{emoji}\n\n"
136+
f"{achievement.description}\n\n"
137+
f"Unlocked by {game.achievements[achievement.title]['NumAwardedHardcore']} out of "
138+
f"{game.total_players_hardcore} players ({unlock_percentage:.2f}%)"
139+
),
140+
color=most_common_color
141+
)
142+
125143
# Check if achievement type is 'Missable'
126-
achievement_title = f"[{achievement.title}]({achievement.url}) (m)" if achievement.type == "missable" else f"[{achievement.title}]({achievement.url})"
144+
achievement_title = (
145+
f"[{achievement.title}]({achievement.url}) (m)"
146+
if achievement.type == "missable"
147+
else f"[{achievement.title}]({achievement.url})"
148+
)
127149

128150
embed.add_field(name="Achievement", value=achievement_title, inline=True)
129151
embed.add_field(name="Points", value=f"{achievement.points} ({achievement.retropoints_format})", inline=True)

0 commit comments

Comments
 (0)