Fix user icon in Discord when using --friend-nsaid and show current revision in Discord

This commit is contained in:
Samuel Elliott 2022-04-22 19:37:17 +01:00
parent 78e50d7cc0
commit 0b567e3d3f
No known key found for this signature in database
GPG Key ID: 8420C7CDE43DC4D6
3 changed files with 21 additions and 7 deletions

View File

@ -232,7 +232,7 @@ export class ZncDiscordPresence extends ZncNotifications {
throw new Error('User "' + this.presence_user + '" is not friends with this user');
}
await this.updatePresenceForDiscord(friend.presence, user);
await this.updatePresenceForDiscord(friend.presence, friend);
} else {
await this.updatePresenceForDiscord(user!.presence, user, user!.links.friendCode, activeevent);
}

View File

@ -1,9 +1,12 @@
import DiscordRPC from 'discord-rpc';
import { ActiveEvent, CurrentUser, Friend, Game, PresenceState } from '../api/znc-types.js';
import { defaultTitle, titles } from './titles.js';
import { getTitleIdFromEcUrl, hrduration, version } from '../util.js';
import { dev, getTitleIdFromEcUrl, hrduration, version } from '../util.js';
import { ZncDiscordPresence } from '../cli/nso/presence.js';
const product = 'nxapi ' + version +
(dev ? '-' + dev.revision.substr(0, 7) + (dev.branch ? ' (' + dev.branch + ')' : '') : '');
export function getDiscordPresence(
state: PresenceState, game: Game, context?: DiscordPresenceContext
): DiscordPresence {
@ -34,7 +37,7 @@ export function getDiscordPresence(
details: text[0],
state: text[1],
largeImageKey: title.largeImageKey ?? game.imageUri,
largeImageText: title.largeImageText ?? 'nxapi ' + version,
largeImageText: title.largeImageText ? title.largeImageText + ' | ' + product : product,
smallImageKey: title.smallImageKey || (context?.friendcode ? context?.user?.imageUri : undefined),
smallImageText: title.smallImageKey ? title.smallImageText :
context?.friendcode && context?.user?.imageUri ? 'SW-' + context.friendcode.id : undefined,
@ -72,7 +75,7 @@ export function getInactiveDiscordPresence(
activity: {
state: 'Not playing',
largeImageKey: 'nintendoswitch',
largeImageText: 'nxapi ' + version,
largeImageText: product,
smallImageKey: context?.friendcode ? context?.user?.imageUri : undefined,
smallImageText: context?.friendcode && context?.user?.imageUri ? 'SW-' + context.friendcode.id : undefined,
},

View File

@ -1,5 +1,6 @@
import * as path from 'path';
import * as fs from 'fs';
import * as child_process from 'child_process';
import * as yargs from 'yargs';
import type * as yargstypes from '../node_modules/@types/yargs/index.js';
import createDebug from 'debug';
@ -24,9 +25,19 @@ export const version = pkg.version;
export const dev = (() => {
try {
fs.statSync(path.join(dir, '.git'));
return true;
} catch (err) {}
return false;
} catch (err) {
return null;
}
const revision = child_process.execSync('git rev-parse HEAD').toString().trim();
const branch = child_process.execSync('git rev-parse --abbrev-ref HEAD').toString().trim();
const changed_files = child_process.execSync('git diff --name-only HEAD').toString().trim();
return {
revision,
branch: branch && branch !== 'HEAD' ? branch : null,
changed_files: changed_files.length ? changed_files.split('\n') : [],
};
})();
export type YargsArguments<T extends yargs.Argv> = T extends yargs.Argv<infer R> ? R : any;