|
|
#1 |
|
Connoisseur
![]() Posts: 52
Karma: 10
Join Date: Sep 2021
Location: Upstate NY, USA
Device: iPad Pro, Kindle basic
|
Raspberry Pi 4 (8gb)
Raspbery Pi OS 64-bit (no, not ArchLinuxARM) Calibre installed from the repos (yes, I know they're woefully out of date) Code:
$ calibredb --verison
calibredb (Calibre 3.39.1)
$ python -c "import os; print(os.uname())"
('Linux', 'raspberrypi', '5.10.63-v8+', '#1453 SMP PREEMPT Tue Sep 14 15:00:30 BST 2021', 'aarch64')
$ python --version
Python 2.7.16
$ python3 --version
Python 3.7.3
$ cat /etc/default/locale
# File generated by update-locale
LANG=en_US.UTF-8
However, I’d like to be able to add books to the server without stopping the server then restarting it afterwards. It seems, according to the messages I’ve seen and the manual that calibredb can do this. So, I’m currently trying to figure out how. Looking at the manual page for calibredb, I saw how to list the library_id for each of the libraries on the content server: Code:
$ calibredb —with-library 'http://localhost:8080/#-' list —username MyUser —password MyPass cookbooks fiction non-fiction technical Code:
calibredb add /path-to-books-to-add-to-library/cookbooks/* —with-library 'http://localhost:8080/#cookbooks' —username MyUser —password MyPass Code:
Traceback (most recent call last):
File “/usr/bin/calibredb”, line 20, in <module>
sys.exit(main())
File “/usr/lib/calibre/calibre/db/cli/main.py”, line 255, in main
return run_cmd(cmd, opts, args[1:], DBCtx(opts))
File “/usr/lib/calibre/calibre/db/cli/main.py”, line 55, in run_cmd
ret = m.main(opts, args, dbctx)
File “/usr/lib/calibre/calibre/db/cli/cmd_add.py”, line 366, in main
identifiers, lcodes, opts.filters
File “/usr/lib/calibre/calibre/db/cli/cmd_add.py”, line 164, in do_add
oidentifiers, olanguages
File “/usr/lib/calibre/calibre/db/cli/main.py”, line 191, in run
return self.remote_run(name, m, args)
File “/usr/lib/calibre/calibre/db/cli/main.py”, line 213, in remote_run
res = self.br.open_novisit(rq)
File “/usr/lib/python2.7/dist-packages/mechanize/_mechanize.py”, line 199, in open_novisit
return self._mech_open(url, data, visit=False, timeout=timeout)
File “/usr/lib/python2.7/dist-packages/mechanize/_mechanize.py”, line 230, in _mech_open
response = UserAgentBase.open(self, request, data)
File “/usr/lib/python2.7/dist-packages/mechanize/_opener.py”, line 193, in open
response = urlopen(self, req, data)
File “/usr/lib/python2.7/dist-packages/mechanize/_urllib2_fork.py”, line 344, in _open
’_open’, req)
File “/usr/lib/python2.7/dist-packages/mechanize/_urllib2_fork.py”, line 332, in _call_chain
result = func(args)
File “/usr/lib/python2.7/dist-packages/mechanize/_urllib2_fork.py”, line 1142, in http_open
return self.do_open(httplib.HTTPConnection, req)
File “/usr/lib/python2.7/dist-packages/mechanize/_urllib2_fork.py”, line 1115, in do_open
h.request(req.get_method(), req.get_selector(), req.data, headers)
File “/usr/lib/python2.7/httplib.py”, line 1058, in request
self._send_request(method, url, body, headers)
File “/usr/lib/python2.7/httplib.py”, line 1098, in _send_request
self.endheaders(body)
File “/usr/lib/python2.7/httplib.py”, line 1054, in endheaders
self._send_output(message_body)
File “/usr/lib/python2.7/httplib.py”, line 890, in _send_output
msg += message_body
UnicodeDecodeError: ‘utf8’ codec can’t decode byte 0x9e in position 0: invalid start byte
Code:
$ sudo systemctl stop calibre-server $ calibredb add /path-to-books-to-add-to-library/cookbooks/* --with-library ~/calibre-library/cookbooks --username MyUser --password MyPass Added book ids: 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 $ sudo systemctl start calibre-server Searching, I saw this post by KovidGoyal that showed an equal sign between the --with-library and the http-and-library_id path and no single quotes like when I got the library_id listing. So, I gave that a shot. Code:
calibredb add /path-to-books-to-add-to-library/cookbooks/* —with-library=http://localhost:8080/#cookbooks —username MyUser —password MyPass I can add books if I stop the server, add them and then start the server again. But using calibredb (which the manual says is used to connect to a server that's running) throws an error. What am I missing or have misconfigured?
|
|
|
|
|
|
#2 |
|
creator of calibre
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 45,607
Karma: 28548974
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
Your version of calibre is too old.
|
|
|
|
|
|
#3 |
|
Connoisseur
![]() Posts: 52
Karma: 10
Join Date: Sep 2021
Location: Upstate NY, USA
Device: iPad Pro, Kindle basic
|
Ah. The functionality of calibredb to interface with a currently-running instance of calibre-server was added in versions after the one available in the repos.
Good to know that. Thank you. While it's unfortunate that the ARM repos are so out-of-date, I do appreciate the software and the effort that's gone into creating it. As well as your respose here. Thanks! While i wait for repos to get updated to something approximating "current" i'll set up a cron job to stop the server, the one to import books, and then one to restart the server. best wishes! |
|
|
|
![]() |
| Tags |
| arm64, calibredb, python error, raspberry pi 4 |
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Python error when accessing content server with calibredb | drawson1 | Library Management | 1 | 06-19-2018 12:08 PM |
| calibredb cannot add with content server running | apiontek | Calibre | 10 | 08-04-2017 04:50 AM |
| Calibre-server / Linux don't see calibreDB update when it's running | aurigod | Calibre | 13 | 11-25-2015 02:44 AM |
| Running calibre-server with auto add | Hiryu | Library Management | 21 | 12-05-2014 06:15 PM |
| Add a book from another computer running calibre server | gandor62 | Library Management | 2 | 06-29-2011 11:24 AM |