Coder Social home page Coder Social logo

talebook / talebook Goto Github PK

View Code? Open in Web Editor NEW
3.2K 31.0 388.0 77.87 MB

A simple books website. 一个简单的在线版个人书库。

Home Page: https://www.talebook.org

License: BSD 2-Clause "Simplified" License

Python 9.30% HTML 2.27% CSS 3.68% JavaScript 79.11% Shell 0.12% Dockerfile 0.14% Vue 5.34% Makefile 0.04%

talebook's Introduction

GitHub License GitHub commit activity Tests Docker Build Docker Pulls

Tale Book: My Calibre WebServer

A better online books library management website built on Calibre + Vue

简单好用的个人图书管理系统

友情提醒:**境内网站,个人是不允许进行在线出版的,维护公开的书籍网站是违法违规的行为!建议仅作为个人使用!

这是一个基于Calibre的简单的个人图书管理系统,支持在线阅读。主要特点是:

  • 美观的界面:由于Calibre自带的网页太丑太难用,于是基于Vue,独立编写了新的界面,支持PC访问和手机浏览;
  • 支持多用户:为了网友们更方便使用,开发了多用户功能,支持豆瓣(已废弃)、QQ、微博、Github等社交网站的登录;
  • 支持在线阅读:借助Readium.js 库,支持了网页在线阅读电子书;
  • 支持批量扫描导入书籍;
  • 支持邮件推送:可方便推送到Kindle;
  • 支持OPDS:可使用KyBooks等APP方便地读书;
  • 支持一键安装,网页版初始化配置,轻松启动网站;
  • 优化大书库时文件存放路径,可以按字母分类、或者文件名保持中文;
  • 支持快捷更新书籍信息:支持从百度百科、豆瓣搜索并导入书籍基础信息;
  • 支持私人模式:需要输入访问码,才能进入网站,便于小圈子分享网站;

本项目曾用名:calibre-webserver

Docker Docker Pulls

部署比较简单,建议采用docker,镜像地址:dockerhub

推荐使用docker-compose,下载仓库中的配置文件docker-compose.yml,然后执行命令启动即可。 若希望修改挂载的目录或端口,请修改docker-compose.yml文件。

wget https://raw.githubusercontent.com/talebook/talebook/master/docker-compose.yml
docker-compose -f docker-compose.yml  up -d

如果使用原生docker,那么执行命令:

docker run -d --name talebook -p <本机端口>:80 -v <本机data目录>:/data talebook/talebook

例如

docker run -d --name talebook -p 8080:80 -v /tmp/demo:/data talebook/talebook

常见问题

常见问题请参阅使用指南,无法解决的话,提个ISSUEE,进Q群交流

手动安装请参考开发者指南

NAS安装指南:请参考网友们的帖子:帖子1帖子2, 帖子3

如果觉得本项目很棒,欢迎前往爱发电,赞助作者,持续优化,为爱充电!

贡献者

演示

Demo站点(密码 admin/demodemo )

视频简介(感谢@Pan06da的制作)

项目演示截图如下:

talebook's People

Contributors

aa2013 avatar ddsrem avatar dependabot[bot] avatar fireinice avatar jianyun8023 avatar lginc avatar rootwhois avatar shentar avatar talebook avatar yolylight avatar zsnmwy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

talebook's Issues

推送UI改进建议

现在的推送界面:

image

这会让人误解必须等待推送完成后,窗口自动关闭,而中途关闭会造成推送结束的误解。
测试发现推送kindle实际上是后台进行的,可以关闭窗口。希望更改为提示窗口,比如“书籍xxxxxx已在后台推送”,然后倒计时自动关闭窗口。

无法在线阅读PDF格式

1.我发现当前可以在线阅读epub,mobi,azw3格式电子书,但是pdf格式却不支持,希望增加对PDF格式的支持。毕竟pdf格式的电子文档量还是相当大的。

pdf格式无法显示:
image

2.IE内核浏览器无法打开网站;
3.再就是手机端(安卓)无法正常显示在线阅读的内容。

有2个问题

1.能不能加入IDC备案号
2.能不能多出一个WEB搭建方式
3.图书解压问题 能不能本地PC或者本地手机等等,机能来解压 别用服务器资源?
4.能否增加修改LOGO 和网页ICO
5.手机浏览不能用请修复QQ+360浏览器 目前谷歌可以打开。 观看书籍手机无法滑屏换页。。求支持

在线阅读记录

用户的在线阅读记录只显示历史书籍封面,无法点开,当再次阅读时,无法找到书籍。希望增加用户收藏夹或者在历史里面显示书籍名称、并可点击打开。

如何批量导入!

根据oldiy提供的命令:sudo calibredb add --library-path=/data/books/library/ -r /data/books/upload/
在docker终端新建bash输入以上命令,基本都会报错!无法批量增加。
盼回复!

建议docker版本首页允许修改

建议docker版本首页允许修改
首页需要添加统计代码,docker版本重启后,index.html文件就会还原
建议允许index.html映射

