1
0
Fork 0
mirror of https://github.com/Yetangitu/owncloud-apps.git synced 2025-10-02 14:49:17 +02:00

files_opds: fix #23, XML error after deleting an epub file from Library

This commit is contained in:
frankdelange 2017-01-09 23:43:56 +01:00
parent 1106d835f7
commit 129b600f69
3 changed files with 34 additions and 2 deletions

View file

@ -11,7 +11,7 @@
The feed is in compliance with the OPDS 1.1 specification according to the online OPDS validator (http://opds-validator.appspot.com/).
</description>
<licence>AGPL</licence>
<version>0.7.2</version>
<version>0.7.3</version>
<author>Frank de Lange</author>
<category>tools</category>
<category>files</category>

View file

@ -33,6 +33,19 @@ class Bookshelf
Config::set('bookshelf', json_encode($bookshelf));
}
/**
* @brief remove book from personal bookshelf
*
* @param int $id book to remove from bookshelf
*/
public static function remove($id) {
$bookshelf = json_decode(Config::get('bookshelf', ''), true);
if(isset($bookshelf[$id])) {
unset($bookshelf[$id]);
Config::set('bookshelf', json_encode($bookshelf));
}
}
/**
* @brief clear personal bookshelf
*/
@ -58,7 +71,12 @@ class Bookshelf
if($bookshelf = json_decode(Config::get('bookshelf', ''), true)) {
arsort($bookshelf);
while (list($id, $time) = each($bookshelf)) {
array_push($files, \OC\Files\Filesystem::getFileInfo(\OC\Files\Filesystem::normalizePath(\OC\Files\Filesystem::getPath($id))));
try {
array_push($files, \OC\Files\Filesystem::getFileInfo(\OC\Files\Filesystem::normalizePath(\OC\Files\Filesystem::getPath($id))));
} catch(\OCP\Files\NotFoundException $e) {
self::remove($id);
Meta::remove($id);
}
}
}

View file

@ -141,6 +141,20 @@ class Meta
return $meta;
}
/**
* @brief remove metadata for fileid
*
* @param int $id fileif
* @return OC_DB_StatementWrapper
*/
public static function remove($id) {
$sql = "DELETE FROM *PREFIX*opds_metadata WHERE `id`=?";
$args = array($id);
$query = \OCP\DB::prepare($sql);
return $query->execute($args);
}
/**
* @brief schedule rescan of metadata
*