@@ -6,7 +6,7 @@ import { Col } from "@lib/embedify.ts";
66import { getEnvVar } from "@lib/env.ts" ;
77import { cmdInstances } from "@lib/registry.ts" ;
88import { em } from "@lib/db.ts" ;
9- import { autoPlural } from "@lib/text.ts" ;
9+ import { autoPlural , secsToTimeStr } from "@lib/text.ts" ;
1010import { UserSettings } from "@models/UserSettings.model.ts" ;
1111import pkg from "@root/package.json" with { type : "json" } ;
1212
@@ -15,6 +15,9 @@ import pkg from "@root/package.json" with { type: "json" };
1515export const metGuildId = getEnvVar ( "METRICS_GUILD" , "stringOrUndefined" ) ;
1616export const metChanId = getEnvVar ( "METRICS_CHANNEL" , "stringOrUndefined" ) ;
1717
18+ const metUpdIvRaw = getEnvVar ( "METRICS_UPDATE_INTERVAL" , "number" ) ;
19+ export const metUpdInterval = Math . max ( isNaN ( metUpdIvRaw ) ? 60 : metUpdIvRaw , 1 ) ;
20+
1821const initTime = Date . now ( ) ;
1922const commitHash = await getCommitHash ( true ) ;
2023
@@ -166,12 +169,12 @@ async function useMetricsMsg(metrics: MetricsData) {
166169 const ebd = new EmbedBuilder ( )
167170 . setTitle ( "Bot metrics:" )
168171 . setFields ( [
172+ { name : "Guilds:" , value : `${ guildsAmt } ${ autoPlural ( "guild" , guildsAmt ) } ` , inline : true } ,
169173 { name : "Users:" , value : `${ usersAmt } in DB` , inline : true } ,
170- { name : "Guilds:" , value : `${ guildsAmt } guilds` , inline : true } ,
171174 { name : "Members:" , value : `${ totalMembersAmt } total\n${ uniqueMembersAmt } unique` , inline : true } ,
172175 { name : `${ autoPlural ( "Command" , cmdsTotal ) } (${ cmdsTotal } ):` , value : `${ slashCmdAmt } ${ autoPlural ( "slash command" , slashCmdAmt ) } \n${ ctxCmdAmt } ${ autoPlural ( "context command" , ctxCmdAmt ) } ` , inline : false } ,
173- { name : "Uptime:" , value : `${ uptimeStr } \n ${ time ( new Date ( initTime ) , "R" ) } ` , inline : false } ,
174- { name : "Metrics updated:" , value : time ( new Date ( ) , "R" ) , inline : false } ,
176+ { name : "Uptime:" , value : `${ time ( new Date ( initTime ) , "R" ) } \nTime: ${ uptimeStr } ` , inline : false } ,
177+ { name : "Metrics updated:" , value : ` ${ time ( new Date ( ) , "R" ) } \nInterval: ${ secsToTimeStr ( metUpdInterval ) } ` , inline : false } ,
175178 ] )
176179 . setFooter ( { text : `v${ pkg . version } - ${ commitHash } ` } )
177180 . setColor ( Col . Info ) ;
@@ -193,15 +196,7 @@ async function useMetricsMsg(metrics: MetricsData) {
193196
194197/** Returns the uptime in a human-readable format */
195198function getUptime ( ) {
196- const upt = Date . now ( ) - initTime ;
197-
198- return ( [
199- [ ( 1000 * 60 * 60 * 24 ) , `${ Math . floor ( upt / ( 1000 * 60 * 60 * 24 ) ) } d` ] ,
200- [ ( 1000 * 60 * 60 ) , `${ Math . floor ( upt / ( 1000 * 60 * 60 ) ) % 24 } h` ] ,
201- [ ( 1000 * 60 ) , `${ Math . floor ( upt / ( 1000 * 60 ) ) % 60 } m` ] ,
202- [ 0 , `${ Math . floor ( upt / 1000 ) % 60 } s` ] ,
203- ] as const )
204- . filter ( ( [ d ] ) => upt >= d )
205- . map ( ( [ , s ] ) => s )
206- . join ( " " ) ;
199+ const upt = Math . floor ( ( Date . now ( ) - initTime ) / 1000 ) ;
200+
201+ return secsToTimeStr ( upt , "en-US" ) ;
207202}
0 commit comments