@@ -545,13 +545,44 @@ function DrawLowestPrice()
545
545
} ) ;
546
546
}
547
547
548
+ async function FetchSteamApiCurrentPlayers ( )
549
+ {
550
+ const params = new URLSearchParams ( ) ;
551
+ params . set ( 'origin' , location . origin ) ;
552
+ params . set ( 'appid' , GetCurrentAppID ( ) ) ;
553
+
554
+ const response = await fetch (
555
+ `https://api.steampowered.com/ISteamUserStats/GetNumberOfCurrentPlayers/v1/?${ params . toString ( ) } ` ,
556
+ {
557
+ headers : {
558
+ Accept : 'application/json' ,
559
+ }
560
+ }
561
+ ) ;
562
+
563
+ if ( ! response . ok )
564
+ {
565
+ return 0 ;
566
+ }
567
+
568
+ const data = await response . json ( ) ;
569
+
570
+ if ( data && data . response && data . response . player_count > 0 )
571
+ {
572
+ return data . response . player_count ;
573
+ }
574
+
575
+ return 0 ;
576
+ }
577
+
548
578
function DrawOnlineStatsWidget ( items )
549
579
{
550
580
let block = null ;
551
581
let onlineNow = null ;
552
582
let peakToday = null ;
553
583
let peakAll = null ;
554
584
let followers = null ;
585
+ let steamApiPlayersFetch = null ;
555
586
556
587
if ( items [ 'online-stats' ] )
557
588
{
@@ -562,6 +593,8 @@ function DrawOnlineStatsWidget( items )
562
593
return ;
563
594
}
564
595
596
+ steamApiPlayersFetch = FetchSteamApiCurrentPlayers ( ) ;
597
+
565
598
const blockInner = document . createElement ( 'div' ) ;
566
599
blockInner . className = 'block_content_inner' ;
567
600
@@ -745,6 +778,28 @@ function DrawOnlineStatsWidget( items )
745
778
followers . previousElementSibling . remove ( ) ;
746
779
followers . remove ( ) ;
747
780
}
781
+
782
+ steamApiPlayersFetch . then ( ( livePlayers ) =>
783
+ {
784
+ if ( livePlayers < 1 )
785
+ {
786
+ return ;
787
+ }
788
+
789
+ WriteLog ( 'FetchSteamApiCurrentPlayers loaded' ) ;
790
+
791
+ onlineNow . textContent = FormatNumber ( livePlayers ) ;
792
+
793
+ if ( livePlayers > response . data . mdp )
794
+ {
795
+ peakToday . textContent = FormatNumber ( livePlayers ) ;
796
+ }
797
+
798
+ if ( livePlayers > response . data . mp )
799
+ {
800
+ peakAll . textContent = FormatNumber ( livePlayers ) ;
801
+ }
802
+ } ) ;
748
803
}
749
804
750
805
if ( items [ 'steamdb-last-update' ] && response . data . u )
0 commit comments