├── javascripts └── main.js ├── images ├── bg_hr.png ├── blacktocat.png ├── icon_download.png └── sprite_download.png ├── catalog ├── larger.jpg ├── thumbnail.jpg ├── callback.html ├── opensearch.xml ├── links │ ├── new.xml │ ├── featured.xml │ ├── popular.xml │ └── recommended.xml ├── acquisition │ ├── sample_borrow.xml │ ├── entry.xml │ ├── page2.xml │ ├── blocks.xml │ └── main.xml ├── search │ └── results.xml └── root.xml ├── assets ├── eyre │ ├── file.epub │ ├── normal.jpg │ └── small.jpg ├── moby │ ├── file.epub │ ├── normal.jpg │ └── small.jpg ├── romeo │ ├── file.epub │ ├── small.jpg │ └── normal.jpg ├── swann │ ├── file.epub │ ├── small.jpg │ └── normal.jpg ├── bovary │ ├── file.epub │ ├── normal.jpg │ └── small.jpg ├── rougenoir │ ├── file.epub │ ├── normal.jpg │ └── small.jpg ├── chambrejaune │ ├── file.epub │ ├── normal.jpg │ └── small.jpg └── centredelaterre │ ├── file.epub │ ├── small.jpg │ └── normal.jpg ├── README.md ├── demo ├── add.html ├── openlibrary-search.xml └── openlibrary.atom ├── opds-2 ├── navigation.json ├── publications.json └── home.json ├── params.json ├── stylesheets ├── pygment_trac.css └── stylesheet.css └── index.html /javascripts/main.js: -------------------------------------------------------------------------------- 1 | console.log('This would be the main JS file.'); 2 | -------------------------------------------------------------------------------- /images/bg_hr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/images/bg_hr.png -------------------------------------------------------------------------------- /catalog/larger.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/catalog/larger.jpg -------------------------------------------------------------------------------- /assets/eyre/file.epub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/eyre/file.epub -------------------------------------------------------------------------------- /assets/eyre/normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/eyre/normal.jpg -------------------------------------------------------------------------------- /assets/eyre/small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/eyre/small.jpg -------------------------------------------------------------------------------- /assets/moby/file.epub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/moby/file.epub -------------------------------------------------------------------------------- /assets/moby/normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/moby/normal.jpg -------------------------------------------------------------------------------- /assets/moby/small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/moby/small.jpg -------------------------------------------------------------------------------- /assets/romeo/file.epub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/romeo/file.epub -------------------------------------------------------------------------------- /assets/romeo/small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/romeo/small.jpg -------------------------------------------------------------------------------- /assets/swann/file.epub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/swann/file.epub -------------------------------------------------------------------------------- /assets/swann/small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/swann/small.jpg -------------------------------------------------------------------------------- /catalog/thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/catalog/thumbnail.jpg -------------------------------------------------------------------------------- /images/blacktocat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/images/blacktocat.png -------------------------------------------------------------------------------- /assets/bovary/file.epub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/bovary/file.epub -------------------------------------------------------------------------------- /assets/bovary/normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/bovary/normal.jpg -------------------------------------------------------------------------------- /assets/bovary/small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/bovary/small.jpg -------------------------------------------------------------------------------- /assets/romeo/normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/romeo/normal.jpg -------------------------------------------------------------------------------- /assets/swann/normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/swann/normal.jpg -------------------------------------------------------------------------------- /images/icon_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/images/icon_download.png -------------------------------------------------------------------------------- /assets/rougenoir/file.epub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/rougenoir/file.epub -------------------------------------------------------------------------------- /assets/rougenoir/normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/rougenoir/normal.jpg -------------------------------------------------------------------------------- /assets/rougenoir/small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/rougenoir/small.jpg -------------------------------------------------------------------------------- /images/sprite_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/images/sprite_download.png -------------------------------------------------------------------------------- /assets/chambrejaune/file.epub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/chambrejaune/file.epub -------------------------------------------------------------------------------- /assets/chambrejaune/normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/chambrejaune/normal.jpg -------------------------------------------------------------------------------- /assets/chambrejaune/small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/chambrejaune/small.jpg -------------------------------------------------------------------------------- /assets/centredelaterre/file.epub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/centredelaterre/file.epub -------------------------------------------------------------------------------- /assets/centredelaterre/small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/centredelaterre/small.jpg -------------------------------------------------------------------------------- /assets/centredelaterre/normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Feedbooks/opds-test-catalog/HEAD/assets/centredelaterre/normal.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | OPDS Test Catalog 2 | ================= 3 | 4 | An OPDS catalog designed to test the features supported by OPDS clients. 5 | 6 | Check http://feedbooks.github.com/opds-test-catalog/ for more information -------------------------------------------------------------------------------- /catalog/callback.html: -------------------------------------------------------------------------------- 1 | 2 | OPDS test page 3 | 4 | 5 |

OPDS Callback

6 |

Link to catalog

