mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-30 03:13:44 +00:00
Fix: discord activity sanitizer (#4119)
Co-authored-by: Angelos Bouklis <me@arjix.dev>
This commit is contained in:
@ -19,6 +19,27 @@ export const truncateString = (str: string, length: number): string => {
|
||||
return str;
|
||||
};
|
||||
|
||||
/**
|
||||
* Sanitizes a string for Discord Rich Presence activity, ensuring it meets length requirements.
|
||||
* @param input - The string to sanitize.
|
||||
* @param fallback - A fallback string to use if the input is empty or whitespace. Defaults to 'undefined'.
|
||||
* @returns The sanitized string, compliant with Discord's requirements.
|
||||
*/
|
||||
export function sanitizeActivityText(input: string | undefined, fallback: string = 'undefined'): string {
|
||||
const text = (input && input.trim()) ? input.trim() : fallback.trim();
|
||||
let safeString = truncateString(text, 128);
|
||||
|
||||
if (safeString.length === 0) {
|
||||
return fallback;
|
||||
}
|
||||
|
||||
if (safeString.length < 2) {
|
||||
safeString = safeString.padEnd(2, '⠀'); // change if necessary
|
||||
}
|
||||
|
||||
return safeString;
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds the array of buttons for the Discord Rich Presence activity.
|
||||
* @param config - The plugin configuration.
|
||||
|
||||
Reference in New Issue
Block a user