Initial commit

This commit is contained in:
Daniel Brendel
2022-08-16 13:54:30 +02:00
commit 94353ac3c8
64 changed files with 32771 additions and 0 deletions

87
app/modules/SteamApp.php Normal file
View File

@ -0,0 +1,87 @@
<?php
/**
* Class SteamAppModel
*
* Responsible for querying Steam game/app data
*/
class SteamApp
{
const STEAM_ENDPOINT = 'https://store.steampowered.com/api/appdetails';
/**
* Query item data from Steam
*
* @param $appid
* @param $lang
* @return mixed
* @throws \Exception
*/
public static function querySteamData($appid, $lang)
{
$url = self::STEAM_ENDPOINT . "?appids={$appid}&l={$lang}";
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_HEADER, false);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($handle);
if(curl_error($handle) !== '') {
throw new \Exception('cURL error occured');
}
curl_close($handle);
$obj = json_decode($response);
if ((isset($obj->$appid->success)) && ($obj->$appid->success)) {
$obj->$appid->data->online_count = 0;
try {
$obj->$appid->data->online_count = static::queryUserCount($appid);
} catch (\Exception $e) {
}
return $obj->$appid->data;
}
throw new \Exception('Invalid data response');
}
/**
* Query Steam product player/user count
*
* @param $appid
* @return mixed
* @throws \Exception
*/
public static function queryUserCount($appid)
{
$url = "https://api.steampowered.com/ISteamUserStats/GetNumberOfCurrentPlayers/v1/?appid={$appid}";
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_HEADER, false);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($handle);
if(curl_error($handle) !== '') {
throw new \Exception('cURL error occured');
}
curl_close($handle);
$obj = json_decode($response);
if ((isset($obj->response->result)) && ($obj->response->result)) {
return $obj->response->player_count;
}
throw new \Exception('Invalid data response');
}
}

View File

@ -0,0 +1,46 @@
<?php
/**
* Class SteamServerModel
*
* Responsible for querying Steam server data
*/
class SteamServer
{
const STEAM_ENDPOINT = 'https://api.steampowered.com/IGameServersService/GetServerList/v1/';
/**
* Query item data from Steam
*
* @param $appid
* @param $lang
* @return mixed
* @throws \Exception
*/
public static function querySteamData($key, $addr)
{
$url = self::STEAM_ENDPOINT . "?key={$key}&filter=addr\\{$addr}";
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_HEADER, false);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($handle);
if(curl_error($handle) !== '') {
throw new \Exception('cURL error occured');
}
curl_close($handle);
$obj = json_decode($response);
if (isset($obj->response->servers[0])) {
return $obj->response->servers[0];
}
throw new \Exception('Invalid data response');
}
}

46
app/modules/SteamUser.php Normal file
View File

@ -0,0 +1,46 @@
<?php
/**
* Class SteamUserModel
*
* Responsible for querying Steam user data
*/
class SteamUser
{
const STEAM_ENDPOINT = 'https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/';
/**
* Query item data from Steam
*
* @param $appid
* @param $lang
* @return mixed
* @throws \Exception
*/
public static function querySteamData($key, $steamid)
{
$url = self::STEAM_ENDPOINT . "?key={$key}&steamids={$steamid}";
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_HEADER, false);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($handle);
if(curl_error($handle) !== '') {
throw new \Exception('cURL error occured');
}
curl_close($handle);
$obj = json_decode($response);
if (isset($obj->response->players[0])) {
return $obj->response->players[0];
}
throw new \Exception('Invalid data response');
}
}