MOON
Server: Apache
System: Linux e2e-78-16.ssdcloudindia.net 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
User: imensosw (1005)
PHP: 8.0.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/www/imenso.co/dev/spotilicious/src/DvrClipExtraction.php
<?php
//
// This code and all components (c) Copyright 2006 - 2018, Wowza Media Systems, LLC. All rights reserved.
// This code is licensed pursuant to the Wowza Public License version 1.0, available at www.wowza.com/legal.
//
namespace Com\Wowza;

use Com\Wowza\Entities\Application\Helpers\Settings;

class DvrClipExtraction extends Wowza
{
    public function __construct(Settings $settings, $appName, $appInstance = '_definst_')
    {
        parent::__construct($settings);
        $this->restURI = $this->getHost() . '/servers/' . $this->getServerInstance() . '/vhosts/' . $this->getVHostInstance() . "/applications/{$appName}/instances/{$appInstance}/dvrstores";
    }

    public function create()
    {
        $response = $this->sendRequest($this->preparePropertiesForRequest(self::class), []);

        return $response;
    }

    public function getItem($name)
    {
        $this->restURI = $this->restURI . '/' . $name;

        return $this->sendRequest($this->preparePropertiesForRequest(self::class), [], self::VERB_GET);
    }

    public function convertGroup($nameArr)
    {
        $this->restURI = $this->restURI . '/actions/convert?dvrConverterStoreList=' . implode(',', $nameArr);

        return $this->sendRequest($this->preparePropertiesForRequest(self::class), [], self::VERB_PUT);
    }

    /*
     * /// query params
     * dvrConverterStartTime=[unix timestamp]
     * dvrConverterEndTime=[unix-timestamp]
     * dvrConverterOutputFilename=[outputfilename]
     *
     * @param $startTime
     * @param $endTime
     * @param $outputFileName
     */
    public function convert($name, $startTime = null, $endTime = null, $outputFileName = null)
    {
        $query = '';
        if (!is_null($startTime)) {
            $query .= 'dvrConverterStartTime=' . $startTime;
        }
        if (!is_null($endTime)) {
            if (!empty($query)) {
                $query .= '&';
            }
            $query .= 'dvrConverterEndTime=' . $endTime;
        }
        if (!is_null($outputFileName)) {
            if (!empty($query)) {
                $query .= '&';
            }
            $query .= 'dvrConverterOutputFilename=' . $outputFileName;
        }
        $query = (strlen($query) == 0) ? '' : '?' . $query;

        $this->restURI = $this->restURI . "/{$name}/actions/convert{$query}";

        return $this->sendRequest($this->preparePropertiesForRequest(self::class), [], self::VERB_PUT);
    }

    public function clearCache()
    {
        $this->restURI = $this->restURI . '/actions/expire';

        return $this->sendRequest($this->preparePropertiesForRequest(self::class), [], self::VERB_PUT);
    }

    public function debugConversions($name)
    {
        $this->restURI = $this->restURI . "/{$name}/actions/convert?dvrConverterDebugConversions=true";

        return $this->sendRequest($this->preparePropertiesForRequest(self::class), [], self::VERB_PUT);
    }

    /*
     * dvrConverterDuration=[milliseconds]
     */
    public function convertByDurationWithStartTime($name, $startTime, $duration, $outputFileName = null)
    {
        $query = '';
        if (!is_null($startTime)) {
            $query .= 'dvrConverterStartTime=' . $startTime;
        }
        if (!is_null($duration)) {
            if (!empty($query)) {
                $query .= '&';
            }
            $query .= 'dvrConverterDuration=' . $duration;
        }
        if (!is_null($outputFileName)) {
            if (!empty($query)) {
                $query .= '&';
            }
            $query .= 'dvrConverterOutputFilename=' . $outputFileName;
        }
        $query = (strlen($query) == 1) ? '' : '?' . $query;
        $this->restURI = $this->restURI . "/{$name}/actions/convert{$query}";

        return $this->sendRequest($this->preparePropertiesForRequest(self::class), [], self::VERB_PUT);
    }

    public function convertByDurationWithEndTimeTime($name, $endTime, $duration, $outputFileName = null)
    {
        $query = '';
        if (!is_null($endTime)) {
            $query .= 'dvrConverterEndTime=' . $endTime;
        }
        if (!is_null($duration)) {
            if (!empty($query)) {
                $query .= '&';
            }
            $query .= 'dvrConverterDuration=' . $duration;
        }
        if (!is_null($outputFileName)) {
            if (!empty($query)) {
                $query .= '&';
            }
            $query .= 'dvrConverterOutputFilename=' . $outputFileName;
        }
        $query = (strlen($query) == 1) ? '' : '?' . $query;
        $this->restURI = $this->restURI . "/{$name}/actions/convert{$query}";

        return $this->sendRequest($this->preparePropertiesForRequest(self::class), [], self::VERB_PUT);
    }

    public function getAll()
    {
        return $this->sendRequest($this->preparePropertiesForRequest(self::class), [], self::VERB_GET);
    }

    public function remove($fileName)
    {
        $this->restURI = $this->restURI . '/' . $fileName;

        return $this->sendRequest($this->preparePropertiesForRequest(self::class), [], self::VERB_DELETE);
    }
}