Use only the table "data" to detect books (no filesystem use)

This commit is contained in:
Sébastien Lucas 2012-06-23 21:36:55 +02:00
parent 06430d7563
commit 3c7d0f7308

View file

@ -191,18 +191,19 @@ class Book extends Base {
array_push ($linkArray, new Link ("fetch.php?id=$this->id&height=" . $height, "image/jpeg", Link::OPDS_THUMBNAIL_TYPE)); array_push ($linkArray, new Link ("fetch.php?id=$this->id&height=" . $height, "image/jpeg", Link::OPDS_THUMBNAIL_TYPE));
} }
if ($handle = opendir($this->path)) { $result = parent::getDb ()->prepare('select id, format, name
while (false !== ($file = readdir($handle))) { from data where book = ?');
foreach (self::$mimetypes as $ext => $mime) $result->execute (array ($this->id));
{
if (preg_match ('/'. $ext .'$/', $file)) { while ($post = $result->fetchObject ())
$this->format [$ext] = $file; {
array_push ($linkArray, $this->getLink ($ext, $mime, Link::OPDS_ACQUISITION_TYPE, $file, "Download")); $ext = strtolower (str_replace ("ORIGINAL_", "", $post->format));
} if (array_key_exists ($ext, self::$mimetypes))
} {
array_push ($linkArray, $this->getLink ($ext, self::$mimetypes [$ext], Link::OPDS_ACQUISITION_TYPE, $post->name . "." . strtolower ($post->format), "Download"));
} }
} }
foreach ($this->getAuthors () as $author) { foreach ($this->getAuthors () as $author) {
array_push ($linkArray, new LinkNavigation ($author->getUri (), "related", str_format (localize ("bookentry.author"), localize ("splitByLetter.book.other"), $author->name))); array_push ($linkArray, new LinkNavigation ($author->getUri (), "related", str_format (localize ("bookentry.author"), localize ("splitByLetter.book.other"), $author->name)));
} }