Commit Graph

125 Commits

Author SHA1 Message Date
tastytea 88e4e78db8
Add nlohmann_json dependency. 2021-06-01 18:47:12 +02:00
tastytea b0b6c00a90
Log application exit.
continuous-integration/drone/push Build is passing Details
2021-06-01 18:22:15 +02:00
tastytea a7fae314b3
Log some progress info to log file.
continuous-integration/drone/push Build is passing Details
2021-06-01 17:17:00 +02:00
tastytea 6278779029
Don't mask previous failures. 2021-06-01 17:06:25 +02:00
tastytea 40e39dc0e7
Umm… nothing to see here… 😄
continuous-integration/drone/push Build is passing Details
2021-06-01 16:47:47 +02:00
tastytea 07915bdf87
Add lots of debug output. 2021-06-01 15:32:10 +02:00
tastytea 017059cb5b
Make options::options printable (for use in debug output). 2021-06-01 15:25:39 +02:00
tastytea a8db304bf1
Add DEBUGLOG macro.
Adds the severity and prepends the function name.
2021-06-01 15:24:19 +02:00
tastytea 580f08b823
Output info messages to stderr with --debug. 2021-06-01 13:52:41 +02:00
tastytea 28c0a5a797
Add --debug switch and enable debugging if it is on. 2021-06-01 13:41:54 +02:00
tastytea b12f88003b
Fix text logging and debug logging. 2021-06-01 13:41:20 +02:00
tastytea 17b6017fe0
Rename init_debug() → enable_debug(), add documentation. 2021-06-01 13:36:34 +02:00
tastytea 12a1c47259
Make log_path a variable again.
We don't need log_dir() twice afterall.
2021-06-01 11:09:40 +02:00
tastytea a8f2b7dfb6
Add equipment for debug logs. 2021-06-01 11:02:06 +02:00
tastytea c35434e745
Simplify LOG macro.
continuous-integration/drone/push Build is passing Details
We only have one logger, no need to specify it every time.
2021-05-31 22:43:30 +02:00
tastytea 4c1bae86ba
Add fatal errors.
Errors are fatal if the program has to stop immediately.
2021-05-31 22:29:35 +02:00
tastytea 1fee4f5afd
Fix file error reporting.
Not sure why exceptions don't have that info… 🤷
2021-05-31 22:22:04 +02:00
tastytea 80e2e9d05d
Re-add -DBOOST_LOG_DYN_LINK
continuous-integration/drone/push Build is passing Details
It seems we still need it. The combination of Boost 1.65.1 and CMake 3.12
does not work otherwise. Not sure whose fault it is.
2021-05-31 21:20:41 +02:00
tastytea c30a8b40be
Older Boost version need log_setup in addition to log.
continuous-integration/drone/push Build is failing Details
1.75.0 works without it, 1.74.0 not.
Removed -DBOOST_LOG_DYN_LINK again.
2021-05-31 20:57:36 +02:00
tastytea 1d02c3bd6d
Add workaround for old CMake←→Boost combinations.
continuous-integration/drone/push Build is failing Details
2021-05-31 20:15:54 +02:00
tastytea 77d013c12a
Change config file path.
continuous-integration/drone/push Build was killed Details
Existing old config file is copied over.
2021-05-31 19:37:11 +02:00
tastytea b966be3021
Log suppressed errors to log file. 2021-05-31 19:27:36 +02:00
tastytea 18f8600174
Change log file directory. 2021-05-31 19:26:19 +02:00
tastytea 11572d5b29
Use logger for warnings end errors. 2021-05-31 19:12:07 +02:00
tastytea ac5b31f2d5
Add logger. 2021-05-31 18:50:41 +02:00
tastytea cf583c6d7f
Don't compile sources twice.
Not sure why it would compile them twice if they are set to PUBLIC, but okay. 🤷
2021-05-31 17:24:08 +02:00
tastytea 78ada56226
Make input files required.
It will be difficult to parse EPUB files from stdin and the usefulness is
questionable.
2021-05-31 15:31:41 +02:00
tastytea 11a8989370
CMake: Make GLOB work with new files (most of the time).
continuous-integration/drone/push Build is passing Details
Caveats: <https://cmake.org/cmake/help/latest/command/file.html#filesystem>
2021-05-31 11:06:29 +02:00
tastytea 76ed0c9dbf
Un-escape named and numbered entities in documents before searching.
continuous-integration/drone/push Build is passing Details
2021-05-30 23:32:35 +02:00
tastytea 8a9be5d45b
Add helpers::unescape_html() &amp; tests. 2021-05-30 23:32:30 +02:00
tastytea 7ddfe32e30
Move is_whitespace() and urldecode() to helpers. 2021-05-30 21:52:52 +02:00
tastytea 94564fa914
Strip whitespace from headlines. 2021-05-30 21:16:24 +02:00
tastytea 22cae4c3cd
Output metadata italic, chapters underlined. 2021-05-30 19:03:59 +02:00
tastytea fe23fcf04b
Rename prefix to metadata in print_matches(). 2021-05-30 18:09:31 +02:00
tastytea 03138c1dbf
Remove unnecessary include. 2021-05-30 18:07:13 +02:00
tastytea e7633fe134
Rename prefix to before and suffix to after.
continuous-integration/drone/push Build is passing Details
2021-05-30 14:47:18 +02:00
tastytea 6255d665af
Replace tabs with a space in search::cleanup(). 2021-05-30 14:37:05 +02:00
tastytea d7ad180721
Use iterators in search::context() and don't return extra whitespace
Should be easier to understand now.
2021-05-30 13:45:56 +02:00
tastytea 790e60a055
Fix end-of-headline detection. 2021-05-29 23:00:16 +02:00
tastytea 160ff20387
Revert "Fix pugixml target."
continuous-integration/drone/push Build is passing Details
pugixml 1.8.1 (the version in Ubuntu bionic) does not have that target.

This reverts commit 2a3e3f87b5.
2021-05-29 22:10:21 +02:00
tastytea 2a3e3f87b5
Fix pugixml target. 2021-05-29 21:37:40 +02:00
tastytea 37e868b3f2
Remove <style> and <script> snippets.
Closes: #8
2021-05-29 18:52:03 +02:00
tastytea 2d65961688
Output XML errors. 2021-05-29 18:42:29 +02:00
tastytea ba5716c585
Skip in-epub file if it is not found, except it's the container.
We skipped the whole EPUB before.
2021-05-29 18:20:23 +02:00
tastytea 5bd1030ad8
Try opf: variants of XML tags if normal variants are not found. 2021-05-29 18:09:44 +02:00
tastytea 03b367ee98
Don't print same file path twice in error message.
zip::exception always has  the filename in the message.
2021-05-29 17:37:41 +02:00
tastytea 00e3edb9f2
Only search files in spine, in the right order.
The spine lists all content documents in their linear reading order. So we're
finally getting our results in the right order! 🎉

Since we skip the images and fonts, which usually make up the most bytes in an
EPUB file, the performance increase is immense. I measured 60-70% in a very
short test.

Closes: #1
2021-05-29 17:34:43 +02:00
tastytea c94d9de0db
Reformat error messages.
One line per error message.
2021-05-29 12:53:14 +02:00
tastytea 4ff796a590
Make regular expressions static variables.
continuous-integration/drone/push Build is passing Details
Fewer allocations → faster program. About 17% speed increase with 89 books on up
to 3 cores. Measured using the average of 4 runs.
Before: ~15,5 seconds
 After: ~12,8 seconds

Calls to allocation functions went down from 16.652.583 to 5.059.301.
2021-05-28 19:11:32 +02:00
tastytea 4df7b36dfc
Print matches while still searching.
continuous-integration/drone/push Build is passing Details
Previously we printed the matches at the end.
2021-05-28 17:18:34 +02:00