Add an option to show play time to the nearest hour

This commit is contained in:
Samuel Elliott 2022-12-18 13:06:29 +00:00
parent 7afc241190
commit c5e50167dc
No known key found for this signature in database
GPG Key ID: 8420C7CDE43DC4D6
6 changed files with 18 additions and 2 deletions

View File

@ -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

View File

@ -243,6 +243,10 @@ export default function Preferences(props: PreferencesProps) {
label="Show approximate play time (nearest 5 hours)" />
<Picker.Item key={DiscordPresencePlayTime.APPROXIMATE_PLAY_TIME_SINCE} value={DiscordPresencePlayTime.APPROXIMATE_PLAY_TIME_SINCE}
label="Show approximate play time (nearest 5 hours) with first played date" />
<Picker.Item key={DiscordPresencePlayTime.HOUR_PLAY_TIME} value={DiscordPresencePlayTime.HOUR_PLAY_TIME}
label="Show approximate play time (nearest hour)" />
<Picker.Item key={DiscordPresencePlayTime.HOUR_PLAY_TIME_SINCE} value={DiscordPresencePlayTime.HOUR_PLAY_TIME_SINCE}
label="Show approximate play time (nearest hour) with first played date" />
<Picker.Item key={DiscordPresencePlayTime.DETAILED_PLAY_TIME} value={DiscordPresencePlayTime.DETAILED_PLAY_TIME}
label="Show exact play time" />
<Picker.Item key={DiscordPresencePlayTime.DETAILED_PLAY_TIME_SINCE} value={DiscordPresencePlayTime.DETAILED_PLAY_TIME_SINCE}

View File

@ -31,7 +31,7 @@ export function builder(yargs: Argv<ParentArguments>) {
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<Arguments>) {
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;

View File

@ -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;

View File

@ -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<T = unknown, I extends ExternalMonitor<T> = ExternalMonitor<T>> {

View File

@ -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: