@ -59,6 +59,7 @@ class Monitor extends BeanModel { 
			
		
	
		
		
			
				
					            weight :  this . weight ,             weight :  this . weight ,  
			
		
	
		
		
			
				
					            active :  this . active ,             active :  this . active ,  
			
		
	
		
		
			
				
					            type :  this . type ,             type :  this . type ,  
			
		
	
		
		
			
				
					            apikey :  this . apikey ,  
			
		
	
		
		
			
				
					            interval :  this . interval ,             interval :  this . interval ,  
			
		
	
		
		
			
				
					            retryInterval :  this . retryInterval ,             retryInterval :  this . retryInterval ,  
			
		
	
		
		
			
				
					            keyword :  this . keyword ,             keyword :  this . keyword ,  
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -236,6 +237,46 @@ class Monitor extends BeanModel { 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					                    bean . msg  =  dnsMessage ;                     bean . msg  =  dnsMessage ;  
			
		
	
		
		
			
				
					                    bean . status  =  UP ;                     bean . status  =  UP ;  
			
		
	
		
		
			
				
					                }  else  if  ( this . type  ===  "steam" )  {  
			
		
	
		
		
			
				
					                    const  steamApiUrl  =  "https://api.steampowered.com/IGameServersService/GetServerList/v1/" ;  
			
		
	
		
		
			
				
					                    const  filter  =  ` addr \\ ${ this . hostname } : ${ this . port } ` ;  
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					                    let  res  =  await  axios . get ( steamApiUrl ,  {  
			
		
	
		
		
			
				
					                        timeout :  this . interval  *  1000  *  0.8 ,  
			
		
	
		
		
			
				
					                        headers :  {  
			
		
	
		
		
			
				
					                            "Accept" :  "*/*" ,  
			
		
	
		
		
			
				
					                            "User-Agent" :  "Uptime-Kuma/"  +  version ,  
			
		
	
		
		
			
				
					                        } ,  
			
		
	
		
		
			
				
					                        httpsAgent :  new  https . Agent ( {  
			
		
	
		
		
			
				
					                            maxCachedSessions :  0 ,       // Use Custom agent to disable session reuse (https://github.com/nodejs/node/issues/3940)
  
			
		
	
		
		
			
				
					                            rejectUnauthorized :  !  this . getIgnoreTls ( ) ,  
			
		
	
		
		
			
				
					                        } ) ,  
			
		
	
		
		
			
				
					                        maxRedirects :  this . maxredirects ,  
			
		
	
		
		
			
				
					                        validateStatus :  ( status )  =>  {  
			
		
	
		
		
			
				
					                            return  checkStatusCode ( status ,  this . getAcceptedStatuscodes ( ) ) ;  
			
		
	
		
		
			
				
					                        } ,  
			
		
	
		
		
			
				
					                        params :  {  
			
		
	
		
		
			
				
					                            filter :  filter ,  
			
		
	
		
		
			
				
					                            key :  this . apikey ,  
			
		
	
		
		
			
				
					                        }  
			
		
	
		
		
			
				
					                    } ) ;  
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					                    bean . msg  =  ` ${ res . status }  -  ${ res . statusText } ` ;  
			
		
	
		
		
			
				
					                    bean . ping  =  await  ping ( this . hostname ) ;  
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					                    let  data  =  res . data ;  
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					                    // Convert to string for object/array
  
			
		
	
		
		
			
				
					                    if  ( typeof  data  !==  "string" )  {  
			
		
	
		
		
			
				
					                        data  =  JSON . stringify ( data ) ;  
			
		
	
		
		
			
				
					                    }  
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					                    if  ( data . includes ( ` ${ this . hostname } : ${ this . port } ` ) )  {  
			
		
	
		
		
			
				
					                        bean . msg  +=  ", server is found" ;  
			
		
	
		
		
			
				
					                        bean . status  =  UP ;  
			
		
	
		
		
			
				
					                    }  else  {  
			
		
	
		
		
			
				
					                        throw  new  Error ( bean . msg  +  ", but server is not found" ) ;  
			
		
	
		
		
			
				
					                    }  
			
		
	
		
		
			
				
					                }                 }  
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					                if  ( this . isUpsideDown ( ) )  {                 if  ( this . isUpsideDown ( ) )  {