40106 Commits

Author SHA1 Message Date
Kovid Goyal
a82a2724ce
Clear history only after first page of book is loaded 2019-10-31 10:50:59 +05:30
Kovid Goyal
6e2122df17
Clear history when loading a new book 2019-10-31 08:58:18 +05:30
Kovid Goyal
f1db7eab2f
Validate pathtoebook 2019-10-31 08:57:39 +05:30
Kovid Goyal
74d97ca869
Merge branch 'bash-completion' of https://github.com/eli-schwartz/calibre 2019-10-30 21:42:24 +05:30
Kovid Goyal
cba0a645a3
Fix typo 2019-10-30 20:48:52 +05:30
Eli Schwartz
53f30d9b7f
linux install: make file blobs start as unicode and get encoded while writing
Kovid wants to be cautious about future refactoring maybe trying to
modify them, and would prefer Things™ be unicode for flexibility when
using them, and only be bytes when actually write()'ing them.

See https://github.com/kovidgoyal/calibre/pull/1065#issuecomment-547893895
2019-10-30 10:34:50 -04:00
Kovid Goyal
8999853fc6
Allow HTML files to control how they rendered as covers
Fixes #1064 (Add render page tweak settings.)
2019-10-30 10:13:17 +05:30
Kovid Goyal
6dc53379ee
Make code to parse PDF page sizes re-useable 2019-10-30 09:42:07 +05:30
Kovid Goyal
21afbdc1d6
py3: Fix #1850571 [[Python3] kobo driver fails to load](https://bugs.launchpad.net/calibre/+bug/1850571) 2019-10-30 08:28:14 +05:30
Eli Schwartz
1cbdabbbb7
linux install: make sure init_calibre.py is listed in calibre-uninstall
It is written raw, not via write_template, so it was never added to the
manifest. Therefore, it would remain behind when uninstalling calibre.

Also change the order in which steps are executed, in order to write the
env module -- and add it to the manifest -- before the uninstaller is
created, rather than after (which would be too late).
2019-10-29 20:19:22 -04:00
Eli Schwartz
19c4636677
linux: install bash completion as individual components
In order to prevent bloating the shell with thousands of bash completion
specs, bash completions are lazy-loaded as soon as the command is first
tab-completed. This only works when the completionsdir contains a
filename with the same name as the command being completed; as a result,
calibre commands were able to be tab-completed only after 'calibre' was
first completed.

(This is unlike the zsh completions, which work when installed as a
single unified file because zsh builds a cache of all known compdefs,
and can load a completion on demand by reading from the file which
contains it.)

One common solution for programs which install several completions that
share common helper functions is to install the completions in one file,
and symlink all other command names to ensure the file is loaded by any
name. I've opted for the other solution, which is to install each
completion separately, since there is no common helper function to load
once and use everywhere. As a result, there are some small speedups to
be gained from only loading the completions being used.

The main change is reindenting a lot of code to no longer be in a global
context manager, but instead get written inside o_and_e/o_and_w.

