@@ -26,11 +26,32 @@ const stats: Command = {
2626 const d1 = formatDate ( getDateForWeekNumber ( year2 , week2 + 1 ) ) ;
2727 const d2 = formatDate ( getDateForWeekNumber ( year1 , week1 + 1 ) ) ;
2828
29+ const ids = [
30+ ...new Set ( [
31+ ...totalStats . map ( ( { memberId } ) => memberId ) ,
32+ ...statsChangeThisWeek . map ( ( { memberId } ) => memberId ) ,
33+ ] ) ,
34+ ] ;
35+
36+ await Promise . allSettled ( ids . map ( ( memberId ) => msg . guild ?. members . fetch ( memberId ) ) ) ;
37+
2938 return msg . channel . send (
3039 [
31- format ( `Najbardziej aktywne w tym tygodniu (${ d1 } β ${ d2 } ):` , statsChangeThisWeek ) ,
40+ format (
41+ `Najbardziej aktywne w tym tygodniu (${ d1 } β ${ d2 } ):` ,
42+ statsChangeThisWeek . map ( ( data ) => ( {
43+ ...data ,
44+ displayName : msg . guild ?. members . cache . get ( data . memberId ) ?. displayName ,
45+ } ) ) ,
46+ ) ,
3247 '\n' ,
33- format ( 'Najbardziej aktywne osoby od poczΔ
tku istnienia serwera:' , totalStats ) ,
48+ format (
49+ 'Najbardziej aktywne osoby od poczΔ
tku istnienia serwera:' ,
50+ totalStats . map ( ( data ) => ( {
51+ ...data ,
52+ displayName : msg . guild ?. members . cache . get ( data . memberId ) ?. displayName ,
53+ } ) ) ,
54+ ) ,
3455 ] . join ( '\n' ) ,
3556 ) ;
3657 } ,
@@ -41,6 +62,7 @@ export default stats;
4162type Stats = {
4263 readonly memberId : string ;
4364 readonly messagesCount : number ;
65+ readonly displayName ?: string ;
4466} ;
4567
4668function format ( title : string , stats : readonly Stats [ ] ) {
@@ -49,8 +71,10 @@ function format(title: string, stats: readonly Stats[]) {
4971 ...stats
5072 . slice ( 0 , 10 )
5173 . map (
52- ( { messagesCount, memberId } , index ) =>
53- `\`${ ( index + 1 ) . toString ( ) . padStart ( 2 , ' ' ) } \`. <@${ memberId } > β ${ messagesCount ?? 0 } ` ,
74+ ( { messagesCount, displayName } , index ) =>
75+ `\`${ ( index + 1 ) . toString ( ) . padStart ( 2 , ' ' ) } \`. ${ displayName ?? '' } β ${
76+ messagesCount ?? 0
77+ } `,
5478 ) ,
5579 ] ;
5680 return messages . join ( '\n' ) ;
@@ -100,8 +124,8 @@ async function getStatsChangeThisWeek(db: Db) {
100124 . sort ( ( a , b ) => b . messagesCount - a . messagesCount ) ;
101125
102126 return {
103- statsChangeThisWeek,
104- totalStats : totalStats as readonly Stats [ ] ,
127+ statsChangeThisWeek : statsChangeThisWeek . slice ( 0 , 10 ) ,
128+ totalStats : totalStats . slice ( 0 , 10 ) as readonly Stats [ ] ,
105129 year1,
106130 year2,
107131 week1,
0 commit comments