请教一下如何开启多用户登录

难道微博、QQ、git上的全部都要设置才能开启,多用户登录?
请教一下如何开启多用户登录,能不能出一个集成自己的用户系统呢,
目前docker版本,结果想开启多用户登录,结果500: Internal Server Error

手动安装是否少了前端编译步骤?

手动安装后在/var/www/calibre-webserver/webserver/settings.py中设置了../app/dist
这看起来是个vue前端,应该先npm install --save然后npm run build才会有这个目录吧?

nginx启动报错

nginx: [emerg] open() "/etc/nginx/talebook.org_params" failed (2: No such file or directory) in /etc/nginx/sites-enabled/talebook.org:54

看了下配置文件第54行,引用了talebook.org_params

推送一直不成功,在邮箱里有显示已发送?

不知道为什么,在邮箱有看到已经发送的内容,但是 kindle 一直刷不出来,自己试着用相同的一封邮件在手机端发送一次,竟然很快同步上,不知道是不是邮箱推送的问题?(另外,就是原格式不是 mobi,他显示在转换,然后一直都是在转换,虽然邮箱已经看到了,应该是 bug,还有转换过的也会一直显示在推送,没有出现过推送成功的提示)
jpg
2

求问这是用python2还是python3运行的啊?

为什么无论用python2还是3运行都有错误提示?
其中一个,我一直搜不到答案。
Traceback (most recent call last):
File "server.py", line 9, in
from webserver import server
File "/root/calibre-server/webserver/server.py", line 6, in
import models
File "/root/calibre-server/webserver/models.py", line 8, in
from social_sqlalchemy.storage import JSONType, SQLAlchemyMixin, SQLAlchemyUserMixin
ImportError: No module named social_sqlalchemy.storage

单机版本如何批量生成图书的标签?

按照中文安装文档安装好单机版后,点开所有书籍,发现所有标签都是0,必须点到每本图书里面,选择从豆瓣更新书籍信息然后选择跳出的列表里的一个后才会生成标签。

有没有可以批量从豆瓣更新所有书籍信息的命令?

豆瓣api和其他问题

1、豆瓣api可以获取到数据,但是无法更新。版本为develop
2、docker两个版本映射目录应该统一为<本机data目录>:/data
3、docker latest版本无法安装!

在线阅读功能有漏洞

网站上点击“在线阅读”,后退到界面,再点击“在线阅读”,就会出现:抱歉,在线阅读器暂不支持该格式的书籍 ,同时下载按钮会消失。

[Suggestion]Consider change name? It is too simple and confusing

This is a great project. But there is another similar project called Calibre-web. So maybe you can give this one a better name and it will be easier for people to remember. And it will be easier to attract users and contributors. BTW, I cannot even find the project through googling calibre-webserver, it gave me Calibre content server and Calibre-web.

初始设置失败

首先我下载并启动了容器:

talebook/calibre-webserver
docker run -d --name calibre -p 80:80 -v /home/tea/Calibre\ 书库/:/data talebook/calibre-webserver

登入localhost后先进入安装页面,然后保存的时候500了
重新登陆localhost可以进入,但是进入管理员入口还是会500.

日志如下:

[I 200401 05:27:27 server:130] Now, Running...
[I 200401 05:27:31 web:2162] 200 GET /api/index?random=12&recent=12 (172.17.0.1) 1.23ms
[I 200401 05:27:31 web:2162] 200 GET /api/user/messages (172.17.0.1) 0.57ms
[I 200401 05:27:31 web:2162] 200 GET /api/user/info (172.17.0.1) 0.69ms
[I 200401 05:28:10 web:2162] 304 GET /api/index?random=12&recent=12 (172.17.0.1) 1.36ms
[I 200401 05:28:10 web:2162] 304 GET /api/user/messages (172.17.0.1) 0.73ms
[I 200401 05:28:10 web:2162] 304 GET /api/user/info (172.17.0.1) 0.69ms
[D 200401 05:28:30 base:270] create template env for [/var/www/calibre-webserver/webserver/templates]
[D 200401 05:28:30 base:178] Query User(1) = <id=1, username=admin, [email protected]>
[E 200401 05:28:30 loader:52] saving settings file: /data/books/settings/auto.py
[E 200401 05:28:30 web:1670] Uncaught exception POST /api/admin/install (172.17.0.1)
    HTTPServerRequest(protocol='http', host='localhost', method='POST', uri='/api/admin/install', version='HTTP/1.0', remote_ip='172.17.0.1')
    Traceback (most recent call last):
      File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1590, in _execute
        result = method(*self.path_args, **self.path_kwargs)
      File "/var/www/calibre-webserver/webserver/handlers/base.py", line 63, in do
        self.write( rsp )
      File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 746, in write
        chunk = escape.json_encode(chunk)
      File "/usr/local/lib/python2.7/dist-packages/tornado/escape.py", line 81, in json_encode
        return json.dumps(value).replace("</", "<\\/")
      File "/usr/lib/python2.7/json/__init__.py", line 244, in dumps
        return _default_encoder.encode(obj)
      File "/usr/lib/python2.7/json/encoder.py", line 207, in encode
        chunks = self.iterencode(o, _one_shot=True)
      File "/usr/lib/python2.7/json/encoder.py", line 270, in iterencode
        return _iterencode(o, 0)
      File "/usr/lib/python2.7/json/encoder.py", line 184, in default
        raise TypeError(repr(o) + " is not JSON serializable")
    TypeError: UUID('9f0730d6-73d9-11ea-8e25-0242ac110002') is not JSON serializable