It's also necessary to write each individual completion file to the
uninstaller, so do that.
2019-10-29 20:19:22 -04:00
Eli Schwartz
05d42e0fe8
linux install: make bash completion fully python3 compliant
This gets us closer to a state where polyglot hacks can be dropped, and
is necessary to make per-command completion files not require even more
hacks to proxy through polyglot_write.
2019-10-29 20:19:22 -04:00
Eli Schwartz
54d1d4deb1
bash-completion: also complete epub files for calibre-debug
This is actually probably somewhat more common than azw3. ;)
2019-10-29 20:19:07 -04:00
Kovid Goyal
55033c352d
Book details: Fix clicking on tags etc not generating exact match searches 2019-10-29 21:37:24 +05:30
Kovid Goyal
e00a8a945c
Forgot to handle comments when unserializing the new JSON format 2019-10-29 20:42:40 +05:30
Kovid Goyal
9f02e70317
Ensure root tag is in correct namespace 2019-10-29 18:24:39 +05:30
Kovid Goyal
ddb96c0eed
Fix html_as_json compilation under python2 2019-10-29 18:16:46 +05:30
Kovid Goyal
007f9fb087
Implement unserialization for the new serialization format 2019-10-29 18:06:33 +05:30
Kovid Goyal
b44c42a78c
... 2019-10-29 16:49:39 +05:30
Kovid Goyal
cb9b08b369
Dont serialize the default namespace on ever tag 2019-10-29 15:58:24 +05:30
Kovid Goyal
7687c3dab6
Move the iterate over elems loop in native code as well 2019-10-29 15:56:57 +05:30
Kovid Goyal
e33c18459a
Finish fast serialization of html to json 2019-10-29 12:50:26 +05:30
Kovid Goyal
02838a712c
Merge branch 'flake' of https://github.com/eli-schwartz/calibre 2019-10-29 09:34:28 +05:30
Eli Schwartz
6526c28bd6
check: cleanup file exclusions
Some of these files no longer exist due to being devendored.
BeautifulSoup.py is now something else entirely which is
calibre-specific code and deserves the right to be linted.
2019-10-28 16:10:00 -04:00
Kovid Goyal
4f03b0163f
Fix #1850196 [test_ssl fails with EE_KEY_TOO_SMALL](https://bugs.launchpad.net/calibre/+bug/1850196) 2019-10-29 01:05:59 +05:30
Kovid Goyal
fc7aee08df
Start work on fast html to json 2019-10-28 13:30:18 +05:30
Kovid Goyal
42f553e367
Content server: Fix download button not working with non-ebook formats. Fixes #1850078 [Calibre content server download issues](https://bugs.launchpad.net/calibre/+bug/1850078) 2019-10-28 08:58:47 +05:30
Kovid Goyal
167cb89dc7
... 2019-10-28 08:08:00 +05:30
Kovid Goyal
3abe43d90c
Serialization: Dont mangle the name of epub namespaced tags
Also dont normalize boolean attributes
2019-10-27 13:07:19 +05:30
Kovid Goyal
78a97a0e37
Handle comments while getting char count 2019-10-27 12:52:12 +05:30
Kovid Goyal
a687204ec3
Speedup char counting when preparing book 2019-10-27 12:38:01 +05:30
Kovid Goyal
8582154527
Avoid calls to nlinks() in worker processes 2019-10-26 19:00:07 +05:30
Kovid Goyal
751c6942f9
Implement profiling of book preparation
Cache href_to_name() which was marked as a hot function by the profiler.
2019-10-26 18:19:32 +05:30
Kovid Goyal
60a1f637c5
Dont use multiple workers when rendering books for the server
Can lead to resource exhaustion and also is currently hanging for
reasons unknown
2019-10-26 17:28:55 +05:30
Kovid Goyal
a6d8dd528d
Shorten workflow name 2019-10-26 17:24:16 +05:30
Kovid Goyal
b9cb195804
Viewer: Allow also using --open-at with book positions 2019-10-26 17:18:21 +05:30
Kovid Goyal
221d8f73a4
Fix failing test 2019-10-26 17:02:10 +05:30
Kovid Goyal
73c69949df
Rename goto_bookpos -> goto_cfi 2019-10-26 16:56:30 +05:30
Kovid Goyal
eeab136034
oops 2019-10-26 16:23:52 +05:30
Kovid Goyal
b582bbd520
Dont pre-launch workers, instead launch all workers once container is ready
Makes a significant difference in the time to open small books on
windows
2019-10-26 15:57:26 +05:30
Kovid Goyal
efb2d424a7
Improve error reporting 2019-10-26 15:39:21 +05:30
Kovid Goyal
facc4045d4
Use pipe worker for the main render process 2019-10-26 15:39:20 +05:30
Kovid Goyal
8972d63efd
... 2019-10-26 15:39:20 +05:30
Kovid Goyal
e3adac0c51
Forgot another use of container.bookmark_data 2019-10-26 15:39:20 +05:30
Kovid Goyal
2d2ee3f85c
Use one less worker process 2019-10-26 15:39:20 +05:30
Kovid Goyal
9a44ef24ff
Avoid re-parsing the OPF file in worker processes 2019-10-26 15:39:20 +05:30
Kovid Goyal
36d5dee047
Only pre-launch workers for books likely to benefit from parallelization 2019-10-26 15:39:20 +05:30
Kovid Goyal
29e20d8b59
Do not modify anything other than the titlepage when processing covers in EPUB files.
This speeds up book preparation by not requiring book wide link
replacement.
2019-10-26 15:39:19 +05:30
Kovid Goyal
75dd89722a
Viewer: Run the first read book preparation in parallel 2019-10-26 15:39:19 +05:30
Kovid Goyal
243144f3b9
Viewer: Add command line option to force reloading of all books 2019-10-26 15:38:06 +05:30