1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-03 09:49:28 +02:00
Oinktube/objects/functionsAVideo.php
Daniel Neto b813f528ba Update
2024-03-18 09:47:19 -03:00

214 lines
5.5 KiB
PHP

<?php
$AVideoMobileAPPLivestreamer_UA = "AVideoMobileAppLiveStreamer";
$AVideoMobileAPP_UA = "AVideoMobileApp";
$AVideoEncoder_UA = "AVideoEncoder";
$AVideoEncoderNetwork_UA = "AVideoEncoderNetwork";
$AVideoStreamer_UA = "AVideoStreamer";
$AVideoStorage_UA = "AVideoStorage";
function isAVideoMobileApp($user_agent = "")
{
if (empty($user_agent)) {
$user_agent = @$_SERVER['HTTP_USER_AGENT'];
}
if (empty($user_agent)) {
return false;
}
global $AVideoMobileAPP_UA;
if (preg_match("/{$AVideoMobileAPP_UA}(.*)/", $_SERVER["HTTP_USER_AGENT"], $match)) {
$url = trim($match[1]);
if (!empty($url)) {
return $url;
}
return true;
}
return false;
}
function isAVideoEncoder($user_agent = "")
{
if (empty($user_agent)) {
$user_agent = @$_SERVER['HTTP_USER_AGENT'];
}
if (empty($user_agent)) {
return false;
}
global $AVideoEncoder_UA;
if (preg_match("/{$AVideoEncoder_UA}(.*)/", $user_agent, $match)) {
$url = trim($match[1]);
if (!empty($url)) {
return $url;
}
return true;
}
return false;
}
function isCDN()
{
if (empty($_SERVER['HTTP_CDN_HOST'])) {
return false;
}
return isFromCDN($_SERVER['HTTP_CDN_HOST']);
}
function isFromCDN($url)
{
if (preg_match('/cdn.ypt.me/i', $url)) {
return true;
}
return false;
}
function isAVideo($user_agent = "")
{
if (empty($user_agent)) {
$user_agent = @$_SERVER['HTTP_USER_AGENT'];
}
if (empty($user_agent)) {
return false;
}
global $AVideoEncoder_UA;
if (preg_match("/AVideo(.*)/", $_SERVER["HTTP_USER_AGENT"], $match)) {
$url = trim($match[1]);
if (!empty($url)) {
return $url;
}
return true;
}
return false;
}
function isAVideoEncoderOnSameDomain()
{
$url = isAVideoEncoder();
if (empty($url)) {
return false;
}
$url = "http://{$url}";
return isSameDomainAsMyAVideo($url);
}
function isSameDomainAsMyAVideo($url)
{
global $global;
if (empty($url)) {
return false;
}
return isSameDomain($url, $global['webSiteRootURL']) || isSameDomain($url, getCDN());
}
function isAVideoStreamer($user_agent = "")
{
if (empty($user_agent)) {
$user_agent = @$_SERVER['HTTP_USER_AGENT'];
}
if (empty($user_agent)) {
return false;
}
global $AVideoStreamer_UA, $global;
$md5 = md5($global['salt']);
if (preg_match("/{$AVideoStreamer_UA}_{$md5}/", $_SERVER["HTTP_USER_AGENT"])) {
return true;
}
return false;
}
function isAVideoUserAgent($user_agent = "")
{
if (empty($user_agent)) {
$user_agent = @$_SERVER['HTTP_USER_AGENT'];
}
if (empty($user_agent)) {
return false;
}
global $AVideoMobileAPP_UA, $AVideoEncoder_UA, $AVideoEncoderNetwork_UA, $AVideoStreamer_UA, $AVideoStorage_UA, $global;
// Lavf = ffmpeg
//$agents = [$AVideoMobileAPP_UA, $AVideoEncoder_UA, $AVideoEncoderNetwork_UA, $AVideoStreamer_UA, $AVideoStorage_UA, 'Lavf'];
$agents = [$AVideoMobileAPP_UA, $AVideoEncoder_UA, $AVideoEncoderNetwork_UA, $AVideoStreamer_UA, $AVideoStorage_UA];
foreach ($agents as $value) {
if (preg_match("/{$value}/", $user_agent)) {
return true;
}
}
return false;
}
function isAVideoStorage($user_agent = "")
{
if (empty($user_agent)) {
$user_agent = @$_SERVER['HTTP_USER_AGENT'];
}
if (empty($user_agent)) {
return false;
}
global $AVideoStorage_UA;
if (preg_match("/{$AVideoStorage_UA}(.*)/", $_SERVER["HTTP_USER_AGENT"], $match)) {
$url = trim($match[1]);
if (!empty($url)) {
return $url;
}
return true;
}
return false;
}
function getSelfUserAgent()
{
global $global, $AVideoStreamer_UA;
$agent = $AVideoStreamer_UA . "_";
$agent .= md5($global['salt']);
return $agent;
}
function requestComesFromSameDomainAsMyAVideo()
{
global $global;
$url = getRefferOrOrigin();
//var_dump($_SERVER);exit;
//_error_log("requestComesFromSameDomainAsMyAVideo: ({$url}) == ({$global['webSiteRootURL']})");
return isSameDomain($url, $global['webSiteRootURL']) || isSameDomain($url, getCDN()) || isFromCDN($url);
}
define('E_FATAL', E_ERROR | E_USER_ERROR | E_PARSE | E_CORE_ERROR |
E_COMPILE_ERROR | E_RECOVERABLE_ERROR);
if (!isCommandLineInterface() && !isAVideoEncoder()) {
register_shutdown_function('avideoShutdown');
}
function avideoShutdown()
{
global $global;
$error = error_get_last();
if ($error && ($error['type'] & E_FATAL)) {
var_dump($error);
_error_log($error, AVideoLog::$ERROR);
header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500);
if (!User::isAdmin()) {
if (!preg_match('/json\.php$/i', $_SERVER['PHP_SELF'])) {
echo '<!-- This page means an error 500 Internal Server Error, check your log file -->' . PHP_EOL;
include $global['systemRootPath'] . 'view/maintanance.html';
} else {
$o = new stdClass();
$o->error = true;
$o->msg = ('Under Maintanance');
echo json_encode($o);
}
} else {
echo '<pre>';
var_dump($error);
var_dump(debug_backtrace());
echo '</pre>';
}
exit;
}else{
if(class_exists('Cache')){
Cache::saveCache();
}
}
}