[E 200401 05:28:30 web:2162] 500 POST /api/admin/install (172.17.0.1) 53.63ms
[D 200401 05:40:18 base:178] Query User(1) = <id=1, username=admin, [email protected]>
[E 200401 05:40:18 web:1670] Uncaught exception GET /api/admin/settings (172.17.0.1)
    HTTPServerRequest(protocol='http', host='localhost', method='GET', uri='/api/admin/settings', version='HTTP/1.0', remote_ip='172.17.0.1')
    Traceback (most recent call last):
      File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1590, in _execute
        result = method(*self.path_args, **self.path_kwargs)
      File "/var/www/calibre-webserver/webserver/handlers/base.py", line 63, in do
        self.write( rsp )
      File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 746, in write
        chunk = escape.json_encode(chunk)
      File "/usr/local/lib/python2.7/dist-packages/tornado/escape.py", line 81, in json_encode
        return json.dumps(value).replace("</", "<\\/")
      File "/usr/lib/python2.7/json/__init__.py", line 244, in dumps
        return _default_encoder.encode(obj)
      File "/usr/lib/python2.7/json/encoder.py", line 207, in encode
        chunks = self.iterencode(o, _one_shot=True)
      File "/usr/lib/python2.7/json/encoder.py", line 270, in iterencode
        return _iterencode(o, 0)
      File "/usr/lib/python2.7/json/encoder.py", line 184, in default
        raise TypeError(repr(o) + " is not JSON serializable")
    TypeError: UUID('9f0730d6-73d9-11ea-8e25-0242ac110002') is not JSON serializable
[E 200401 05:40:18 web:2162] 500 GET /api/admin/settings (172.17.0.1) 3.43ms

而且书库内看不到pdf格式的书

demo is dead

https is misconfigured

  • your certificate doesn't contain demo.talebook.org)
  • you only have tls 1.0, not 1.1, 1.2, or 1.3...TLS 1.0 is insecure.

See more info here

Bad gateway error on http and also on https once you find a browser that doesn't care about bad certificates (elinks works for me).

批量导入书籍UnicodeEncodeError: 'ascii'报错

报错代码如下
root@dfsdsd:/# calibredb add --library-path=/data/books/library/ -r /data/books/upload/mobi/
The following books were not added as they already exist in the database (see --duplicates option):
Traceback (most recent call last):
File "/usr/bin/calibredb", line 20, in
sys.exit(main())
File "/usr/lib/calibre/calibre/library/cli.py", line 1642, in main
return command(args[2:], dbpath)
File "/usr/lib/calibre/calibre/library/cli.py", line 471, in command_add
tags, opts.series, opts.series_index, opts.cover, identifiers, lcodes, opts.filters)
File "/usr/lib/calibre/calibre/library/cli.py", line 345, in do_add
title = title.encode(preferred_encoding)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-6: ordinal not in range(128)

建议修复方式
import sys
reload(sys)
sys.setdefaultencoding('utf8')

希望能调高上传文件大小

现在上传文件大小被限制在了20MB,这个上限特用!希望能调高文件大小上限,或是允许自定义上限。我的群晖内存有32GB,所以不在意多占用一些内存。

docker latest版本豆瓣api500错误

服务器异常,状态码:500
请查阅服务器日志:
calibre-webserver.log

/api/book/3/refer (ip)
HTTPServerRequest(protocol='http', host='ip
', method='GET', uri='/api/book/3/refer', version='HTTP/1.0', remote_ip='*ip')
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1590, in _execute
result = method(*self.path_args, **self.path_kwargs)
File "/var/www/calibre-webserver/webserver/handlers/base_handlers.py", line 54, in do
rsp = func(self, *args, **kwargs)
File "/var/www/calibre-webserver/webserver/handlers/base_handlers.py", line 68, in do
return func(self, *args, **kwargs)
File "/var/www/calibre-webserver/webserver/handlers/book_handlers.py", line 262, in get
book = api.get_book(title)
File "/var/www/calibre-webserver/webserver/baike.py", line 20, in get_book
baike = self._baike(title)
File "/var/www/calibre-webserver/webserver/baike.py", line 25, in _baike
from baidubaike import Page
File "/usr/local/lib/python2.7/dist-packages/baidubaike/init.py", line 1, in
from baidubaike import *
File "/usr/local/lib/python2.7/dist-packages/baidubaike/baidubaike.py", line 7, in
from bs4 import BeautifulSoup
ImportError: No module named bs4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.