mirror of
https://github.com/Yetangitu/owncloud-apps.git
synced 2025-10-02 14:49:17 +02:00
files_opds: add FictionBook 2 (.fb2) preview provider
This commit is contained in:
parent
c73612586c
commit
574d7300bd
5 changed files with 60 additions and 1 deletions
|
@ -18,6 +18,7 @@ $defaults = new \OC_Defaults();
|
||||||
|
|
||||||
$formats = array(
|
$formats = array(
|
||||||
["epub" => Config::getPreview('OC\Preview\Epub') ? 1 : 0 ],
|
["epub" => Config::getPreview('OC\Preview\Epub') ? 1 : 0 ],
|
||||||
|
["fb2" => Config::getPreview('OC\Preview\FB2') ? 1 : 0 ],
|
||||||
["pdf" => Config::getPreview('OC\Preview\PDF') ? 1 : 0],
|
["pdf" => Config::getPreview('OC\Preview\PDF') ? 1 : 0],
|
||||||
["opendocument" => Config::getPreview('OC\Preview\OpenDocument') ? 1 : 0],
|
["opendocument" => Config::getPreview('OC\Preview\OpenDocument') ? 1 : 0],
|
||||||
["msoffice" => Config::getPreview('OC\Preview\MSOfficeDoc') ? 1 : 0]
|
["msoffice" => Config::getPreview('OC\Preview\MSOfficeDoc') ? 1 : 0]
|
||||||
|
|
|
@ -38,11 +38,13 @@ if (isset($_POST['opdsCoverX'])) {
|
||||||
} else {
|
} else {
|
||||||
// set preview preferences
|
// set preview preferences
|
||||||
$opdsPreviewEpub = $_POST['opdsPreviewEpub'];
|
$opdsPreviewEpub = $_POST['opdsPreviewEpub'];
|
||||||
|
$opdsPreviewFb2 = $_POST['opdsPreviewFb2'];
|
||||||
$opdsPreviewPdf = $_POST['opdsPreviewPdf'];
|
$opdsPreviewPdf = $_POST['opdsPreviewPdf'];
|
||||||
$opdsPreviewOpenDocument = $_POST['opdsPreviewOpenDocument'];
|
$opdsPreviewOpenDocument = $_POST['opdsPreviewOpenDocument'];
|
||||||
$opdsPreviewMsOffice = $_POST['opdsPreviewMsOffice'];
|
$opdsPreviewMsOffice = $_POST['opdsPreviewMsOffice'];
|
||||||
|
|
||||||
Config::setPreview('OC\Preview\Epub',$opdsPreviewEpub);
|
Config::setPreview('OC\Preview\Epub',$opdsPreviewEpub);
|
||||||
|
Config::setPreview('OC\Preview\FB2',$opdsPreviewFb2);
|
||||||
Config::setPreview('OC\Preview\PDF',$opdsPreviewPdf);
|
Config::setPreview('OC\Preview\PDF',$opdsPreviewPdf);
|
||||||
Config::setPreview('OC\Preview\OpenDocument',$opdsPreviewOpenDocument);
|
Config::setPreview('OC\Preview\OpenDocument',$opdsPreviewOpenDocument);
|
||||||
Config::setPreview('OC\Preview\StarOffice',$opdsPreviewOpenDocument);
|
Config::setPreview('OC\Preview\StarOffice',$opdsPreviewOpenDocument);
|
||||||
|
|
|
@ -4,5 +4,6 @@ $l = \OC::$server->getL10N('files_opds');
|
||||||
\OCP\App::registerPersonal('files_opds', 'personal');
|
\OCP\App::registerPersonal('files_opds', 'personal');
|
||||||
\OCP\App::registerAdmin('files_opds', 'admin');
|
\OCP\App::registerAdmin('files_opds', 'admin');
|
||||||
|
|
||||||
/* register preview provider */
|
/* register preview providers */
|
||||||
\OC::$server->getPreviewManager()->registerProvider('/application\/epub\+zip/', function() { return new OCA\Files_Opds\EpubPreview; });
|
\OC::$server->getPreviewManager()->registerProvider('/application\/epub\+zip/', function() { return new OCA\Files_Opds\EpubPreview; });
|
||||||
|
\OC::$server->getPreviewManager()->registerProvider('/application\/x-fictionbook\+xml/', function() { return new OCA\Files_Opds\Fb2Preview; });
|
||||||
|
|
|
@ -3,11 +3,13 @@ $(document).ready(function(){
|
||||||
var opdsAdminSettings = {
|
var opdsAdminSettings = {
|
||||||
save : function() {
|
save : function() {
|
||||||
var epub = document.getElementById('opds-preview-epub').checked ? 'true' : 'false';
|
var epub = document.getElementById('opds-preview-epub').checked ? 'true' : 'false';
|
||||||
|
var fb2 = document.getElementById('opds-preview-fb2').checked ? 'true' : 'false';
|
||||||
var pdf = document.getElementById('opds-preview-pdf').checked ? 'true' : 'false';
|
var pdf = document.getElementById('opds-preview-pdf').checked ? 'true' : 'false';
|
||||||
var opendocument = document.getElementById('opds-preview-opendocument').checked ? 'true' : 'false';
|
var opendocument = document.getElementById('opds-preview-opendocument').checked ? 'true' : 'false';
|
||||||
var msoffice = document.getElementById('opds-preview-msoffice').checked ? 'true' : 'false';
|
var msoffice = document.getElementById('opds-preview-msoffice').checked ? 'true' : 'false';
|
||||||
var data = {
|
var data = {
|
||||||
opdsPreviewEpub : epub,
|
opdsPreviewEpub : epub,
|
||||||
|
opdsPreviewFb2 : fb2,
|
||||||
opdsPreviewPdf : pdf,
|
opdsPreviewPdf : pdf,
|
||||||
opdsPreviewOpenDocument : opendocument,
|
opdsPreviewOpenDocument : opendocument,
|
||||||
opdsPreviewMsOffice : msoffice
|
opdsPreviewMsOffice : msoffice
|
||||||
|
@ -40,6 +42,7 @@ $(document).ready(function(){
|
||||||
};
|
};
|
||||||
|
|
||||||
$('#opds-preview-epub').on("change", opdsAdminSettings.save);
|
$('#opds-preview-epub').on("change", opdsAdminSettings.save);
|
||||||
|
$('#opds-preview-fb2').on("change", opdsAdminSettings.save);
|
||||||
$('#opds-preview-pdf').on("change", opdsAdminSettings.save);
|
$('#opds-preview-pdf').on("change", opdsAdminSettings.save);
|
||||||
$('#opds-preview-opendocument').on("change", opdsAdminSettings.save);
|
$('#opds-preview-opendocument').on("change", opdsAdminSettings.save);
|
||||||
$('#opds-preview-msoffice').on("change", opdsAdminSettings.save);
|
$('#opds-preview-msoffice').on("change", opdsAdminSettings.save);
|
||||||
|
|
52
files_opds/lib/fb2preview.php
Normal file
52
files_opds/lib/fb2preview.php
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Nextcloud - Files_Opds App
|
||||||
|
*
|
||||||
|
* @author Frank de Lange
|
||||||
|
* @copyright 2016 Frank de Lange
|
||||||
|
*
|
||||||
|
* This file is licensed under the Affero General Public License version 3 or
|
||||||
|
* later.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace OCA\Files_Opds;
|
||||||
|
|
||||||
|
use OCP\Preview\IProvider;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* FB2 preview - returns cover or null
|
||||||
|
*/
|
||||||
|
class Fb2Preview implements IProvider {
|
||||||
|
|
||||||
|
public function getMimeType() {
|
||||||
|
return '/application\/x-fictionbook\+xml/';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
|
||||||
|
//get fileinfo
|
||||||
|
$fileInfo = $fileview->getFileInfo($path);
|
||||||
|
if(!$fileInfo) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$absPath = $fileview->toTmpFile($path);
|
||||||
|
|
||||||
|
$fb2 = new \OCA\Files_Opds\FB2($absPath);
|
||||||
|
|
||||||
|
$cover = $fb2->Cover();
|
||||||
|
|
||||||
|
if ($cover) {
|
||||||
|
$image = new \OC_Image();
|
||||||
|
|
||||||
|
$image->loadFromData($cover['data']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (($cover !== null) && $image->valid()) ? $image : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function isAvailable(\OCP\Files\FileInfo $file) {
|
||||||
|
return $file->getSize() > 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue