PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 3.9.10
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v3.9.10
4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 trunk 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.14 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.10 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.4.0 4.4.1 4.4.10 4.4.11 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5.0 4.5.1
embedpress / EmbedPress / Providers / Boomplay.php
embedpress / EmbedPress / Providers Last commit date
Boomplay.php 2 years ago Calendly.php 2 years ago Giphy.php 2 years ago GitHub.php 2 years ago GoogleDocs.php 2 years ago GoogleDrive.php 2 years ago GoogleMaps.php 2 years ago Gumroad.php 2 years ago NRKRadio.php 2 years ago OpenSea.php 2 years ago SelfHosted.php 2 years ago TikTok.php 2 years ago Twitch.php 2 years ago Wrapper.php 2 years ago Youtube.php 2 years ago index.html 7 years ago
Boomplay.php
107 lines
1 <?php
2 namespace EmbedPress\Providers;
3
4 use Embera\Provider\ProviderAdapter;
5 use Embera\Provider\ProviderInterface;
6 use Embera\Url;
7
8 (defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed. or EmbedPress is not loaded yet.");
9
10 /**
11 * Entity responsible to support Boomplay embeds.
12 *
13 * @package EmbedPress
14 * @subpackage EmbedPress/Providers
15 * @author EmbedPress <help@embedpress.com>
16 * @copyright Copyright (C) 2021 WPDeveloper. All rights reserved.
17 * @license GPLv3 or later
18 * @since 1.5.0
19 */
20 class Boomplay extends ProviderAdapter implements ProviderInterface
21 {
22 /**
23 * The regex which identifies Boomplay URLs.
24 *
25 * @since 1.5.0
26 * @access private
27 *
28 * @var string
29 */
30 private $urlRegexPattern = '/boomplay\.com\/(songs|playlists|albums)\/(\d+)/';
31
32 /**
33 * Method that verifies if the embed URL belongs to Boomplay.
34 *
35 * @param Url $url
36 * @return boolean
37 *
38 */
39 public function validateUrl(Url $url)
40 {
41 return (bool) preg_match($this->urlRegexPattern, $this->url);
42 }
43
44 /**
45 * This method fakes an Oembed response.
46 *
47 * @since 1.5.0
48 *
49 * @return array
50 */
51 public function fakeResponse()
52 {
53 $url = $this->getUrl();
54 $providerUrl = 'https://www.boomplay.com';
55
56 if (preg_match("{$this->urlRegexPattern}i", $url, $matches)) {
57 $type = $matches[1]; // songs | playlists | album
58 $content_id = $matches[2];
59 $endpoint_type = apply_filters( 'embedpress_boomplay_content_type', 'MUSIC', $type);
60
61 $width = isset( $this->config['maxwidth']) ? $this->config['maxwidth']: '100%';
62 $height = isset( $this->config['maxheight']) ? $this->config['maxheight']: 450;
63
64 $html = "<iframe src='" . esc_url("https://www.boomplay.com/embed/$content_id/$endpoint_type") . "' frameborder='0' height='" . esc_attr($height) . "' width='" . esc_attr($width) . "'></iframe>";
65
66
67
68
69 $response = [
70 'type' => $type,
71 'content_id' => $content_id,
72 'provider_name' => 'Boomplay',
73 'provider_url' => $providerUrl,
74 'url' => $url,
75 'html' => $html,
76 ];
77
78 if ( in_array( $type, ['albums', 'playlists'])) {
79 $alert_message = sprintf( '<p><strong>%s</strong>. <span style="font-size: 13px;">%s</span></p>', __( 'Embedding Boomplay playlists and albums are supported in EmbedPress Pro', 'embedpress'), __( 'This message is only visible to you.', 'embedpress'));
80 // for gutenberg
81
82 if ( !is_embedpress_pro_active() ) {
83 $response['alert'] = $alert_message;
84 }
85
86 if ( is_admin() && !is_embedpress_pro_active() ) {
87 $response['html'] = $alert_message;
88 }
89
90 if ( !is_admin() && !is_embedpress_pro_active() ) {
91 $response['html'] = $url;
92 }
93
94 }
95 } else {
96 $response = [];
97 }
98
99 return $response;
100 }
101 /** inline @inheritDoc */
102 public function modifyResponse( array $response = [])
103 {
104 return $this->fakeResponse();
105 }
106 }
107