EntriesExport/epub: replace epub identifier with unique urn
We replace the title used as the unique identifier of the epub file with a urn following the format: urn:wallabag:{sha1("wallabagUrl:listOfEntryIdsSeparatedByComma")} This format is repeatable: it always gives the same uid for the same list of entries. Fixes #3811 Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
This commit is contained in:
parent
8f5c4b083c
commit
bf22266a62
@ -150,8 +150,6 @@ class EntriesExport
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
$book->setTitle($this->title);
|
$book->setTitle($this->title);
|
||||||
// Could also be the ISBN number, prefered for published books, or a UUID.
|
|
||||||
$book->setIdentifier($this->title, EPub::IDENTIFIER_URI);
|
|
||||||
// Not needed, but included for the example, Language is mandatory, but EPub defaults to "en". Use RFC3066 Language codes, such as "en", "da", "fr" etc.
|
// Not needed, but included for the example, Language is mandatory, but EPub defaults to "en". Use RFC3066 Language codes, such as "en", "da", "fr" etc.
|
||||||
$book->setLanguage($this->language);
|
$book->setLanguage($this->language);
|
||||||
$book->setDescription('Some articles saved on my wallabag');
|
$book->setDescription('Some articles saved on my wallabag');
|
||||||
@ -174,6 +172,8 @@ class EntriesExport
|
|||||||
$book->setCoverImage('Cover.png', file_get_contents($this->logoPath), 'image/png');
|
$book->setCoverImage('Cover.png', file_get_contents($this->logoPath), 'image/png');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$entryIds = [];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Adding actual entries
|
* Adding actual entries
|
||||||
*/
|
*/
|
||||||
@ -192,8 +192,14 @@ class EntriesExport
|
|||||||
$book->addChapter('Title', 'Title.html', $titlepage, true, EPub::EXTERNAL_REF_ADD);
|
$book->addChapter('Title', 'Title.html', $titlepage, true, EPub::EXTERNAL_REF_ADD);
|
||||||
$chapter = $content_start . $entry->getContent() . $bookEnd;
|
$chapter = $content_start . $entry->getContent() . $bookEnd;
|
||||||
$book->addChapter($entry->getTitle(), htmlspecialchars($filename) . '.html', $chapter, true, EPub::EXTERNAL_REF_ADD);
|
$book->addChapter($entry->getTitle(), htmlspecialchars($filename) . '.html', $chapter, true, EPub::EXTERNAL_REF_ADD);
|
||||||
|
|
||||||
|
$entryIds[] = $entry->getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Could also be the ISBN number, prefered for published books, or a UUID.
|
||||||
|
$hash = sha1(sprintf('%s:%s', $this->wallabagUrl, implode(',', $entryIds)));
|
||||||
|
$book->setIdentifier(sprintf('urn:wallabag:%s', $hash), EPub::IDENTIFIER_URI);
|
||||||
|
|
||||||
$book->buildTOC();
|
$book->buildTOC();
|
||||||
|
|
||||||
return Response::create(
|
return Response::create(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user