162 lines
3.7 KiB
JavaScript
162 lines
3.7 KiB
JavaScript
export default function parse(data) {
|
|
const output = {
|
|
doing_nothing: false,
|
|
};
|
|
const act = [];
|
|
|
|
const PrirorityActivityType = [
|
|
"Coding",
|
|
"Listening to Spotify",
|
|
"Playing",
|
|
"Custom Status",
|
|
"Streaming",
|
|
"Watching",
|
|
"Competing",
|
|
"Unknown",
|
|
];
|
|
|
|
output.discord = {
|
|
id: data.discord_user.id,
|
|
username: data.discord_user.username,
|
|
discriminator: data.discord_user.discriminator,
|
|
avatar_url:
|
|
"https://cdn.discordapp.com/avatars/" +
|
|
data.discord_user.id +
|
|
"/" +
|
|
data.discord_user.avatar +
|
|
".png",
|
|
avatar_decoration_url:
|
|
"https://cdn.discordapp.com/avatar-decoration-presets/" +
|
|
data.discord_user.avatar_decoration +
|
|
".png",
|
|
discord_status: data.discord_status,
|
|
};
|
|
|
|
output.kv = data.kv;
|
|
|
|
if (data.discord_status == "offline") {
|
|
return {
|
|
discord_status: "offline",
|
|
};
|
|
}
|
|
|
|
if (data.listening_to_spotify) {
|
|
output.spotify = {
|
|
album: data.spotify.album,
|
|
artist: data.spotify.artist,
|
|
song: data.spotify.song,
|
|
album_art_url: data.spotify.album_art_url,
|
|
timestamps: data.spotify.timestamps,
|
|
track_id: data.spotify.track_id,
|
|
};
|
|
}
|
|
for (const activity of data.activities) {
|
|
if (activity.name.includes("Visual Studio Code")) {
|
|
act.push({
|
|
prirority_id: PrirorityActivityType.indexOf("Coding"),
|
|
...activity,
|
|
});
|
|
} else if (activity.name.includes("Spotify")) {
|
|
act.push({
|
|
prirority_id: PrirorityActivityType.indexOf(
|
|
"Listening to Spotify"
|
|
),
|
|
...activity,
|
|
});
|
|
} else if (activity.type === 0) {
|
|
act.push({
|
|
prirority_id: PrirorityActivityType.indexOf("Playing"),
|
|
...activity,
|
|
});
|
|
} else if (activity.name.includes("Custom Status")) {
|
|
act.push({
|
|
prirority_id: PrirorityActivityType.indexOf("Custom Status"),
|
|
...activity,
|
|
});
|
|
output.custom_status = {
|
|
state: activity.state,
|
|
emoji: {
|
|
name: activity.emoji?.name,
|
|
id: activity.emoji?.id,
|
|
animated: activity.emoji?.animated,
|
|
emoji_url:
|
|
"https://cdn.discordapp.com/emojis/" +
|
|
activity.emoji?.id +
|
|
".webp?size=44&quality=lossless",
|
|
},
|
|
};
|
|
} else {
|
|
act.push({
|
|
prirority_id: PrirorityActivityType.indexOf("Unknown"),
|
|
...activity,
|
|
});
|
|
break;
|
|
}
|
|
}
|
|
|
|
act.sort((a, b) => a.prirority_id - b.prirority_id);
|
|
|
|
if(act.length == 0) {
|
|
return {
|
|
...output,
|
|
doing_nothing: true,
|
|
}
|
|
}
|
|
|
|
output.activity = act[0];
|
|
if (output.activity?.prirority_id == 0) {
|
|
output.activity.assets = {
|
|
large_image:
|
|
"https://cdn.discordapp.com/app-assets/" +
|
|
output.activity?.application_id +
|
|
"/" +
|
|
output.activity?.assets.large_image +
|
|
".png",
|
|
small_image:
|
|
"https://cdn.discordapp.com/app-assets/" +
|
|
output.activity?.application_id +
|
|
"/" +
|
|
output.activity?.assets?.small_image +
|
|
".png",
|
|
};
|
|
}
|
|
else if (output.activity?.prirority_id == 1) {
|
|
output.activity.assets = {
|
|
large_image: output.spotify.album_art_url,
|
|
small_image: "/images/brandlogos/SpotifyLogo.png",
|
|
};
|
|
} else if (output.activity?.prirority_id == 3) {
|
|
output.activity.assets = {
|
|
large_image: "/images/anime-profile-pic.png",
|
|
small_image: output.custom_status.emoji.emoji_url,
|
|
};
|
|
} else {
|
|
if (output.activity.assets){
|
|
output.activity.assets = {
|
|
large_image:
|
|
"https://cdn.discordapp.com/app-assets/" +
|
|
output.activity?.application_id +
|
|
"/" +
|
|
output.activity?.assets.large_image +
|
|
".png",
|
|
small_image:
|
|
"https://cdn.discordapp.com/app-assets/" +
|
|
output.activity?.application_id +
|
|
"/" +
|
|
output.activity?.assets?.small_image +
|
|
".png",
|
|
};
|
|
}
|
|
else {
|
|
output.activity.assets = {
|
|
large_image: "/images/default_game.jpg",
|
|
small_image: "/images/special.png",
|
|
};
|
|
}
|
|
}
|
|
|
|
console.log(output);
|
|
|
|
return output;
|
|
}
|