7 | -------------------------------------------------------------------------------- /demo/add.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Add a demo catalog 7 | 8 | 9 | 10 | 11 | Add OpenLibrary Demo 12 | 13 | 14 | -------------------------------------------------------------------------------- /demo/openlibrary-search.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | OpenLibrary Demo Search 4 | UTF-8 5 | UTF-8 6 | 7 | -------------------------------------------------------------------------------- /catalog/opensearch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | OPDS Test Catalog 4 | Test search in a client 5 | UTF-8 6 | UTF-8 7 | 8 | -------------------------------------------------------------------------------- /opds-2/navigation.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "title": "OPDS 2.0 Test Navigation" 4 | }, 5 | 6 | "links": [ 7 | {"rel": "self", "href": "https://feedbooks.github.io/opds-test-catalog/opds-2/navigation.json", "type": "application/opds+json"} 8 | ], 9 | 10 | "navigation": [ 11 | { 12 | "href": "https://feedbooks.github.io/opds-test-catalog/opds-2/home.json", 13 | "title": "Best Selling (Absolute URI)", 14 | "type": "application/opds+json", 15 | "rel": "http://opds-spec.org/sort/popular" 16 | }, 17 | { 18 | "href": "home.json", 19 | "title": "New Releases (Relative URI)", 20 | "type": "application/opds+json", 21 | "rel": "http://opds-spec.org/sort/new" 22 | }, 23 | { 24 | "href": "/opds-test-catalog/opds-2/home.json", 25 | "title": "Staff Picks (Also Relative)", 26 | "type": "application/opds+json" 27 | }, 28 | { 29 | "href": "https://feedbooks.github.io/opds-test-catalog/opds-2/404.json", 30 | "title": "Categories (404)", 31 | "type": "application/opds+json" 32 | }, 33 | { 34 | "href": "https://feedbooks.github.io/opds-test-catalog/opds-2/navigation.json", 35 | "title": "Explore (Navigation Feed)", 36 | "type": "application/opds+json" 37 | } 38 | ] 39 | } -------------------------------------------------------------------------------- /catalog/links/new.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | new.xml 4 | Test New Link 5 | 2012-10-20T01:11:18Z 6 | 7 | Hadrien Gardeur 8 | https://github.com/Feedbooks 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | First Acquisition feed 18 | main.xml 19 | 2012-10-20T01:11:18Z 20 | Basic acquisition feed 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /catalog/links/featured.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | featured.xml 4 | Test Featured Link 5 | 2012-10-20T01:11:18Z 6 | 7 | Hadrien Gardeur 8 | https://github.com/Feedbooks 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | First Acquisition feed 18 | main.xml 19 | 2012-10-20T01:11:18Z 20 | Basic acquisition feed 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /catalog/links/popular.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | popular.xml 4 | Test Popular Link 5 | 2012-10-20T01:11:18Z 6 | 7 | Hadrien Gardeur 8 | https://github.com/Feedbooks 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | First Acquisition feed 18 | main.xml 19 | 2012-10-20T01:11:18Z 20 | Basic acquisition feed 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /catalog/links/recommended.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | recommended.xml 4 | Test Catalog Root 5 | 2012-10-20T01:11:18Z 6 | 7 | Hadrien Gardeur 8 | https://github.com/Feedbooks 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | First Acquisition feed 18 | main.xml 19 | 2012-10-20T01:11:18Z 20 | Basic acquisition feed 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /params.json: -------------------------------------------------------------------------------- 1 | {"google":"","note":"Don't delete this file! It's used internally to help with page regeneration.","name":"OPDS Test Catalog","body":"## Test your OPDS client\r\n[The OPDS specification](http://opds-spec.org) provides a partial way to test catalogs (through a [Relax NG Compact Schema] (http://opds-spec.org/specs/opds-catalog-1-1-20110627/#Appendix_B._RELAX_NG_Compact_Schema)) but not clients.\r\nThis catalog is meant to provide an easy way for any developer to test their client and check which features are correctly implemented.\r\n\r\nIn order to test your client you can manually add the URL of this GitHub Pages hosted catalog: [http://feedbooks.github.com/opds-test-catalog/catalog/root.xml](http://feedbooks.github.com/opds-test-catalog/catalog/root.xml)\r\n\r\n## Features\r\nThe current version of this catalog is designed to test 40+ features that we've grouped together.\r\n\r\n### Catalog\r\n* Navigation feed\r\n* Acquisition feed\r\n* Clear distinction between navigation/acquisition\r\n* Pagination\r\n* Search\r\n* Full entries\r\n\r\n### Metadata and images\r\n* Image representation\r\n* Thumbnail representation\r\n* Title\r\n* Author\r\n* Search\r\n* Contributor\r\n* Language\r\n* Publication date\r\n* Summary\r\n* Description\r\n* Higher priority for description when summary is also available\r\n* Rights\r\n* Category\r\n* Displaying label instead of code for category\r\n\r\n### Acquisition\r\n* Generic acquisition link\r\n* Buy\r\n* Borrow\r\n* Open access\r\n* Subscribe\r\n* Sample\r\n* Support for multiple acquisition links\r\n* Price\r\n* Currency\r\n* Indirect acquisition\r\n\r\n### Additional navigation\r\n* Links in entries\r\n* Featured\r\n* Recommended\r\n* New\r\n* Popular\r\n* Multiple links to featured/recommended/new/popular\r\n\r\n### Ecosystem\r\n* Add catalog via an URL\r\n* Support for OPDS URI scheme\r\n* Browse from link with OPDS URI scheme\r\n* Add catalog from link with OPDS URI scheme\r\n* OPDS callback\r\n\r\n## Authors and Contributors\r\nThe current version of the OPDS test catalog was entirely designed by Hadrien Gardeur (@HadrienGardeur) from Feedbooks (@Feedbooks).","tagline":"An OPDS catalog designed to test the features supported by OPDS clients"} -------------------------------------------------------------------------------- /catalog/acquisition/sample_borrow.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Acquisition: Sample + Borrow 4 | example/sample+borrow 5 | 6 | Jane Austen 7 | 8 | 2006-12-28T20:00:54Z 9 | 2012-10-12T17:43:18Z 10 | en 11 | 1813 12 | 13 | 14 | 15 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /catalog/acquisition/entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Full entry view 4 | http://feedbooks.github.io/test/2 5 | 6 | Jane Austen 7 | 8 | 2006-12-28T20:00:54Z 9 | 2012-10-12T17:43:18Z 10 | en 11 | 1813 12 | 13 | 14 | 15 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when y... 16 | 17 | 18 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 19 | 20 | This work is available for countries where copyright is Life+70 and in the USA. 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /catalog/search/results.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | results.xml 4 | Search results 5 | 2012-10-20T01:11:18Z 6 | 7 | Hadrien Gardeur 8 | https://github.com/Feedbooks 9 | 10 | 11 | 12 | 13 | 14 | 1 15 | 16 | 17 | Search results 18 | test/search 19 | 20 | Jane Austen 21 | 22 | 2006-12-28T20:00:54Z 23 | 2012-10-12T17:43:18Z 24 | en 25 | 1813 26 | 27 | 28 | 29 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 30 | 31 | This work is available for countries where copyright is Life+70 and in the USA. 32 | 120,697 words 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /catalog/acquisition/page2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | page2.xml 4 | Second Page 5 | 2012-10-20T01:11:18Z 6 | 7 | Hadrien Gardeur 8 | https://github.com/Feedbooks 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 18 17 | 18 | 19 | Paging: Page 2 item 20 | http://feedbooks.github.io/test/18 21 | 22 | Jane Austen 23 | 24 | 2006-12-28T20:00:54Z 25 | 2012-10-12T17:43:18Z 26 | en 27 | 1813 28 | 29 | 30 | 31 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 32 | 33 | This work is available for countries where copyright is Life+70 and in the USA. 34 | 120,697 words 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /catalog/root.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | root.xml 4 | Test Catalog Root 5 | 2012-10-20T01:11:18Z 6 | 7 | Hadrien Gardeur 8 | https://github.com/Feedbooks 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | First Acquisition feed 19 | main.xml 20 | 2012-10-20T01:11:18Z 21 | Basic acquisition feed 22 | 23 | 24 | 25 | 26 | Acquisition with blocks 27 | blocks.xml 28 | 2012-10-20T01:11:18Z 29 | Feed with blocks 30 | 31 | 32 | 33 | 34 | Link: Featured 35 | featured.xml 36 | 2012-10-20T01:11:18Z 37 | Link for additional navigation 38 | 39 | 40 | 41 | 42 | Link: Recommended 43 | recommended.xml 44 | 2012-10-20T01:11:18Z 45 | Link for additional navigation 46 | 47 | 48 | 49 | 50 | Link: New 51 | new.xml 52 | 2012-10-20T01:11:18Z 53 | Link for additional navigation 54 | 55 | 56 | 57 | 58 | Link: Popular 59 | popular.xml 60 | 2012-10-20T01:11:18Z 61 | Link for additional navigation 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /stylesheets/pygment_trac.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #f0f3f3; } 3 | .highlight .c { color: #0099FF; font-style: italic } /* Comment */ 4 | .highlight .err { color: #AA0000; background-color: #FFAAAA } /* Error */ 5 | .highlight .k { color: #006699; font-weight: bold } /* Keyword */ 6 | .highlight .o { color: #555555 } /* Operator */ 7 | .highlight .cm { color: #0099FF; font-style: italic } /* Comment.Multiline */ 8 | .highlight .cp { color: #009999 } /* Comment.Preproc */ 9 | .highlight .c1 { color: #0099FF; font-style: italic } /* Comment.Single */ 10 | .highlight .cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */ 11 | .highlight .gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */ 12 | .highlight .ge { font-style: italic } /* Generic.Emph */ 13 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 14 | .highlight .gh { color: #003300; font-weight: bold } /* Generic.Heading */ 15 | .highlight .gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */ 16 | .highlight .go { color: #AAAAAA } /* Generic.Output */ 17 | .highlight .gp { color: #000099; font-weight: bold } /* Generic.Prompt */ 18 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 19 | .highlight .gu { color: #003300; font-weight: bold } /* Generic.Subheading */ 20 | .highlight .gt { color: #99CC66 } /* Generic.Traceback */ 21 | .highlight .kc { color: #006699; font-weight: bold } /* Keyword.Constant */ 22 | .highlight .kd { color: #006699; font-weight: bold } /* Keyword.Declaration */ 23 | .highlight .kn { color: #006699; font-weight: bold } /* Keyword.Namespace */ 24 | .highlight .kp { color: #006699 } /* Keyword.Pseudo */ 25 | .highlight .kr { color: #006699; font-weight: bold } /* Keyword.Reserved */ 26 | .highlight .kt { color: #007788; font-weight: bold } /* Keyword.Type */ 27 | .highlight .m { color: #FF6600 } /* Literal.Number */ 28 | .highlight .s { color: #CC3300 } /* Literal.String */ 29 | .highlight .na { color: #330099 } /* Name.Attribute */ 30 | .highlight .nb { color: #336666 } /* Name.Builtin */ 31 | .highlight .nc { color: #00AA88; font-weight: bold } /* Name.Class */ 32 | .highlight .no { color: #336600 } /* Name.Constant */ 33 | .highlight .nd { color: #9999FF } /* Name.Decorator */ 34 | .highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ 35 | .highlight .ne { color: #CC0000; font-weight: bold } /* Name.Exception */ 36 | .highlight .nf { color: #CC00FF } /* Name.Function */ 37 | .highlight .nl { color: #9999FF } /* Name.Label */ 38 | .highlight .nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */ 39 | .highlight .nt { color: #330099; font-weight: bold } /* Name.Tag */ 40 | .highlight .nv { color: #003333 } /* Name.Variable */ 41 | .highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */ 42 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 43 | .highlight .mf { color: #FF6600 } /* Literal.Number.Float */ 44 | .highlight .mh { color: #FF6600 } /* Literal.Number.Hex */ 45 | .highlight .mi { color: #FF6600 } /* Literal.Number.Integer */ 46 | .highlight .mo { color: #FF6600 } /* Literal.Number.Oct */ 47 | .highlight .sb { color: #CC3300 } /* Literal.String.Backtick */ 48 | .highlight .sc { color: #CC3300 } /* Literal.String.Char */ 49 | .highlight .sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */ 50 | .highlight .s2 { color: #CC3300 } /* Literal.String.Double */ 51 | .highlight .se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */ 52 | .highlight .sh { color: #CC3300 } /* Literal.String.Heredoc */ 53 | .highlight .si { color: #AA0000 } /* Literal.String.Interpol */ 54 | .highlight .sx { color: #CC3300 } /* Literal.String.Other */ 55 | .highlight .sr { color: #33AAAA } /* Literal.String.Regex */ 56 | .highlight .s1 { color: #CC3300 } /* Literal.String.Single */ 57 | .highlight .ss { color: #FFCC33 } /* Literal.String.Symbol */ 58 | .highlight .bp { color: #336666 } /* Name.Builtin.Pseudo */ 59 | .highlight .vc { color: #003333 } /* Name.Variable.Class */ 60 | .highlight .vg { color: #003333 } /* Name.Variable.Global */ 61 | .highlight .vi { color: #003333 } /* Name.Variable.Instance */ 62 | .highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */ 63 | 64 | .type-csharp .highlight .k { color: #0000FF } 65 | .type-csharp .highlight .kt { color: #0000FF } 66 | .type-csharp .highlight .nf { color: #000000; font-weight: normal } 67 | .type-csharp .highlight .nc { color: #2B91AF } 68 | .type-csharp .highlight .nn { color: #000000 } 69 | .type-csharp .highlight .s { color: #A31515 } 70 | .type-csharp .highlight .sc { color: #A31515 } 71 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | OPDS Test Catalog 12 | 13 | 14 | 15 | 16 | 17 |
18 |
19 | View on GitHub 20 | 21 |

