busyTimeout(30*1000); ?> The Epube
query("SELECT books.*, s.name AS series_name, (SELECT id FROM data WHERE book = books.id AND format = 'EPUB' LIMIT 1) AS epub_id FROM books LEFT JOIN books_series_link AS bsl ON (bsl.book = books.id) LEFT JOIN series AS s ON (bsl.series = s.id) WHERE $search_qpart ORDER BY $order_by LIMIT $limit OFFSET $offset"); print "
"; $rows = 0; while ($line = $result->fetchArray(SQLITE3_ASSOC)) { ++$rows; $cover_link = "backend.php?" . http_build_query(["op" => "cover", "id" => $line["id"]]); $author_link = "?" . http_build_query(["query" => $line["author_sort"]]); $in_progress = false; $is_read = false; if ($line["epub_id"]) { $read_link = "read.html?" . http_build_query(["id" => $line["epub_id"], "b" => $line["id"]]); $lastread_result = $ldb->query("SELECT lastread, total_pages FROM epube_books, epube_pagination WHERE epube_pagination.bookid = epube_books.bookid AND epube_books.bookid = " . $line["epub_id"] . " AND owner = '$owner'"); if ($lastread_line = $lastread_result->fetchArray(SQLITE3_ASSOC)) { $lastread = $lastread_line["lastread"]; $total_pages = $lastread_line["total_pages"]; $is_read = $total_pages - $lastread < 5; $in_progress = $lastread > 1; } } else { $read_link = ""; } $cover_read = $is_read ? "read" : ""; print "
"; print "
"; if ($read_link) print ""; if ($line["has_cover"]) { print ""; } else { print ""; } if ($read_link) print ""; print "
"; $title_class = $in_progress ? "in_progress" : ""; print "
"; if ($read_link) { print "" . $line["title"] . ""; } else { print $line["title"]; } print "
"; if ($line["series_name"]) { $series_link = "?" . http_build_query(["query" => $line["series_name"]]); $series_full = $line["series_name"] . " [" . $line["series_index"] . "]"; print ""; } print ""; $data_result = $db->query("SELECT * FROM data WHERE book = " . $line["id"] . " LIMIT 3"); /*print " ";*/ print "
"; ?> "; print "
"; } ?>
$query, "offset" => $offset - $limit]); $next_link = http_build_query(["query" => $query, "offset" => $offset + $limit]); ?>