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 / GettyImages.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
GettyImages.php
147 lines
1 <?php
2
3 /**
4 * GettyImages.php
5 *
6 * @package Embera
7 * @author Michael Pratt <yo@michael-pratt.com>
8 * @link http://www.michael-pratt.com/
9 *
10 * For the full copyright and license information, please view the LICENSE
11 * file that was distributed with this source code.
12 */
13
14 namespace EmbedPress\Providers;
15
16 use Embera\Provider\ProviderAdapter;
17 use Embera\Provider\ProviderInterface;
18 use Embera\Url;
19
20 (defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
21 /**
22 * GettyImages Provider
23 * Encuentra la imagen libre de derechos perfecta para tu próximo proyecto en el mejor catálogo ...
24 *
25 * @link https://gettyimages.com
26 * @see https://developers.gettyimages.com/api/oembed/
27 */
28 class GettyImages extends ProviderAdapter implements ProviderInterface
29 {
30 /** inline {@inheritdoc} */
31 protected $endpoint = 'https://embed.gettyimages.com/oembed?format=json&caller=embera';
32
33 /** inline {@inheritdoc} */
34 protected static $hosts = [
35 'gty.im',
36 '*.gettyimages.com',
37 '*.gettyimages.com.mx',
38 '*.gettyimages.com.au',
39 '*.gettyimages.com.be',
40 '*.gettyimages.com.br',
41 '*.gettyimages.com.ca',
42 '*.gettyimages.com.de',
43 '*.gettyimages.es',
44 '*.gettyimages.fr',
45 '*.gettyimages.in',
46 '*.gettyimages.ie',
47 '*.gettyimages.it',
48 '*.gettyimages.nl',
49 '*.gettyimages.no',
50 '*.gettyimages.co.nz',
51 '*.gettyimages.at',
52 '*.gettyimages.pt',
53 '*.gettyimages.ch',
54 '*.gettyimages.fi',
55 '*.gettyimages.se',
56 '*.gettyimages.ae',
57 '*.gettyimages.co.uk',
58 '*.gettyimages.hk',
59 '*.gettyimages.co.jp'
60 ];
61
62 /** inline {@inheritdoc} */
63 protected $allowedParams = ['maxwidth', 'maxheight', 'caller', 'caption', 'tld'];
64
65 /** inline {@inheritdoc} */
66 protected $httpsSupport = false;
67
68 /** inline {@inheritdoc} */
69 public function validateUrl(Url $url)
70 {
71 return (bool) (preg_match('~gty\.im/([^/]+)$~i', (string) $url));
72 }
73
74 /** inline {@inheritdoc} */
75 public function normalizeUrl(Url $url)
76 {
77 $url->removeQueryString();
78
79 if (preg_match('~/detail/(?:(?:[^/]+)/(?:[^/]+)/)?([^/]+)$~i', (string) $url, $matches)) {
80 $url->overwrite('https://gty.im/' . $matches['1']);
81 }
82
83 $url->removeLastSlash();
84 $url->convertToHttps();
85 $url->removeWWW();
86
87 return $url;
88 }
89
90 /**
91 * This method fakes an Oembed response.
92 *
93 * @since 1.5.0
94 *
95 * @return array
96 */
97 public function fakeResponse()
98 {
99
100 $shortUrl = $this->getUrl();
101
102 // Build the Getty oEmbed endpoint
103 $endpoint = "https://embed.gettyimages.com/oembed?format=json&caller=embera&url=" . urlencode($shortUrl);
104
105 // Fetch the data
106 $responseJson = @file_get_contents($endpoint);
107
108 if (!$responseJson) {
109 return [];
110 }
111
112 $data = json_decode($responseJson, true);
113 if (!$data) {
114 return [];
115 }
116
117 $response = [];
118
119
120 $width = $data['thumbnail_width'] ?? 640;
121 $height = $data['thumbnail_height'] ?? 480;
122
123 // Optional: modify HTML for your needs
124 if (isset($data['html']) && isset($data['thumbnail_url'])) {
125
126
127 $response = [
128 'type' => 'image',
129 'provider_name' => 'GettyImages',
130 'provider_url' => 'https://gettyimages.com',
131 'url' => $this->getUrl(),
132 'html' => $data['html'],
133 ];
134 }
135
136
137 return $response;
138 }
139
140
141 /** inline {@inheritdoc} */
142 public function modifyResponse(array $response = [])
143 {
144 return $this->fakeResponse();
145 }
146 }
147