diff --git a/src/modules/utility/presence.js b/src/modules/utility/presence.js index 742c694..2597777 100644 --- a/src/modules/utility/presence.js +++ b/src/modules/utility/presence.js @@ -24,6 +24,8 @@ const {formatTime} = require("#util/time.js"); } })();*/ +const ActivityDisplayTypes = ["Name", "State", "Details"]; + const NOWPLAYING_BAR_LENGTH = 32; const NOWPLAYING_BAR_CHAR = "\u2014"; @@ -192,17 +194,25 @@ presence.callback = async function (msg, line) { let details = activity.details; if (activity.name == "Spotify" && activity.sync_id) { details = `[${details}](https://open.spotify.com/track/${activity.sync_id})`; + } else if (activity.details_url) { + details = `[${details}](${activity.details_url})`; } descLines.push(`**${details}**`); } if (activity.state) { let stateLine = activity.state; - if (activity.name == "Spotify") stateLine = "by " + stateLine.split("; ").join(", "); + if (activity.name == "Spotify") { + stateLine = stateLine.replaceAll("; ", ", "); + } else if (activity.state_url) { + stateLine = `[${stateLine}](${activity.state_url})`; + } descLines.push(stateLine); } if (activity.assets?.large_text) { let albumLine = activity.assets.large_text; - if (activity.name == "Spotify") albumLine = "on " + albumLine; + if (activity.assets.large_url) { + albumLine = `[${albumLine}](${activity.assets.large_url})`; + } if (activity.party?.size) { albumLine += ` (${activity.party.size[0]} of ${activity.party.size[1]})`; @@ -252,16 +262,34 @@ presence.callback = async function (msg, line) { descLines.push(`-# Platform: ${activity.platform}`); } + if (activity.status_display_type != null) { + descLines.push( + `-# Display Type: ${ + ActivityDisplayTypes[activity.status_display_type] ?? `` + }` + ); + } + if (activity.assets?.large_text && activity.type != 2) { - descLines.push("### Large Text", activity.assets.large_text); + descLines.push( + "### Large Text", + activity.assets.large_url + ? `[${activity.assets.large_text}](${activity.assets.large_url})` + : activity.assets.large_text + ); } if (activity.assets?.small_text) { - descLines.push("### Small Text", activity.assets.small_text); + descLines.push( + "### Small Text", + activity.assets.small_url + ? `[${activity.assets.small_text}](${activity.assets.small_url})` + : activity.assets.small_text + ); } descLines.push( - `\n-# ${activity.application_id ? activity.application_id + " \u2022 " : ""}` );