diff --git a/docker-compose.yml b/docker-compose.yml index e6dd6ce..b1a820f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -53,7 +53,7 @@ services: environment: DEBUG: '*,-express:*' ZNC_PROXY_URL: http://znc-proxy - NXAPI_PRESENCE_SERVER_USER: ${NXAPI_PRESENCE_SERVER_USER} + NXAPI_PRESENCE_SERVER_USER: ${NXAPI_PRESENCE_SERVER_USER:-} NXAPI_PRESENCE_SERVER_SPLATNET3_PROXY_URL: http://presence-splatnet3-proxy/api/splatnet3-presence volumes: - data:/data diff --git a/src/app/browser/preferences/index.tsx b/src/app/browser/preferences/index.tsx index 25c1c4b..96e73b5 100644 --- a/src/app/browser/preferences/index.tsx +++ b/src/app/browser/preferences/index.tsx @@ -243,6 +243,10 @@ export default function Preferences(props: PreferencesProps) { label="Show approximate play time (nearest 5 hours)" /> + + ) { type: 'boolean', default: false, }).option('show-play-time', { - describe: 'Play time format ("hidden", "nintendo", "approximate", "approximate-since", "detailed", "detailed-since")', + describe: 'Play time format ("hidden", "nintendo", "approximate", "approximate-since", "hour", "hour-since", "detailed", "detailed-since")', type: 'string', default: 'detailed-since', }).option('friend-nsaid', { @@ -151,6 +151,8 @@ export async function handler(argv: ArgumentsCamelCase) { 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() === 'hour' ? DiscordPresencePlayTime.HOUR_PLAY_TIME : + argv.showPlayTime.toLowerCase() === 'hour-since' ? DiscordPresencePlayTime.HOUR_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; diff --git a/src/cli/util/discord-activity.ts b/src/cli/util/discord-activity.ts index de9ed83..ee71484 100644 --- a/src/cli/util/discord-activity.ts +++ b/src/cli/util/discord-activity.ts @@ -195,6 +195,8 @@ function getActivityFromPresence( 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() === 'hour' ? DiscordPresencePlayTime.HOUR_PLAY_TIME : + argv.showPlayTime.toLowerCase() === 'hour-since' ? DiscordPresencePlayTime.HOUR_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; diff --git a/src/discord/types.ts b/src/discord/types.ts index 05096ce..a9d5bdc 100644 --- a/src/discord/types.ts +++ b/src/discord/types.ts @@ -120,6 +120,10 @@ export enum DiscordPresencePlayTime { DETAILED_PLAY_TIME, /** "Played for x hours and x minutes since dd/mm/yyyy" */ DETAILED_PLAY_TIME_SINCE, + /** "Played for x hours" */ + HOUR_PLAY_TIME, + /** "Played for x hours since dd/mm/yyyy" */ + HOUR_PLAY_TIME_SINCE, } export interface ExternalMonitorConstructor = ExternalMonitor> { diff --git a/src/discord/util.ts b/src/discord/util.ts index 770a5d4..bfe6193 100644 --- a/src/discord/util.ts +++ b/src/discord/util.ts @@ -99,6 +99,10 @@ function getPlayTimeText(type: DiscordPresencePlayTime, game: Game) { case DiscordPresencePlayTime.APPROXIMATE_PLAY_TIME_SINCE: if (game.totalPlayTime < 60) return null; return 'Played for ' + hrduration(getApproximatePlayTime(game.totalPlayTime)) + ' or more since ' + since; + case DiscordPresencePlayTime.HOUR_PLAY_TIME: + return 'Played for ' + hrduration(Math.floor(game.totalPlayTime / 60) * 60); + case DiscordPresencePlayTime.HOUR_PLAY_TIME_SINCE: + return 'Played for ' + hrduration(Math.floor(game.totalPlayTime / 60) * 60) + ' since ' + since; case DiscordPresencePlayTime.DETAILED_PLAY_TIME: return 'Played for ' + hrduration(game.totalPlayTime); case DiscordPresencePlayTime.DETAILED_PLAY_TIME_SINCE: