mirror of
https://github.com/samuelthomas2774/nxapi.git
synced 2026-10-06 01:27:37 -05:00
Add an option to set the play time text format
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
import createDebug from 'debug';
|
||||
import persist from 'node-persist';
|
||||
import DiscordRPC from 'discord-rpc';
|
||||
import fetch from 'node-fetch';
|
||||
import { ActiveEvent, CurrentUser, Friend, Presence, PresenceState, ZncErrorResponse } from '../../api/znc-types.js';
|
||||
import ZncApi from '../../api/znc.js';
|
||||
import type { Arguments as ParentArguments } from '../nso.js';
|
||||
import { ArgumentsCamelCase, Argv, getToken, initStorage, LoopResult, SavedToken, YargsArguments } from '../../util.js';
|
||||
import { DiscordPresenceContext, getDiscordPresence, getInactiveDiscordPresence } from '../../discord/util.js';
|
||||
import { DiscordPresencePlayTime, DiscordPresenceContext, getDiscordPresence, getInactiveDiscordPresence } from '../../discord/util.js';
|
||||
import { handleEnableSplatNet2Monitoring, ZncNotifications } from './notify.js';
|
||||
import { ErrorResponse } from '../../index.js';
|
||||
import { getPresenceFromUrl } from '../../api/znc-proxy.js';
|
||||
@@ -33,6 +32,10 @@ export function builder(yargs: Argv<ParentArguments>) {
|
||||
describe: 'Show event (Online Lounge/voice chat) details - this shows the number of players in game (experimental)',
|
||||
type: 'boolean',
|
||||
default: false,
|
||||
}).option('show-play-time', {
|
||||
describe: 'Play time format ("hidden", "nintendo", "approximate", "approximate-since", "detailed", "detailed-since")',
|
||||
type: 'string',
|
||||
default: 'detailed-since',
|
||||
}).option('friend-nsaid', {
|
||||
alias: ['friend-naid'],
|
||||
describe: 'Friend\'s Nintendo Switch account ID',
|
||||
@@ -193,12 +196,13 @@ export class ZncDiscordPresence extends ZncNotifications {
|
||||
force_friend_code: CurrentUser['links']['friendCode'] | undefined = undefined;
|
||||
show_console_online = false;
|
||||
show_active_event = true;
|
||||
show_play_time = DiscordPresencePlayTime.DETAILED_PLAY_TIME_SINCE;
|
||||
|
||||
constructor(
|
||||
argv: Pick<ArgumentsCamelCase<Arguments>,
|
||||
'userNotifications' | 'friendNotifications' | 'updateInterval' |
|
||||
'friendCode' | 'showInactivePresence' | 'showEvent' | 'friendNsaid' |
|
||||
'discordPreconnect'
|
||||
'showPlayTime' | 'discordPreconnect'
|
||||
>,
|
||||
storage: persist.LocalStorage,
|
||||
token: string,
|
||||
@@ -215,6 +219,14 @@ export class ZncDiscordPresence extends ZncNotifications {
|
||||
this.show_console_online = argv.showInactivePresence;
|
||||
this.show_active_event = argv.showEvent;
|
||||
|
||||
this.show_play_time = argv.showPlayTime.toLowerCase() === 'hidden' ? DiscordPresencePlayTime.HIDDEN :
|
||||
argv.showPlayTime.toLowerCase() === 'nintendo' ? DiscordPresencePlayTime.NINTENDO :
|
||||
argv.showPlayTime.toLowerCase() === 'approximate' ? DiscordPresencePlayTime.APPROXIMATE_PLAY_TIME :
|
||||
argv.showPlayTime.toLowerCase() === 'approximate-since' ? DiscordPresencePlayTime.APPROXIMATE_PLAY_TIME_SINCE :
|
||||
argv.showPlayTime.toLowerCase() === 'detailed' ? DiscordPresencePlayTime.DETAILED_PLAY_TIME :
|
||||
argv.showPlayTime.toLowerCase() === 'detailed-since' ? DiscordPresencePlayTime.DETAILED_PLAY_TIME_SINCE :
|
||||
DiscordPresencePlayTime.DETAILED_PLAY_TIME_SINCE;
|
||||
|
||||
this.presence_user = argv.friendNsaid ?? data?.nsoAccount.user.nsaId;
|
||||
this.discord_preconnect = argv.discordPreconnect;
|
||||
}
|
||||
@@ -305,7 +317,8 @@ export class ZncDiscordPresence extends ZncNotifications {
|
||||
|
||||
const presencecontext: DiscordPresenceContext = {
|
||||
friendcode: this.show_friend_code ? this.force_friend_code ?? friendcode : undefined,
|
||||
activeevent,
|
||||
activeevent: this.show_active_event ? activeevent : undefined,
|
||||
show_play_time: this.show_play_time,
|
||||
znc_discord_presence: this,
|
||||
nsaid: this.presence_user!,
|
||||
user,
|
||||
|
||||
@@ -3,7 +3,7 @@ import fetch from 'node-fetch';
|
||||
import { getPresenceFromUrl } from '../../api/znc-proxy.js';
|
||||
import { ActiveEvent, CurrentUser, Friend, Game, Presence, PresenceState } from '../../api/znc-types.js';
|
||||
import type { Arguments as ParentArguments } from '../../cli.js';
|
||||
import { DiscordPresenceContext, getDiscordPresence, getInactiveDiscordPresence } from '../../discord/util.js';
|
||||
import { DiscordPresenceContext, DiscordPresencePlayTime, getDiscordPresence, getInactiveDiscordPresence } from '../../discord/util.js';
|
||||
import { ArgumentsCamelCase, Argv, getToken, initStorage, YargsArguments } from '../../util.js';
|
||||
|
||||
const debug = createDebug('cli:util:discord-activity');
|
||||
@@ -36,6 +36,10 @@ export function builder(yargs: Argv<ParentArguments>) {
|
||||
describe: 'Show event (Online Lounge/voice chat) details - this shows the number of players in game (experimental)',
|
||||
type: 'boolean',
|
||||
default: false,
|
||||
}).option('show-play-time', {
|
||||
describe: 'Play time format ("hidden", "nintendo", "approximate", "approximate-since", "detailed", "detailed-since")',
|
||||
type: 'string',
|
||||
default: 'detailed-since',
|
||||
}).option('friend-nsaid', {
|
||||
describe: 'Friend\'s Nintendo Switch account ID',
|
||||
type: 'string',
|
||||
@@ -179,9 +183,18 @@ function getActivityFromPresence(
|
||||
{id: match[2] + '-' + match[3] + '-' + match[4], regenerable: false, regenerableAt: 0} : undefined;
|
||||
const show_friend_code = !!force_friend_code || argv.friendCode === '' || argv.friendCode === '-';
|
||||
|
||||
const show_play_time = argv.showPlayTime.toLowerCase() === 'hidden' ? DiscordPresencePlayTime.HIDDEN :
|
||||
argv.showPlayTime.toLowerCase() === 'nintendo' ? DiscordPresencePlayTime.NINTENDO :
|
||||
argv.showPlayTime.toLowerCase() === 'approximate' ? DiscordPresencePlayTime.APPROXIMATE_PLAY_TIME :
|
||||
argv.showPlayTime.toLowerCase() === 'approximate-since' ? DiscordPresencePlayTime.APPROXIMATE_PLAY_TIME_SINCE :
|
||||
argv.showPlayTime.toLowerCase() === 'detailed' ? DiscordPresencePlayTime.DETAILED_PLAY_TIME :
|
||||
argv.showPlayTime.toLowerCase() === 'detailed-since' ? DiscordPresencePlayTime.DETAILED_PLAY_TIME_SINCE :
|
||||
DiscordPresencePlayTime.DETAILED_PLAY_TIME_SINCE;
|
||||
|
||||
const presencecontext: DiscordPresenceContext = {
|
||||
friendcode: show_friend_code ? force_friend_code ?? friendcode : undefined,
|
||||
activeevent,
|
||||
show_play_time,
|
||||
// znc_discord_presence: this,
|
||||
nsaid: argv.friendNsaid ?? user?.nsaId,
|
||||
user,
|
||||
|
||||
Reference in New Issue
Block a user