mirror of
https://github.com/Yetangitu/owncloud-apps.git
synced 2025-10-02 14:49:17 +02:00
Add fixes from @manvalls
This commit is contained in:
parent
0678c795e2
commit
f86c35f890
36 changed files with 181 additions and 135 deletions
6
.directory
Normal file
6
.directory
Normal file
|
@ -0,0 +1,6 @@
|
|||
[Dolphin]
|
||||
Timestamp=2019,11,25,12,16,0
|
||||
Version=4
|
||||
|
||||
[Settings]
|
||||
HiddenFilesShown=true
|
BIN
dist/files_opds-1.2.3-patched-4-NC.tar.gz
vendored
Normal file
BIN
dist/files_opds-1.2.3-patched-4-NC.tar.gz
vendored
Normal file
Binary file not shown.
BIN
dist/files_opds-1.2.3-patched-4-OC.tar.gz
vendored
Normal file
BIN
dist/files_opds-1.2.3-patched-4-OC.tar.gz
vendored
Normal file
Binary file not shown.
BIN
dist/files_opds-1.2.3-patched-5-NC.tar.gz
vendored
Normal file
BIN
dist/files_opds-1.2.3-patched-5-NC.tar.gz
vendored
Normal file
Binary file not shown.
BIN
dist/files_opds-1.2.3-patched-5-OC.tar.gz
vendored
Normal file
BIN
dist/files_opds-1.2.3-patched-5-OC.tar.gz
vendored
Normal file
Binary file not shown.
BIN
dist/files_reader-1.2.3-patched-4-NC.tar.gz
vendored
Normal file
BIN
dist/files_reader-1.2.3-patched-4-NC.tar.gz
vendored
Normal file
Binary file not shown.
BIN
dist/files_reader-1.2.3-patched-4-OC.tar.gz
vendored
Normal file
BIN
dist/files_reader-1.2.3-patched-4-OC.tar.gz
vendored
Normal file
Binary file not shown.
BIN
dist/files_reader-1.2.3-patched-5-NC.tar.gz
vendored
Normal file
BIN
dist/files_reader-1.2.3-patched-5-NC.tar.gz
vendored
Normal file
Binary file not shown.
BIN
dist/files_reader-1.2.3-patched-5-OC.tar.gz
vendored
Normal file
BIN
dist/files_reader-1.2.3-patched-5-OC.tar.gz
vendored
Normal file
Binary file not shown.
BIN
dist/files_reader-1.2.3-patched-NC.tar.gz
vendored
Normal file
BIN
dist/files_reader-1.2.3-patched-NC.tar.gz
vendored
Normal file
Binary file not shown.
|
@ -12,8 +12,8 @@
|
|||
|
||||
namespace OCA\Files_Opds;
|
||||
|
||||
\OCP\JSON::callCheck();
|
||||
\OCP\JSON::checkLoggedIn();
|
||||
\OC_JSON::callCheck();
|
||||
\OC_JSON::checkLoggedIn();
|
||||
$defaults = new \OC_Defaults();
|
||||
|
||||
$l = \OC::$server->getL10N('files_opds');
|
||||
|
@ -53,11 +53,10 @@ if (isset($_POST['opdsCoverX'])) {
|
|||
Config::setPreview('OC\Preview\MSOffice2007',$opdsPreviewMsOffice);
|
||||
}
|
||||
|
||||
\OCP\JSON::success(
|
||||
\OC_JSON::success(
|
||||
array(
|
||||
'data' => array('message'=> $l->t('Settings updated successfully.'))
|
||||
)
|
||||
);
|
||||
|
||||
exit();
|
||||
|
||||
|
|
|
@ -14,8 +14,8 @@ namespace OCA\Files_Opds;
|
|||
|
||||
$l = \OC::$server->getL10N('files_opds');
|
||||
|
||||
\OCP\JSON::checkLoggedIn();
|
||||
\OCP\JSON::callCheck();
|
||||
\OC_JSON::checkLoggedIn();
|
||||
\OC_JSON::callCheck();
|
||||
|
||||
Bookshelf::clear();
|
||||
\OCP\JSON::success(array( "data" => array( "message" => $l->t("Bookshelf cleared"))));
|
||||
\OC_JSON::success(array( "data" => array( "message" => $l->t("Bookshelf cleared"))));
|
||||
|
|
|
@ -12,8 +12,8 @@
|
|||
|
||||
namespace OCA\Files_Opds;
|
||||
|
||||
\OCP\JSON::callCheck();
|
||||
\OCP\JSON::checkLoggedIn();
|
||||
\OC_JSON::callCheck();
|
||||
\OC_JSON::checkLoggedIn();
|
||||
|
||||
$l = \OC::$server->getL10N('files_opds');
|
||||
|
||||
|
@ -21,25 +21,27 @@ $opdsEnable = isset($_POST['opdsEnable']) ? $_POST['opdsEnable'] : 'false';
|
|||
$rootPath = isset($_POST['rootPath']) ? $_POST['rootPath'] : '/Library';
|
||||
$fileTypes = isset($_POST['fileTypes']) ? $_POST['fileTypes'] : '';
|
||||
$skipList = isset($_POST['skipList']) ? $_POST['skipList'] : 'metadata.opf,cover.jpg';
|
||||
$feedTitle = isset($_POST['feedTitle']) ? $_POST['feedTitle'] : $l->t("%s's Library", \OCP\User::getDisplayName());
|
||||
$feedTitle = isset($_POST['feedTitle']) ? $_POST['feedTitle'] : $l->t("%s's Library", \OC_User::getDisplayName());
|
||||
$opdsoldMime = isset($_POST['opdsoldMime']) ? $_POST['opdsoldMime'] : '';
|
||||
|
||||
if (!strlen($rootPath) ||
|
||||
\OC\Files\Filesystem::isValidPath($rootPath) === false ||
|
||||
\OC\Files\Filesystem::isValidPath($rootPath) === false ||
|
||||
\OC\Files\Filesystem::file_exists($rootPath) === false ) {
|
||||
\OCP\JSON::error(
|
||||
\OC_JSON::error(
|
||||
array(
|
||||
'data' => array('message'=> $l->t('Directory does not exist!'))
|
||||
)
|
||||
);
|
||||
} else {
|
||||
Config::set('root_path', $rootPath);
|
||||
Config::set('enable', $opdsEnable);
|
||||
Config::set('file_types', $fileTypes);
|
||||
Config::set('skip_list', $skipList);
|
||||
Config::set('feed_title', $feedTitle);
|
||||
Config::set('enable', $opdsEnable);
|
||||
Config::set('file_types', $fileTypes);
|
||||
Config::set('skip_list', $skipList);
|
||||
Config::set('feed_title', $feedTitle);
|
||||
Config::set('old_mime', $opdsoldMime);
|
||||
Config::set('id', Util::genUuid());
|
||||
|
||||
\OCP\JSON::success(
|
||||
\OC_JSON::success(
|
||||
array(
|
||||
'data' => array('message'=> $l->t('Settings updated successfully.'))
|
||||
)
|
||||
|
@ -47,4 +49,3 @@ if (!strlen($rootPath) ||
|
|||
}
|
||||
|
||||
exit();
|
||||
|
||||
|
|
|
@ -14,8 +14,8 @@ namespace OCA\Files_Opds;
|
|||
|
||||
$l = \OC::$server->getL10N('files_opds');
|
||||
|
||||
\OCP\JSON::checkLoggedIn();
|
||||
\OCP\JSON::callCheck();
|
||||
\OC_JSON::checkLoggedIn();
|
||||
\OC_JSON::callCheck();
|
||||
|
||||
Meta::rescan();
|
||||
\OCP\JSON::success(array( "data" => array( "message" => $l->t("Rescan scheduled"))));
|
||||
\OC_JSON::success(array( "data" => array( "message" => $l->t("Rescan scheduled"))));
|
||||
|
|
|
@ -37,7 +37,7 @@ See [README] for more information on (mis)features of this app.
|
|||
<database>sqlite</database>
|
||||
<database>mysql</database>
|
||||
<owncloud min-version="8.2" max-version="10.0" />
|
||||
<nextcloud min-version="8.1" max-version="13.0" />
|
||||
<nextcloud min-version="8.1" max-version="14.0" />
|
||||
</dependencies>
|
||||
<settings>
|
||||
<admin>OCA\Files_Opds\Settings\Admin</admin>
|
||||
|
|
|
@ -39,8 +39,10 @@ $(document).ready(function(){
|
|||
var opdsSettings = {
|
||||
save : function() {
|
||||
var opdsEnable = document.getElementById('opds-enable').checked ? 'true' : 'false';
|
||||
var opdsoldMime = document.getElementById('opds-oldmime').checked ? 'true' : 'false';
|
||||
var data = {
|
||||
opdsEnable : opdsEnable,
|
||||
opdsoldMime : opdsoldMime,
|
||||
rootPath : $('#opds-root-path').val(),
|
||||
fileTypes : $('#opds-file-types').val(),
|
||||
skipList : $('#opds-skip-list').val(),
|
||||
|
@ -61,5 +63,6 @@ $(document).ready(function(){
|
|||
}
|
||||
});
|
||||
$('#opds-enable').on("change", opdsSettings.save);
|
||||
$('#opds-oldmime').on("change", opdsSettings.save);
|
||||
});
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ class Config
|
|||
* @return string retrieved value or default
|
||||
*/
|
||||
public static function get($key, $default) {
|
||||
return \OCP\Config::getUserValue(\OCP\User::getUser(), 'files_opds', $key, $default);
|
||||
return \OC::$server->getConfig()->getUserValue(\OC::$server->getUserSession()->getUser()->getUID(), 'files_opds', $key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -36,7 +36,7 @@ class Config
|
|||
* @return bool success
|
||||
*/
|
||||
public static function set($key, $value) {
|
||||
return \OCP\Config::setUserValue(\OCP\User::getUser(), 'files_opds', $key, $value);
|
||||
return \OC::$server->getConfig()->setUserValue(\OC::$server->getUserSession()->getUser()->getUID(), 'files_opds', $key, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -47,7 +47,7 @@ class Config
|
|||
* @return string retrieved value or default
|
||||
*/
|
||||
public static function getApp($key, $default) {
|
||||
return \OCP\Config::getAppValue('files_opds', $key, $default);
|
||||
return \OC::$server->getConfig()->getAppValue('files_opds', $key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -58,17 +58,17 @@ class Config
|
|||
* @return bool success
|
||||
*/
|
||||
public static function setApp($key, $value) {
|
||||
return \OCP\Config::setAppValue('files_opds', $key, $value);
|
||||
return \OC::$server->getConfig()->setAppValue('files_opds', $key, $value);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief get preview status
|
||||
*
|
||||
*
|
||||
* @param string format
|
||||
* @return bool (true = enabled, false = disabled)
|
||||
*/
|
||||
public static function getPreview($format) {
|
||||
$enablePreviewProviders = \OCP\Config::getSystemValue('enabledPreviewProviders', null);
|
||||
$enablePreviewProviders = \OC::$server->getConfig()->getSystemValue('enabledPreviewProviders', null);
|
||||
if (!($enablePreviewProviders === null)) {
|
||||
return in_array($format, $enablePreviewProviders);
|
||||
}
|
||||
|
@ -83,7 +83,7 @@ class Config
|
|||
* @return bool
|
||||
*/
|
||||
public static function setPreview($format, $enable = 'false') {
|
||||
$enablePreviewProviders = \OCP\Config::getSystemValue('enabledPreviewProviders', null);
|
||||
$enablePreviewProviders = \OC::$server->getConfig()->getSystemValue('enabledPreviewProviders', null);
|
||||
if ($enable == 'true') {
|
||||
if ($enablePreviewProviders === null) {
|
||||
// set up default providers
|
||||
|
@ -103,7 +103,7 @@ class Config
|
|||
}
|
||||
}
|
||||
|
||||
if (!(\OCP\Config::setSystemValue('enabledPreviewProviders', $enablePreviewProviders))) {
|
||||
if (!(\OC::$server->getConfig()->setSystemValue('enabledPreviewProviders', $enablePreviewProviders))) {
|
||||
logWarn("Failed to enable " . $format . " preview provider (config.php readonly?)");
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ class Feed
|
|||
* @return string feed id
|
||||
*/
|
||||
public static function getFeedId() {
|
||||
return Config::get('id', '');
|
||||
return Config::get('id', '');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -66,8 +66,8 @@ class Feed
|
|||
$tmpl->assign('id', $id);
|
||||
$tmpl->assign('type', $type);
|
||||
$tmpl->assign('dir', $dir);
|
||||
$tmpl->assign('user', \OCP\User::getDisplayName());
|
||||
$tmpl->assign('feed_title', Config::get('feed_title',\OCP\User::getDisplayName() . "'s Library"));
|
||||
$tmpl->assign('user', \OC_User::getDisplayName());
|
||||
$tmpl->assign('feed_title', Config::get('feed_title',\OC_User::getDisplayName() . "'s Library"));
|
||||
$tmpl->assign('feed_subtitle', Config::getApp('feed_subtitle', $defaults->getName() . " OPDS catalog"));
|
||||
$tmpl->assign('feed_updated', time());
|
||||
$tmpl->printPage();
|
||||
|
|
|
@ -64,7 +64,7 @@ class Meta
|
|||
protected static function load($id) {
|
||||
$sql = 'SELECT * FROM `*PREFIX*opds_metadata` WHERE id = ?';
|
||||
$args = array($id);
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$query = \OC_DB::prepare($sql);
|
||||
$result = $query->execute($args);
|
||||
|
||||
return ($row = $result->fetchRow()) ? $row : false;
|
||||
|
@ -79,7 +79,7 @@ class Meta
|
|||
protected static function save($meta) {
|
||||
$sql = "SELECT `id` FROM *PREFIX*opds_metadata WHERE `id`=?";
|
||||
$args = array($meta['id']);
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$query = \OC_DB::prepare($sql);
|
||||
$result = $query->execute($args);
|
||||
$data = $result->fetchRow();
|
||||
if (isset($data['id'])) {
|
||||
|
@ -118,7 +118,7 @@ class Meta
|
|||
$meta['rescan']
|
||||
);
|
||||
}
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$query = \OC_DB::prepare($sql);
|
||||
|
||||
return $query->execute($args);
|
||||
}
|
||||
|
@ -150,7 +150,7 @@ class Meta
|
|||
public static function remove($id) {
|
||||
$sql = "DELETE FROM *PREFIX*opds_metadata WHERE `id`=?";
|
||||
$args = array($id);
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$query = \OC_DB::prepare($sql);
|
||||
|
||||
return $query->execute($args);
|
||||
}
|
||||
|
@ -162,7 +162,7 @@ class Meta
|
|||
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);
|
||||
$query = \OC_DB::prepare($sql);
|
||||
$result = $query->execute($args);
|
||||
}
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ class Util
|
|||
*/
|
||||
public static function genUuid() {
|
||||
$defaults = new \OC_Defaults();
|
||||
$hash = md5(\OCP\User::getDisplayName() . $defaults->getBaseUrl());
|
||||
$hash = md5(\OC_User::getDisplayName() . $defaults->getBaseUrl());
|
||||
$hash = substr($hash, 0, 8 ) .'-'.
|
||||
substr($hash, 8, 4) .'-3'.
|
||||
substr($hash, 13, 3) .'-9'.
|
||||
|
|
|
@ -18,14 +18,17 @@ $l = \OC::$server->getL10N('files_opds');
|
|||
|
||||
$tmpl = new \OCP\Template('files_opds', 'personal');
|
||||
$opdsEnable = Config::get('enable', false);
|
||||
$opdsoldMime = Config::get('old_mime', false);
|
||||
$tmpl->assign('opdsEnable-checked', ($opdsEnable === 'true') ? 'checked="checked"' : '');
|
||||
$tmpl->assign('opdsEnable-value', ($opdsEnable === 'true') ? '1' : '0');
|
||||
$tmpl->assign('rootPath', Config::get('root_path', '/Library'));
|
||||
$tmpl->assign('fileTypes', Config::get('file_types', ''));
|
||||
$tmpl->assign('skipList', Config::get('skip_list', 'metadata.opf,cover.jpg'));
|
||||
$tmpl->assign('feedTitle', Config::get('feed_title', $l->t("%s's Library", \OCP\User::getDisplayName())));
|
||||
$tmpl->assign('feedTitle', Config::get('feed_title', $l->t("%s's Library", \OC_User::getDisplayName())));
|
||||
$tmpl->assign('bookshelf-count', Bookshelf::count());
|
||||
$tmpl->assign('feedUrl', Util::linkToAbsolute('','index.php') . '/apps/files_opds/');
|
||||
$tmpl->assign('opdsoldMime-checked', ($opdsoldMime === 'true') ? 'checked="checked"' : '');
|
||||
$tmpl->assign('opdsoldMime-value', ($opdsoldMime === 'true') ? '1' : '0');
|
||||
|
||||
return $tmpl->fetchPage();
|
||||
|
||||
|
|
|
@ -48,7 +48,9 @@ switch ($_['type']) {
|
|||
|
||||
case 'bookshelf':
|
||||
foreach ($_['bookshelf'] as $file) {
|
||||
print_unescaped($this->inc('part.feed.acquisition', [ 'file' => $file ]));
|
||||
foreach( $file as $key => $value )
|
||||
$newfile["file_".$key] = $value;
|
||||
print_unescaped($this->inc('part.feed.acquisition', $newfile ));
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -60,10 +62,13 @@ switch ($_['type']) {
|
|||
case 'directory':
|
||||
default:
|
||||
foreach ($_['files'] as $file) {
|
||||
foreach( $file as $key => $value )
|
||||
$newfile["file_".$key] = $value;
|
||||
|
||||
if ($file['type'] == 'dir') {
|
||||
print_unescaped($this->inc('part.feed.navigation', [ 'file' => $file ]));
|
||||
print_unescaped($this->inc('part.feed.navigation', $newfile ));
|
||||
} else {
|
||||
print_unescaped($this->inc('part.feed.acquisition', [ 'file' => $file ]));
|
||||
print_unescaped($this->inc('part.feed.acquisition', $newfile ));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -1,38 +1,47 @@
|
|||
<entry>
|
||||
<title><?php p($_['file']['meta']['title']); ?></title>
|
||||
<updated><?php p(date("Y-m-d\TH:i:sP",strtotime($_['file']['meta']['updated']))); ?></updated>
|
||||
<id>id:<?php p($_['file']['id']); ?></id>
|
||||
<dcterms:extent><?php p($_['file']['humansize']); ?></dcterms:extent>
|
||||
<?php $authors = json_decode($_['file']['meta']['author'],true); if(is_array($authors)): foreach ($authors as $author): ?>
|
||||
<?php
|
||||
namespace OCA\Files_Opds;
|
||||
|
||||
if ( Config::get('old_mime', 'false') !== 'false' && strpos($_['file_mimetype'],'comicbook') !== false){
|
||||
$mime = 'application/x-cbr';
|
||||
} else {
|
||||
$mime = $_['file_mimetype'];
|
||||
}
|
||||
?>
|
||||
<entry>
|
||||
<title><?php p($_['file_meta']['title']); ?></title>
|
||||
<updated><?php p(date("Y-m-d\TH:i:sP",strtotime($_['file_meta']['updated']))); ?></updated>
|
||||
<id>id:<?php p($_['file_id']); ?></id>
|
||||
<dcterms:extent><?php p($_['file_humansize']); ?></dcterms:extent>
|
||||
<?php $authors = json_decode($_['file_meta']['author'],true); if(is_array($authors)): foreach ($authors as $author): ?>
|
||||
<author>
|
||||
<name><?php p($author); ?></name>
|
||||
</author>
|
||||
<?php endforeach; endif; ?>
|
||||
<?php if($_['file']['meta']['isbn']): ?>
|
||||
<dc:identifier>urn:isbn:<?php p($_['file']['meta']['isbn']); ?></dc:identifier>
|
||||
<?php if($_['file_meta']['isbn']): ?>
|
||||
<dc:identifier>urn:isbn:<?php p($_['file_meta']['isbn']); ?></dc:identifier>
|
||||
<?php endif; ?>
|
||||
<?php if($_['file']['meta']['publisher']): ?>
|
||||
<dc:publisher><?php p($_['file']['meta']['publisher']); ?></dc:publisher>
|
||||
<?php if($_['file_meta']['publisher']): ?>
|
||||
<dc:publisher><?php p($_['file_meta']['publisher']); ?></dc:publisher>
|
||||
<?php endif; ?>
|
||||
<?php if($_['file']['meta']['language']): ?>
|
||||
<dc:language><?php p($_['file']['meta']['language']); ?></dc:language>
|
||||
<?php if($_['file_meta']['language']): ?>
|
||||
<dc:language><?php p($_['file_meta']['language']); ?></dc:language>
|
||||
<?php endif; ?>
|
||||
<dc:issued><?php p(date("Y-m-d\TH:i:sP",strtotime($_['file']['meta']['date']))); ?></dc:issued>
|
||||
<link type="<?php p($_['file']['mimetype']); ?>"
|
||||
<dc:issued><?php p(date("Y-m-d\TH:i:sP",strtotime($_['file_meta']['date']))); ?></dc:issued>
|
||||
<link type="<?php p($mime); ?>"
|
||||
rel="alternate"
|
||||
href="?id=<?php p($_['file']['id']); ?>"/>
|
||||
<link type="<?php p($_['file']['mimetype']); ?>"
|
||||
href="?id=<?php p($_['file_id']); ?>"/>
|
||||
<link type="<?php p($mime); ?>"
|
||||
rel="http://opds-spec.org/acquisition/open-access"
|
||||
href="?id=<?php p($_['file']['id']); ?>"/>
|
||||
<link href="?pid=<?php p($_['file']['id']); ?>"
|
||||
href="?id=<?php p($_['file_id']); ?>"/>
|
||||
<link href="?pid=<?php p($_['file_id']); ?>"
|
||||
rel="http://opds-spec.org/image"
|
||||
type="image/jpeg" />
|
||||
<link href="?tid=<?php p($_['file']['id']); ?>"
|
||||
<link href="?tid=<?php p($_['file_id']); ?>"
|
||||
rel="http://opds-spec.org/image/thumbnail"
|
||||
type="image/jpeg" />
|
||||
<?php if ($_['file']['meta']['description']): ?>
|
||||
<content type="text"><?php p($_['file']['meta']['description']); p("\n\n"); ?><?php p(formatMetadata($_['file']['humansize'],$_['file']['mimetype'],$_['file']['name'])); ?></content>
|
||||
<?php if ($_['file_meta']['description']): ?>
|
||||
<content type="text"><?php p($_['file_meta']['description']); p("\n\n"); ?><?php p(formatMetadata($_['file_humansize'],$mime,$_['file_name'])); ?></content>
|
||||
<?php else: ?>
|
||||
<summary type="text"><?php p(formatMetadata($_['file']['humansize'],$_['file']['mimetype'],$_['file']['name'])); ?></summary>
|
||||
<summary type="text"><?php p(formatMetadata($_['file_humansize'],$mime,$_['file_name'])); ?></summary>
|
||||
<?php endif; ?>
|
||||
</entry>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<entry>
|
||||
<title><?php p($_['file']['name']); ?></title>
|
||||
<updated><?php p(date("Y-m-d\TH:i:sP", $_['file']['mtime'])); ?></updated>
|
||||
<id>id:<?php p($_['file']['id']); ?></id>
|
||||
<title><?php p($_['file_name']); ?></title>
|
||||
<updated><?php p(date("Y-m-d\TH:i:sP", $_['file_mtime'])); ?></updated>
|
||||
<id>id:<?php p($_['file_id']); ?></id>
|
||||
<link type="application/atom+xml;profile=opds-catalog;kind=navigation"
|
||||
rel="alternate"
|
||||
href="?id=<?php p($_['file']['id']); ?>"/>
|
||||
href="?id=<?php p($_['file_id']); ?>"/>
|
||||
<link type="application/atom+xml;profile=opds-catalog;kind=navigation"
|
||||
rel="subsection"
|
||||
href="?id=<?php p($_['file']['id']); ?>"/>
|
||||
href="?id=<?php p($_['file_id']); ?>"/>
|
||||
<content type="text"></content>
|
||||
</entry>
|
||||
|
|
|
@ -23,7 +23,8 @@ style('files_opds', 'settings');
|
|||
</table>
|
||||
<div>
|
||||
<input id="opds-enable" name="opds-enable" value="<?php p($_['opdsEnable-value']) ?>" <?php p($_['opdsEnable-checked']) ?> type="checkbox" class="checkbox">
|
||||
<label for="opds-enable"><?php p($l->t('enable OPDS catalog')) ?></label>
|
||||
<label for="opds-enable"><?php p($l->t('enable OPDS catalog')) ?></label>
|
||||
|
||||
</div>
|
||||
<br>
|
||||
<table>
|
||||
|
@ -43,6 +44,10 @@ style('files_opds', 'settings');
|
|||
<td><label for="opds-skip-list"><?php p($l->t('Skip these filenames:')) ?></label></td>
|
||||
<td><input type="text" id="opds-skip-list" title="<?php p($l->t("Enter list of comma-separated file names which should be skipped. Leave blank to use the default skip list.")); ?>" value="<?php p($_['skipList']) ?>" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="opds-oldmime"><?php p($l->t('Use alternative Mimetypes for Comicbook:')) ?></label></td>
|
||||
<td><input id="opds-oldmime" name="opds-oldmime" value="<?php p($_['opdsoldMime-value']) ?>" <?php p($_['opdsoldMime-checked']) ?> type="checkbox" title="For example use application/x-cbr instead of application/comicbook+rar"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<div>
|
||||
|
|
|
@ -21,9 +21,9 @@ $EpubEnable = isset($_POST['EpubEnable']) ? $_POST['EpubEnable'] : 'false';
|
|||
$PdfEnable = isset($_POST['PdfEnable']) ? $_POST['PdfEnable'] : 'false';
|
||||
$CbxEnable = isset($_POST['CbxEnable']) ? $_POST['CbxEnable'] : 'false';
|
||||
|
||||
\OC::$server->getAppConfig()->setValue('files_reader', 'epub_enable', $EpubEnable);
|
||||
\OC::$server->getAppConfig()->setValue('files_reader', 'pdf_enable', $PdfEnable);
|
||||
\OC::$server->getAppConfig()->setValue('files_reader', 'cbx_enable', $CbxEnable);
|
||||
Config::set('epub_enable', $EpubEnable);
|
||||
Config::set('pdf_enable', $PdfEnable);
|
||||
Config::set('cbx_enable', $CbxEnable);
|
||||
|
||||
\OC_JSON::success(
|
||||
array(
|
||||
|
|
|
@ -30,7 +30,7 @@ See [README] for more exhaustive information on features and potential misfeatur
|
|||
[README]: https://github.com/Yetangitu/owncloud-apps/blob/master/files_reader/README.md
|
||||
]]>
|
||||
</description>
|
||||
<version>1.2.3</version>
|
||||
<version>1.3.0</version>
|
||||
<licence>AGPL</licence>
|
||||
<author>Frank de Lange</author>
|
||||
<documentation>
|
||||
|
@ -47,15 +47,7 @@ See [README] for more exhaustive information on features and potential misfeatur
|
|||
<category>files</category>
|
||||
<category>multimedia</category>
|
||||
<category>office</category>
|
||||
<types>
|
||||
<filesystem/>
|
||||
</types>
|
||||
<dependencies>
|
||||
<owncloud min-version="8.2" max-version="10.0" />
|
||||
<nextcloud min-version="8.1" max-version="14.0"/>
|
||||
<database>pgsql</database>
|
||||
<database>sqlite</database>
|
||||
<database>mysql</database>
|
||||
<nextcloud min-version="14" max-version="17"/>
|
||||
</dependencies>
|
||||
<ocsid>167127</ocsid>
|
||||
</info>
|
||||
|
|
|
@ -65,6 +65,8 @@
|
|||
$('.directDownload').show();
|
||||
}
|
||||
$('iframe').remove();
|
||||
$('body').off('focus.filesreader');
|
||||
$(window).off('popstate.filesreader');
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -73,10 +75,10 @@
|
|||
*/
|
||||
show: function(downloadUrl, mimeType, isFileList) {
|
||||
var self = this;
|
||||
var viewer = OC.generateUrl('/apps/files_reader/?file={file}&type={type}', {file: downloadUrl, type: mimeType});
|
||||
// launch in new window on mobile and touch devices...
|
||||
var viewer = OC.generateUrl('/apps/files_reader/?file={file}&type={type}', {file: downloadUrl, type: mimeType});
|
||||
// launch in new window on all devices
|
||||
window.open(viewer, downloadUrl);
|
||||
},
|
||||
},
|
||||
|
||||
/**
|
||||
* @param fileActions
|
||||
|
@ -84,6 +86,16 @@
|
|||
*/
|
||||
_extendFileActions: function(fileActions) {
|
||||
var self = this;
|
||||
var cbxMime = [
|
||||
'application/x-cbr',
|
||||
'application/comicbook+7z',
|
||||
'application/comicbook+ace',
|
||||
'application/comicbook+rar',
|
||||
'application/comicbook+tar',
|
||||
'application/comicbook+truecrypt',
|
||||
'application/comicbook+zip'
|
||||
];
|
||||
|
||||
fileActions.registerAction({
|
||||
name: 'view-epub',
|
||||
displayName: 'View',
|
||||
|
@ -93,15 +105,22 @@
|
|||
return actionHandler(fileName, 'application/epub+zip', context);
|
||||
}
|
||||
});
|
||||
fileActions.registerAction({
|
||||
name: 'view-cbr',
|
||||
displayName: 'View',
|
||||
mime: 'application/x-cbr',
|
||||
permissions: OC.PERMISSION_READ,
|
||||
actionHandler: function(fileName, context) {
|
||||
return actionHandler(fileName, 'application/x-cbr', context);
|
||||
}
|
||||
|
||||
cbxMime.forEach(function(mime, i){
|
||||
fileActions.registerAction({
|
||||
name: 'view-cbr-' + i,
|
||||
displayName: 'View',
|
||||
mime: mime,
|
||||
permissions: OC.PERMISSION_READ,
|
||||
actionHandler: function (fileName, context) {
|
||||
return actionHandler(fileName, 'application/x-cbr', context);
|
||||
}
|
||||
});
|
||||
|
||||
if (oc_appconfig.filesReader.enableCbx === 'true')
|
||||
fileActions.setDefault(mime, 'view-cbr-' + i);
|
||||
});
|
||||
|
||||
fileActions.registerAction({
|
||||
name: 'view-pdf',
|
||||
displayName: 'View',
|
||||
|
@ -114,8 +133,6 @@
|
|||
|
||||
if (oc_appconfig.filesReader.enableEpub === 'true')
|
||||
fileActions.setDefault('application/epub+zip', 'view-epub');
|
||||
if (oc_appconfig.filesReader.enableCbx === 'true')
|
||||
fileActions.setDefault('application/x-cbr', 'view-cbr');
|
||||
if (oc_appconfig.filesReader.enablePdf === 'true')
|
||||
fileActions.setDefault('application/pdf', 'view-pdf');
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ use \OC\User\User as User;
|
|||
class Hooks {
|
||||
|
||||
public static function register() {
|
||||
Util::connectHook('js', 'OCA\Files_Reader\Hooks', 'announce_settings');
|
||||
Util::connectHook('\OCP\Config', 'js', 'OCA\Files_Reader\Hooks', 'announce_settings');
|
||||
|
||||
\OC::$server->getRootFolder()->listen('\OC\Files', 'preDelete', function (Node $node) {
|
||||
$fileId = $node->getId();
|
||||
|
@ -38,9 +38,9 @@ class Hooks {
|
|||
// TODO: rmeove this when Owncloud starts encoding oc_appconfig as JSON just like it already encodes most other properties
|
||||
$isJson = self::isJson($settings['array']['oc_appconfig']);
|
||||
$array = ($isJson) ? json_decode($settings['array']['oc_appconfig'], true) : $settings['array']['oc_appconfig'];
|
||||
$array['filesReader']['enableEpub'] = \OC::$server->getConfig()->getAppValue('epub_enable', 'true');
|
||||
$array['filesReader']['enablePdf'] = \OC::$server->getConfig()->getAppValue('pdf_enable', 'true');
|
||||
$array['filesReader']['enableCbx'] = \OC::$server->getConfig()->getAppValue('cbx_enable', 'true');
|
||||
$array['filesReader']['enableEpub'] = Config::get('epub_enable', 'true');
|
||||
$array['filesReader']['enablePdf'] = Config::get('pdf_enable', 'true');
|
||||
$array['filesReader']['enableCbx'] = Config::get('cbx_enable', 'true');
|
||||
$settings['array']['oc_appconfig'] = ($isJson) ? json_encode($array) : $array;
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ class Config
|
|||
* @return string retrieved value or default
|
||||
*/
|
||||
public static function get($key, $default) {
|
||||
return \OCP\Config::getUserValue(\OCP\User::getUser(), 'files_reader', $key, $default);
|
||||
return \OC::$server->getConfig()->getUserValue(\OCP\User::getUser(), 'files_reader', $key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -36,7 +36,7 @@ class Config
|
|||
* @return bool success
|
||||
*/
|
||||
public static function set($key, $value) {
|
||||
return \OCP\Config::setUserValue(\OCP\User::getUser(), 'files_reader', $key, $value);
|
||||
return \OC::$server->getConfig()->setUserValue(\OCP\User::getUser(), 'files_reader', $key, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -47,7 +47,7 @@ class Config
|
|||
* @return string retrieved value or default
|
||||
*/
|
||||
public static function getApp($key, $default) {
|
||||
return \OCP\Config::getAppValue('files_reader', $key, $default);
|
||||
return \OC::$server->getConfig()->getAppValue('files_reader', $key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -58,6 +58,6 @@ class Config
|
|||
* @return bool success
|
||||
*/
|
||||
public static function setApp($key, $value) {
|
||||
return \OCP\Config::setAppValue('files_reader', $key, $value);
|
||||
return \OC::$server->getConfig()->setAppValue('files_reader', $key, $value);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,9 +15,9 @@ use OCP\Util;
|
|||
#$l = \OC::$server->getL10N('files_reader');
|
||||
|
||||
$tmpl = new \OCP\Template('files_reader', 'settings-personal');
|
||||
$EpubEnable = \OC::$server->getConfig()->getAppValue('epub_enable', 'true');
|
||||
$PdfEnable = \OC::$server->getConfig()->getAppValue('pdf_enable', 'true');
|
||||
$CbxEnable = \OC::$server->getConfig()->getAppValue('cbx_enable', 'true');
|
||||
$EpubEnable = Config::get('epub_enable', 'true');
|
||||
$PdfEnable = Config::get('pdf_enable', 'true');
|
||||
$CbxEnable = Config::get('cbx_enable', 'true');
|
||||
$tmpl->assign('EpubEnable', $EpubEnable);
|
||||
$tmpl->assign('PdfEnable', $PdfEnable);
|
||||
$tmpl->assign('CbxEnable', $CbxEnable);
|
||||
|
|
|
@ -36,9 +36,9 @@
|
|||
<title>
|
||||
<?php p($title);?>
|
||||
</title>
|
||||
<link rel="shortcut icon" href="img/book.png">
|
||||
<link rel="stylesheet" href="vendor/icomoon/style.css?v=<?php p($version) ?>">
|
||||
<link rel="stylesheet" href="vendor/cbrjs/css/cbr.css?v=<?php p($version) ?>">
|
||||
<link rel="shortcut icon" href="<?php p($urlGenerator->linkTo('files_reader', 'img/book.png')) ?>">
|
||||
<link rel="stylesheet" href="<?php p($urlGenerator->linkTo('files_reader', 'vendor/icomoon/style.css')) ?>?v=<?php p($version) ?>">
|
||||
<link rel="stylesheet" href="<?php p($urlGenerator->linkTo('files_reader', 'vendor/cbrjs/css/cbr.css')) ?>?v=<?php p($version) ?>">
|
||||
<script type="text/javascript" nonce="<?php p($nonce) ?>" src="<?php p($urlGenerator->linkTo('files_reader', 'js/lib/Blob.js')) ?>?v=<?php p($version) ?>"> </script>
|
||||
<script type="text/javascript" nonce="<?php p($nonce) ?>" src="<?php p($urlGenerator->linkTo('files_reader', 'vendor/epubjs/libs/jquery.min.js')) ?>?v=<?php p($version) ?>"> </script>
|
||||
<script type="text/javascript" nonce="<?php p($nonce) ?>" src="<?php p($urlGenerator->linkTo('files_reader', 'vendor/sindresorhus/screenfull.js')) ?>?v=<?php p($version) ?>"> </script>
|
||||
|
@ -109,7 +109,9 @@
|
|||
<!-- /toolbar -->
|
||||
|
||||
<!-- loading overlay -->
|
||||
<div id="cbr-loading-overlay" class="cbr-control control overlay" name="loadingOverlay" style="display:none"></div>
|
||||
<div id="cbr-loading-overlay" class="cbr-control control overlay" name="loadingOverlay" style="display:none">
|
||||
<img src="<?php p($urlGenerator->linkTo('files_reader', 'img/loading.gif')) ?>">
|
||||
</div>
|
||||
<!-- /loading overlay -->
|
||||
|
||||
<!-- busy overlay -->
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
<title>
|
||||
<?php p($title);?>
|
||||
</title>
|
||||
<link rel="shortcut icon" href="img/book.png">
|
||||
<link rel="shortcut icon" href="<?php p($urlGenerator->linkTo('files_reader', 'img/book.png')) ?>">
|
||||
<link rel="stylesheet" href="<?php p($urlGenerator->linkTo('files_reader', 'vendor/icomoon/style.css')) ?>?v=<?php p($version) ?>">
|
||||
<link rel="stylesheet" href="<?php p($urlGenerator->linkTo('files_reader', 'vendor/epubjs/css/main.css')) ?>?v=<?php p($version) ?>">
|
||||
<link rel="stylesheet" href="<?php p($urlGenerator->linkTo('files_reader', 'vendor/epubjs/css/sidebar.css')) ?>?v=<?php p($version) ?>">
|
||||
|
@ -155,7 +155,7 @@
|
|||
<div class="control-group">
|
||||
<input type="checkbox" id="use_custom_colors" name="use_custom_colors">
|
||||
<label for="use_custom_colors">
|
||||
Use custom colors
|
||||
Use custom colors
|
||||
</label>
|
||||
<div class="center-box">
|
||||
<input type="color" id="day_color" value="#0a0a0a">
|
||||
|
@ -209,7 +209,7 @@
|
|||
<div class="control-group">
|
||||
<input type="checkbox" id="touch_nav" name="touch_nav">
|
||||
<label for="touch_nav">
|
||||
disable extra-wide page turn areas
|
||||
disable extra-wide page turn areas
|
||||
</label>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
|
@ -283,7 +283,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div id="loader">
|
||||
<img src="img/loading.gif">
|
||||
<img src="<?php p($urlGenerator->linkTo('files_reader', 'img/loading.gif')) ?>">
|
||||
</div>
|
||||
|
||||
<!-- /navigation + viewer -->
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
<title>
|
||||
<?php p($title);?>
|
||||
</title>
|
||||
<link rel="shortcut icon" href="img/book.png">
|
||||
<link rel="shortcut icon" href="<?php p($urlGenerator->linkTo('files_reader', 'img/book.png')) ?>">
|
||||
<link rel="stylesheet" href="<?php p($urlGenerator->linkTo('files_reader', 'vendor/icomoon/style.css')) ?>?v=<?php p($version) ?>">
|
||||
<link rel="stylesheet" href="<?php p($urlGenerator->linkTo('files_reader', 'vendor/pdfjs/css/main.css')) ?>?v=<?php p($version) ?>">
|
||||
<link rel="stylesheet" href="<?php p($urlGenerator->linkTo('files_reader', 'vendor/pdfjs/css/sidebar.css')) ?>?v=<?php p($version) ?>">
|
||||
|
@ -113,7 +113,7 @@
|
|||
<ul id="outline" class="outline">
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- currently not used
|
||||
<div id="notesView" class="notes-view view">
|
||||
<div>
|
||||
|
@ -183,7 +183,7 @@
|
|||
<div class="control-group">
|
||||
<input type="checkbox" id="touch_nav" name="touch_nav">
|
||||
<label for="touch_nav">
|
||||
disable extra-wide page turn areas
|
||||
disable extra-wide page turn areas
|
||||
</label>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
|
@ -310,7 +310,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div id="loader">
|
||||
<img src="img/loading.gif">
|
||||
<img src="<?php p($urlGenerator->linkTo('files_reader', 'img/loading.gif')) ?>">
|
||||
</div>
|
||||
|
||||
<!-- /navigation + viewer -->
|
||||
|
|
24
files_reader/vendor/cbrjs/cbr.js
vendored
24
files_reader/vendor/cbrjs/cbr.js
vendored
|
@ -50,7 +50,7 @@ CBRJS.Reader = function(bookPath, _options) {
|
|||
}
|
||||
|
||||
xhr.open('GET',url, true);
|
||||
|
||||
|
||||
options.start(filename);
|
||||
|
||||
xhr.responseType = "arraybuffer";
|
||||
|
@ -70,10 +70,10 @@ CBRJS.Reader = function(bookPath, _options) {
|
|||
reader.options.session.size = e.total;
|
||||
};
|
||||
|
||||
xhr.onload = function () {
|
||||
xhr.onload = function () {
|
||||
if ((this.status === 200) && this.response) {
|
||||
var done = false;
|
||||
var ua = new bitjs.archive[archive_class](this.response, 'vendor/bitjs/');
|
||||
var ua = new bitjs.archive[archive_class](this.response, document.head.dataset.basepath + 'vendor/bitjs/');
|
||||
|
||||
ua.addEventListener(bitjs.archive.UnarchiveEvent.Type.START, function (e) {
|
||||
$progressbar.css('width', '0%');
|
||||
|
@ -120,9 +120,9 @@ CBRJS.Reader = function(bookPath, _options) {
|
|||
$('.icon-unarchive').removeClass('active');
|
||||
$('.icon-unarchive').addClass('error');
|
||||
$('#message').text('Failed to extract images from archive, file corrupted?');
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
ua.start();
|
||||
};
|
||||
|
@ -261,7 +261,7 @@ ComicBook = (function ($) {
|
|||
thumbnails: true, // true / false (use thumbnails in index)
|
||||
thumbnailWidth: 200, // width of thumbnail
|
||||
sidebarWide: false, // use wide sidbar
|
||||
currentPage: 0, // current page
|
||||
currentPage: 0, // current page
|
||||
keyboard: {
|
||||
32: 'next', // space
|
||||
34: 'next', // page-down
|
||||
|
@ -276,7 +276,7 @@ ComicBook = (function ($) {
|
|||
70: 'toggleFullscreen', // f
|
||||
27: 'closeSidebar' // esc
|
||||
},
|
||||
vendorPath: 'vendor/',
|
||||
vendorPath: document.head.dataset.basepath + 'vendor/',
|
||||
forward_buffer: 3,
|
||||
session: {
|
||||
getCursor: function() {},
|
||||
|
@ -442,7 +442,7 @@ ComicBook = (function ($) {
|
|||
break;
|
||||
default:
|
||||
console.log("unknown enhancement: " + JSON.stringify(prop));
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -570,7 +570,7 @@ ComicBook = (function ($) {
|
|||
};
|
||||
|
||||
/**
|
||||
* Insert thumbnail into TOC
|
||||
* Insert thumbnail into TOC
|
||||
*/
|
||||
ComicBook.prototype.tocInsert = function (image, page, replace) {
|
||||
var placeholder = toc.children[page].firstChild;
|
||||
|
@ -578,7 +578,7 @@ ComicBook = (function ($) {
|
|||
placeholder.parentNode.replaceChild(
|
||||
self.getThumb(image),
|
||||
placeholder
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
toc.children[page].addEventListener('click', function (e) {
|
||||
|
@ -1407,7 +1407,7 @@ ComicBook = (function ($) {
|
|||
page = options.currentPage;
|
||||
}
|
||||
|
||||
document.getElementById('toc').parentNode.scrollTop =
|
||||
document.getElementById('toc').parentNode.scrollTop =
|
||||
document.getElementById('page-' + String(page + 1)).offsetTop
|
||||
- Math.floor($('.panels').height() * 1.5);
|
||||
};
|
||||
|
@ -1474,5 +1474,3 @@ ComicBook = (function ($) {
|
|||
}
|
||||
|
||||
})(window, jQuery);
|
||||
|
||||
|
||||
|
|
8
files_reader/vendor/cbrjs/css/cbr.css
vendored
8
files_reader/vendor/cbrjs/css/cbr.css
vendored
|
@ -116,7 +116,13 @@ body:not(.mobile) .navigate:hover {
|
|||
|
||||
#cbr-loading-overlay {
|
||||
z-index: 100;
|
||||
background: #000 url("img/loading.gif") no-repeat center;
|
||||
padding: 0;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
#cbr-loading-overlay > img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.overlay {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue