Files
youtube-music/src/plugins/discord/index.ts
2025-12-20 21:57:47 +09:00

61 lines
1.8 KiB
TypeScript

import { StatusDisplayType } from 'discord-api-types/v10';
import { createPlugin } from '@/utils';
import { backend } from './main';
import { onMenu } from './menu';
import { t } from '@/i18n';
export type DiscordPluginConfig = {
'enabled': boolean;
/**
* If enabled, will try to reconnect to discord every 5 seconds after disconnecting or failing to connect
*
* @default true
*/
'autoReconnect': boolean;
/**
* If enabled, the discord rich presence gets cleared when music paused after the time specified below
*/
'activityTimeoutEnabled': boolean;
/**
* The time in milliseconds after which the discord rich presence gets cleared when music paused
*
* @default 10 * 60 * 1000 (10 minutes)
*/
'activityTimeoutTime': number;
/**
* Add a "Play on $APPLICATION_NAME" button to rich presence
*/
'playOn\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u004d\u0075\u0073\u0069\u0063': boolean;
/**
* Hide the "View App On GitHub" button in the rich presence
*/
'hideGitHubButton': boolean;
/**
* Hide the "duration left" in the rich presence
*/
'hideDurationLeft': boolean;
/**
* Controls which field is displayed in the Discord status text
*/
'statusDisplayType': (typeof StatusDisplayType)[keyof typeof StatusDisplayType];
};
export default createPlugin({
name: () => t('plugins.discord.name'),
description: () => t('plugins.discord.description'),
restartNeeded: false,
config: {
'enabled': false,
'autoReconnect': true,
'activityTimeoutEnabled': true,
'activityTimeoutTime': 10 * 60 * 1000,
'playOn\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u004d\u0075\u0073\u0069\u0063': true,
'hideGitHubButton': false,
'hideDurationLeft': false,
'statusDisplayType': StatusDisplayType.Details,
} as DiscordPluginConfig,
menu: onMenu,
backend,
});