Fix because of some breaking changes of Graby 2.0

This commit is contained in:
adev 2017-11-11 20:04:15 +01:00 committed by Jeremy Benoist
parent bf9ace0643
commit 5f08426201
No known key found for this signature in database
GPG key ID: BCA73962457ACC3C
4 changed files with 50 additions and 48 deletions

View file

@ -369,9 +369,7 @@ class EntryRestController extends WallabagRestController
'language' => !empty($data['language']) ? $data['language'] : $entry->getLanguage(),
'date' => !empty($data['publishedAt']) ? $data['publishedAt'] : $entry->getPublishedAt(),
// faking the open graph preview picture
'open_graph' => [
'og_image' => !empty($data['picture']) ? $data['picture'] : $entry->getPreviewPicture(),
],
'image' => !empty($data['picture']) ? $data['picture'] : $entry->getPreviewPicture(),
'authors' => \is_string($data['authors']) ? explode(',', $data['authors']) : $entry->getPublishedBy(),
]
);

View file

@ -253,16 +253,14 @@ class ContentProxy
if (!empty($content['title'])) {
$entry->setTitle($content['title']);
} elseif (!empty($content['open_graph']['og_title'])) {
$entry->setTitle($content['open_graph']['og_title']);
}
if (empty($content['html'])) {
$content['html'] = $this->fetchingErrorMessage;
if (!empty($content['open_graph']['og_description'])) {
if (!empty($content['description'])) {
$content['html'] .= '<p><i>But we found a short description: </i></p>';
$content['html'] .= $content['open_graph']['og_description'];
$content['html'] .= $content['description'];
}
}
@ -277,8 +275,8 @@ class ContentProxy
$entry->setPublishedBy($content['authors']);
}
if (!empty($content['all_headers']) && $this->storeArticleHeaders) {
$entry->setHeaders($content['all_headers']);
if (!empty($content['headers'])) {
$entry->setHeaders($content['headers']);
}
if (!empty($content['date'])) {
@ -290,12 +288,12 @@ class ContentProxy
}
$previewPictureUrl = '';
if (!empty($content['open_graph']['og_image'])) {
$previewPictureUrl = $content['open_graph']['og_image'];
if (!empty($content['image'])) {
$previewPictureUrl = $content['image'];
}
// if content is an image, define it as a preview too
if (!empty($content['content_type']) && \in_array($this->mimeGuesser->guess($content['content_type']), ['jpeg', 'jpg', 'gif', 'png'], true)) {
if (!empty($content['headers']['content_type']) && \in_array($this->mimeGuesser->guess($content['headers']['content_type']), ['jpeg', 'jpg', 'gif', 'png'], true)) {
$previewPictureUrl = $content['url'];
} elseif (empty($previewPictureUrl)) {
$this->logger->debug('Extracting images from content to provide a default preview picture');
@ -310,8 +308,8 @@ class ContentProxy
$this->updatePreviewPicture($entry, $previewPictureUrl);
}
if (!empty($content['content_type'])) {
$entry->setMimetype($content['content_type']);
if (!empty($content['headers']['content-type'])) {
$entry->setMimetype($content['headers']['content-type']);
}
try {

View file

@ -35,7 +35,9 @@ class WallabagV2Import extends WallabagImport
{
return [
'html' => $entry['content'],
'content_type' => $entry['mimetype'],
'headers' => [
'content-type' => $entry['mimetype'],
],
'is_archived' => (bool) ($entry['is_archived'] || $this->markAsRead),
'is_starred' => (bool) $entry['is_starred'],
] + $entry;

View file

@ -104,15 +104,12 @@ class ContentProxyTest extends TestCase
->method('fetchContent')
->willReturn([
'html' => false,
'title' => '',
'title' => 'my title',
'url' => '',
'content_type' => '',
'language' => '',
'status' => '',
'open_graph' => [
'og_title' => 'my title',
'og_description' => 'desc',
],
'description' => 'desc',
]);
$proxy = new ContentProxy($graby, $tagger, $this->getValidator(), $this->getLogger(), $this->fetchingErrorMessage);
@ -147,13 +144,12 @@ class ContentProxyTest extends TestCase
'html' => str_repeat('this is my content', 325),
'title' => 'this is my title',
'url' => 'http://1.1.1.1',
'content_type' => 'text/html',
'language' => 'fr',
'status' => '200',
'open_graph' => [
'og_title' => 'my OG title',
'og_description' => 'OG desc',
'og_image' => 'http://3.3.3.3/cover.jpg',
'description' => 'OG desc',
'image' => 'http://3.3.3.3/cover.jpg',
'headers' => [
'content-type' => 'text/html',
],
]);
@ -189,13 +185,12 @@ class ContentProxyTest extends TestCase
'html' => str_repeat('this is my content', 325),
'title' => 'this is my title',
'url' => 'http://1.1.1.1',
'content_type' => 'text/html',
'language' => 'fr',
'status' => '200',
'open_graph' => [
'og_title' => 'my OG title',
'og_description' => 'OG desc',
'og_image' => null,
'description' => 'OG desc',
'image' => null,
'headers' => [
'content-type' => 'text/html',
],
]);
@ -320,9 +315,11 @@ class ContentProxyTest extends TestCase
'html' => str_repeat('this is my content', 325),
'title' => 'this is my title',
'url' => 'http://1.1.1.1',
'content_type' => 'text/html',
'language' => 'dontexist',
'status' => '200',
'headers' => [
'content-type' => 'text/html',
],
]);
$proxy = new ContentProxy($graby, $tagger, $validator, $this->getLogger(), $this->fetchingErrorMessage);
@ -367,10 +364,10 @@ class ContentProxyTest extends TestCase
'content_type' => 'text/html',
'language' => 'fr',
'status' => '200',
'open_graph' => [
'og_title' => 'my OG title',
'og_description' => 'OG desc',
'og_image' => 'https://',
'description' => 'OG desc',
'image' => 'https://',
'headers' => [
'content-type' => 'text/html',
],
]);
@ -404,12 +401,12 @@ class ContentProxyTest extends TestCase
'html' => str_repeat('this is my content', 325),
'title' => 'this is my title',
'url' => 'http://1.1.1.1',
'content_type' => 'text/html',
'language' => 'fr',
'date' => '1395635872',
'authors' => ['Jeremy', 'Nico', 'Thomas'],
'all_headers' => [
'Cache-Control' => 'no-cache',
'headers' => [
'cache-control' => 'no-cache',
'content-type' => 'text/html',
],
]
);
@ -447,9 +444,11 @@ class ContentProxyTest extends TestCase
'html' => str_repeat('this is my content', 325),
'title' => 'this is my title',
'url' => 'http://1.1.1.1',
'content_type' => 'text/html',
'language' => 'fr',
'date' => '2016-09-08T11:55:58+0200',
'headers' => [
'content-type' => 'text/html',
],
]
);
@ -482,9 +481,11 @@ class ContentProxyTest extends TestCase
'html' => str_repeat('this is my content', 325),
'title' => 'this is my title',
'url' => 'http://1.1.1.1',
'content_type' => 'text/html',
'language' => 'fr',
'date' => '01 02 2012',
'headers' => [
'content-type' => 'text/html',
],
]
);
@ -519,8 +520,10 @@ class ContentProxyTest extends TestCase
'html' => str_repeat('this is my content', 325),
'title' => 'this is my title',
'url' => 'http://1.1.1.1',
'content_type' => 'text/html',
'language' => 'fr',
'headers' => [
'content-type' => 'text/html',
],
]
);
@ -559,13 +562,13 @@ class ContentProxyTest extends TestCase
'html' => $html,
'title' => 'this is my title',
'url' => 'http://1.1.1.1',
'content_type' => 'text/html',
'language' => 'fr',
'status' => '200',
'open_graph' => [
'og_title' => 'my OG title',
'og_description' => 'OG desc',
'og_image' => 'http://3.3.3.3/cover.jpg',
//'og_title' => 'my OG title',
'description' => 'OG desc',
'image' => 'http://3.3.3.3/cover.jpg',
'headers' => [
'content-type' => 'text/html',
],
]
);
@ -597,9 +600,10 @@ class ContentProxyTest extends TestCase
'html' => '<p><img src="http://1.1.1.1/image.jpg" /></p>',
'title' => 'this is my title',
'url' => 'http://1.1.1.1/image.jpg',
'content_type' => 'image/jpeg',
'status' => '200',
'open_graph' => [],
'headers' => [
'content-type' => 'image/jpeg',
],
]);
$proxy = new ContentProxy($graby, $tagger, $this->getValidator(), $this->getLogger(), $this->fetchingErrorMessage);