mirror of
https://github.com/antebudimir/feishin.git
synced 2025-12-31 18:13:31 +00:00
Automatically reconnect to Discord RPC at interval (#996)
* initialize before setActivity
This commit is contained in:
parent
19c8980784
commit
cd2d531c54
3 changed files with 24 additions and 5 deletions
|
|
@ -5,16 +5,20 @@ const FEISHIN_DISCORD_APPLICATION_ID = '1165957668758900787';
|
|||
|
||||
let client: Client | null = null;
|
||||
|
||||
const createClient = (clientId?: string) => {
|
||||
const createClient = async (clientId?: string) => {
|
||||
client = new Client({
|
||||
clientId: clientId || FEISHIN_DISCORD_APPLICATION_ID,
|
||||
});
|
||||
|
||||
client.login();
|
||||
await client.login();
|
||||
|
||||
return client;
|
||||
};
|
||||
|
||||
const isConnected = () => {
|
||||
return client?.isConnected;
|
||||
};
|
||||
|
||||
const setActivity = (activity: SetActivity) => {
|
||||
if (client) {
|
||||
client.user?.setActivity({
|
||||
|
|
@ -35,8 +39,12 @@ const quit = () => {
|
|||
}
|
||||
};
|
||||
|
||||
ipcMain.handle('discord-rpc-initialize', (_event, clientId?: string) => {
|
||||
createClient(clientId);
|
||||
ipcMain.handle('discord-rpc-initialize', async (_event, clientId?: string) => {
|
||||
await createClient(clientId);
|
||||
});
|
||||
|
||||
ipcMain.handle('discord-rpc-is-connected', () => {
|
||||
return isConnected();
|
||||
});
|
||||
|
||||
ipcMain.handle('discord-rpc-set-activity', (_event, activity: SetActivity) => {
|
||||
|
|
@ -58,6 +66,7 @@ ipcMain.handle('discord-rpc-quit', () => {
|
|||
export const discordRpc = {
|
||||
clearActivity,
|
||||
createClient,
|
||||
isConnected,
|
||||
quit,
|
||||
setActivity,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -6,6 +6,11 @@ const initialize = (clientId: string) => {
|
|||
return client;
|
||||
};
|
||||
|
||||
const isConnected = () => {
|
||||
const isConnected = ipcRenderer.invoke('discord-rpc-is-connected');
|
||||
return isConnected;
|
||||
};
|
||||
|
||||
const clearActivity = () => {
|
||||
ipcRenderer.invoke('discord-rpc-clear-activity');
|
||||
};
|
||||
|
|
@ -21,6 +26,7 @@ const quit = () => {
|
|||
export const discordRpc = {
|
||||
clearActivity,
|
||||
initialize,
|
||||
isConnected,
|
||||
quit,
|
||||
setActivity,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -121,6 +121,10 @@ export const useDiscordRpc = () => {
|
|||
activity.largeImageKey = 'icon';
|
||||
}
|
||||
|
||||
// Initialize if needed
|
||||
const isConnected = await discordRpc?.isConnected();
|
||||
if (!isConnected) await discordRpc?.initialize(discordSettings.clientId);
|
||||
|
||||
discordRpc?.setActivity(activity);
|
||||
}
|
||||
},
|
||||
|
|
@ -129,6 +133,7 @@ export const useDiscordRpc = () => {
|
|||
discordSettings.showServerImage,
|
||||
discordSettings.showPaused,
|
||||
generalSettings.lastfmApiKey,
|
||||
discordSettings.clientId,
|
||||
lastUniqueId,
|
||||
],
|
||||
);
|
||||
|
|
@ -136,7 +141,6 @@ export const useDiscordRpc = () => {
|
|||
useEffect(() => {
|
||||
if (!discordSettings.enabled) return discordRpc?.quit();
|
||||
|
||||
discordRpc?.initialize(discordSettings.clientId);
|
||||
return () => {
|
||||
discordRpc?.quit();
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue