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(
|
||||
["epub" => Config::getPreview('OC\Preview\Epub') ? 1 : 0 ],
|
||||
["fb2" => Config::getPreview('OC\Preview\FB2') ? 1 : 0 ],
|
||||
["pdf" => Config::getPreview('OC\Preview\PDF') ? 1 : 0],
|
||||
["opendocument" => Config::getPreview('OC\Preview\OpenDocument') ? 1 : 0],
|
||||
["msoffice" => Config::getPreview('OC\Preview\MSOfficeDoc') ? 1 : 0]
|
||||
|
|
|
@ -38,11 +38,13 @@ if (isset($_POST['opdsCoverX'])) {
|
|||
} else {
|
||||
// set preview preferences
|
||||
$opdsPreviewEpub = $_POST['opdsPreviewEpub'];
|
||||
$opdsPreviewFb2 = $_POST['opdsPreviewFb2'];
|
||||
$opdsPreviewPdf = $_POST['opdsPreviewPdf'];
|
||||
$opdsPreviewOpenDocument = $_POST['opdsPreviewOpenDocument'];
|
||||
$opdsPreviewMsOffice = $_POST['opdsPreviewMsOffice'];
|
||||
|
||||
Config::setPreview('OC\Preview\Epub',$opdsPreviewEpub);
|
||||
Config::setPreview('OC\Preview\FB2',$opdsPreviewFb2);
|
||||
Config::setPreview('OC\Preview\PDF',$opdsPreviewPdf);
|
||||
Config::setPreview('OC\Preview\OpenDocument',$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::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\/x-fictionbook\+xml/', function() { return new OCA\Files_Opds\Fb2Preview; });
|
||||
|
|
|
@ -3,11 +3,13 @@ $(document).ready(function(){
|
|||
var opdsAdminSettings = {
|
||||
save : function() {
|
||||
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 opendocument = document.getElementById('opds-preview-opendocument').checked ? 'true' : 'false';
|
||||
var msoffice = document.getElementById('opds-preview-msoffice').checked ? 'true' : 'false';
|
||||
var data = {
|
||||
opdsPreviewEpub : epub,
|
||||
opdsPreviewFb2 : fb2,
|
||||
opdsPreviewPdf : pdf,
|
||||
opdsPreviewOpenDocument : opendocument,
|
||||
opdsPreviewMsOffice : msoffice
|
||||
|
@ -40,6 +42,7 @@ $(document).ready(function(){
|
|||
};
|
||||
|
||||
$('#opds-preview-epub').on("change", opdsAdminSettings.save);
|
||||
$('#opds-preview-fb2').on("change", opdsAdminSettings.save);
|
||||
$('#opds-preview-pdf').on("change", opdsAdminSettings.save);
|
||||
$('#opds-preview-opendocument').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