OPDS Test Catalog

22 |

An OPDS catalog designed to test the features supported by OPDS clients

23 | 24 |
25 | Download this project as a .zip file 26 | Download this project as a tar.gz file 27 |
28 |
29 |
30 | 31 | 32 |
33 |
34 |

Test your OPDS client

35 | 36 |

The OPDS specification provides a partial way to test catalogs (through a Relax NG Compact Schema) but not clients. 37 | This catalog is meant to provide an easy way for any developer to test their client and check which features are correctly implemented.

38 | 39 |

In order to test your client you can manually add the URL of this GitHub Pages hosted catalog: http://feedbooks.github.io/opds-test-catalog/catalog/root.xml

40 | 41 |

You can even do a first test and see if the client supports the OPDS URI scheme: opds://feedbooks.github.io/opds-test-catalog/catalog/root.xml

42 | 43 |

Another test worth doing for callback, is to try a link directly to an entry: opds://www.feedbooks.com/book/45.atom

44 | 45 | 46 |

Features

47 | 48 |

The current version of this catalog is designed to test 50+ features that we've grouped together.

49 | 50 |

Catalog

51 | 52 | 60 | 61 |

Metadata and images

62 | 63 | 79 | 80 |

Acquisition

81 | 82 | 94 | 95 |

Additional navigation

96 | 97 | 105 | 106 |

Faceted search & browsing

