1
0
Fork 0
mirror of https://github.com/wallabag/wallabag.git synced 2025-08-31 18:31:02 +00:00

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(), 'language' => !empty($data['language']) ? $data['language'] : $entry->getLanguage(),
'date' => !empty($data['publishedAt']) ? $data['publishedAt'] : $entry->getPublishedAt(), 'date' => !empty($data['publishedAt']) ? $data['publishedAt'] : $entry->getPublishedAt(),
// faking the open graph preview picture // faking the open graph preview picture
'open_graph' => [ 'image' => !empty($data['picture']) ? $data['picture'] : $entry->getPreviewPicture(),
'og_image' => !empty($data['picture']) ? $data['picture'] : $entry->getPreviewPicture(),
],
'authors' => \is_string($data['authors']) ? explode(',', $data['authors']) : $entry->getPublishedBy(), 'authors' => \is_string($data['authors']) ? explode(',', $data['authors']) : $entry->getPublishedBy(),
] ]
); );

View file

@ -253,16 +253,14 @@ class ContentProxy
if (!empty($content['title'])) { if (!empty($content['title'])) {
$entry->setTitle($content['title']); $entry->setTitle($content['title']);
} elseif (!empty($content['open_graph']['og_title'])) {
$entry->setTitle($content['open_graph']['og_title']);
} }
if (empty($content['html'])) { if (empty($content['html'])) {
$content['html'] = $this->fetchingErrorMessage; $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'] .= '<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']); $entry->setPublishedBy($content['authors']);
} }
if (!empty($content['all_headers']) && $this->storeArticleHeaders) { if (!empty($content['headers'])) {
$entry->setHeaders($content['all_headers']); $entry->setHeaders($content['headers']);
} }
if (!empty($content['date'])) { if (!empty($content['date'])) {
@ -290,12 +288,12 @@ class ContentProxy
} }
$previewPictureUrl = ''; $previewPictureUrl = '';
if (!empty($content['open_graph']['og_image'])) { if (!empty($content['image'])) {
$previewPictureUrl = $content['open_graph']['og_image']; $previewPictureUrl = $content['image'];
} }
// if content is an image, define it as a preview too // 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']; $previewPictureUrl = $content['url'];
} elseif (empty($previewPictureUrl)) { } elseif (empty($previewPictureUrl)) {
$this->logger->debug('Extracting images from content to provide a default preview picture'); $this->logger->debug('Extracting images from content to provide a default preview picture');
@ -310,8 +308,8 @@ class ContentProxy
$this->updatePreviewPicture($entry, $previewPictureUrl); $this->updatePreviewPicture($entry, $previewPictureUrl);
} }
if (!empty($content['content_type'])) { if (!empty($content['headers']['content-type'])) {
$entry->setMimetype($content['content_type']); $entry->setMimetype($content['headers']['content-type']);
} }
try { try {

View file

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

View file

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