From 0d96eb08a43d7a18282aa68496728a93dcaebb0a Mon Sep 17 00:00:00 2001 From: frankdelange Date: Fri, 9 Jan 2015 23:49:26 +0100 Subject: [PATCH] files_opds: add option to schedule metadata rescan, bumped version to v0.6.1, new dist file --- README.md | 2 +- dist/files_opds-0.6.1.tar.gz | Bin 0 -> 47895 bytes files_opds/ajax/schedule_rescan.php | 21 +++++++++++++++++++++ files_opds/appinfo/info.xml | 2 +- files_opds/js/personal.js | 18 ++++++++++++++++++ files_opds/lib/meta.php | 11 +++++++++++ files_opds/templates/personal.php | 7 +++++++ 7 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 dist/files_opds-0.6.1.tar.gz create mode 100644 files_opds/ajax/schedule_rescan.php diff --git a/README.md b/README.md index 0d1d22b..ac1f668 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ The OPDS root feed links to a hierarchical navigation feed mirroring the directo 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, set the feed root directory (the default is /Library), enter a comma-delimited 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 comma-delimited list of filenames to skip (default is 'metadata.opf,cover.jpg') and clear the personal bookshelf. +In the personal settings page there are options to enable/disable the feed (it is disabled by default), set the feed title, set the feed root directory (the default is /Library), enter a comma-delimited 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 comma-delimited list of filenames to skip (default is 'metadata.opf,cover.jpg'), schedule a rescan of all metadata and clear the personal bookshelf. The admin settings page contains options to set the feed subtitle, change file preview preferences (which should probably be in core or in a separate app as this changes a system-wide setting ('enabledPreviewProviders')) and change the cover image and thumbnail dimensions. diff --git a/dist/files_opds-0.6.1.tar.gz b/dist/files_opds-0.6.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..eebb5bf1a585b591a8f2c8d80adfcf413d0c409f GIT binary patch literal 47895 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 array( "message" => $l->t("Rescan scheduled")))); diff --git a/files_opds/appinfo/info.xml b/files_opds/appinfo/info.xml index c1dbc41..6ad7f88 100644 --- a/files_opds/appinfo/info.xml +++ b/files_opds/appinfo/info.xml @@ -4,7 +4,7 @@ OPDS catalog Personal OPDS catalog AGPL - 0.6.0 + 0.6.1 Frank de Lange 7.0 true diff --git a/files_opds/js/personal.js b/files_opds/js/personal.js index a897f4c..73c0992 100644 --- a/files_opds/js/personal.js +++ b/files_opds/js/personal.js @@ -17,6 +17,24 @@ $(document).ready(function(){ $('#opds-really-clear-bookshelf,#opds-dont-clear-bookshelf').hide(); }); + // schedule rescan + $('#opds-rescan').on("click", function() { + $('#opds-really-rescan,#opds-dont-rescan').show(); + }); + $('#opds-dont-rescan').on("click", function() { + $('#opds-really-rescan,#opds-dont-rescan').hide(); + }); + $('#opds-really-rescan').on("click", function() { + $.post(OC.filePath('files_opds','ajax','schedule_rescan.php'), {}, + function(result){ + if(result) { + OC.msg.finishedSaving('#opds-personal .scn', result); + } + }); + $('#opds-really-rescan,#opds-dont-rescan').hide(); + }); + + // save settings var opdsSettings = { save : function() { diff --git a/files_opds/lib/meta.php b/files_opds/lib/meta.php index 540972e..f878674 100644 --- a/files_opds/lib/meta.php +++ b/files_opds/lib/meta.php @@ -141,6 +141,17 @@ class Meta return $meta; } + /** + * @brief schedule rescan of metadata + * + */ + public static function rescan() { + $sql = "UPDATE *PREFIX*opds_metadata SET `rescan`=?"; + $args = array(date("Y-m-d H:i:s")); + $query = \OCP\DB::prepare($sql); + $result = $query->execute($args); + } + /** * @brief scan files for metadata * diff --git a/files_opds/templates/personal.php b/files_opds/templates/personal.php index 75ea30c..7475034 100644 --- a/files_opds/templates/personal.php +++ b/files_opds/templates/personal.php @@ -38,6 +38,13 @@
+
+ + " value=" t('Yes, I really want to schedule a rescan of all metadata')); ?>" hidden /> + + +
+
" value=" t('Yes, I really want to clear my personal bookshelf')); ?>" hidden />