public static function update() { set_time_limit(0); ignore_user_abort(1); $options = XenForo_Application::get('options'); $gameStats = $options->steamGameStats; $forceUpdate = $options->steamGameStatsForce; if ($gameStats > 0) { $db = XenForo_Application::get('db'); $sHelper = new Steam_Helper_Steam(); $results = $db->fetchAll("SELECT u.user_id, p.provider_key FROM xf_user u, xf_user_external_auth p \n WHERE u.user_id = p.user_id \n AND p.provider = 'steam' \n AND p.provider_key > 0 \n AND u.is_banned \n NOT IN (1)"); foreach ($results as $row) { /* * Gets all game info * * @see Steam_Helper_Steam */ $games = $sHelper->getUserGames($row['provider_key']); foreach ($games as $id => $data) { // game info if ($forceUpdate > 0) { $gameInfoQuery = "INSERT IGNORE INTO xf_steam_games(game_id, game_name, game_logo, game_link) \n VALUES({$id}, '{$data['name']}', '{$data['logo']}', '{$data['link']}')\n ON DUPLICATE KEY UPDATE game_logo = '{$data['logo']}';"; } else { $gameInfoQuery = "INSERT IGNORE INTO xf_steam_games(game_id, game_name, game_logo, game_link) \n VALUES({$id}, '{$data['name']}', '{$data['logo']}', '{$data['link']}');"; } $db->query($gameInfoQuery); // update $r = $db->fetchRow("SELECT * FROM xf_user_steam_games \n WHERE user_id = {$row['user_id']} \n AND game_id = {$id};"); if ($r == NULL) { // Insert $db->insert("xf_user_steam_games", array('user_id' => $row['user_id'], 'game_id' => $id, 'game_hours' => $data['hours'], 'game_hours_recent' => $data['hours_recent'])); } else { // Update $db->query("UPDATE xf_user_steam_games \n SET game_hours = {$data['hours']}, game_hours_recent = {$data['hours_recent']} \n WHERE user_id = {$row['user_id']} AND game_id = {$id};"); } } } } }
private function updateUserStats($userId, $steamId) { $options = XenForo_Application::get('options'); $gamestatsreg = $options->steamGameStatsReg; if ($gamestatsreg > 0) { $db = XenForo_Application::get('db'); $sHelper = new Steam_Helper_Steam(); $games = $sHelper->getUserGames($steamId); foreach ($games as $id => $data) { // game info $db->query("INSERT IGNORE INTO xf_steam_games(game_id, game_name, game_logo, game_link) \n VALUES({$id}, '{$data['name']}', '{$data['logo']}', '{$data['link']}');"); // update $r = $db->fetchRow("SELECT * FROM xf_user_steam_games WHERE user_id = {$userId} AND game_id = {$id};"); if ($r == NULL) { // Insert $db->insert("xf_user_steam_games", array('user_id' => $userId, 'game_id' => $id, 'game_hours' => $data['hours'], 'game_hours_recent' => $data['hours_recent'])); } else { // Update $db->query("UPDATE xf_user_steam_games SET game_hours = {$data['hours']}, game_hours_recent = {$data['hours_recent']} \n WHERE user_id = {$userId} AND game_id = {$id};"); } } } }