PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 4.4.10
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v4.4.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
TemplateLayouts 5 months ago AirTable.php 1 year ago Boomplay.php 1 year ago Calendly.php 2 years ago Canva.php 1 year ago FITE.php 1 year ago GettyImages.php 9 months ago Giphy.php 2 years ago GitHub.php 3 years ago GoogleCalendar.php 8 months ago GoogleDocs.php 2 years ago GoogleDrive.php 2 years ago GoogleMaps.php 2 years ago GooglePhotos.php 5 months ago Gumroad.php 2 years ago InstagramFeed.php 6 months ago LinkedIn.php 2 years ago Meetup.php 6 months ago NRKRadio.php 2 years ago OneDrive.php 10 months ago OpenSea.php 9 months ago SelfHosted.php 2 years ago Spreaker.php 1 year ago TikTok.php 2 years ago Twitch.php 2 years ago Wistia.php 6 months ago Wrapper.php 3 years ago X.php 2 years ago Youtube.php 5 months 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 ( !apply_filters('embedpress/is_allow_rander', false) ) {
83 $response['alert'] = $alert_message;
84 }
85
86 if ( is_admin() && !apply_filters('embedpress/is_allow_rander', false) ) {
87 $response['html'] = $alert_message;
88 }
89
90 if ( !is_admin() && !apply_filters('embedpress/is_allow_rander', false) ) {
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