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>
*/
$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.
$book->setLanguage($this->language);
$book->setDescription('Some articles saved on my wallabag');
// 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->setDescription('Some articles saved on my wallabag');
$book->setCoverImage('Cover.png', file_get_contents($this->logoPath), 'image/png');
}
$book->setCoverImage('Cover.png', file_get_contents($this->logoPath), 'image/png');
}
/*
* Adding actual entries
*/
/*
* Adding actual entries
*/
$book->addChapter('Title', 'Title.html', $titlepage, true, EPub::EXTERNAL_REF_ADD);
$chapter = $content_start . $entry->getContent() . $bookEnd;
$book->addChapter($entry->getTitle(), htmlspecialchars($filename) . '.html', $chapter, true, EPub::EXTERNAL_REF_ADD);
$book->addChapter('Title', 'Title.html', $titlepage, true, EPub::EXTERNAL_REF_ADD);
$chapter = $content_start . $entry->getContent() . $bookEnd;
$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();
return Response::create(
$book->buildTOC();
return Response::create(