presence: new fields

This commit is contained in:
Cynthia Foxwell 2025-07-10 18:36:16 -06:00
parent 6bae1a2301
commit 02d0e13a2e
Signed by: Cynosphere
SSH key fingerprint: SHA256:H3SM8ufP/uxqLwKSH7xY89TDnbR9uOHzjLoBr0tlajk

View file

@ -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] ?? `<unknown type: ${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 " : ""}<t:${Math.floor(
`\n-# ${activity.application_id ? `ID: ${activity.application_id} \u2022 ` : ""}<t:${Math.floor(
activity.created_at / 1000
)}:f>`
);