403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/goodde.yandexturboapi/lib/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/goodde.yandexturboapi/lib/request.php
<?
namespace Goodde\YandexTurbo\Model;

use Bitrix\Main\Type,
	Bitrix\Main\Config\Option,
	Bitrix\Main\Localization\Loc;

Loc::loadMessages(__FILE__);

class Request
{
	private static $moduleId = 'goodde.yandexturboapi';
	private static $protocol = 'https://';
	private static $host = 'api.webmaster.yandex.net';
	private static $version = '/v4/';
	private static $curlTimeout = 10;
	
	
	public static function getPropSite($siteId = '')
	{
		$arTurboProp = array();	
		$turboProp = Option::get(self::$moduleId, 'turbo_prod', '', $siteId);
		if ($turboProp <> '')
			$arTurboProp = unserialize($turboProp);
		
		return $arTurboProp;
	}
	
	public static function getServerAddress($siteId = '')
	{
		$arProp = self::getPropSite($siteId);
		return self::getHostNamebyYandexHostId($arProp['host_id']);
	}
	
	public static function getHostNamebyYandexHostId($hostId = '')
	{
		$strHost = '';
		if($hostId)
		{
			$arHost = explode(':', $hostId);
			$strHost .= $arHost[0].'://'.$arHost[1];
		}
		return $strHost;
	}
	
	public static function getToken($siteId = '')
	{
		$arToken = self::getPropSite($siteId);
		return $arToken['token'];
	}
	
	public static function getUserId($siteId = '')
	{
		$arUserId = self::getPropSite($siteId);
		return $arUserId['user_id'];
	}
	
	public static function getHostId($siteId = '')
	{
		$arHostId = self::getPropSite($siteId);
		return $arHostId['host_id'];
	}
	
	public static function getUrl($version = '/v4/')
	{
		$url = self::$protocol.self::$host.$version;
		return $url;
	}
	
	public static function getHeaderList($siteId = '')
	{
		return array(
			'User-Agent: '.$_SERVER['HTTP_USER_AGENT'],
			'Authorization: OAuth '. self::getToken($siteId)
		);
	}
	
	public static function strUser()
	{
		return self::getUrl(self::$version).'user/';
	}
	
	public static function strHost($siteId = '')
	{
		return self::getUrl(self::$version).'user/'.self::getUserId($siteId).'/hosts/';
	}
	
	public static function strUploadAddress($siteId = '', $mode = '', $subdomainHostId = '')
	{
		$hostId = ($subdomainHostId <> '' ? $subdomainHostId : self::getHostId($siteId));
		return self::getUrl(self::$version).'user/'.self::getUserId($siteId).'/hosts/'.$hostId.'/turbo/uploadAddress/?mode='.$mode;
	}
	
	public static function stsTaskId($siteId = '', $taskId = '')
	{
		return self::getUrl(self::$version).'user/'.self::getUserId($siteId).'/hosts/'.self::getHostId($siteId).'/turbo/tasks/'.$taskId;
	}
	
	public static function strAddAddress($siteId = '', $mode = '', $subdomainHostId = '')
	{
		$strAddAddress = '';
		$arProp = Request::curUploadAddress($siteId, $mode, $subdomainHostId);
		if($arProp['url_'.$mode] <> '')
		{
			$strAddAddress = $arProp['url_'.$mode];
		}
		return $strAddAddress;
	}
	
	public static function curUser($siteId = '')
	{
		$arUserId = array();
		if(function_exists('curl_init'))
		{
			if($curl = curl_init(self::strUser()))
			{
				$arHeaderList = self::getHeaderList($siteId);
				$arHeaderList[] = 'Accept: application/json';
				curl_setopt($curl, CURLOPT_HTTPHEADER, $arHeaderList);
				curl_setopt($curl, CURLOPT_TIMEOUT, self::$curlTimeout);
				curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
				curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
				$result = curl_exec($curl);
				curl_close($curl);
				$arResult = json_decode($result, true, 512, JSON_BIGINT_AS_STRING);
				if(isset($arResult['error_code']))
				{
					$GLOBALS['APPLICATION']->ThrowException($arResult['error_message'], $arResult['error_code']);
				}
				else
				{
					$arUserId['user_id'] = $arResult['user_id'];
				}
			}
		}
		else
		{
			$GLOBALS['APPLICATION']->ThrowException('curl_init function doesnt exist');
		}
		return $arUserId;
	}
	
