diff --git a/CHANGELOG.md b/CHANGELOG.md
index 719a05d7..2de6b912 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
+## [4.2.1] - 2020-05-25
+### Fixed
+- Redirect urls like `t.co`.
+
## [4.2.0] - 2020-05-23
### Added
- Added the `ignored_errors` settings to ignore some curls errors instead throw an exception [#355]
@@ -56,6 +60,7 @@ Full library refactoring.
[#355]: https://github.com/oscarotero/Embed/issues/355
[#356]: https://github.com/oscarotero/Embed/issues/356
+[4.2.1]: https://github.com/oscarotero/Embed/compare/v4.2.0...v4.2.1
[4.2.0]: https://github.com/oscarotero/Embed/compare/v4.1.1...v4.2.0
[4.1.1]: https://github.com/oscarotero/Embed/compare/v4.1.0...v4.1.1
[4.1.0]: https://github.com/oscarotero/Embed/compare/v4.0.0...v4.1.0
diff --git a/src/Detectors/Redirect.php b/src/Detectors/Redirect.php
index 958d0dd2..6ea7a914 100644
--- a/src/Detectors/Redirect.php
+++ b/src/Detectors/Redirect.php
@@ -10,7 +10,7 @@ class Redirect extends Detector
public function detect(): ?UriInterface
{
$document = $this->extractor->getDocument();
- $value = $document->select('.//meta', ['http-equiv' => 'refresh'])->str();
+ $value = $document->select('.//meta', ['http-equiv' => 'refresh'])->str('content');
return $value ? $this->extract($value) : null;
}
diff --git a/tests/PagesTest.php b/tests/PagesTest.php
index fc604d04..e08e2fc2 100644
--- a/tests/PagesTest.php
+++ b/tests/PagesTest.php
@@ -168,6 +168,7 @@ public function testTwitch()
public function testTwitter()
{
$this->assertEmbed('https://twitter.com/pepephone/status/436461658601713664');
+ $this->assertEmbed('https://t.co/4DK3Jc2BTt');
}
public function testTikTok()
diff --git a/tests/cache/buff.ly.2usohds.php b/tests/cache/buff.ly.2usohds.php
new file mode 100644
index 00000000..cc05aace
--- /dev/null
+++ b/tests/cache/buff.ly.2usohds.php
@@ -0,0 +1,258 @@
+ [
+ 'cache-control' => [
+ 'private, max-age=90',
+ 'private, max-age=90'
+ ],
+ 'content-security-policy' => [
+ 'referrer always;',
+ 'referrer always;'
+ ],
+ 'content-type' => [
+ 'text/html; charset=utf-8',
+ 'text/html; charset=utf-8',
+ 'text/html; charset=UTF-8'
+ ],
+ 'date' => [
+ 'Mon, 25 May 2020 12:14:51 GMT',
+ 'Mon, 25 May 2020 12:14:51 GMT',
+ 'Mon, 25 May 2020 12:14:52 GMT'
+ ],
+ 'location' => [
+ 'https://bit.ly/2uSOHDs?cc=82cb5940aa070bd253e71bf68e863384',
+ 'https://graffica.info/sabes-cual-es-el-origen-del-ampersand/'
+ ],
+ 'referrer-policy' => [
+ 'unsafe-url',
+ 'unsafe-url'
+ ],
+ 'server' => [
+ 'nginx',
+ 'nginx',
+ 'Apache'
+ ],
+ 'set-cookie' => [
+ '_cc=2; Domain=buff.ly; Expires=Mon, 08 Jun 2020 12:14:51 GMT',
+ '_bit=k4pceP-d5c4e70ede0731b2ca-004; Domain=bit.ly; Expires=Sat, 21 Nov 2020 12:14:51 GMT'
+ ],
+ 'content-length' => [
+ '145 HTTP/2 301',
+ '147'
+ ],
+ 'via' => [
+ '1.1 google'
+ ],
+ 'alt-svc' => [
+ 'clear HTTP/2 200'
+ ],
+ 'x-powered-by' => [
+ 'PHP/7.2.30'
+ ],
+ 'content-encoding' => [
+ 'gzip'
+ ],
+ 'vary' => [
+ 'Accept-Encoding'
+ ],
+ 'last-modified' => [
+ 'Mon, 25 May 2020 12:00:14 GMT'
+ ],
+ 'Content-Location' => [
+ 'https://graffica.info/sabes-cual-es-el-origen-del-ampersand/'
+ ],
+ 'X-Request-Time' => [
+ '0.971 ms'
+ ]
+ ],
+ 'statusCode' => 200,
+ 'reasonPhrase' => 'OK',
+ 'body' => '
El origen del ampersand que desconocen muchos diseñadores
Sin resultado
Ver todos los resultados
El lenguaje, sea cual sea el idioma, siempre esconde entre los orígenes de sus palabras muchas curiosidades que resultan realmente fascinantes y que nos ayudan a entender el porqué de muchas formaciones lingüísticas. Este es el caso del origen del ampersand, el signo & —que en español su nombre es et y en inglés ampersand— utilizado como ‘y’. Aunque algunos ya sabían el porqué de este signo, no era así para muchos usuarios de Twitter quienes se sorprendieron con el tweet de la editora y autora Sarah Pappalardo en el que explicaba el secreto detrás de ‘&’ mostrando a su vez su sorpresa por haberlo descubierto ahora y no haber caído en ello antes.
Gracias a la imagen que adjunta, señala que el signo de et o ampersand es una ligadura de la propia la conjunción copulativa latina ‘et’. Aunque hay otras muchas ligaduras como ‘ae’ y ‘oe’, ninguna es tan conocida como ‘&’ (de hecho es la ligadura más empleada en diseño de branding ). Quizá sea por eso por lo que descubrir su razón de ser lleve a asombro.
En el caso de la palabra inglesa para esta ligadura, vine de la expresión and per se and (por sí mismo) y que se usaba en el siglo XIX como parte del conjunto del alfabeto en el proceso de memorización de este y que se colocaba al final.
Su origen se remonta a la antigua escritura romana en la que se solían escribir las letras ‘e’ y ‘t’ juntas formando la ligadura tipográfica. Fue a partir de entonces cuando la grafía se fue desarrollando hasta tener el aspecto actual debido a su uso extensivo por parte de los calígrafos a lo largo de la historia.
En el siguiente video, creado por LSRSGames , se explica de una forma muy gráfica y sencilla el origen del ampersand:
Sin resultado
Ver todos los resultados
+'
+];
diff --git a/tests/cache/t.co.4dk3jc2btt.php b/tests/cache/t.co.4dk3jc2btt.php
new file mode 100644
index 00000000..d266dad5
--- /dev/null
+++ b/tests/cache/t.co.4dk3jc2btt.php
@@ -0,0 +1,55 @@
+ [
+ 'cache-control' => [
+ 'private,max-age=300'
+ ],
+ 'content-encoding' => [
+ 'gzip'
+ ],
+ 'content-length' => [
+ '177'
+ ],
+ 'content-type' => [
+ 'text/html; charset=utf-8'
+ ],
+ 'date' => [
+ 'Mon, 25 May 2020 12:14:51 GMT'
+ ],
+ 'expires' => [
+ 'Mon, 25 May 2020 12:19:51 GMT'
+ ],
+ 'server' => [
+ 'tsa_f'
+ ],
+ 'set-cookie' => [
+ 'muc=309dc6f1-7be6-4358-9a6b-8160b5741e97; Max-Age=63072000; Expires=Wed, 25 May 2022 12:14:51 GMT; Domain=t.co; Secure; SameSite=None'
+ ],
+ 'strict-transport-security' => [
+ 'max-age=0'
+ ],
+ 'vary' => [
+ 'Origin'
+ ],
+ 'x-connection-hash' => [
+ '3d9a006e278127b0557f8feef2737c10'
+ ],
+ 'x-response-time' => [
+ '122'
+ ],
+ 'x-xss-protection' => [
+ '0'
+ ],
+ 'Content-Location' => [
+ 'https://t.co/4DK3Jc2BTt'
+ ],
+ 'X-Request-Time' => [
+ '0.340 ms'
+ ]
+ ],
+ 'statusCode' => 200,
+ 'reasonPhrase' => 'OK',
+ 'body' => 'https://buff.ly/2uSOHDs '
+];
diff --git a/tests/cache/www.facebook.com.acolono-videos-10154107990797381.49644076c1c38d3ef6fa11122ea89e53.php b/tests/cache/www.facebook.com.acolono-videos-10154107990797381.49644076c1c38d3ef6fa11122ea89e53.php
new file mode 100644
index 00000000..a9b1aaa8
--- /dev/null
+++ b/tests/cache/www.facebook.com.acolono-videos-10154107990797381.49644076c1c38d3ef6fa11122ea89e53.php
@@ -0,0 +1,86 @@
+ [
+ 'cache-control' => [
+ 'private, no-cache, no-store, must-revalidate'
+ ],
+ 'expires' => [
+ 'Sat, 01 Jan 2000 00:00:00 GMT'
+ ],
+ 'pragma' => [
+ 'no-cache'
+ ],
+ 'strict-transport-security' => [
+ 'max-age=15552000; preload'
+ ],
+ 'content-encoding' => [
+ 'br'
+ ],
+ 'content-security-policy' => [
+ 'default-src * data: blob: \'self\';script-src *.facebook.com *.fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:* \'unsafe-inline\' \'unsafe-eval\' blob: data: \'self\';style-src data: blob: \'unsafe-inline\' *;connect-src *.facebook.com facebook.com *.fbcdn.net *.facebook.net *.spotilocal.com:* wss://*.facebook.com:* https://fb.scanandcleanlocal.com:* attachment.fbsbx.com ws://localhost:* blob: *.cdninstagram.com \'self\';block-all-mixed-content;upgrade-insecure-requests;'
+ ],
+ 'vary' => [
+ 'Accept-Encoding'
+ ],
+ 'x-content-type-options' => [
+ 'nosniff'
+ ],
+ 'x-frame-options' => [
+ 'DENY'
+ ],
+ 'x-xss-protection' => [
+ '0'
+ ],
+ 'content-type' => [
+ 'text/html; charset="utf-8"'
+ ],
+ 'x-fb-debug' => [
+ 'Su+oxUdexAhtA3IihIeYGsidI3Pa2qBXHgJdcxcGVCxl+E818C1qQEzixyL78u+8csJVliQLbV2gUxaFYHgJMQ=='
+ ],
+ 'date' => [
+ 'Mon, 25 May 2020 12:14:49 GMT',
+ 'Mon, 25 May 2020 12:14:49 GMT'
+ ],
+ 'alt-svc' => [
+ 'h3-27=":443"; ma=3600'
+ ],
+ 'Content-Location' => [
+ 'https://www.facebook.com/acolono/videos/10154107990797381/?_fb_noscript=1'
+ ],
+ 'X-Request-Time' => [
+ '0.729 ms'
+ ]
+ ],
+ 'statusCode' => 200,
+ 'reasonPhrase' => 'OK',
+ 'body' => '
+
+Acolono GmbH - Eindrücke vom gestrigen Drupal Austria...
+
+
+
+
+
+
+
+
+
+
+Eliminar Utilizamos las cookies para ayudar a personalizar contenido, adaptar y medir los anuncios, y facilitar una experiencia más segura. Al hacer clic o navegar en el sitio, aceptas que recopilemos información dentro y fuera de Facebook mediante las cookies. Consulta aquí más información, incluida la relativa a los controles disponibles:
Política de cookies
Parece que tienes problemas para reproducir este vídeo. Si es así, reinicia el navegador.
Cerrar
Eindrücke vom gestrigen Drupal Austria Meetup bei uns im Büro :) Wir haben die beste Community!
Vídeos relacionados
65 reproducciones ·
13 de septiembre de 2016 35 reproducciones ·
22 de septiembre de 2015
62 seguidores · Político(a)
28 618 seguidores · Medio de comunicación/noticias
2604 seguidores · Veterinario
180 seguidores · Diseñador web
16 442 seguidores · Carnicería
91 seguidores · Concesionario de coches
56 seguidores · Blog personal
355 seguidores · Empresa de internet
328 seguidores · Ropa (marca)
272 seguidores · Organización comunitaria
1875 seguidores · Empresa de internet
+
+
+
+'
+];
diff --git a/tests/cache/www.facebook.com.permalink.php.cfa702e11f4675f62719bd04210782dc.php b/tests/cache/www.facebook.com.permalink.php.cfa702e11f4675f62719bd04210782dc.php
new file mode 100644
index 00000000..c914703f
--- /dev/null
+++ b/tests/cache/www.facebook.com.permalink.php.cfa702e11f4675f62719bd04210782dc.php
@@ -0,0 +1,95 @@
+ [
+ 'set-cookie' => [
+ 'noscript=1; path=/; domain=.facebook.com; secure; SameSite=None'
+ ],
+ 'cache-control' => [
+ 'private, no-cache, no-store, must-revalidate'
+ ],
+ 'expires' => [
+ 'Sat, 01 Jan 2000 00:00:00 GMT'
+ ],
+ 'pragma' => [
+ 'no-cache'
+ ],
+ 'strict-transport-security' => [
+ 'max-age=15552000; preload'
+ ],
+ 'content-encoding' => [
+ 'br'
+ ],
+ 'content-security-policy' => [
+ 'default-src * data: blob: \'self\';script-src *.facebook.com *.fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:* \'unsafe-inline\' \'unsafe-eval\' blob: data: \'self\';style-src data: blob: \'unsafe-inline\' *;connect-src *.facebook.com facebook.com *.fbcdn.net *.facebook.net *.spotilocal.com:* wss://*.facebook.com:* https://fb.scanandcleanlocal.com:* attachment.fbsbx.com ws://localhost:* blob: *.cdninstagram.com \'self\';block-all-mixed-content;upgrade-insecure-requests;'
+ ],
+ 'vary' => [
+ 'Accept-Encoding'
+ ],
+ 'x-content-type-options' => [
+ 'nosniff'
+ ],
+ 'x-frame-options' => [
+ 'DENY'
+ ],
+ 'x-xss-protection' => [
+ '0'
+ ],
+ 'content-type' => [
+ 'text/html; charset="utf-8"'
+ ],
+ 'x-fb-debug' => [
+ 'tzPD8MRRZs6g7H8piJ9mftxP4k56G8XM6Ub8zpgoLLcIB5dcoPkIz7NsPhYWFpzfxnam6eMRTbb3t5JOBjjzug=='
+ ],
+ 'date' => [
+ 'Mon, 25 May 2020 12:14:48 GMT',
+ 'Mon, 25 May 2020 12:14:48 GMT'
+ ],
+ 'alt-svc' => [
+ 'h3-27=":443"; ma=3600'
+ ],
+ 'Content-Location' => [
+ 'https://www.facebook.com/permalink.php?story_fbid=827163017327807&id=149460691764713&_fb_noscript=1'
+ ],
+ 'X-Request-Time' => [
+ '0.918 ms'
+ ]
+ ],
+ 'statusCode' => 200,
+ 'reasonPhrase' => 'OK',
+ 'body' => '
+
+Aquí vos deixamos unhas imaxes da nosa... - DAG, Asociación Galega de Deseño | Facebook
+
+
+
+
+
+
+
+
+
+Eliminar Utilizamos las cookies para ayudar a personalizar contenido, adaptar y medir los anuncios, y facilitar una experiencia más segura. Al hacer clic o navegar en el sitio, aceptas que recopilemos información dentro y fuera de Facebook mediante las cookies. Consulta aquí más información, incluida la relativa a los controles disponibles:
Política de cookies
Páginas que le gustan a esta página
Publicación reciente de la página
📌 ✒️ 🔎 Novo artigo na nosa web! A nosa compañeira Noemí Cortizas respo
... nde a algunha das preguntas que se fan os e as que se achegan ao deseño CMF por primeira vez. Ver más Compartimos esta
# chamadaaproxecto que lanza a Asociación de Profesi
... onales y Empresas de Diseño de Canarias, socios e compañeiros de @Foro_READ, para o deseño do trofeo dos Premios Canarias de Turismo. Prazo para presentar candidaturas ata o 22 de maio!
+
+Toda a info:
+👇
+http://di-ca.es/posts/view/111 Ver más
Aquí vos deixamos unhas imaxes da nosa visita do pasado sábado á Guarda. Moi agradecidos á Asociación Naturalista do Baixo Miño www.anabam.org e a Malde Arqueoloxía
+
+
+
+'
+];
diff --git a/tests/fixtures/buff.ly.2usohds.php b/tests/fixtures/buff.ly.2usohds.php
new file mode 100644
index 00000000..e7d5a7a5
--- /dev/null
+++ b/tests/fixtures/buff.ly.2usohds.php
@@ -0,0 +1,96 @@
+ '@graffica_info',
+ 'authorUrl' => 'https://twitter.com/graffica_info',
+ 'cms' => null,
+ 'code' => null,
+ 'description' => 'El lenguaje, sea cual sea el idioma, siempre esconde entre los orígenes de sus palabras muchas curiosidades. Este es el caso del origen del ampersand.',
+ 'favicon' => 'https://graffica.info/favicon.ico',
+ 'feeds' => [
+ 'https://graffica.info/feed/'
+ ],
+ 'icon' => null,
+ 'image' => 'https://graffica.info/wp-content/uploads/2020/02/el-origen-de-la-Ampersand-destacado.jpg',
+ 'keywords' => [],
+ 'language' => 'es',
+ 'languages' => [],
+ 'license' => null,
+ 'providerName' => 'Gràffica',
+ 'providerUrl' => 'https://graffica.info',
+ 'publishedTime' => '2020-02-20 09:30:00',
+ 'redirect' => null,
+ 'title' => 'El origen del ampersand que desconocen muchos diseñadores',
+ 'url' => 'https://graffica.info/sabes-cual-es-el-origen-del-ampersand/',
+ 'linkedData' => [
+ '@context' => 'https://schema.org',
+ '@graph' => [
+ [
+ '@type' => 'WebSite',
+ '@id' => 'https://graffica.info/#website',
+ 'url' => 'https://graffica.info/',
+ 'name' => 'Gràffica',
+ 'description' => 'Revista de noticias del mundo del diseño, en especial del diseño gráfico, la creatividad y la cultura visual. Tipografía, ilustración, branding y mucho más.',
+ 'potentialAction' => [
+ [
+ '@type' => 'SearchAction',
+ 'target' => 'https://graffica.info/?s={search_term_string}',
+ 'query-input' => 'required name=search_term_string'
+ ]
+ ],
+ 'inLanguage' => 'es'
+ ],
+ [
+ '@type' => 'ImageObject',
+ '@id' => 'https://graffica.info/sabes-cual-es-el-origen-del-ampersand/#primaryimage',
+ 'inLanguage' => 'es',
+ 'url' => 'https://graffica.info/wp-content/uploads/2020/02/el-origen-de-la-Ampersand-destacado.jpg',
+ 'width' => 1000,
+ 'height' => 659
+ ],
+ [
+ '@type' => 'WebPage',
+ '@id' => 'https://graffica.info/sabes-cual-es-el-origen-del-ampersand/#webpage',
+ 'url' => 'https://graffica.info/sabes-cual-es-el-origen-del-ampersand/',
+ 'name' => 'El origen del ampersand que desconocen muchos diseñadores',
+ 'isPartOf' => [
+ '@id' => 'https://graffica.info/#website'
+ ],
+ 'primaryImageOfPage' => [
+ '@id' => 'https://graffica.info/sabes-cual-es-el-origen-del-ampersand/#primaryimage'
+ ],
+ 'datePublished' => '2020-02-20T09:30:00+00:00',
+ 'dateModified' => '2020-02-20T09:17:48+00:00',
+ 'author' => [
+ '@id' => 'https://graffica.info/#/schema/person/e061170e01040cb6444c3edea24a464b'
+ ],
+ 'description' => 'El lenguaje, sea cual sea el idioma, siempre esconde entre los orígenes de sus palabras muchas curiosidades. Este es el caso del origen del ampersand.',
+ 'inLanguage' => 'es',
+ 'potentialAction' => [
+ [
+ '@type' => 'ReadAction',
+ 'target' => [
+ 'https://graffica.info/sabes-cual-es-el-origen-del-ampersand/'
+ ]
+ ]
+ ]
+ ],
+ [
+ '@type' => [
+ 'Person'
+ ],
+ '@id' => 'https://graffica.info/#/schema/person/e061170e01040cb6444c3edea24a464b',
+ 'name' => 'Gràffica',
+ 'image' => [
+ '@type' => 'ImageObject',
+ '@id' => 'https://graffica.info/#personlogo',
+ 'inLanguage' => 'es',
+ 'url' => 'https://secure.gravatar.com/avatar/3149311a3c04959ac810d7ff614188f1?s=96&d=mm&r=g',
+ 'caption' => 'Gràffica'
+ ]
+ ]
+ ]
+ ],
+ 'oEmbed' => []
+];
diff --git a/tests/fixtures/www.facebook.com.acolono-videos-10154107990797381.49644076c1c38d3ef6fa11122ea89e53.php b/tests/fixtures/www.facebook.com.acolono-videos-10154107990797381.49644076c1c38d3ef6fa11122ea89e53.php
new file mode 100644
index 00000000..ebde4f04
--- /dev/null
+++ b/tests/fixtures/www.facebook.com.acolono-videos-10154107990797381.49644076c1c38d3ef6fa11122ea89e53.php
@@ -0,0 +1,93 @@
+ 'Acolono GmbH',
+ 'authorUrl' => 'https://www.facebook.com/acolono/',
+ 'cms' => null,
+ 'code' => [
+ 'html' => '
Eindrücke vom gestrigen Drupal Austria Meetup bei uns im Büro :) Wir haben die beste Community!
Publicada por Acolono GmbH en Jueves, 12 de mayo de 2016 ',
+ 'width' => 500,
+ 'height' => 901
+ ],
+ 'description' => 'Eindrücke vom gestrigen Drupal Austria Meetup bei uns im Büro :) Wir haben die beste Community!',
+ 'favicon' => 'https://static.xx.fbcdn.net/rsrc.php/yo/r/iRmz9lCMBD2.ico',
+ 'feeds' => [],
+ 'icon' => null,
+ 'image' => 'https://scontent.fmad7-1.fna.fbcdn.net/v/t15.5256-10/p200x200/12672727_10154107996122381_1769309167_n.jpg?_nc_cat=110&_nc_sid=ad6a45&_nc_ohc=H5axAn5YdXsAX_e6Lzx&_nc_ht=scontent.fmad7-1.fna&_nc_tp=6&oh=2c06ee1e270f11ec4df87d1a55020804&oe=5EF1D1EE',
+ 'keywords' => [],
+ 'language' => 'es',
+ 'languages' => [],
+ 'license' => null,
+ 'providerName' => 'Facebook',
+ 'providerUrl' => 'https://www.facebook.com/',
+ 'publishedTime' => null,
+ 'redirect' => null,
+ 'title' => 'Acolono GmbH - Eindrücke vom gestrigen Drupal Austria...',
+ 'url' => 'https://www.facebook.com/acolono/videos/10154107990797381/',
+ 'linkedData' => [
+ '@context' => 'https://schema.org',
+ '@type' => 'VideoObject',
+ 'name' => 'Acolono GmbH - Eindrücke vom gestrigen Drupal Austria...',
+ 'description' => 'Eindrücke vom gestrigen Drupal Austria Meetup bei uns im Büro :) Wir haben die beste Community!',
+ 'thumbnailUrl' => 'https://scontent.fmad7-1.fna.fbcdn.net/v/t15.5256-10/12672727_10154107996122381_1769309167_n.jpg?_nc_cat=110&_nc_sid=08861d&_nc_ohc=H5axAn5YdXsAX_e6Lzx&_nc_ht=scontent.fmad7-1.fna&oh=408eec961f6799604dbf1faf96633eca&oe=5EF1FFC0',
+ 'duration' => 'T1M1S',
+ 'uploadDate' => '2016-05-12T06:52:59-07:00',
+ 'contentUrl' => 'https://video.fmad7-1.fna.fbcdn.net/v/t42.1790-2/13223999_1021353087901725_2023377136_n.mp4?_nc_cat=109&_nc_sid=985c63&efg=eyJybHIiOjMwMCwicmxhIjo1MTIsInZlbmNvZGVfdGFnIjoic3ZlX3NkIn0%3D&_nc_ohc=ieZd8VLy45AAX9__EdF&rl=300&vabr=152&_nc_ht=video.fmad7-1.fna&oh=3a708437f011a6250a4113c8671e1079&oe=5ECBD9B6',
+ 'interactionCount' => 112,
+ 'publication' => [
+ [
+ '@type' => 'BroadcastEvent',
+ 'isLiveBroadcast' => false
+ ]
+ ],
+ '@id' => 'https://video.fmad7-1.fna.fbcdn.net/v/t42.1790-2/13223999_1021353087901725_2023377136_n.mp4?_nc_cat=109&_nc_sid=985c63&efg=eyJybHIiOjMwMCwicmxhIjo1MTIsInZlbmNvZGVfdGFnIjoic3ZlX3NkIn0%3D&_nc_ohc=ieZd8VLy45AAX9__EdF&rl=300&vabr=152&_nc_ht=video.fmad7-1.fna&oh=3a708437f011a6250a4113c8671e1079&oe=5ECBD9B6',
+ 'url' => 'https://video.fmad7-1.fna.fbcdn.net/v/t42.1790-2/13223999_1021353087901725_2023377136_n.mp4?_nc_cat=109&_nc_sid=985c63&efg=eyJybHIiOjMwMCwicmxhIjo1MTIsInZlbmNvZGVfdGFnIjoic3ZlX3NkIn0%3D&_nc_ohc=ieZd8VLy45AAX9__EdF&rl=300&vabr=152&_nc_ht=video.fmad7-1.fna&oh=3a708437f011a6250a4113c8671e1079&oe=5ECBD9B6',
+ 'datePublished' => '2016-05-12T06:52:59-07:00',
+ 'width' => 320,
+ 'height' => 576,
+ 'thumbnail' => [
+ '@type' => 'ImageObject',
+ 'contentUrl' => 'https://scontent.fmad7-1.fna.fbcdn.net/v/t15.5256-10/12672727_10154107996122381_1769309167_n.jpg?_nc_cat=110&_nc_sid=08861d&_nc_ohc=H5axAn5YdXsAX_e6Lzx&_nc_ht=scontent.fmad7-1.fna&oh=408eec961f6799604dbf1faf96633eca&oe=5EF1FFC0',
+ 'width' => 320,
+ 'height' => 576
+ ],
+ 'headline' => 'Acolono GmbH - Eindrücke vom gestrigen Drupal Austria...',
+ 'isFamilyFriendly' => true,
+ 'keywords' => 'Acolono GmbH',
+ 'commentCount' => 0,
+ 'inLanguage' => 'de',
+ 'contentSize' => '5261.361kB',
+ 'videoQuality' => '270p',
+ 'author' => [
+ '@type' => 'Organization',
+ 'name' => 'Acolono GmbH',
+ 'url' => 'https://www.facebook.com/acolono/'
+ ],
+ 'publisher' => [
+ '@type' => 'Organization',
+ 'logo' => [
+ '@type' => 'ImageObject',
+ 'url' => 'https://scontent.fmad7-1.fna.fbcdn.net/v/t1.0-1/p200x200/10440698_10152746215257381_1707589563651819460_n.png?_nc_cat=106&_nc_sid=dbb9e7&_nc_ohc=iki5GvdExDAAX9gpcHG&_nc_ht=scontent.fmad7-1.fna&oh=11cd9277a3a18cb0ec0bcc6987664a9c&oe=5EF20E9A'
+ ],
+ 'name' => 'Acolono GmbH',
+ 'url' => 'https://www.facebook.com/acolono/'
+ ],
+ 'about' => 'Eindrücke vom gestrigen Drupal Austria Meetup bei uns im Büro :) Wir haben die beste Community!',
+ 'transcript' => null
+ ],
+ 'oEmbed' => [
+ 'author_name' => 'Acolono GmbH',
+ 'author_url' => 'https://www.facebook.com/acolono/',
+ 'provider_url' => 'https://www.facebook.com',
+ 'provider_name' => 'Facebook',
+ 'success' => true,
+ 'height' => 901,
+ 'html' => '
+Eindrücke vom gestrigen Drupal Austria Meetup bei uns im Büro :) Wir haben die beste Community!
Publicada por Acolono GmbH en Jueves, 12 de mayo de 2016 ',
+ 'type' => 'video',
+ 'version' => '1.0',
+ 'url' => 'https://www.facebook.com/acolono/videos/10154107990797381/',
+ 'width' => 500
+ ]
+];
diff --git a/tests/fixtures/www.facebook.com.permalink.php.cfa702e11f4675f62719bd04210782dc.php b/tests/fixtures/www.facebook.com.permalink.php.cfa702e11f4675f62719bd04210782dc.php
new file mode 100644
index 00000000..7cbedc21
--- /dev/null
+++ b/tests/fixtures/www.facebook.com.permalink.php.cfa702e11f4675f62719bd04210782dc.php
@@ -0,0 +1,46 @@
+ 'DAG, Asociación Galega de Deseño',
+ 'authorUrl' => 'https://www.facebook.com/asociaciondag/',
+ 'cms' => null,
+ 'code' => [
+ 'html' => '
Aquí vos deixamos unhas imaxes da nosa visita do pasado sábado á Guarda. Moi agradecidos á Asociación Naturalista do Baixo Miño www.anabam.org e a Malde Arqueoloxía
Publicada por DAG, Asociación Galega de Deseño en Martes, 21 de octubre de 2014 ',
+ 'width' => 552,
+ 'height' => null
+ ],
+ 'description' => 'Aquí vos deixamos unhas imaxes da nosa visita do pasado sábado á Guarda. Moi agradecidos á Asociación Naturalista do Baixo Miño www.anabam.org e a Malde Arqueoloxía',
+ 'favicon' => 'https://static.xx.fbcdn.net/rsrc.php/yo/r/iRmz9lCMBD2.ico',
+ 'feeds' => [],
+ 'icon' => null,
+ 'image' => 'https://scontent.fmad7-1.fna.fbcdn.net/v/t31.0-8/10704334_827161517327957_5105556928960502376_o.jpg?_nc_cat=111&_nc_sid=8024bb&_nc_ohc=1Tupk385RV8AX9dOJv1&_nc_ht=scontent.fmad7-1.fna&oh=e0e8f81989b1ade9c9e12c3a4a211cba&oe=5EF11523',
+ 'keywords' => [],
+ 'language' => 'es',
+ 'languages' => [
+ 'x-default' => 'https://www.facebook.com/149460691764713/posts/aqu%C3%AD-vos-deixamos-unhas-imaxes-da-nosa-visita-do-pasado-s%C3%A1bado-%C3%A1-guarda-moi-agra/827163017327807/',
+ 'en' => 'https://www.facebook.com/149460691764713/posts/aqu%C3%AD-vos-deixamos-unhas-imaxes-da-nosa-visita-do-pasado-s%C3%A1bado-%C3%A1-guarda-moi-agra/827163017327807/'
+ ],
+ 'license' => null,
+ 'providerName' => 'Facebook',
+ 'providerUrl' => 'https://www.facebook.com/',
+ 'publishedTime' => null,
+ 'redirect' => null,
+ 'title' => 'Aquí vos deixamos unhas imaxes da nosa... - DAG, Asociación Galega de Deseño | Facebook',
+ 'url' => 'https://www.facebook.com/asociaciondag/posts/827163017327807',
+ 'linkedData' => [],
+ 'oEmbed' => [
+ 'author_name' => 'DAG, Asociación Galega de Deseño',
+ 'author_url' => 'https://www.facebook.com/asociaciondag/',
+ 'provider_url' => 'https://www.facebook.com',
+ 'provider_name' => 'Facebook',
+ 'success' => true,
+ 'height' => null,
+ 'html' => '
+Aquí vos deixamos unhas imaxes da nosa visita do pasado sábado á Guarda. Moi agradecidos á Asociación Naturalista do Baixo Miño www.anabam.org e a Malde Arqueoloxía
Publicada por DAG, Asociación Galega de Deseño en Martes, 21 de octubre de 2014 ',
+ 'type' => 'rich',
+ 'version' => '1.0',
+ 'url' => 'https://www.facebook.com/asociaciondag/posts/827163017327807',
+ 'width' => 552
+ ]
+];
Interesante el artículo de la Sra. Papalardo. Puedo agregar que el signo en cuestión, segun consta en estudiosos calificados, fue inventado por Marco Tulio Tiro, secretario de Cicerón, quien dictaba muy rapido, y aquél no daba abasto para las anotaciones. Fueron los inicios de la taquigrafia.