Version Description
Download this release
Release Info
| Developer | andergmartins |
| Plugin | |
| Version | 2.1.4 |
| Comparing to | |
| See all releases | |
Code changes from version 2.1.3 to 2.1.4
- EmbedPress/Providers/Twitch.php +58 -13
- assets/js/preview.js +3 -4
- embedpress.php +1 -1
- readme.txt +8 -1
EmbedPress/Providers/Twitch.php
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?php
|
| 2 |
namespace EmbedPress\Providers;
|
| 3 |
|
| 4 |
-
use
|
| 5 |
|
| 6 |
(defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
|
| 7 |
|
|
@@ -25,7 +25,7 @@ class Twitch extends EmberaService
|
|
| 25 |
*
|
| 26 |
* @var string
|
| 27 |
*/
|
| 28 |
-
private $urlRegexPattern = '/http[s]?:\/\/(?:www\.|clips\.)twitch\.tv\/([0-9a-zA-Z\-\_]+)\/?(chat
|
| 29 |
|
| 30 |
/**
|
| 31 |
* Method that verifies if the embed URL belongs to Twitch.
|
|
@@ -39,6 +39,30 @@ class Twitch extends EmberaService
|
|
| 39 |
return preg_match($this->urlRegexPattern, $this->url);
|
| 40 |
}
|
| 41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
/**
|
| 43 |
* This method fakes an Oembed response.
|
| 44 |
*
|
|
@@ -48,23 +72,44 @@ class Twitch extends EmberaService
|
|
| 48 |
*/
|
| 49 |
public function fakeResponse()
|
| 50 |
{
|
| 51 |
-
|
|
|
|
|
|
|
|
|
|
| 52 |
|
| 53 |
if (preg_match("{$this->urlRegexPattern}i", $url, $matches)) {
|
| 54 |
$channelName = $matches[1];
|
| 55 |
-
|
| 56 |
-
$
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 64 |
}
|
| 65 |
|
|
|
|
|
|
|
| 66 |
$response = array(
|
| 67 |
-
'type' =>
|
| 68 |
'provider_name' => 'Twitch',
|
| 69 |
'provider_url' => $providerUrl,
|
| 70 |
'url' => $url,
|
| 1 |
<?php
|
| 2 |
namespace EmbedPress\Providers;
|
| 3 |
|
| 4 |
+
use Embera\Adapters\Service as EmberaService;
|
| 5 |
|
| 6 |
(defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
|
| 7 |
|
| 25 |
*
|
| 26 |
* @var string
|
| 27 |
*/
|
| 28 |
+
private $urlRegexPattern = '/http[s]?:\/\/(?:www\.|clips\.)twitch\.tv\/([0-9a-zA-Z\-\_]+)\/?(chat\/?$|[0-9a-z\-\_]*)?/';
|
| 29 |
|
| 30 |
/**
|
| 31 |
* Method that verifies if the embed URL belongs to Twitch.
|
| 39 |
return preg_match($this->urlRegexPattern, $this->url);
|
| 40 |
}
|
| 41 |
|
| 42 |
+
/**
|
| 43 |
+
* Return the type of the embed based on the URL.
|
| 44 |
+
*
|
| 45 |
+
* @param $url
|
| 46 |
+
*
|
| 47 |
+
* @return string
|
| 48 |
+
*/
|
| 49 |
+
protected function getType($url)
|
| 50 |
+
{
|
| 51 |
+
if ( stristr($url, 'clips.twitch.tv') ) {
|
| 52 |
+
return 'clip';
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
if ( stristr($url, '/videos/') ) {
|
| 56 |
+
return 'video';
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
if ( preg_match('#/chat$#', $url) ) {
|
| 60 |
+
return 'chat';
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
return 'channel';
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
/**
|
| 67 |
* This method fakes an Oembed response.
|
| 68 |
*
|
| 72 |
*/
|
| 73 |
public function fakeResponse()
|
| 74 |
{
|
| 75 |
+
$url = $this->getUrl();
|
| 76 |
+
$providerUrl = 'https://twitch.tv';
|
| 77 |
+
$html = '';
|
| 78 |
+
$src = '';
|
| 79 |
|
| 80 |
if (preg_match("{$this->urlRegexPattern}i", $url, $matches)) {
|
| 81 |
$channelName = $matches[1];
|
| 82 |
+
|
| 83 |
+
$type = $this->getType($url);
|
| 84 |
+
|
| 85 |
+
// Clip, channel, chat, collection, or video?
|
| 86 |
+
switch ($type) {
|
| 87 |
+
case 'clip':
|
| 88 |
+
$src = 'https://clips.twitch.tv/embed?clip=' . $channelName . '&autoplay=false';
|
| 89 |
+
$attrs = 'scrolling="no" frameborder="0" allowfullscreen="true"';
|
| 90 |
+
break;
|
| 91 |
+
|
| 92 |
+
case 'video':
|
| 93 |
+
$channelName = $matches[2];
|
| 94 |
+
$src = 'https://player.twitch.tv/?video=' . $channelName;
|
| 95 |
+
$attrs = 'scrolling="no" frameborder="0" allowfullscreen="true"';
|
| 96 |
+
break;
|
| 97 |
+
|
| 98 |
+
case 'channel':
|
| 99 |
+
$src = 'https://player.twitch.tv/?channel=' . $channelName;
|
| 100 |
+
$attrs = 'scrolling="no" frameborder="0" allowfullscreen="true"';
|
| 101 |
+
break;
|
| 102 |
+
|
| 103 |
+
case 'chat':
|
| 104 |
+
$src = 'http://www.twitch.tv/embed/' . $channelName . '/chat';
|
| 105 |
+
$attrs = 'scrolling="yes" frameborder="0" allowfullscreen="true" id="' . $channelName . '"';
|
| 106 |
+
break;
|
| 107 |
}
|
| 108 |
|
| 109 |
+
$html = '<iframe src="' . $src . '" height="{height}" width="{width}" ' . $attrs . '></iframe>';
|
| 110 |
+
|
| 111 |
$response = array(
|
| 112 |
+
'type' => $type,
|
| 113 |
'provider_name' => 'Twitch',
|
| 114 |
'provider_url' => $providerUrl,
|
| 115 |
'url' => $url,
|
assets/js/preview.js
CHANGED
|
@@ -563,8 +563,6 @@
|
|
| 563 |
var contentWrapper = $($content).clone();
|
| 564 |
contentWrapper.html('');
|
| 565 |
|
| 566 |
-
var dom = editorInstance.dom;
|
| 567 |
-
|
| 568 |
$wrapper.removeClass('embedpress_placeholder');
|
| 569 |
|
| 570 |
$wrapper.append(contentWrapper);
|
|
@@ -579,7 +577,8 @@
|
|
| 579 |
iframe.class = "wpview-sandbox";
|
| 580 |
iframe.style.width = '100%';
|
| 581 |
|
| 582 |
-
|
|
|
|
| 583 |
var iframeWindow = iframe.contentWindow;
|
| 584 |
// Content failed to load.
|
| 585 |
if (!iframeWindow) {
|
|
@@ -1273,7 +1272,7 @@
|
|
| 1273 |
}
|
| 1274 |
}
|
| 1275 |
});
|
| 1276 |
-
|
| 1277 |
var embedWidth = (((embedItem && embedItem.width()) || $embedInnerWrapper.data('width')) || $embedInnerWrapper.width()) || "";
|
| 1278 |
var embedHeight = (((embedItem && embedItem.height()) || $embedInnerWrapper.data('height')) || $embedInnerWrapper.height()) || "";
|
| 1279 |
|
| 563 |
var contentWrapper = $($content).clone();
|
| 564 |
contentWrapper.html('');
|
| 565 |
|
|
|
|
|
|
|
| 566 |
$wrapper.removeClass('embedpress_placeholder');
|
| 567 |
|
| 568 |
$wrapper.append(contentWrapper);
|
| 577 |
iframe.class = "wpview-sandbox";
|
| 578 |
iframe.style.width = '100%';
|
| 579 |
|
| 580 |
+
contentWrapper.append(iframe);
|
| 581 |
+
|
| 582 |
var iframeWindow = iframe.contentWindow;
|
| 583 |
// Content failed to load.
|
| 584 |
if (!iframeWindow) {
|
| 1272 |
}
|
| 1273 |
}
|
| 1274 |
});
|
| 1275 |
+
|
| 1276 |
var embedWidth = (((embedItem && embedItem.width()) || $embedInnerWrapper.data('width')) || $embedInnerWrapper.width()) || "";
|
| 1277 |
var embedHeight = (((embedItem && embedItem.height()) || $embedInnerWrapper.data('height')) || $embedInnerWrapper.height()) || "";
|
| 1278 |
|
embedpress.php
CHANGED
|
@@ -5,7 +5,7 @@
|
|
| 5 |
* Description: WordPress supports around 35 embed sources, but PublishPress Embeds adds over 40 more, including Facebook, Google Maps, Google Docs, UStream! Just use the URL!
|
| 6 |
* Author: EmbedPress
|
| 7 |
* Author URI: http://embedpress.com
|
| 8 |
-
* Version: 2.1.
|
| 9 |
* Text Domain: embedpress
|
| 10 |
* Domain Path: /languages
|
| 11 |
*
|
| 5 |
* Description: WordPress supports around 35 embed sources, but PublishPress Embeds adds over 40 more, including Facebook, Google Maps, Google Docs, UStream! Just use the URL!
|
| 6 |
* Author: EmbedPress
|
| 7 |
* Author URI: http://embedpress.com
|
| 8 |
+
* Version: 2.1.4
|
| 9 |
* Text Domain: embedpress
|
| 10 |
* Domain Path: /languages
|
| 11 |
*
|
readme.txt
CHANGED
|
@@ -5,7 +5,7 @@ Author URI: https://embedpress.com
|
|
| 5 |
Tags: YouTube, Google, Facebook, Wistia, Vimeo
|
| 6 |
Requires at least: 4.6
|
| 7 |
Tested up to: 4.9.4
|
| 8 |
-
Stable tag: 2.1.
|
| 9 |
License: GPLv2 or later
|
| 10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 11 |
|
|
@@ -184,6 +184,13 @@ Not at all. You can set up everything your team needs without any coding knowled
|
|
| 184 |
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
| 185 |
and this project adheres to [Semantic Versioning](http://semver.org/).
|
| 186 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 187 |
= [2.1.3] - 2018-06-12 =
|
| 188 |
|
| 189 |
*Fixed:*
|
| 5 |
Tags: YouTube, Google, Facebook, Wistia, Vimeo
|
| 6 |
Requires at least: 4.6
|
| 7 |
Tested up to: 4.9.4
|
| 8 |
+
Stable tag: 2.1.4
|
| 9 |
License: GPLv2 or later
|
| 10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 11 |
|
| 184 |
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
| 185 |
and this project adheres to [Semantic Versioning](http://semver.org/).
|
| 186 |
|
| 187 |
+
= [2.1.4] - 2018-06-27 =
|
| 188 |
+
|
| 189 |
+
*Fixed:*
|
| 190 |
+
|
| 191 |
+
* Fixed embed preview after recent TinyMCE updates;
|
| 192 |
+
* Fixed Twitch embeds after their new URL structure;
|
| 193 |
+
|
| 194 |
= [2.1.3] - 2018-06-12 =
|
| 195 |
|
| 196 |
*Fixed:*
|
