From fa42cbc48f58fbdb506cd6aea830b6b4ea8f115b Mon Sep 17 00:00:00 2001 From: Veloman Yunkan Date: Mon, 24 May 2021 13:45:36 +0400 Subject: [PATCH] Pagination info in /catalog/v2/entries --- src/opds_dumper.cpp | 3 +++ static/catalog_v2_entries.xml | 9 +++++++-- test/server.cpp | 19 ++++++++++++++----- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/opds_dumper.cpp b/src/opds_dumper.cpp index 7e91e7989..8f98074b5 100644 --- a/src/opds_dumper.cpp +++ b/src/opds_dumper.cpp @@ -173,6 +173,9 @@ string OPDSDumper::dumpOPDSFeedV2(const std::vector& bookIds, const {"endpoint_root", rootLocation + "/catalog/v2"}, {"feed_id", gen_uuid(libraryId + "/entries?"+query)}, {"filter", query.empty() ? MustacheData(false) : MustacheData(query)}, + {"totalResults", to_string(m_totalResults)}, + {"startIndex", to_string(m_startIndex)}, + {"itemsPerPage", to_string(m_count)}, {"books", bookData } }; diff --git a/static/catalog_v2_entries.xml b/static/catalog_v2_entries.xml index a829b53b6..f227c8f43 100644 --- a/static/catalog_v2_entries.xml +++ b/static/catalog_v2_entries.xml @@ -1,6 +1,7 @@ + xmlns:opds="https://specs.opds.io/opds-1.2" + xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"> {{feed_id}} {{^filter}}All Entries{{/filter}}{{#filter}}Filtered Entries ({{filter}}){{/filter}} {{date}} - +{{#filter}} + {{totalResults}} + {{startIndex}} + {{itemsPerPage}} +{{/filter}} {{#books}} {{id}} diff --git a/test/server.cpp b/test/server.cpp index bce722add..fa366be95 100644 --- a/test/server.cpp +++ b/test/server.cpp @@ -1006,7 +1006,8 @@ TEST_F(LibraryServerTest, catalog_v2_categories) #define CATALOG_V2_ENTRIES_PREAMBLE \ "\n" \ "\n" \ + " xmlns:opds=\"https://specs.opds.io/opds-1.2\"\n" \ + " xmlns:opensearch=\"http://a9.com/-/spec/opensearch/1.1/\">\n" \ " 12345678-90ab-cdef-1234-567890abcdef\n" \ "\n" \ " Filtered Entries (start=1)\n" " YYYY-MM-DDThh:mm:ssZ\n" - "\n" + " 3\n" + " 1\n" + " 2\n" RAY_CHARLES_CATALOG_ENTRY UNCATEGORIZED_RAY_CHARLES_CATALOG_ENTRY "\n" @@ -1060,7 +1063,9 @@ TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_range) CATALOG_V2_ENTRIES_PREAMBLE " Filtered Entries (count=2)\n" " YYYY-MM-DDThh:mm:ssZ\n" - "\n" + " 3\n" + " 0\n" + " 2\n" CHARLES_RAY_CATALOG_ENTRY RAY_CHARLES_CATALOG_ENTRY "\n" @@ -1074,7 +1079,9 @@ TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_range) CATALOG_V2_ENTRIES_PREAMBLE " Filtered Entries (count=1&start=1)\n" " YYYY-MM-DDThh:mm:ssZ\n" - "\n" + " 3\n" + " 1\n" + " 1\n" RAY_CHARLES_CATALOG_ENTRY "\n" ); @@ -1089,7 +1096,9 @@ TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_search_terms) CATALOG_V2_ENTRIES_PREAMBLE " Filtered Entries (q="ray charles")\n" " YYYY-MM-DDThh:mm:ssZ\n" - "\n" + " 2\n" + " 0\n" + " 2\n" RAY_CHARLES_CATALOG_ENTRY CHARLES_RAY_CATALOG_ENTRY "\n"