Apps
Knowledge
People
Register
Login


-
- Content .- Fans (15) .- Knowledge Base (2) . 

OPDS catalog

   0.8.2  

ownCloud Tool

Score 66%
OPDS catalog
zoom


OPDS catalog
zoom


OPDS catalog
zoom


Minimum required   ownCloud 8.1
Maximum required   ownCloud 9.2
Downloads:  1812
Submitted:  Dec 10 2014
Updated:  Jan 19 2017

Description:

OPDS is, according to the standard (http://opds-spec.org/specs/opds-catalog-1-1-20110627/), '...a syndication format for electronic publications based on Atom and HTTP. OPDS Catalogs enable the aggregation, distribution, discovery, and acquisition of electronic publications...'. In short, it makes it possible to access publications (which are not limited to electronic books) on any OPDS client device. Examples of the latter are phones and tablets running OPDS-compatible book readers, eg FBReader/CoolReader/Aldiko on Android or Marvin/KyBook/Stanza on iOS.

The OPDS catalog app enables Owncloud users to publish a sub-tree of their personal filesystem as an OPDS feed. Since Owncloud currently has limited to no support for metadata, these are for now stored in a separate table. As of v0.3 OPDS catalog can extract all relevant metadata from EPUB and PDF documents. v0.5 introduced ISBN-based metadata retrieval, while Calibre-generated metadata.opf files are parsed since v0.6. FictionBook 2 (.fb2) metadata support was added in v0.8.0.

Calibre
If the directory in which the file is found contains a valid metadata.opf file, this file is parsed and all relevant Dublin Core metadata is applied to all files in the directory. If a cover is specified in this file, and the relevant file is found in the directory, this cover is used as preview and thumbnail for all files in the directory. If the metadata is invalid (ie. one or more of title, author and language are not defined) the files themselves are parsed for metadata in the 'normal' way.

Keep in mind that publications for which valid metadata has already been cached in the database will not be scanned again until a rescan is scheduled. This can be done in the personal settings page, use the 'Schedule rescan' button.

ISBN
If an ISBN is found in either existing metadata or in the first 10 pages of the publication, metadata is retrieved from ISBNdb (key required, http://isbndb.com/account/logincreate, max. 500 queries/day) and Google Books (no key required, but rate limit is higher (1000/day) when one is used).

Documents for which no metadata is found will appear with sparse entries for now: only title (as in 'filename'), file size, cover image (where available), modification time and content links are provided. The first visit to a new (or updated) directory will take a bit longer while OPDS catalog scans for metadata, subsequent visits will be faster due to the use of cached metadata.

Personal bookshelf
The OPDS root feed links to a hierarchical navigation feed mirroring the directory structure as well as a 'personal bookshelf' containing links to all downloaded books (most recent download listed first). This 'personal bookshelf' will be empty (0 books) at first. Use the 'Browse catalog' link to download a book and it'll appear on the 'personal bookshelf'. Download another, and it will appear above the one you previously downloaded. This makes it possible to get at books you are in the process of reading from different devices, or to easily re-visit a book you downloaded earlier.

The feed is in compliance with the OPDS 1.1 specification according to the online OPDS validator (http://opds-validator.appspot.com/).

In the personal settings page there are options to:
  • enable/disable the feed (it is disabled by default)

  • set the feed title (default is "Full Name's Library"

  • set the feed root directory (the default is /Library)

  • enter a list of extensions to which the feed should be limited (by default this field is empty so it publishes all files descending from the feed root)

  • enter a list of file names to be skipped (default is 'metadata.opf,cover.jpg')

  • schedule a rescan of all metadata. This will only set the rescan date to 'now' for all entries, the actual rescan is performed on a by-publication base the next time that publication is visited

  • clear the personal bookshelf (this only clears the list, it does not delete any books)


  • The admin settings page contains options to:
  • set the feed subtitle (default is 'Owncloud OPDS catalog' where 'Owncloud' is the instance name of the OC installation)

  • change file preview preferences (which should probably be in core or in a separate app as this changes a system-wide setting ('enabledPreviewProviders'))

  • change the cover image and thumbnail dimensions. By default these are square and rather small (200x200 for covers, 36x36 for thumbnails); If you want them in more book-like proportions change these to something with a width:height ratio of around 1:1.6. 300x480 for covers and 36x58 for thumbnails is a good compromise between image download size (~20KB-40KB jpeg) and quality. What you enter here is purely a personal preference, there is no standard size or ratio. Just make sure that the thumbnails are small-ish as these are often displayed as icons in file lists.

  • Enter ISBNdb key to use for metadata retrieval, leave blank if you don't have (or want) a key. In that case it only uses Google Books (which can be used with or without a key) for ISBN lookup.

  • Enter Google Books API key to use for metadata retrieval, leave blank if you don't have (or want) a key. Google Books API works without a key, but the rate limit is higher (1000 lookups per day) when a key is used.


  • The OPDS feed is disabled when the app is installed, enable it in the personal settings page under the header 'OPDS'. Every user has his/her own feed, which feed you get depends on which credentials you enter.

    To connect to the OPDS feed, point your OPDS client at the app URL:

    Quote:
    https://example.com/path/to/owncloud/index.php/apps/files_opds/


    If all goes well, the client should ask for a username and password - enter your Owncloud credentials here. You should use HTTPS to avoid compromising your credentials (something which goes for Owncloud in general).

    OPDS catalog is hosted on github: https://github.com/Yetangitu/owncloud-apps

    Tested OPDS clients
  • FBReader on Android: OK

  • Aldiko on Android: OK (does not show cover images, probably Aldiko bug: https://github.com/rvolz/BicBucStriim/issues/80

  • CoolReader on Android: OK (CoolReader browser adds extraneous '/' characters to the URL, probably related to this bug: http://sourceforge.net/p/crengine/bugs/267/, this resulted in failed downloads in earlier versions, works as of OC8.1/OPDS catalog 0.6.8)

  • Moon+ Reader on Android: OK

  • KyBook on iOS: OK

  • Marvin on iOS: OK

  • eBook Search on iOS: browsing works, downloading does not (401 error, 'Unauthorised')

  • Gecko-based browsers: OK, feed can be browsed and books can be downloaded without additional software

  • Freda on Windows (Phone & 8.1): OK (mconway, see comments)


  • About the appcodechecker
    OPDS catalog makes use of several 'private' Owncloud methods for which no 'public' alternatives are available. One of the side effects of this is that the 'appcodechecker' will block the automatic installation of this app. As this 'appcodechecker' (in its current incarnation) is no more than a rather naive grep (search) of app code for a list of prefixes, many of which have no 'public' counterpart, this does not make much sense.

    My advice is to disable appcodechecker. To be really useful, the app code checker should be implemented in such a way that it warns the developer (and, if possible, points out alternatives for the deprecated calls). There are some other things it could do like check for consistency in the appinfo section (version numbers, name, etc.).

    So, for those of you who want their apps to install automagically: add 'appcodechecker' => false, to your configuration file.




    Changelog:

    0.8.2
    Fixed:
  • OPDS Catalog now supports app passwords (and 2-factor authentication in Nextcloud)


  • 0.8.1
    New:
  • FictionBook 2 (.fb2) metadata extractor and preview provider

  • Changed:
  • More robust preview generation, serve mimetype icon if showPreview throws an exception[li]

    0.7.3
    Fixed:
    [li]XML error after deleting an epub file from Library (https://github.com/Yetangitu/owncloud-apps/issues/23)

  • Changed:
  • Sanitised info.xml for inclusion in Nextcloud app repository


  • 0.7.0
    0.7.1
    0.7.2

    Changed:
  • info.xml sanitised for inclusion in Nextcloud app store



  • 0.7
    New:
  • Compatible with Nextcloud (up to v12)

  • Changed:
  • New logo


  • 0.6.16
    Changed:
  • Several fixes by ayamshanov

  • Raised maximum OC version to 9.2


  • 0.6.15
    Changed:
  • And yet anther OC9.0+ compatibility fix: changed fileId-handling, explicitly handle command strings in id parameter.


  • 0.6.14
    Changed:
  • Yet anther OC9.0+ compatibility fix: \OC_Helper -> OCP\Util - this kept the personal settings page from displaying.


  • 0.6.13
    Changed:
  • Remove unsupported L10N statement which kept files_opds from working in OC9.0


  • 0.6.12
    Changed:
  • Limit overly-long copyright statements to 256 characters to guard against overflow.


  • 0.6.11
    Changed:
  • OC_Log is deprecated, changed to OCP\Util::writeLog


  • 0.6.10
    Changed:
  • Set 'shipped' parameter in info.xml to 'false' to allow direct installation in OC8.2+. Before, this was set to 'true' to keep OC from removing all app data when the app was disabled.


  • 0.6.9
    Changed:
  • Doubled the maximum allowed length of various database columns, some publications seem to have rather long titles and author lists. A better solution would be to just use the 'text' datatype without length restrictions but this would lead to worse performance in MySQL (PostgreSQL does not have this problem).


  • 0.6.8
    Changed:
  • Hopefully for the last time: Changed the way the ePub preview provider is registered. This now uses the IProvider interface which is only available from Owncloud 8.1 and onwards, ie. this version does NOT work in earlier versions of Owncloud! If you use an older version of Owncloud and can not (or do not want to) upgrade, download files_opds v0.6.5 (https://github.com/Yetangitu/owncloud-apps/blob/master/dist/files_opds-0.6.5.tar.gz?raw=true) instead


  • 0.6.7
    Changed:
  • Changed the way the ePub preview provider is registered - again, this is needed to get files_opds working with Owncloud 8.1...


  • 0.6.6
    Changed:
  • Changed the way the ePub preview provider is registered, this is needed to get files_opds working with Owncloud 8.1


  • 0.6.5
    Fix:
  • Malformed ISBN13 strings (containing to many dashes, etc) would silently be truncated to 16 characters on MySQL. On Sqlite the malformed value would be stored as-is since it ignores field length statements altogether. PostgreSQL would produce an ERROR here, which is how the problem was identified: https://github.com/Yetangitu/owncloud-apps/issues/7. This is fixed by stripping all but [0-9xX] from the ISBN before storing it. If you use MySQL, you can either schedule a rescan of all data (in the admin settings page) or specifically for truncated records by running the query mentioned in my answer to the bug report (https://github.com/Yetangitu/owncloud-apps/issues/7#issuecomment-74787070). Sqlite users can also run the (sqlite-specific) query from that answer but it is not really necessary as sqlite never truncates text fields (http://www.sqlite.org/faq.html#q9).


  • 0.6.4
    New:
  • A Google Books API key can be entered in the admin settings page. Even though metadata retrieval from Google works without a key, the rate limit is much less strict (1000/day) when a key is used.


  • Fix:
  • Explicitly trim 'description' field in metadata to less than 2048 characters, otherwise Postgresql complains ('value too long for type character varying(2048)')

  • Get rid of foreach-related log spam


  • 0.6.3
    Fix:
  • Owncloud complained about OPDS catalog 'not being compatible with sqlite' because it was listed as 'sqlite3' in info.xml. This has been fixed. This is mostly cosmetic, as OPDS catalog did in fact work with sqlite, warning notwithstanding...


  • 0.6.2
    Changed:
  • Ported to Owncloud 8, should work with OC7 as well - please test


  • 0.6.1
    New:
  • Add option to schedule a rescan of all metadata in the personal settings page. This will only set the rescan date to 'now' for all entries, the actual rescan is performed on a by-publication base when that publication is visited the next time


  • 0.6.0
    New:
  • Calibre-generated metadata (contained in metadata.opf files) and cover images are now used when found in lieu of other metadata sources. If no Calibre-generated metadata is found or the metadata is found to be invalid (defined as omitting either of title, author or language) the files themselves are scanned for metadata.


  • Fix:
  • Potential issue with MySQL-incompatible datetime format in $meta['updated'] fixed.


  • 0.5.5
    Fix:
  • Fix potential issue (https://github.com/Yetangitu/owncloud-apps/issues/3) with localisation.


  • 0.5.4
    Fix:
  • Fix potential issue with empty bookshelf


  • 0.5.3
    Changed:
  • The order in which ISBN metadata providers is queried has been changed, now Google is asked first, then ISBNdb. This way, the daily quotum at ISBNdb lasts longer.


  • Fix:
  • The ISBN metadata parser silently ignored Google data, this is fixed now.


  • 0.5.2
    Changed:
  • Improved ISBN regexes and regex scanning order to minimise false positives


  • Fix:
  • First ISBN regex always returned negative due to use of unsupported nested character class


  • 0.5.1
    Fix:
  • Fixed excessive rescans due to faulty time calculation (missing strtotime()). OPDS catalog is a lot faster now...


  • Changed:
  • Improved ISBN regexes, can use further improvement still.


  • 0.5
    New:
  • ISBN metadata retrieval from ISBNdb (key required, http://isbndb.com/account/logincreate, max. 500 queries/day) and Google Books (no key required). This either uses a known ISBN (from existing metadata) or scans the first 10 pages of the publication for an ISBN. This does not work when using a Windows server due to the use of external programs (pdftotext, pdfinfo) for pdf to text conversion and metadata collection.


  • Fix:
  • Primary key was not defined for database, leading to the possibility of duplicate records. This is now fixed, if duplicate records are found in the database the upgrade (occ upgrade) will not succeed. Should this happen, the easiest solution is to drop the OPDS table (*PREFIX*opds_metadata) as it will be recreated during the upgrade and -populated when used.


  • 0.4
    New:
  • Feed title (personal setting) and subtitle (admin setting) can be configured


  • Changed:
  • Feed now contains atom:content for publications with full metadata, atom:summary for those without. In both cases, some metadata is added (file size, type and name). As the feed also contains dcterms:extent entries (describing file size) this might lead to some duplication of this information in some OPDS clients (eg. KyBook on iOS) but this is preferable over this information not being available in others which do not render dcterms:extent (eg. FBReader)

  • feed template split into parts to avoid duplication

  • better layout personal and admin settings pages


  • Fix:
  • openoffice -> opendocument in preview settings

  • atom:updated in feed header was set to the beginning of the epoch. This could cause problems with new acquisitions not showing up. For now, it is set to the page request time, ie. the feed is 'always' updated. Eventually this should be set to the last modification time of the feed tree

  • atom:updated in navigation feed was set to 'strange' times due to a miscalculated modification time (ms instead of s), this is now fixed.


  • 0.3.1
    Changed:
  • Images and thumbnails are now served through OPDS catalog to reduce the size of the feed (shorter URLs)


  • 0.3
    New:
  • Full metadata support for EPUB documents. If the document contains relevant metadata, it will appear in the feed.

  • Metadata is cached in the database using an app-specific table (*dbprefix*opds_metadata). If/when Owncloud gets better metadata support, this table can be dropped

  • Feed 'entry' nodes are now 'complete' (including metadata)


  • 0.2
    New:
  • Added a rudimentary epub parser for metadata extraction

  • Added epub preview provider (extract cover images from epub documents)

  • Added cover images (where available, uses normal preview providers and the above-mentioned epub provider)

  • Added file preview configuration option in admin settings. As this is a system-wide setting, this should really be in core or in a separate app (maybe later).

  • Added some metadata to feed template (file size, type and filename)


  • 0.1.2
    Fix:
  • The feed is now in full compliance with the OPDS 1.1 specification, at least according to the online OPDS validator (http://opds-validator.appspot.com/)


  • 0.1.1
    Fix:
  • Added link URL to personal settings page


  • 0.1

    This is the initial version. It provides a basic OPDS feed, tested with FBReader and CoolReader on Android. The feed can also be browsed using any Gecko-based browser (Firefox, Seamonkey et al).

    The current version of the app is, as stated, rather rudimentary. In a future version the app might be implemented as a 'remote' service. If this happens, the URL to access the feed will change. As it stands now I decided to keep it as simple as possible.




    LicenseAGPL
    All Versions
    Send to a friend
    Subscribe
    Other  Apps  from Yetanfou
    Report inappropriate content



    goto page: prev   1  2  3  4  5 

    -

     Direct Menu Breaks OPDS Catalog

     
     by stormsh on: Feb 24 2017
     
    Score 50%

    Hi, I'm still having the parser problem, but now I know the problem:
    I am using nc 11.0.1 on ubuntu 14.04 with php 7.0.16. I had my opds catalog (0.8.2) on a different site but fused them together just now. As soon as I activate Direct menu, the opds catalog becomes inaccessable. No way back but loading a db backup.
    The error is an xml parser error. The line differs between somewhat in the 80 to 98.

    > XML-Verarbeitungsfehler: Nicht ├╝bereinstimmendes Tag. Erwartet: .
    Adresse: https://mydomain.de/apps/files_opds/
    Zeile Nr. 88, Spalte 8:

    I don't know in which file the parser error appears. The opds catalog doesn't have a menu entry. You have to menually add the url to get there. Which might be the problem. I don't know.
    I had that problem before but couldn't pin it to direkt menu until now.
    Thx 4 F1.
    st.


    Reply to this

    -

     Re: Direct Menu Breaks OPDS Catalog

     
     by Yetanfou on: Feb 24 2017
     
    Score 50%

    Are you using NC or OC? In your previous message you said OC 9.0.1, in this one you mention NC 11.0.1.

    You mention Direct menu, I assume that is an app you're using? OPDS Catalog does not have (nor need) an entry in the menu so Direct menu should not be bothered by it yet it seems to be. This points to Direct menu being involved in some way. Maybe it chokes on the extra (NC-specific) info in info.xml?

    There should never be any need to restore the database due to OPDS Catalog as it does not modify anything outside of its own table (*PREFIX*_opds_metadata). If OC/NC refuses to work due to the presence of a given app you can always disable that app using occ (occ app:disable name_of_app) or, should that fail, simply move the app directory out of the OC/NC tree. You can also manually disable apps by setting their status to disabled in the database:

    update *PREFIX*_appconfig set configvalue='no' where appid='name_of_app' and configkey='enabled';

    (command valid for PostgreSQL, MySQL might want the table and column names enclosed in backticks (`like_this`)).


    Reply to this

    -

     Re: Re: Direct Menu Breaks OPDS Catalog

     
     by stormsh on: Feb 24 2017
     
    Score 50%

    Hi, well I had this problem with owncloud. Now I have it with Nextcloud.
    As soon as I activate the Direct Menu app, the OPDS catalog stops working.
    When I deactivate the Direct Menu app, OPDS catalog won't start working again. If I knew where the problem was (besides from not using Direct Menu) I would give you more info.
    But I asked the same question in the Direct Menu on Github, maybe he knows whats up...

    Thx.

    st.


    Reply to this

    -

     Re: Re: Re: Direct Menu Breaks OPDS Catalog

     
     by Yetanfou on: Feb 24 2017
     
    Score 50%

    I'll have a look at Direct menu to see where things go wrong.


    Reply to this

    -

     Re: Re: Re: Re: Direct Menu Breaks OPDS Catalog

     
     by Yetanfou on: Feb 24 2017
     
    Score 50%

    See my response on the Direct menu issues page:

    https://github.com/juliushaertl/direct_menu/issues/56#issuecomment-282282606


    Reply to this

    -

     Re: Re: Re: Direct Menu Breaks OPDS Catalog

     
     by Yetanfou on: Feb 24 2017
     
    Score 50%

    I just tested Direct menu (0.9.2) on Nexctcloud (11.0.0) with OPDS Catalog (0.8.2).

    It works for me. No problems, the catalog is working as it should.

    Direct menu is not much of an app, all it does is change the style sheet for the main menu, nothing more. OPDS Catalog does not use style sheets (other than for the personal and admin menus but those are served directly by the app) so there is not much that the one can do to interfere with the other.

    In other words, your problem most likely lies elsewhere - not in OPDS Catalog, nor in Direct menu.


    Reply to this

    -

     Re: Re: Re: Re: Direct Menu Breaks OPDS Catalog

     
     by stormsh on: Feb 25 2017
     
    Score 50%

    Ok thank you very much for looking into this. But believe me I wouldn't bother you with this if I couldn't reproduce this.
    So no direct menu for me ;)
    Thank you again for OPDS.
    st.


    Reply to this

    goto page: prev   1  2  3  4  5 

    Add commentBack




    -
     
     Who we are
    Contact
    Register
    Explore
    Apps
    Knowledge
    People
    Participate
    Add App
    Public API
    About apps.ownCloud.com
    Legal Notice
    Report Abuse
     

    Copyright 2011-2017 apps.ownCloud.com Team  
    All rights reserved. apps.ownCloud.com is not liable for any content or goods on this site.
    All contributors are responsible for the lawfulness of their uploads.