	public static function curHost($siteId = '')
	{
		$arHosts = array();
		if(function_exists('curl_init'))
		{
			if($curl = curl_init(self::strHost($siteId)))
			{
				$arHeaderList = self::getHeaderList($siteId);
				$arHeaderList[] = 'Accept: application/json';
				curl_setopt($curl, CURLOPT_HTTPHEADER, $arHeaderList);
				curl_setopt($curl, CURLOPT_TIMEOUT, self::$curlTimeout);
				curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
				curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
				$result = curl_exec($curl);
				curl_close($curl);
				$arResult = json_decode($result, true);
				if(isset($arResult['error_code']))
				{
					$GLOBALS['APPLICATION']->ThrowException($arResult['error_message'], $arResult['error_code']);
				}
				else
				{	
					$arHosts = $arResult['hosts'];
				}
			}
		}
		else
		{
			$GLOBALS['APPLICATION']->ThrowException('curl_init function doesnt exist');
		}
		return $arHosts;
	}
	
	public static function curUploadAddress($siteId = '', $mode = '', $subdomainHostId = '')
	{	
		$arUploadAddress = array();
		if(function_exists('curl_init'))
		{
			if($curl = curl_init(self::strUploadAddress($siteId, $mode, $subdomainHostId)))
			{
				$arHeaderList = self::getHeaderList($siteId);
				$arHeaderList[] = 'Accept: application/json';
				curl_setopt($curl, CURLOPT_HTTPHEADER, $arHeaderList);
				curl_setopt($curl, CURLOPT_TIMEOUT, self::$curlTimeout);
				curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
				curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
				$result = curl_exec($curl);
				curl_close($curl);
				$arResult = json_decode($result, true);
				if(isset($arResult['error_code']))
				{
					$GLOBALS['APPLICATION']->ThrowException($arResult['error_message'], $arResult['error_code']);
				}
				else
				{	
					$arUploadAddress['url_'.mb_strtolower($mode)] = $arResult['upload_address'];
				}
			}
		}
		else
		{
			$GLOBALS['APPLICATION']->ThrowException('curl_init function doesnt exist');
		}
		return $arUploadAddress;
	}
	
	public static function addFeed($siteId = '', $mode = '', $data = '', $isGzip = false, $subdomainHostId = '')
	{	
		$arResult = array();
		if(function_exists('curl_init'))
		{
			if($curl = curl_init(self::strAddAddress($siteId, $mode, $subdomainHostId)))
			{
				$arHeaderList = self::getHeaderList($siteId);
				$arHeaderList[] = 'Content-type: application/rss+xml';
				if($isGzip)
				{
					$arHeaderList[] = 'Content-Encoding: gzip';
				}
				curl_setopt($curl, CURLOPT_HTTPHEADER, $arHeaderList);
				curl_setopt($curl, CURLOPT_TIMEOUT, self::$curlTimeout);
				curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
				curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
				if($isGzip)
				{
					curl_setopt($curl, CURLOPT_ENCODING , 'gzip'); 
				}
				curl_setopt($curl, CURLOPT_POST, true);
				curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
				curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
				$result = curl_exec($curl);
				curl_close($curl);
				$arResult = json_decode($result, true);
			}
		}
		else
		{
			$GLOBALS['APPLICATION']->ThrowException('curl_init function doesnt exist');
		}
		return $arResult;
	}
	
	public static function getFeed($siteId = '', $taskId = '')
	{
		$arResult = array();
		if(function_exists('curl_init'))
		{
			if($curl = curl_init(self::stsTaskId($siteId, $taskId)))
			{
				$arHeaderList = self::getHeaderList($siteId);
				$arHeaderList[] = 'Accept: application/json';
				curl_setopt($curl, CURLOPT_HTTPHEADER, $arHeaderList);
				curl_setopt($curl, CURLOPT_TIMEOUT, self::$curlTimeout);
				curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
				curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
				$result = curl_exec($curl);
				curl_close($curl);
				$arResult = json_decode($result, true);
			}
		}
		else
		{
			$GLOBALS['APPLICATION']->ThrowException('curl_init function doesnt exist');
		}
		return $arResult;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit