Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/embedpre.../EmbedPre.../Provider...
File: Twitch.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace EmbedPress\Providers;
[2] Fix | Delete
[3] Fix | Delete
use Embera\Provider\ProviderAdapter;
[4] Fix | Delete
use Embera\Provider\ProviderInterface;
[5] Fix | Delete
use Embera\Url;
[6] Fix | Delete
[7] Fix | Delete
(defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
[8] Fix | Delete
[9] Fix | Delete
/**
[10] Fix | Delete
* Entity responsible to support Twitch embeds.
[11] Fix | Delete
*
[12] Fix | Delete
* @package EmbedPress
[13] Fix | Delete
* @subpackage EmbedPress/Providers
[14] Fix | Delete
* @author EmbedPress <help@embedpress.com>
[15] Fix | Delete
* @copyright Copyright (C) 2023 WPDeveloper. All rights reserved.
[16] Fix | Delete
* @license GPLv3 or later
[17] Fix | Delete
* @since 1.5.0
[18] Fix | Delete
*/
[19] Fix | Delete
class Twitch extends ProviderAdapter implements ProviderInterface
[20] Fix | Delete
{
[21] Fix | Delete
/**
[22] Fix | Delete
* The regex which identifies Twitch URLs.
[23] Fix | Delete
*
[24] Fix | Delete
* @since 1.5.0
[25] Fix | Delete
* @access private
[26] Fix | Delete
*
[27] Fix | Delete
* @var string
[28] Fix | Delete
*/
[29] Fix | Delete
private $urlRegexPattern = '/http[s]?:\/\/(?:www\.|clips\.)twitch\.tv\/([0-9a-zA-Z\-\_]+)\/?(chat\/?$|[0-9a-z\-\_]*)?/';
[30] Fix | Delete
[31] Fix | Delete
/**
[32] Fix | Delete
* Method that verifies if the embed URL belongs to Twitch.
[33] Fix | Delete
*
[34] Fix | Delete
* @param Url $url
[35] Fix | Delete
* @return boolean
[36] Fix | Delete
* @since 1.5.0
[37] Fix | Delete
*
[38] Fix | Delete
*/
[39] Fix | Delete
public function validateUrl(Url $url)
[40] Fix | Delete
{
[41] Fix | Delete
return (bool) preg_match($this->urlRegexPattern, $this->url);
[42] Fix | Delete
}
[43] Fix | Delete
[44] Fix | Delete
/**
[45] Fix | Delete
* Return the type of the embed based on the URL.
[46] Fix | Delete
*
[47] Fix | Delete
* @param $url
[48] Fix | Delete
*
[49] Fix | Delete
* @return string
[50] Fix | Delete
*/
[51] Fix | Delete
protected function getType($url)
[52] Fix | Delete
{
[53] Fix | Delete
if (stristr($url, 'clips.twitch.tv')) {
[54] Fix | Delete
return 'clip';
[55] Fix | Delete
}
[56] Fix | Delete
[57] Fix | Delete
if (stristr($url, '/videos/')) {
[58] Fix | Delete
return 'video';
[59] Fix | Delete
}
[60] Fix | Delete
[61] Fix | Delete
if (preg_match('#/chat$#', $url)) {
[62] Fix | Delete
return 'chat';
[63] Fix | Delete
}
[64] Fix | Delete
[65] Fix | Delete
return 'channel';
[66] Fix | Delete
}
[67] Fix | Delete
[68] Fix | Delete
/**
[69] Fix | Delete
* This method fakes an Oembed response.
[70] Fix | Delete
*
[71] Fix | Delete
* @since 1.5.0
[72] Fix | Delete
*
[73] Fix | Delete
* @return array
[74] Fix | Delete
*/
[75] Fix | Delete
public function fakeResponse()
[76] Fix | Delete
{
[77] Fix | Delete
$url = $this->getUrl();
[78] Fix | Delete
$providerUrl = 'https://twitch.tv';
[79] Fix | Delete
$src = '';
[80] Fix | Delete
[81] Fix | Delete
if (preg_match("{$this->urlRegexPattern}i", $url, $matches)) {
[82] Fix | Delete
$channelName = $matches[1];
[83] Fix | Delete
[84] Fix | Delete
$type = $this->getType($url);
[85] Fix | Delete
[86] Fix | Delete
// Clip, channel, chat, collection, or video?
[87] Fix | Delete
switch ($type) {
[88] Fix | Delete
case 'clip':
[89] Fix | Delete
$src = 'https://clips.twitch.tv/embed?clip=' . $channelName . '&autoplay=false';
[90] Fix | Delete
$attrs = 'scrolling="no" frameborder="0" allowfullscreen="true"';
[91] Fix | Delete
break;
[92] Fix | Delete
[93] Fix | Delete
case 'video':
[94] Fix | Delete
$channelName = $matches[2];
[95] Fix | Delete
$src = 'https://player.twitch.tv/?video=' . $channelName;
[96] Fix | Delete
$attrs = 'scrolling="no" frameborder="0" allowfullscreen="true"';
[97] Fix | Delete
break;
[98] Fix | Delete
[99] Fix | Delete
case 'channel':
[100] Fix | Delete
$src = 'https://player.twitch.tv/?channel=' . $channelName;
[101] Fix | Delete
$attrs = 'scrolling="no" frameborder="0" allowfullscreen="true"';
[102] Fix | Delete
break;
[103] Fix | Delete
[104] Fix | Delete
case 'chat':
[105] Fix | Delete
$src = 'http://www.twitch.tv/embed/' . $channelName . '/chat';
[106] Fix | Delete
$attrs = 'scrolling="yes" frameborder="0" allowfullscreen="true" id="' . $channelName . '"';
[107] Fix | Delete
break;
[108] Fix | Delete
}
[109] Fix | Delete
[110] Fix | Delete
$width = isset( $this->config['maxwidth']) ? $this->config['maxwidth']: 800;
[111] Fix | Delete
$height = isset( $this->config['maxheight']) ? $this->config['maxheight']: 400;
[112] Fix | Delete
[113] Fix | Delete
$pars_url = wp_parse_url(get_site_url());
[114] Fix | Delete
$src = !empty($pars_url['host'])?$src.'&parent='.$pars_url['host']:$src;
[115] Fix | Delete
$html = '<iframe src="' . esc_url($src) . '" height="'.esc_attr($height).'" width="'.esc_attr($width).'" ' . $attrs . '></iframe>';
[116] Fix | Delete
[117] Fix | Delete
$response = [
[118] Fix | Delete
'type' => $type,
[119] Fix | Delete
'content_id' => $channelName,
[120] Fix | Delete
'provider_name' => 'Twitch',
[121] Fix | Delete
'provider_url' => $providerUrl,
[122] Fix | Delete
'url' => $url,
[123] Fix | Delete
'html' => $html,
[124] Fix | Delete
];
[125] Fix | Delete
} else {
[126] Fix | Delete
$response = [];
[127] Fix | Delete
}
[128] Fix | Delete
[129] Fix | Delete
return $response;
[130] Fix | Delete
}
[131] Fix | Delete
/** inline @inheritDoc */
[132] Fix | Delete
public function modifyResponse( array $response = [])
[133] Fix | Delete
{
[134] Fix | Delete
return $this->fakeResponse();
[135] Fix | Delete
}
[136] Fix | Delete
}
[137] Fix | Delete
[138] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function