1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-04 10:19:24 +02:00
Oinktube/plugin/Live/Objects/Live_servers.php
2022-01-06 21:30:01 +08:00

285 lines
6.6 KiB
PHP

<?php
require_once dirname(__FILE__) . '/../../../videos/configuration.php';
class Live_servers extends ObjectYPT
{
protected $id;
protected $name;
protected $url;
protected $status;
protected $rtmp_server;
protected $playerServer;
protected $stats_url;
protected $disableDVR;
protected $disableGifThumbs;
protected $useAadaptiveMode;
protected $protectLive;
protected $getRemoteFile;
protected $restreamerURL;
protected $controlURL;
protected $webRTC_server;
public static function getSearchFieldsNames()
{
return ['name', 'url', 'rtmp_server', 'playerServer', 'stats_url', 'getRemoteFile'];
}
public static function getTableName()
{
return 'live_servers';
}
public function setId($id)
{
$this->id = intval($id);
}
public function setName($name)
{
$this->name = $name;
}
public function setUrl($url)
{
$this->url = $url;
}
public function setStatus($status)
{
$this->status = $status;
}
public function setRtmp_server($rtmp_server)
{
$this->rtmp_server = $rtmp_server;
}
public function setPlayerServer($playerServer)
{
$this->playerServer = $playerServer;
}
public function setStats_url($stats_url)
{
$this->stats_url = $stats_url;
}
public function setDisableDVR($disableDVR)
{
$this->disableDVR = intval($disableDVR);
}
public function setDisableGifThumbs($disableGifThumbs)
{
$this->disableGifThumbs = intval($disableGifThumbs);
}
public function setUseAadaptiveMode($useAadaptiveMode)
{
$this->useAadaptiveMode = intval($useAadaptiveMode);
}
public function setProtectLive($protectLive)
{
$this->protectLive = intval($protectLive);
}
public function setGetRemoteFile($getRemoteFile)
{
$this->getRemoteFile = $getRemoteFile;
}
public function getId()
{
return intval($this->id);
}
public function getName()
{
return $this->name;
}
public function getUrl()
{
return $this->url;
}
public function getStatus()
{
return $this->status;
}
public function getRtmp_server()
{
return trim($this->rtmp_server);
}
public function getPlayerServer()
{
return $this->playerServer;
}
public function getStats_url()
{
return $this->stats_url;
}
public function getDisableDVR()
{
return intval($this->disableDVR);
}
public function getDisableGifThumbs()
{
return intval($this->disableGifThumbs);
}
public function getUseAadaptiveMode()
{
return intval($this->useAadaptiveMode);
}
public function getProtectLive()
{
return intval($this->protectLive);
}
public function getGetRemoteFile()
{
return $this->getRemoteFile;
}
public function getRestreamerURL()
{
return $this->restreamerURL;
}
public function setRestreamerURL($restreamerURL)
{
$this->restreamerURL = $restreamerURL;
}
public function getControlURL()
{
return $this->controlURL;
}
public function setControlURL($controlURL)
{
$this->controlURL = $controlURL;
}
public function getwebRTC_server()
{
return $this->webRTC_server;
}
public function setwebRTC_server($webRTC_server)
{
$this->webRTC_server = addLastSlash($webRTC_server);
}
public static function getStatsFromId($live_servers_id, $force_recreate = false)
{
global $_getStatsFromId;
if (empty($force_recreate)) {
if (!isset($_getStatsFromId)) {
$_getStatsFromId = [];
}
if (isset($_getStatsFromId[$live_servers_id])) {
return $_getStatsFromId[$live_servers_id];
}
}
$ls = new Live_servers($live_servers_id);
if (empty($ls->getStatus()) || $ls->getStatus()=='i') {
_error_log("Live_servers:: getStatsFromId ERROR ".json_encode($ls));
$_getStatsFromId[$live_servers_id] = false;
} else {
$_getStatsFromId[$live_servers_id] = Live::_getStats($live_servers_id, $force_recreate);
}
return $_getStatsFromId[$live_servers_id];
}
public static function getAllActive()
{
global $global, $liveServersgetAllActive;
if (isset($liveServersgetAllActive)) {
return $liveServersgetAllActive;
}
if (!static::isTableInstalled()) {
return false;
}
$sql = "SELECT * FROM " . static::getTableName() . " WHERE status='a' ";
//$sql .= self::getSqlFromPost();
$res = sqlDAL::readSql($sql);
$fullData = sqlDAL::fetchAllAssoc($res);
sqlDAL::close($res);
$rows = [];
if ($res != false) {
foreach ($fullData as $row) {
$rows[] = $row;
}
} else {
die($sql . '\nError : (' . $global['mysqli']->errno . ') ' . $global['mysqli']->error);
}
$liveServersgetAllActive = $rows;
return $rows;
}
public static function getServerFromRTMPHost($rtmpHostURI)
{
$obj = AVideoPlugin::getObjectData('Live');
if (empty($obj->useLiveServers)) {
return 0;
}
global $global;
$host = trim($rtmpHostURI);
$parts = parse_url($host);
$host = "rtmp://{$parts["host"]}{$parts["path"]}";
$host = $global['mysqli']->real_escape_string($host);
$sql = "SELECT * FROM " . static::getTableName() . " WHERE rtmp_server LIKE '%{$host}%' AND status = 'a' ";
$res = sqlDAL::readSql($sql);
$data = sqlDAL::fetchAssoc($res);
sqlDAL::close($res);
if ($res) {
$row = $data;
} else {
$row = false;
}
return $row;
}
public static function getServerIdFromRTMPHost($rtmpHostURI)
{
$data = self::getServerFromRTMPHost($rtmpHostURI);
if ($data) {
$row = $data['id'];
} else {
$row = 0;
}
return intval($row);
}
public function save()
{
$id = parent::save();
if ($id) {
_session_start();
$_SESSION['useAadaptiveMode'] = [];
$_SESSION['playerServer'] = [];
}
return $id;
}
public function delete()
{
if (!empty($this->id)) {
LiveTransmitionHistory::deleteAllFromLiveServer($this->id);
}
return parent::delete();
}
}