mikespub / seblucas-cops
Calibre OPDS (和 HTML) PHP 服务器:Calibre内容服务器的基于Web的轻量级替代品 / Calibre2OPDS用于提供电子书(epub、mobi、pdf等)
Requires
- php: >=8.2
- ext-dom: *
- ext-gd: *
- ext-intl: *
- ext-json: *
- ext-mbstring: *
- ext-pdo_sqlite: *
- ext-xml: *
- ext-xmlwriter: *
- ext-zip: *
- ext-zlib: *
- mikespub/epubjs-reader: ^2024.7
- mikespub/php-epub-meta: ^1.5||^2.3||^3.0
- nikic/fast-route: ^2.0-dev
- npm-asset/bootstrap: ^3.4
- npm-asset/corejs-typeahead: ^1.3
- npm-asset/dot: ^1.1
- npm-asset/jquery: ^3.7
- npm-asset/js-cookie: ^2.2
- npm-asset/lru-fast: ^0.2
- npm-asset/magnific-popup: ^1.2
- npm-asset/normalize.css: ^8.0
- npm-asset/twig: ^1.17
- phpmailer/phpmailer: ^6.9
- twig/twig: ^3.14
Requires (Dev)
- kiwilan/php-opds: ^2.1
- mikespub/epub-loader: ^1.5||^2.5||^3.2
- opis/json-schema: ^2.3
- php-webdriver/webdriver: dev-main
- phpunit/phpunit: ^11.3
- symfony/browser-kit: ^6.4||^7.1
- symfony/http-client: ^6.4||^7.1
- symfony/http-foundation: ^6.4||^7.1
- webonyx/graphql-php: ^15.14
Suggests
- mikespub/epub-loader: epub-loader is a utility package for ebooks
- mikespub/epubjs-reader: epub.js reader with zipfs.php
- dev-main
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.0
- 2.x-dev
- 2.8.2
- 2.8.1
- 2.8.0
- 2.7.5
- 2.7.4
- 2.7.3
- 2.7.2
- 2.7.1
- 2.7.0
- 2.6.1
- 2.6.0
- 2.5.6
- 2.5.5
- 2.5.4
- 2.5.3
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.1
- 2.3.0
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.2
- 2.0.1
- 2.0.0
- 1.x-dev
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.5
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.6
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.1
- 1.0.0
- 1.0.0RC3
- 1.0.0RC2
- 1.0.0RC1
- 0.9.0
- dev-gitlocalize-31064
- dev-gitlocalize-31063
- dev-master
This package is auto-updated.
Last update: 2024-09-24 14:55:37 UTC
README
3.x 版本的重大变更(PHP >= 8.2)
面向所有人
- 将自定义的 config_local.php 文件移动到 Web 服务器/容器上的 config/local.php
- 将电子阅读器中的 OPDS 馈送中的任何 feed.php 链接替换为 index.php/feed
较少见
- 如果您将 lib/ 或 test/ 目录映射到某个位置,例如 docker compose 文件、Web 服务器配置等,您需要将其分别替换为 src/ 或 tests/
- 如果您在其他链接中使用其他端点,例如小部件的 REST API,您需要使用路由 URL,并将 restapi.php 替换为 index.php/restapi 等。
此分支的先决条件
- PHP 8.x 具有DOM、GD、Intl、Json、PDO SQLite、SQLite3、XML、XMLWriter和ZLib支持(建议使用PHP 8.1或更高版本)
- 3.x.x 版本仅适用于 PHP >= 8.2 - 这对于2024年和以后的大多数源代码和docker镜像安装是典型的。注意:更新 .epub 文件以更新元数据或封面需要64位平台
- 2.x.x 版本仅适用于 PHP >= 8.1 - 这对于2023年和以后的大多数源代码和docker镜像安装是典型的。注意:更新 .epub 文件以更新元数据或封面需要64位平台
- 1.x.x 版本在必要时仍支持 PHP 7.4 - 此分支不支持早期PHP 7.x(或5.x)版本
用户支持问题仍然可以在https://github.com/seblucas/cops/issues找到 - 如果您需要有关COPS的一般帮助,请使用它。对于2.x和3.x版本,请在新问题https://github.com/mikespub-org/seblucas-cops/issues中报告
拉取请求应针对https://github.com/mikespub-org/seblucas-cops/pulls中的最新源代码 - 感谢任何贡献 :-)
查看CHANGELOG以了解与@seblucas的上游存储库https://github.com/seblucas/cops相比的更改
此分支的安装
与原始版本相同的选项
- 发行版包
- 从https://github.com/mikespub-org/seblucas-cops/releases获取最新的 cops-1.x.x.zip 文件
- 源代码
- git clone https://github.com/mikespub-org/seblucas-cops.git # 或下载 最新主版本作为zip
- 运行 composer 安装项目依赖项
$ cd seblucas-cops
$ composer install --no-dev -o
- Docker 镜像
- 使用来自linuxserver.io的linuxserver/cops的最新镜像 - 在那里查看设置和用法
- 或使用docker/Dockerfile.alpine和docker-compose.yaml(或docker-compose-dev.yaml)作为起点 - 未针对大小/性能优化
- Home Assistant 插件
其余的安装过程与下面原始内容非常相似。但如果您是从源代码安装,只需使用您常规的composer 2.x - 您不需要下载旧的composer 1.x版本或安装全局资产插件 anymore :-)
注意:对于第一次安装,您需要将config/local.php.example复制到config/local.php,并根据需要自定义calibre目录等。之后,如果第一次浏览COPS时出现错误或空白页面,您可以通过浏览到http://.../checkconfig.php来检查常见问题。
COPS(原始)
COPS代表Calibre OPDS(和HTML)Php服务器。
有关更多详细信息,请参阅COPS的主页。
别忘了检查Wiki。
为什么?
在我看来,Calibre是一个神奇的工具,但它太大,依赖性太多,不适合用作内容服务器。
这就是我编写这个OPDS服务器的主要原因。我需要一个简单的工具安装在小服务器上(以我的Seagate Dockstar为例)。
我最初想到了Calibre2OPDS,但因为它生成静态文件,所以无法进行搜索。
后来我添加了一个简单的HTML目录,应该可以用在我的Kobo上。
因此,COPS的主要优点是
- 无需许多依赖项。
- 无需大量的CPU或RAM。
- 代码不多。
- 提供搜索功能。
- 编码起来很有趣。
如果您想使用OPDS源,别忘了在URL末尾指定feed.php。
您只需按您喜欢的任何方式(Dropbox、Bt Sync、Syncthing、使用与Nextcloud共享的目录等)同步您的Calibre目录到COPS服务器。
先决条件(已过时)
- PHP 5.3、5.4、5.5、5.6、7.X或hhvm,具有GD图像处理、Libxml、Intl、Json和SQLite3支持(推荐使用PHP 5.6或更高版本)。
- 支持PHP的Web服务器。我已经测试了Nginx和Apache的各种版本。其他人报告了它在Apache和Cherokee上也能工作。您也可以使用PHP嵌入服务器(https://github.com/seblucas/cops/wiki/Howto---PhpEmbeddedServer)
- calibre库的路径(metadata.db、格式和封面文件)。
在基于Debian的Linux上,您可以使用:apt-get install php5-gd php5-sqlite php5-json php5-intl
如果您使用Debian Stretch,请使用:apt-get install php7.0-gd php7.0-sqlite3 php7.0-json php7.0-intl php7.0-xml php7.0-mbstring php7.0-zip
在Centos上,您可能需要添加:yum install php-xml
安装版本(最简单的方法)
- 将您从发布页面获得的zip文件解压到Web空间中的一个文件夹(可以被Web服务器访问)。
- 如果您正在进行首次安装,请将config_local.php.example复制到config_local.php
- 编辑config_local.php以匹配您的配置。
- 如果需要,从config_default.php添加其他配置项。
如果您喜欢Docker,您还可以尝试这个来自linuxserver.io的多架构Docker容器。它为x64和arm64提供了构建。
从源代码安装
git clone https://github.com/seblucas/cops.git # or download lastest zip see below cd cops # use standard composer 2.x now, no need to install older 1.x version and plugin for PHP 8.x version #wget https://getcomposer.org.cn/composer.phar #php composer.phar global require "fxp/composer-asset-plugin:~1.1" #php composer.phar install --no-dev --optimize-autoloader composer install --no-dev --optimize-autoloader
之后,您可以从第二步开始使用之前的方法。
注意,您也可以通过最新主版本的zip文件来获取。
注意,如果您的PHP版本低于5.6,那么在开始最后一行之前,您可能需要删除composer.lock
。
我的Calibre目录应该放在哪里?
简单来说:始终放在COPS目录之外,尤其是如果COPS安装在VPS/服务器上。如果遵循我的建议,您的数据将更安全。
如果您选择将Calibre目录放在您的Web目录中并使用Nginx,那么您需要编辑/etc/nginx/mime.types以添加以下行
application/epub+zip epub;
application/x-mobipocket-ebook mobi prc azw;
已知问题
不多,除了代码质量不佳(这是我第一个PHP项目)之外;()
有关开放问题,请参见https://github.com/seblucas/cops/issues
需要帮助
请阅读https://github.com/seblucas/cops/wiki并检查常见问题解答。
贡献
如您所见这里,我非常欣赏每一个贡献,并且随着时间的推移有很多。所以请不要害羞,提交您的Pull Requests。
注意:翻译者请优先使用Transifex,而不是提交PR。
我只有一个限制(可能还有更多的限制,但这是最严重的): COPS的目标是提供Calibre内容服务器的替代方案,而不是完全替代Calibre。因此,我将拒绝任何修改数据库内容的PR。
致谢
- 本地消息处理灵感来源于https://www.mind-it.info/2010/02/22/a-simple-approach-to-localization-in-php
- str_format函数来自http://tmont.com/blargh/2010/1/string-format-in-php
- 所有图标均来自Font Awesome:https://github.com/FortAwesome/Font-Awesome
- 非官方的OPDS验证器:http://opds-validator.appspot.com/
- 感谢所有测试者、翻译者和贡献者。
- Feed图标由Freepik在Flaticon网站上制作,根据Creative Commons BY 3.0授权http://www.flaticon.com和http://www.freepik.com
- 非常感谢Jetbrains多年来通过为其产品提供免费许可证来支持COPS!
使用的外部库
- JQuery:https://jqueryjs.cn/
- Magnific Popup:http://dimsemenov.com/plugins/magnific-popup/
- Php-epub-meta:https://github.com/splitbrain/php-epub-meta,我做了一些修改(https://github.com/seblucas/php-epub-meta)
- TbsZip:http://www.tinybutstrong.com/apps/tbszip/tbszip_help.html
- DoT.js:http://olado.github.io/doT/index.html
- PHPMailer:https://github.com/PHPMailer/PHPMailer
- js-lru:https://github.com/rsms/js-lru
版权与许可
COPS - 2012-2019 (c) Sébastien Lucas
请参阅LICENSE和文件头部以获取许可信息