107 | 108 |
132 |
133 | 134 | 135 | 141 | 142 | 155 | 156 | 157 | 158 | -------------------------------------------------------------------------------- /opds-2/publications.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "title": "OPDS 2.0 Test Publications", 4 | "numberOfItems": 5 5 | }, 6 | 7 | "links": [ 8 | {"rel": "self", "href": "https://feedbooks.github.io/opds-test-catalog/opds-2/publications.json", "type": "application/opds+json"} 9 | ], 10 | 11 | 12 | "publications": [ 13 | { 14 | "metadata": { 15 | "@type": "http://schema.org/Book", 16 | "title": "Voyage au centre de la Terre", 17 | "subtitle": "Un super sous-titre", 18 | "author": "Jules Verne", 19 | "identifier": "http://fr.feedbooks.com/book/1474/voyage-au-centre-de-la-terre", 20 | "language": "fr", 21 | "modified": "2018-04-23T22:15:00Z", 22 | "published": "1864-01-01", 23 | "publisher": "Feedbooks", 24 | "imprint": "Feedbooks Classics", 25 | "numberOfPages": 251, 26 | "subjects": [ 27 | { 28 | "name": "Science Fiction", 29 | "code": "FBFIC028000" 30 | }, 31 | { 32 | "name": "Action & Aventure", 33 | "code": "FBFIC002000" 34 | } 35 | ], 36 | "belongs_to": { 37 | "series": { 38 | "name": "Les classiques SF de Verne", 39 | "position": 5 40 | }, 41 | "collection": "Domaine Public" 42 | }, 43 | "description": "Le professeur Lidenbrock trouve un document dans lequel il apprend l'existence d'un volcan éteint dont la cheminée pourrait le conduire jusqu'au centre de la Terre. Accompagné de son neveu Axel et du guide Hans, il se rend au volcan Sneffels, en Islande, et s'engouffre dans les entrailles de la Terre. Ils ne tarderont pas à faire d'étonnantes découvertes..." 44 | }, 45 | "links": [ 46 | { 47 | "rel": "http://opds-spec.org/acquisition/open-access", 48 | "href": "https://feedbooks.github.io/opds-test-catalog/assets/centredelaterre/file.epub", 49 | "type": "application/epub+zip" 50 | } 51 | ], 52 | "images": [ 53 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/centredelaterre/small.jpg", "type": "image/jpeg", "height": 110, "width": 146}, 54 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/centredelaterre/normal.jpg", "type": "image/jpeg", "height": 346, "width": 260} 55 | ] 56 | }, 57 | { 58 | "metadata": { 59 | "@type": "http://schema.org/Book", 60 | "title": { 61 | "en": "Title in multiple languages", 62 | "fr": "Titre en plusieurs langues" 63 | }, 64 | "author": "Jules Verne", 65 | "identifier": "http://fr.feedbooks.com/book/1474/voyage-au-centre-de-la-terre", 66 | "language": "fr", 67 | "modified": "2018-04-23T22:15:00Z", 68 | "published": "1864-01-01", 69 | "publisher": "Feedbooks", 70 | "imprint": "Feedbooks Classics", 71 | "numberOfPages": 251, 72 | "subjects": [ 73 | { 74 | "name": "Science Fiction", 75 | "code": "FBFIC028000" 76 | }, 77 | { 78 | "name": "Action & Aventure", 79 | "code": "FBFIC002000" 80 | } 81 | ], 82 | "belongs_to": { 83 | "series": { 84 | "name": "Les classiques SF de Verne", 85 | "position": 5 86 | }, 87 | "collection": "Domaine Public" 88 | }, 89 | "description": "Le professeur Lidenbrock trouve un document dans lequel il apprend l'existence d'un volcan éteint dont la cheminée pourrait le conduire jusqu'au centre de la Terre. Accompagné de son neveu Axel et du guide Hans, il se rend au volcan Sneffels, en Islande, et s'engouffre dans les entrailles de la Terre. Ils ne tarderont pas à faire d'étonnantes découvertes..." 90 | }, 91 | "links": [ 92 | { 93 | "rel": "http://opds-spec.org/acquisition/open-access", 94 | "href": "https://feedbooks.github.io/opds-test-catalog/assets/centredelaterre/file.epub", 95 | "type": "application/epub+zip" 96 | } 97 | ], 98 | "images": [ 99 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/centredelaterre/small.jpg", "type": "image/jpeg", "height": 110, "width": 146}, 100 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/centredelaterre/normal.jpg", "type": "image/jpeg", "height": 346, "width": 260} 101 | ] 102 | }, 103 | { 104 | "metadata": { 105 | "@type": "http://schema.org/Book", 106 | "title": "Multiple Authors", 107 | "author": ["Jules Verne", "Second Author"], 108 | "identifier": "http://fr.feedbooks.com/book/1474/voyage-au-centre-de-la-terre", 109 | "language": "fr", 110 | "modified": "2018-04-23T22:15:00Z", 111 | "published": "1864-01-01", 112 | "publisher": "Feedbooks", 113 | "imprint": "Feedbooks Classics", 114 | "numberOfPages": 251, 115 | "subjects": [ 116 | { 117 | "name": "Science Fiction", 118 | "code": "FBFIC028000" 119 | }, 120 | { 121 | "name": "Action & Aventure", 122 | "code": "FBFIC002000" 123 | } 124 | ], 125 | "belongs_to": { 126 | "series": { 127 | "name": "Les classiques SF de Verne", 128 | "position": 5 129 | }, 130 | "collection": "Domaine Public" 131 | }, 132 | "description": "Le professeur Lidenbrock trouve un document dans lequel il apprend l'existence d'un volcan éteint dont la cheminée pourrait le conduire jusqu'au centre de la Terre. Accompagné de son neveu Axel et du guide Hans, il se rend au volcan Sneffels, en Islande, et s'engouffre dans les entrailles de la Terre. Ils ne tarderont pas à faire d'étonnantes découvertes..." 133 | }, 134 | "links": [ 135 | { 136 | "rel": "http://opds-spec.org/acquisition/open-access", 137 | "href": "https://feedbooks.github.io/opds-test-catalog/assets/centredelaterre/file.epub", 138 | "type": "application/epub+zip" 139 | } 140 | ], 141 | "images": [ 142 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/centredelaterre/small.jpg", "type": "image/jpeg", "height": 110, "width": 146}, 143 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/centredelaterre/normal.jpg", "type": "image/jpeg", "height": 346, "width": 260} 144 | ] 145 | } 146 | ] 147 | } -------------------------------------------------------------------------------- /stylesheets/stylesheet.css: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | Slate Theme for Github Pages 3 | by Jason Costello, @jsncostello 4 | *******************************************************************************/ 5 | 6 | @import url(pygment_trac.css); 7 | 8 | /******************************************************************************* 9 | MeyerWeb Reset 10 | *******************************************************************************/ 11 | 12 | html, body, div, span, applet, object, iframe, 13 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 14 | a, abbr, acronym, address, big, cite, code, 15 | del, dfn, em, img, ins, kbd, q, s, samp, 16 | small, strike, strong, sub, sup, tt, var, 17 | b, u, i, center, 18 | dl, dt, dd, ol, ul, li, 19 | fieldset, form, label, legend, 20 | table, caption, tbody, tfoot, thead, tr, th, td, 21 | article, aside, canvas, details, embed, 22 | figure, figcaption, footer, header, hgroup, 23 | menu, nav, output, ruby, section, summary, 24 | time, mark, audio, video { 25 | margin: 0; 26 | padding: 0; 27 | border: 0; 28 | font: inherit; 29 | vertical-align: baseline; 30 | } 31 | 32 | /* HTML5 display-role reset for older browsers */ 33 | article, aside, details, figcaption, figure, 34 | footer, header, hgroup, menu, nav, section { 35 | display: block; 36 | } 37 | 38 | ol, ul { 39 | list-style: none; 40 | } 41 | 42 | blockquote, q { 43 | } 44 | 45 | table { 46 | border-collapse: collapse; 47 | border-spacing: 0; 48 | } 49 | 50 | a:focus { 51 | outline: none; 52 | } 53 | 54 | /******************************************************************************* 55 | Theme Styles 56 | *******************************************************************************/ 57 | 58 | body { 59 | box-sizing: border-box; 60 | color:#373737; 61 | background: #212121; 62 | font-size: 16px; 63 | font-family: 'Myriad Pro', Calibri, Helvetica, Arial, sans-serif; 64 | line-height: 1.5; 65 | -webkit-font-smoothing: antialiased; 66 | } 67 | 68 | h1, h2, h3, h4, h5, h6 { 69 | margin: 10px 0; 70 | font-weight: 700; 71 | color:#222222; 72 | font-family: 'Lucida Grande', 'Calibri', Helvetica, Arial, sans-serif; 73 | letter-spacing: -1px; 74 | } 75 | 76 | h1 { 77 | font-size: 36px; 78 | font-weight: 700; 79 | } 80 | 81 | h2 { 82 | padding-bottom: 10px; 83 | font-size: 32px; 84 | background: url('../images/bg_hr.png') repeat-x bottom; 85 | } 86 | 87 | h3 { 88 | font-size: 24px; 89 | } 90 | 91 | h4 { 92 | font-size: 21px; 93 | } 94 | 95 | h5 { 96 | font-size: 18px; 97 | } 98 | 99 | h6 { 100 | font-size: 16px; 101 | } 102 | 103 | p { 104 | margin: 10px 0 15px 0; 105 | } 106 | 107 | footer p { 108 | color: #f2f2f2; 109 | } 110 | 111 | a { 112 | text-decoration: none; 113 | color: #007edf; 114 | text-shadow: none; 115 | 116 | transition: color 0.5s ease; 117 | transition: text-shadow 0.5s ease; 118 | -webkit-transition: color 0.5s ease; 119 | -webkit-transition: text-shadow 0.5s ease; 120 | -moz-transition: color 0.5s ease; 121 | -moz-transition: text-shadow 0.5s ease; 122 | -o-transition: color 0.5s ease; 123 | -o-transition: text-shadow 0.5s ease; 124 | -ms-transition: color 0.5s ease; 125 | -ms-transition: text-shadow 0.5s ease; 126 | } 127 | 128 | #main_content a:hover { 129 | color: #0069ba; 130 | text-shadow: #0090ff 0px 0px 2px; 131 | } 132 | 133 | footer a:hover { 134 | color: #43adff; 135 | text-shadow: #0090ff 0px 0px 2px; 136 | } 137 | 138 | em { 139 | font-style: italic; 140 | } 141 | 142 | strong { 143 | font-weight: bold; 144 | } 145 | 146 | img { 147 | position: relative; 148 | margin: 0 auto; 149 | max-width: 739px; 150 | padding: 5px; 151 | margin: 10px 0 10px 0; 152 | border: 1px solid #ebebeb; 153 | 154 | box-shadow: 0 0 5px #ebebeb; 155 | -webkit-box-shadow: 0 0 5px #ebebeb; 156 | -moz-box-shadow: 0 0 5px #ebebeb; 157 | -o-box-shadow: 0 0 5px #ebebeb; 158 | -ms-box-shadow: 0 0 5px #ebebeb; 159 | } 160 | 161 | pre, code { 162 | width: 100%; 163 | color: #222; 164 | background-color: #fff; 165 | 166 | font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; 167 | font-size: 14px; 168 | 169 | border-radius: 2px; 170 | -moz-border-radius: 2px; 171 | -webkit-border-radius: 2px; 172 | 173 | 174 | 175 | } 176 | 177 | pre { 178 | width: 100%; 179 | padding: 10px; 180 | box-shadow: 0 0 10px rgba(0,0,0,.1); 181 | overflow: auto; 182 | } 183 | 184 | code { 185 | padding: 3px; 186 | margin: 0 3px; 187 | box-shadow: 0 0 10px rgba(0,0,0,.1); 188 | } 189 | 190 | pre code { 191 | display: block; 192 | box-shadow: none; 193 | } 194 | 195 | blockquote { 196 | color: #666; 197 | margin-bottom: 20px; 198 | padding: 0 0 0 20px; 199 | border-left: 3px solid #bbb; 200 | } 201 | 202 | ul, ol, dl { 203 | margin-bottom: 15px 204 | } 205 | 206 | ul li { 207 | list-style: inside; 208 | padding-left: 20px; 209 | } 210 | 211 | ol li { 212 | list-style: decimal inside; 213 | padding-left: 20px; 214 | } 215 | 216 | dl dt { 217 | font-weight: bold; 218 | } 219 | 220 | dl dd { 221 | padding-left: 20px; 222 | font-style: italic; 223 | } 224 | 225 | dl p { 226 | padding-left: 20px; 227 | font-style: italic; 228 | } 229 | 230 | hr { 231 | height: 1px; 232 | margin-bottom: 5px; 233 | border: none; 234 | background: url('../images/bg_hr.png') repeat-x center; 235 | } 236 | 237 | table { 238 | border: 1px solid #373737; 239 | margin-bottom: 20px; 240 | text-align: left; 241 | } 242 | 243 | th { 244 | font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, sans-serif; 245 | padding: 10px; 246 | background: #373737; 247 | color: #fff; 248 | } 249 | 250 | td { 251 | padding: 10px; 252 | border: 1px solid #373737; 253 | } 254 | 255 | form { 256 | background: #f2f2f2; 257 | padding: 20px; 258 | } 259 | 260 | img { 261 | width: 100%; 262 | max-width: 100%; 263 | } 264 | 265 | /******************************************************************************* 266 | Full-Width Styles 267 | *******************************************************************************/ 268 | 269 | .outer { 270 | width: 100%; 271 | } 272 | 273 | .inner { 274 | position: relative; 275 | max-width: 640px; 276 | padding: 20px 10px; 277 | margin: 0 auto; 278 | } 279 | 280 | #forkme_banner { 281 | display: block; 282 | position: absolute; 283 | top:0; 284 | right: 10px; 285 | z-index: 10; 286 | padding: 10px 50px 10px 10px; 287 | color: #fff; 288 | background: url('../images/blacktocat.png') #0090ff no-repeat 95% 50%; 289 | font-weight: 700; 290 | box-shadow: 0 0 10px rgba(0,0,0,.5); 291 | border-bottom-left-radius: 2px; 292 | border-bottom-right-radius: 2px; 293 | } 294 | 295 | #header_wrap { 296 | background: #212121; 297 | background: -moz-linear-gradient(top, #373737, #212121); 298 | background: -webkit-linear-gradient(top, #373737, #212121); 299 | background: -ms-linear-gradient(top, #373737, #212121); 300 | background: -o-linear-gradient(top, #373737, #212121); 301 | background: linear-gradient(top, #373737, #212121); 302 | } 303 | 304 | #header_wrap .inner { 305 | padding: 50px 10px 30px 10px; 306 | } 307 | 308 | #project_title { 309 | margin: 0; 310 | color: #fff; 311 | font-size: 42px; 312 | font-weight: 700; 313 | text-shadow: #111 0px 0px 10px; 314 | } 315 | 316 | #project_tagline { 317 | color: #fff; 318 | font-size: 24px; 319 | font-weight: 300; 320 | background: none; 321 | text-shadow: #111 0px 0px 10px; 322 | } 323 | 324 | #downloads { 325 | position: absolute; 326 | width: 210px; 327 | z-index: 10; 328 | bottom: -40px; 329 | right: 0; 330 | height: 70px; 331 | background: url('../images/icon_download.png') no-repeat 0% 90%; 332 | } 333 | 334 | .zip_download_link { 335 | display: block; 336 | float: right; 337 | width: 90px; 338 | height:70px; 339 | text-indent: -5000px; 340 | overflow: hidden; 341 | background: url(../images/sprite_download.png) no-repeat bottom left; 342 | } 343 | 344 | .tar_download_link { 345 | display: block; 346 | float: right; 347 | width: 90px; 348 | height:70px; 349 | text-indent: -5000px; 350 | overflow: hidden; 351 | background: url(../images/sprite_download.png) no-repeat bottom right; 352 | margin-left: 10px; 353 | } 354 | 355 | .zip_download_link:hover { 356 | background: url(../images/sprite_download.png) no-repeat top left; 357 | } 358 | 359 | .tar_download_link:hover { 360 | background: url(../images/sprite_download.png) no-repeat top right; 361 | } 362 | 363 | #main_content_wrap { 364 | background: #f2f2f2; 365 | border-top: 1px solid #111; 366 | border-bottom: 1px solid #111; 367 | } 368 | 369 | #main_content { 370 | padding-top: 40px; 371 | } 372 | 373 | #footer_wrap { 374 | background: #212121; 375 | } 376 | 377 | 378 | 379 | /******************************************************************************* 380 | Small Device Styles 381 | *******************************************************************************/ 382 | 383 | @media screen and (max-width: 480px) { 384 | body { 385 | font-size:14px; 386 | } 387 | 388 | #downloads { 389 | display: none; 390 | } 391 | 392 | .inner { 393 | min-width: 320px; 394 | max-width: 480px; 395 | } 396 | 397 | #project_title { 398 | font-size: 32px; 399 | } 400 | 401 | h1 { 402 | font-size: 28px; 403 | } 404 | 405 | h2 { 406 | font-size: 24px; 407 | } 408 | 409 | h3 { 410 | font-size: 21px; 411 | } 412 | 413 | h4 { 414 | font-size: 18px; 415 | } 416 | 417 | h5 { 418 | font-size: 14px; 419 | } 420 | 421 | h6 { 422 | font-size: 12px; 423 | } 424 | 425 | code, pre { 426 | min-width: 320px; 427 | max-width: 480px; 428 | font-size: 11px; 429 | } 430 | 431 | } 432 | -------------------------------------------------------------------------------- /demo/openlibrary.atom: -------------------------------------------------------------------------------- 1 | 2 | 3 | openlibrary.atom 4 | OpenLibrary Demo 5 | 2012-10-20T01:11:18Z 6 | 7 | Hadrien Gardeur 8 | https://github.com/HadrienGardeur 9 | 10 | 11 | 12 | 13 | 14 | 15 | 5 16 | 17 | 18 | https://openlibrary.org/books/OL9499030M.opds 19 | Hegira 20 | 2011-08-12T01:40:18Z 21 | 22 | Greg Bear 23 | https://openlibrary.org/authors/OL23206A/Greg_Bear 24 | 25 | Tor Books 26 | January 15, 1989 27 | 28 | 29 | 30 | 31 | 32 | 33 | en 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | https://openlibrary.org/books/OL624858M.opds 48 | The dark frigate 49 | 2011-08-11T23:40:24Z 50 | 51 | Charles Boardman Hawes 52 | https://openlibrary.org/authors/OL368154A/Charles_Boardman_Hawes 53 | 54 | Little, Brown 55 | 1996 56 | xiii, 246 p. ; 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | In seventeenth-century England, orphaned Philip Marsham, forced to flee London after a terrible accident, finds himself in an even more difficult situation when his ship is taken over by pirates and he is forced to become a member of their crew. 66 | en 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | https://openlibrary.org/books/OL23246375M.opds 81 | The bride of Willow Creek 82 | 2011-08-11T22:33:05Z 83 | 84 | Maggie Osborne 85 | https://openlibrary.org/authors/OL1189616A/Maggie_Osborne 86 | 87 | Ivy Books 88 | 2001 89 | 358 p. ; 90 | 91 | 92 | 93 | 94 | 95 | 96 | en 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | https://openlibrary.org/books/OL1151968M.opds 111 | 112 | Cheerleaders the third evil 113 | 2012-07-27T06:38:06Z 114 | 115 | R. L. Stine 116 | https://openlibrary.org/authors/OL35524A/R._L._Stine 117 | 118 | Pocket Books 119 | 1992 120 | 165 p. ; 121 | 122 | 123 | 124 | 125 | 126 | Corky is tormented night after night by dreams of her dead sister, Bobbi. What terrifying message is Bobbi trying to tell her? When the evil begins again-more horrible, more gruesome than ever-Corky knows it is up to her to learn the century-old secrets and destroy the evil spirit's power for good. But so many have died already-will Corky be next? 127 | en 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | https://openlibrary.org/books/OL370389M.opds 142 | Natural cat care 143 | 2014-05-17T15:30:44Z 144 | 145 | Bruce Fogle 146 | https://openlibrary.org/authors/OL20144A/Bruce_Fogle 147 | 148 | DK Pub. 149 | 1999 150 | 160 p. : 151 | 152 | 153 | 154 | 155 | 156 | en 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | -------------------------------------------------------------------------------- /opds-2/home.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "title": "OPDS 2.0 Test Catalog" 4 | }, 5 | 6 | "links": [ 7 | {"rel": "self", "href": "https://feedbooks.github.io/opds-test-catalog/opds-2/home.json", "type": "application/opds+json"} 8 | ], 9 | 10 | "navigation": [ 11 | { 12 | "href": "https://feedbooks.github.io/opds-test-catalog/opds-2/home.json", 13 | "title": "Best Selling (Absolute URI)", 14 | "type": "application/opds+json", 15 | "rel": "http://opds-spec.org/sort/popular" 16 | }, 17 | { 18 | "href": "home.json", 19 | "title": "New Releases (Relative URI)", 20 | "type": "application/opds+json", 21 | "rel": "http://opds-spec.org/sort/new" 22 | }, 23 | { 24 | "href": "/opds-test-catalog/opds-2/home.json", 25 | "title": "Staff Picks (Also Relative)", 26 | "type": "application/opds+json" 27 | }, 28 | { 29 | "href": "https://feedbooks.github.io/opds-test-catalog/opds-2/404.json", 30 | "title": "Categories (404)", 31 | "type": "application/opds+json" 32 | }, 33 | { 34 | "href": "https://feedbooks.github.io/opds-test-catalog/opds-2/navigation.json", 35 | "title": "Explore (Navigation Feed)", 36 | "type": "application/opds+json" 37 | }, 38 | { 39 | "href": "https://feedbooks.github.io/opds-test-catalog/opds-2/publications.json", 40 | "title": "French Books (Publications Feed)", 41 | "type": "application/opds+json" 42 | } 43 | ], 44 | 45 | "groups": [ 46 | { 47 | "metadata": { 48 | "title": "French Classics", 49 | "numberOfItems": 5 50 | }, 51 | "links": [ 52 | {"rel": "self", "href": "https://feedbooks.github.io/opds-test-catalog/opds-2/publications.json", "type": "application/opds+json"} 53 | ], 54 | "publications": [ 55 | { 56 | "metadata": { 57 | "@type": "http://schema.org/Book", 58 | "title": "Voyage au centre de la Terre", 59 | "author": {"name": "Jules Verne", "sort_as": "Verne, Jules"}, 60 | "identifier": "http://fr.feedbooks.com/book/1474/voyage-au-centre-de-la-terre", 61 | "language": "fr", 62 | "modified": "2018-04-23T22:15:00Z", 63 | "published": "1864", 64 | "publisher": "Feedbooks", 65 | "numberOfPages": 251, 66 | "subjects": [ 67 | { 68 | "name": "Science Fiction", 69 | "code": "FBFIC028000" 70 | }, 71 | { 72 | "name": "Action & Aventure", 73 | "code": "FBFIC002000" 74 | } 75 | ], 76 | "description": "Le professeur Lidenbrock trouve un document dans lequel il apprend l'existence d'un volcan éteint dont la cheminée pourrait le conduire jusqu'au centre de la Terre. Accompagné de son neveu Axel et du guide Hans, il se rend au volcan Sneffels, en Islande, et s'engouffre dans les entrailles de la Terre. Ils ne tarderont pas à faire d'étonnantes découvertes..." 77 | }, 78 | "links": [ 79 | { 80 | "rel": "http://opds-spec.org/acquisition/open-access", 81 | "href": "https://feedbooks.github.io/opds-test-catalog/assets/centredelaterre/file.epub", 82 | "type": "application/epub+zip" 83 | } 84 | ], 85 | "images": [ 86 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/centredelaterre/small.jpg", "type": "image/jpeg", "height": 110, "width": 146}, 87 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/centredelaterre/normal.jpg", "type": "image/jpeg", "height": 346, "width": 260} 88 | ] 89 | }, 90 | { 91 | "metadata": { 92 | "@type": "http://schema.org/Book", 93 | "title": "Le Rouge et le Noir", 94 | "subtitle": "Chronique du XIXe siècle", 95 | "sort_as": "Rouge et le Noir, Le", 96 | "author": "Stendhal", 97 | "identifier": "http://fr.feedbooks.com/book/220/le-rouge-et-le-noir", 98 | "language": "fr", 99 | "modified": "2018-04-23T22:25:00Z", 100 | "published": "1834", 101 | "publisher": "Feedbooks", 102 | "description": "Au rouge des armes, Julien Sorel préfèrera le noir des ordres. Au cours de son ascension sociale, deux femmes se singularisent, comme pour figurer les deux penchants de son caractère : Madame de Rênal - le rêve, l'aspiration à un bonheur pur et simple - et Mathilde de La Mole - l'énergie, l'action brillante et fébrile. A ces composantes stendhaliennes (conception de la vie qui dépasse la stratégie narrative pour s'étendre à l'existence de l'auteur) correspondent deux facettes stylistiques : la sobriété et la restriction du champ de vision." 103 | }, 104 | "links": [ 105 | { 106 | "rel": "http://opds-spec.org/acquisition/open-access", 107 | "href": "https://feedbooks.github.io/opds-test-catalog/assets/rougenoir/file.epub", 108 | "type": "application/epub+zip" 109 | } 110 | ], 111 | "images": [ 112 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/rougenoir/small.jpg", "type": "image/jpeg", "rel": "http://opds-spec.org/image/thumbnail"}, 113 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/rougenoir/normal.jpg", "type": "image/jpeg", "rel": "http://opds-spec.org/image"} 114 | ] 115 | }, 116 | { 117 | "metadata": { 118 | "@type": "http://schema.org/Book", 119 | "title": "Le Mystère de la chambre jaune", 120 | "sort_as": "Mystère de la chambre jaune, Le", 121 | "author": {"name": "Gaston Leroux", "sort_as": "Leroux, Gaston"}, 122 | "identifier": "http://fr.feedbooks.com/book/588/le-myst%C3%A8re-de-la-chambre-jaune", 123 | "language": "fr", 124 | "modified": "2018-04-23T22:32:00Z", 125 | "published": "1907", 126 | "publisher": "Feedbooks", 127 | "description": "Imaginez-vous devant un coffre fort fermé, où vous entendriez quelqu'un crier à l'aide , vous ouvrez et, vous ne trouvez que la victime. Par où l'assassin est-il parti ? C'est le Mystère de la chambre jaune... La plus célèbre des aventures de Rouletabille..." 128 | }, 129 | "links": [ 130 | { 131 | "rel": "http://opds-spec.org/acquisition/open-access", 132 | "href": "https://feedbooks.github.io/opds-test-catalog/assets/chambrejaune/file.epub", 133 | "type": "application/epub+zip" 134 | } 135 | ], 136 | "images": [ 137 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/chambrejaune/small.jpg", "type": "image/jpeg", "height": 169, "width": 110}, 138 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/chambrejaune/normal.jpg", "type": "image/jpeg", "height": 400, "width": 260} 139 | ] 140 | }, 141 | { 142 | "metadata": { 143 | "@type": "http://schema.org/Book", 144 | "title": "Madame Bovary", 145 | "author": {"name": "Gustave Flaubert", "sort_as": "Flaubert, Gustave"}, 146 | "identifier": "http://fr.feedbooks.com/book/386/madame-bovary", 147 | "language": "fr", 148 | "modified": "2018-04-23T22:53:00Z", 149 | "published": "1857", 150 | "publisher": "Feedbooks", 151 | "description": "Charles Bovary, après avoir suivi ses études dans un lycée de province, s'établit comme officier de santé et se marie à une riche veuve. À la mort de celle-ci, Charles épouse une jeune femme, Emma Rouault, élevée dans un couvent, vivant à la ferme avec son père (un riche fermier, patient du jeune médecin). Emma se laisse séduire par Charles et se marie avec lui. Fascinée par ses lectures romantiques, elle rêve d’une nouvelle vie, en compagnie de son nouveau mari." 152 | }, 153 | "links": [ 154 | { 155 | "rel": "http://opds-spec.org/acquisition/open-access", 156 | "href": "https://feedbooks.github.io/opds-test-catalog/assets/bovary/file.epub", 157 | "type": "application/epub+zip" 158 | } 159 | ], 160 | "images": [ 161 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/bovary/small.jpg", "type": "image/jpeg", "height": 169, "width": 110}, 162 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/bovary/normal.jpg", "type": "image/jpeg", "height": 400, "width": 260} 163 | ] 164 | }, 165 | { 166 | "metadata": { 167 | "@type": "http://schema.org/Book", 168 | "title": "Du côté de chez Swann", 169 | "author": {"name": "Marcel Proust", "sort_as": "Proust, Marcel"}, 170 | "identifier": "http://fr.feedbooks.com/book/4/du-c%C3%B4t%C3%A9-de-chez-swann", 171 | "language": "fr", 172 | "modified": "2018-04-23T22:56:00Z", 173 | "published": "1913", 174 | "publisher": "Feedbooks", 175 | "belongs_to": { 176 | "series": { 177 | "name": "À la recherche du temps perdu", 178 | "position": 1 179 | } 180 | }, 181 | "description": "Du côté de chez Swann est un roman de Marcel Proust, c'est le premier volume de À la recherche du temps perdu. Il est composé de trois parties, dont les titres sont : Combray, Un amour de Swann et Nom de pays : le nom." 182 | }, 183 | "links": [ 184 | { 185 | "rel": "http://opds-spec.org/acquisition/open-access", 186 | "href": "https://feedbooks.github.io/opds-test-catalog/assets/swann/file.epub", 187 | "type": "application/epub+zip" 188 | } 189 | ], 190 | "images": [ 191 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/swann/small.jpg", "type": "image/jpeg", "height": 169, "width": 110}, 192 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/swann/normal.jpg", "type": "image/jpeg", "height": 400, "width": 260} 193 | ] 194 | } 195 | ] 196 | }, 197 | { 198 | "metadata": { 199 | "title": "More Navigation" 200 | }, 201 | "navigation": [ 202 | {"href": "https://feedbooks.github.io/opds-test-catalog/opds-2/home.json", "title": "French Books", "type": "application/opds+json"}, 203 | {"href": "https://feedbooks.github.io/opds-test-catalog/opds-2/home.json", "title": "English Books", "type": "application/opds+json"} 204 | ] 205 | }, 206 | { 207 | "metadata": { 208 | "title": "English Classics", 209 | "numberOfItems": 3 210 | }, 211 | "publications": [ 212 | { 213 | "metadata": { 214 | "@type": "http://schema.org/Book", 215 | "title": "Moby-Dick", 216 | "author": {"name": "Herman Melville", "sort_as": "Melville, Herman"}, 217 | "identifier": "http://www.feedbooks.com/book/54/moby-dick", 218 | "language": "en", 219 | "modified": "2018-04-23T23:18:00Z", 220 | "published": "1851", 221 | "publisher": "Feedbooks", 222 | "description": "Moby-Dick is an 1851 novel by Herman Melville. The story tells the adventures of the wandering sailor Ishmael and his voyage on the whaling ship Pequod, commanded by Captain Ahab. Ishmael soon learns that Ahab seeks one specific whale, Moby-Dick, a white whale of tremendous size and ferocity. Comparatively few whaling ships know of Moby-Dick, and fewer yet have encountered him. In a previous encounter, the whale destroyed Ahab's boat and bit off his leg. Ahab intends to exact revenge." 223 | }, 224 | "links": [ 225 | { 226 | "rel": "http://opds-spec.org/acquisition/open-access", 227 | "href": "https://feedbooks.github.io/opds-test-catalog/assets/moby/file.epub", 228 | "type": "application/webpub+json" 229 | } 230 | ], 231 | "images": [ 232 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/moby/small.jpg", "type": "image/jpeg", "height": 169, "width": 110}, 233 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/moby/normal.jpg", "type": "image/jpeg", "height": 400, "width": 260} 234 | ] 235 | }, 236 | { 237 | "metadata": { 238 | "@type": "http://schema.org/Book", 239 | "title": "Romeo and Juliet", 240 | "author": {"name": "William Shakespeare", "sort_as": "Shakespeare, William"}, 241 | "identifier": "http://www.feedbooks.com/book/2936/romeo-and-juliet", 242 | "language": "en", 243 | "modified": "2018-05-04T19:28:00Z", 244 | "published": "1597", 245 | "publisher": "Feedbooks", 246 | "description": "Romeo and Juliet is a tragic play written early in the career of William Shakespeare about two teenage star-cross'd lovers whose untimely deaths ultimately unite their feuding households. It was among Shakespeare's most popular plays during his lifetime and, along with Hamlet, is one of his most frequently performed plays. Today, the title characters are regarded as archetypal young lovers." 247 | }, 248 | "links": [ 249 | { 250 | "rel": "http://opds-spec.org/acquisition/open-access", 251 | "href": "https://feedbooks.github.io/opds-test-catalog/assets/romeo/file.epub", 252 | "type": "application/webpub+json" 253 | } 254 | ], 255 | "images": [ 256 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/romeo/small.jpg", "type": "image/jpeg", "height": 169, "width": 110}, 257 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/romeo/normal.jpg", "type": "image/jpeg", "height": 400, "width": 260} 258 | ] 259 | }, 260 | { 261 | "metadata": { 262 | "@type": "http://schema.org/Book", 263 | "title": "Jane Eyre", 264 | "author": {"name": "Charlotte Brontë", "sort_as": "Brontë, Charlotte"}, 265 | "identifier": "http://www.feedbooks.com/book/144/jane-eyre", 266 | "language": "en", 267 | "modified": "2018-05-04T19:32:00Z", 268 | "published": "1847", 269 | "publisher": "Feedbooks", 270 | "description": "Jane Eyre, the story of a young girl and her passage into adulthood, was an immediate commercial success at the time of its original publication in 1847. Its representation of the underside of domestic life and the hypocrisy behind religious enthusiasm drew both praise and bitter criticism, while Charlotte Brontë's striking expose of poor living conditions for children in charity schools as well as her poignant portrayal of the limitations faced by women who worked as governesses sparked great controversy and social debate. Jane Eyre, Brontë's best-known novel, remains an extraordinary coming-of-age narrative, and one of the great classics of literature." 271 | }, 272 | "links": [ 273 | { 274 | "rel": "http://opds-spec.org/acquisition/open-access", 275 | "href": "https://feedbooks.github.io/opds-test-catalog/assets/eyre/file.epub", 276 | "type": "application/webpub+json" 277 | } 278 | ], 279 | "images": [ 280 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/eyre/small.jpg", "type": "image/jpeg", "height": 169, "width": 110}, 281 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/eyre/normal.jpg", "type": "image/jpeg", "height": 400, "width": 260} 282 | ] 283 | } 284 | ] 285 | } 286 | ], 287 | "publications": [ 288 | { 289 | "metadata": { 290 | "@type": "http://schema.org/Book", 291 | "title": "Moby-Dick", 292 | "author": {"name": "Herman Melville", "sort_as": "Melville, Herman"}, 293 | "identifier": "http://www.feedbooks.com/book/54/moby-dick", 294 | "language": "en", 295 | "modified": "2018-04-23T23:18:00Z", 296 | "published": "1851", 297 | "publisher": "Feedbooks", 298 | "description": "Moby-Dick is an 1851 novel by Herman Melville. The story tells the adventures of the wandering sailor Ishmael and his voyage on the whaling ship Pequod, commanded by Captain Ahab. Ishmael soon learns that Ahab seeks one specific whale, Moby-Dick, a white whale of tremendous size and ferocity. Comparatively few whaling ships know of Moby-Dick, and fewer yet have encountered him. In a previous encounter, the whale destroyed Ahab's boat and bit off his leg. Ahab intends to exact revenge." 299 | }, 300 | "links": [ 301 | { 302 | "rel": "http://opds-spec.org/acquisition/open-access", 303 | "href": "https://feedbooks.github.io/opds-test-catalog/assets/moby/file.epub", 304 | "type": "application/webpub+json" 305 | } 306 | ], 307 | "images": [ 308 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/moby/small.jpg", "type": "image/jpeg", "height": 169, "width": 110}, 309 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/moby/normal.jpg", "type": "image/jpeg", "height": 400, "width": 260} 310 | ] 311 | }, 312 | { 313 | "metadata": { 314 | "@type": "http://schema.org/Book", 315 | "title": "Le Mystère de la chambre jaune", 316 | "sort_as": "Mystère de la chambre jaune, Le", 317 | "author": {"name": "Gaston Leroux", "sort_as": "Leroux, Gaston"}, 318 | "identifier": "http://fr.feedbooks.com/book/588/le-myst%C3%A8re-de-la-chambre-jaune", 319 | "language": "fr", 320 | "modified": "2018-04-23T22:32:00Z", 321 | "published": "1907", 322 | "publisher": "Feedbooks", 323 | "description": "Imaginez-vous devant un coffre fort fermé, où vous entendriez quelqu'un crier à l'aide , vous ouvrez et, vous ne trouvez que la victime. Par où l'assassin est-il parti ? C'est le Mystère de la chambre jaune... La plus célèbre des aventures de Rouletabille..." 324 | }, 325 | "links": [ 326 | { 327 | "rel": "http://opds-spec.org/acquisition/open-access", 328 | "href": "https://feedbooks.github.io/opds-test-catalog/assets/chambrejaune/file.epub", 329 | "type": "application/epub+zip" 330 | } 331 | ], 332 | "images": [ 333 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/chambrejaune/small.jpg", "type": "image/jpeg", "height": 169, "width": 110}, 334 | {"href": "https://feedbooks.github.io/opds-test-catalog/assets/chambrejaune/normal.jpg", "type": "image/jpeg", "height": 400, "width": 260} 335 | ] 336 | } 337 | ] 338 | } -------------------------------------------------------------------------------- /catalog/acquisition/blocks.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | blocks.xml 4 | Acquisition with blocks 5 | 2014-11-07T12:13:58Z 6 | 7 | Hadrien Gardeur 8 | https://github.com/Feedbooks 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | A Study in Scarlet 18 | http://www.feedbooks.com/book/57 19 | 20 | Arthur Conan Doyle 21 | http://www.feedbooks.com/author/1 22 | 23 | 2006-12-29T16:33:07Z 24 | 2014-11-02T19:59:46Z 25 | en 26 | 1887 27 | 28 | 29 | A Study in Scarlet is a detective mystery novel written by Sir Arthur Conan Doyle, which was first published in 1887. It is the first story to feature the character of Sherlock Holmes, who would later become one of the most famous and iconic liter... 30 | 43,385 words 31 | Wikisource 32 | This work is available for countries where copyright is Life+70 and in the USA. 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | The Sign of the Four 45 | http://www.feedbooks.com/book/2 46 | 47 | Arthur Conan Doyle 48 | http://www.feedbooks.com/author/1 49 | 50 | 2006-10-30T16:56:59Z 51 | 2014-11-02T19:59:46Z 52 | en 53 | 1890 54 | 55 | 56 | First published in 1890, The Sign of Four is Sir Arthur Conan Doyle's second book starring legendary detective Sherlock Holmes. The story is complex, involving a secret between four ex-cons from India and a hidden treasure. More complex than the f... 57 | 43,217 words 58 | This work is available for countries where copyright is Life+70 and in the USA. 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | The Hound of the Baskervilles 71 | http://www.feedbooks.com/book/1 72 | 73 | Arthur Conan Doyle 74 | http://www.feedbooks.com/author/1 75 | 76 | 2006-10-30T16:40:14Z 77 | 2014-11-02T19:59:47Z 78 | en 79 | 1902 80 | 81 | 82 | The rich landowner Sir Charles Baskerville is found dead in the park of his manor surrounded by the grim moor of Dartmoor, in the county of Devon. His death seems to have been caused by a heart attack, but the victim's best friend, Dr. Mortimer, i... 83 | 59,046 words 84 | This work is available for countries where copyright is Life+70 and in the USA. 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | The Valley of Fear 97 | http://www.feedbooks.com/book/64 98 | 99 | Arthur Conan Doyle 100 | http://www.feedbooks.com/author/1 101 | 102 | 2006-12-29T18:48:02Z 103 | 2014-11-02T19:59:48Z 104 | en 105 | 1915 106 | 107 | 108 | The plot of the novel is based very loosely on the real-life activities of the Molly Maguires and, particularly, of Pinkerton agent James McParland. 109 | The novel is divided into two parts: in the first, Holmes investigates an apparent murder and disc... 110 | 57,400 words 111 | Wikisource 112 | This work is available for countries where copyright is Life+70 and in the USA. 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | The Memoirs of Sherlock Holmes 125 | http://www.feedbooks.com/book/58 126 | 127 | Arthur Conan Doyle 128 | http://www.feedbooks.com/author/1 129 | 130 | 2006-12-29T16:49:57Z 131 | 2014-11-02T19:59:48Z 132 | en 133 | 1893 134 | 135 | 136 | 137 | The Memoirs of Sherlock Holmes is a collection of Sherlock Holmes stories, originally published in 1894, by Arthur Conan Doyle. 138 | 87,520 words 139 | http://www.gutenberg.org/etext/834 140 | This work is available for countries where copyright is Life+70 and in the USA. 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | The Return of Sherlock Holmes 153 | http://www.feedbooks.com/book/63 154 | 155 | Arthur Conan Doyle 156 | http://www.feedbooks.com/author/1 157 | 158 | 2006-12-29T17:21:26Z 159 | 2014-11-02T19:59:48Z 160 | en 161 | 1905 162 | 163 | 164 | 165 | The Return of Sherlock Holmes is a collection of 13 Sherlock Holmes stories, originally published in 1903-1904, by Arthur Conan Doyle. 166 | The book was first published on March 7, 1905 by Georges Newnes, Ltd and in a Colonial edition by Longmans. 30,... 167 | 112,676 words 168 | Wikisource 169 | This work is available for countries where copyright is Life+70 and in the USA. 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | His Last Bow 182 | http://www.feedbooks.com/book/65 183 | 184 | Arthur Conan Doyle 185 | http://www.feedbooks.com/author/1 186 | 187 | 2006-12-29T19:00:34Z 188 | 2014-11-02T19:59:48Z 189 | en 190 | 1917 191 | 192 | 193 | 194 | His Last Bow is a collection of seven Sherlock Holmes stories (eight in American editions) by Arthur Conan Doyle, as well as the title of one of the stories in that collection. Originally published in 1917, it contains the various Holmes stories p... 195 | 67,683 words 196 | Wikisource 197 | This work is available for countries where copyright is Life+70 and in the USA. 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | The Casebook of Sherlock Holmes 210 | http://www.feedbooks.com/book/66 211 | 212 | Arthur Conan Doyle 213 | http://www.feedbooks.com/author/1 214 | 215 | 2006-12-29T19:15:14Z 216 | 2014-11-02T19:59:49Z 217 | en 218 | 1923 219 | 220 | 221 | 222 | The last twelve stories written about Holmes and Watson, these tales reflect the disillusioned world of the 1920s in which they were written. Some of the sharpest turns of wit in English literature are contrasted by dark images of psychological tr... 223 | 83,179 words 224 | Wikisource 225 | This work is available for countries where copyright is Life+70 and in the USA. 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | The Adventures of Sherlock Holmes 238 | http://www.feedbooks.com/book/1421 239 | 240 | Arthur Conan Doyle 241 | http://www.feedbooks.com/author/1 242 | 243 | 2007-07-19T11:36:30Z 244 | 2014-11-02T19:59:49Z 245 | en 246 | 1892 247 | 248 | 249 | 250 | The Adventures of Sherlock Holmes is a collection of twelve stories by Sir Arthur Conan Doyle, featuring his famous detective and illustrated by Sidney Paget. 251 | These are the first of the Sherlock Holmes short stories, originally published as singl... 252 | 104,333 words 253 | http://gutenberg.org 254 | This work is available for countries where copyright is Life+70 and in the USA. 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | Cabin Fever 267 | http://www.feedbooks.com/book/6642 268 | 269 | B. M. Bower 270 | http://www.feedbooks.com/author/2136 271 | 272 | 2013-02-21T09:33:26Z 273 | 2014-02-03T12:46:09Z 274 | en 275 | 1918 276 | 277 | 278 | 279 | "... the mind fed too long upon monotony succumbs to the insidious mental ailment which the West calls 'cabin fever.' ... Bud Moore, ex-cow-puncher and now owner of an auto stage that did not run in the winter, was touched with cabin fever and did... 280 | 55,948 words 281 | Project Gutenberg Australia http://gutenberg.net.au/ebooks/w00013.html#1_0_2 282 | Attribution Share Alike (cc by-sa) 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | The Lone Star Ranger 296 | http://www.feedbooks.com/book/1831 297 | 298 | Zane Grey 299 | http://www.feedbooks.com/author/255 300 | 301 | 2007-10-24T17:56:39Z 302 | 2014-02-25T15:24:16Z 303 | en 304 | 1915 305 | 306 | 307 | When he is forced to kill a man after a deadly attack, Buck Duane begins a life on the run while trying to clear his name, and his fortunes are changed by a beautiful woman and a Texas Ranger who offers to pardon him for a price. 308 | 94,376 words 309 | http://gutenberg.org 310 | This work is available for countries where copyright is Life+70 and in the USA. 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | Desert Gold 323 | http://www.feedbooks.com/book/1817 324 | 325 | Zane Grey 326 | http://www.feedbooks.com/author/255 327 | 328 | 2007-10-23T16:36:22Z 329 | 2014-02-25T15:03:37Z 330 | en 331 | 1913 332 | 333 | 334 | 335 | The story describes the recent uprising along the border, and ends with the finding of the gold which two prospectors had willed to the girl who is the story's heroine. 336 | 103,633 words 337 | http://www.gutenberg.org 338 | This work is available for countries where copyright is Life+70 and in the USA. 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | -------------------------------------------------------------------------------- /catalog/acquisition/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | main.xml 4 | First Acquisition Feed 5 | 2012-10-20T01:11:18Z 6 | 7 | Hadrien Gardeur 8 | https://github.com/Feedbooks 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 18 17 | 18 | 19 | Pride and Prejudice 20 | http://feedbooks.github.io/test/1 21 | 22 | Jane Austen 23 | 24 | 2006-12-28T20:00:54Z 25 | 2012-10-12T17:43:18Z 26 | en 27 | 1813 28 | 29 | 30 | 31 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 32 | 33 | This work is available for countries where copyright is Life+70 and in the USA. 34 | 120,697 words 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | Partial and Full entry 43 | http://feedbooks.github.io/test/2 44 | 45 | Jane Austen 46 | 47 | 2006-12-28T20:00:54Z 48 | 2012-10-12T17:43:18Z 49 | en 50 | 1813 51 | 52 | 53 | 54 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when y... 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | Metadata: Summary Only 64 | http://feedbooks.github.io/test/3 65 | 66 | Jane Austen 67 | 68 | 2006-12-28T20:00:54Z 69 | 2012-10-12T17:43:18Z 70 | en 71 | 1813 72 | 73 | 74 | 75 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when y... 76 | 77 | This work is available for countries where copyright is Life+70 and in the USA. 78 | 120,697 words 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | Metadata: Summary vs Description 87 | http://feedbooks.github.io/test/4 88 | 89 | Jane Austen 90 | 91 | 2006-12-28T20:00:54Z 92 | 2012-10-12T17:43:18Z 93 | en 94 | 1813 95 | 96 | 97 | 98 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when y... 99 | 100 | 101 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 102 | 103 | This work is available for countries where copyright is Life+70 and in the USA. 104 | 120,697 words 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | Metadata: Contributor 113 | http://feedbooks.github.io/test/5 114 | 115 | Jane Austen 116 | 117 | 2006-12-28T20:00:54Z 118 | 2012-10-12T17:43:18Z 119 | en 120 | 1813 121 | 122 | 123 | 124 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 125 | 126 | This work is available for countries where copyright is Life+70 and in the USA. 127 | 120,697 words 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | Metadata: No Label 136 | http://feedbooks.github.io/test/6 137 | 138 | Jane Austen 139 | 140 | 2006-12-28T20:00:54Z 141 | 2012-10-12T17:43:18Z 142 | en 143 | 1813 144 | 145 | 146 | 147 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 148 | 149 | This work is available for countries where copyright is Life+70 and in the USA. 150 | 120,697 words 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | Acquisition: Open Access 159 | http://feedbooks.github.io/test/7 160 | 161 | Jane Austen 162 | 163 | 2006-12-28T20:00:54Z 164 | 2012-10-12T17:43:18Z 165 | en 166 | 1813 167 | 168 | 169 | 170 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 171 | 172 | This work is available for countries where copyright is Life+70 and in the USA. 173 | 120,697 words 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | Acquisition: Sample 182 | http://feedbooks.github.io/test/8 183 | 184 | Jane Austen 185 | 186 | 2006-12-28T20:00:54Z 187 | 2012-10-12T17:43:18Z 188 | en 189 | 1813 190 | 191 | 192 | 193 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 194 | 195 | This work is available for countries where copyright is Life+70 and in the USA. 196 | 120,697 words 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | Acquisition: Buy 205 | http://feedbooks.github.io/test/9 206 | 207 | Jane Austen 208 | 209 | 2006-12-28T20:00:54Z 210 | 2012-10-12T17:43:18Z 211 | en 212 | 1813 213 | 214 | 215 | 216 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 217 | 218 | This work is available for countries where copyright is Life+70 and in the USA. 219 | 120,697 words 220 | 221 | 10.99 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | Acquisition: Subscribe 231 | http://feedbooks.github.io/test/10 232 | 233 | Jane Austen 234 | 235 | 2006-12-28T20:00:54Z 236 | 2012-10-12T17:43:18Z 237 | en 238 | 1813 239 | 240 | 241 | 242 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 243 | 244 | This work is available for countries where copyright is Life+70 and in the USA. 245 | 120,697 words 246 | 247 | 4.99 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | Acquisition: Borrow 257 | http://feedbooks.github.io/test/11 258 | 259 | Jane Austen 260 | 261 | 2006-12-28T20:00:54Z 262 | 2012-10-12T17:43:18Z 263 | en 264 | 1813 265 | 266 | 267 | 268 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | Acquisition: Sample and Borrow 279 | http://feedbooks.github.io/test/12 280 | 281 | Jane Austen 282 | 283 | 2006-12-28T20:00:54Z 284 | 2012-10-12T17:43:18Z 285 | en 286 | 1813 287 | 288 | 289 | 290 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | Acquisition: Place a hold 303 | http://feedbooks.github.io/test/13 304 | 305 | Jane Austen 306 | 307 | 2006-12-28T20:00:54Z 308 | 2012-10-12T17:43:18Z 309 | en 310 | 1813 311 | 312 | 313 | 314 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | Acquisition: Pre-order 326 | http://feedbooks.github.io/test/14 327 | 328 | Jane Austen 329 | 330 | 2006-12-28T20:00:54Z 331 | 2012-10-12T17:43:18Z 332 | en 333 | 1813 334 | 335 | 336 | 337 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 338 | 339 | 340 | 10.99 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | Acquisition: Multiple links 350 | http://feedbooks.github.io/test/15 351 | 352 | Jane Austen 353 | 354 | 2006-12-28T20:00:54Z 355 | 2012-10-12T17:43:18Z 356 | en 357 | 1813 358 | 359 | 360 | 361 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 362 | 363 | 364 | 10.99 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | Acquisition: Indirect good 377 | http://feedbooks.github.io/test/16 378 | 379 | Jane Austen 380 | 381 | 2006-12-28T20:00:54Z 382 | 2012-10-12T17:43:18Z 383 | en 384 | 1813 385 | 386 | 387 | 388 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | Acquisition: Indirect bad 399 | http://feedbooks.github.io/test/17 400 | 401 | Jane Austen 402 | 403 | 2006-12-28T20:00:54Z 404 | 2012-10-12T17:43:18Z 405 | en 406 | 1813 407 | 408 | 409 | 410 | Pride And Prejudice, the story of Mrs. Bennet's attempts to marry off her five daughters is one of the best-loved and most enduring classics in English literature. Excitement fizzes through the Bennet household at Longbourn in Hertfordshire when young, eligible Mr. Charles Bingley rents the fine house nearby. He may have sisters, but he also has male friends, and one of these—the haughty, and even wealthier, Mr. Fitzwilliam Darcy—irks the vivacious Elizabeth Bennet, the second of the Bennet girls. She annoys him. Which is how we know they must one day marry. The romantic clash between the opinionated Elizabeth and Darcy is a splendid rendition of civilized sparring. As the characters dance a delicate quadrille of flirtation and intrigue, Jane Austen's radiantly caustic wit and keen observation sparkle. 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | --------------------------------------------------------------------------------