LazyLibrarian is a SickBeard, CouchPotato, Headphones-like application for ebooks, audiobooks and magazines
Go to file
RooHTaylor aabb2b600b Fix init script issues
Init.d script contained a space after the `--daemon` flag, which would ultimately become a double space when paired with any of the following flags. The double space would cause the `pgrep` in the `is_running()` function to not find any results, since the double space would be parsed out by the kernel but still exist in the `$DAEMON_OPTS` variable that is being used to grep. When `is_running()` fails the application cannot be stopped, since it doesn't believe it's running.

Additionally, on certain versions of Debian there is an issue when running `start-stop-daemon` with a `--pidfile` that is not owned by root. This causes the stop command to fail and an error to be displayed. Include the `--user $RUN_AS` flag as a workaround.
2025-03-12 03:35:46 +00:00
data Moved filter and blocklist buttons to top of page 2025-02-14 18:35:15 +01:00
init Fix init script issues 2025-03-12 03:35:46 +00:00
lazylibrarian Fix missing/unused vars 2025-02-28 22:07:53 +01:00
LazyLibrarian.app/Contents Issue 4 - merge in Herman Rodgers branch - alot of work in it 2013-06-06 22:18:27 +01:00
lib Fix zlibrary for python3.8 2025-02-24 20:53:21 +01:00
scripts/ci Install pillow for CI unit tests in pipeline 2023-01-17 01:26:46 +00:00
unittests make seed ratio float 2024-09-06 23:12:37 +02:00
.gitignore Ignore pydeps directory 2022-12-21 17:54:00 +00:00
.gitlab-ci.yml Make the test-all-mods job run every day 2022-12-17 11:13:54 +00:00
demo_preprocessor.py Moved preprocessor into main program 2020-02-26 11:11:04 +01:00
epubandmobi.py Added note about python path for systems with only python3 2019-09-01 16:40:18 +02:00
example_custom_notification.py Added note about python path for systems with only python3 2019-09-01 16:38:59 +02:00
example_custom_notification.sh Custom notifier examples and snatch/download 2017-03-16 18:18:55 +01:00
example_ebook_convert.py Added note about python path for systems with only python3 2019-09-01 16:38:59 +02:00
example_mega_link.py Pycharm tidying 2025-01-02 11:22:02 +01:00
example_rclone_link.sh indent tidying 2021-04-07 15:15:21 +02:00
example.dicts.json Moved filename,umlaut,apostrophe dicts into json file 2024-10-10 20:20:09 +02:00
example.filetemplate.text Fix for message attachments 2022-10-19 13:28:54 +02:00
example.genres.json Genre changes, added genre editor 2018-11-25 18:39:44 +01:00
example.html.filetemplate.text Code tidying 2022-10-19 14:57:54 +02:00
example.logintemplate.text Fix for message attachments 2022-10-19 13:28:54 +02:00
example.monthnames.json Moved log refresh options to top of page 2017-02-11 20:17:56 +01:00
gsconvert.py Pycharm tidying 2025-01-02 11:22:02 +01:00
ISSUE_TEMPLATE.md Spelling and grammar fixes 2023-11-15 16:22:38 +01:00
LazyLibrarian.py Message changes 2025-01-02 15:58:10 +01:00
LICENSE Add LICENSE 2018-12-27 21:35:46 +00:00
pyproject.toml Updated libraries 2025-01-09 18:48:01 +01:00
README.md Mention pyproject.toml in the readme 2024-12-29 11:13:57 +01:00
recover.py Downgrade to previous version if upgrade doesnt start 2020-03-27 12:28:27 +01:00
UNITTESTING.md Updated how and why to do unit testing 2022-11-19 00:30:21 +00:00

LazyLibrarian

LazyLibrarian is a program to follow authors and grab metadata for all your digital reading needs. It uses a combination of HardCover OpenLibrary Librarything GoodReads and optionally GoogleBooks as sources for author info and book info. License: GNU GPL v3

IMPORTANT NOTE

LazyLibrarian used GoodReads extensively for author and book info, but they have now shut down their api. If you have an existing,working goodreads api key you can continue using it until they close completely, otherwise I suggest using HardCover and/or OpenLibrary.

Description

Right now it's capable of the following:

  • Import an existing calibre library (optional, you dont need calibre)
  • Find authors and add them to the database
  • List all books of an author and mark ebooks or audiobooks as 'wanted'.
  • LazyLibrarian will search for a nzb-file or a torrent or magnet link for that book
  • If a nzb/torrent/magnet is found it will be sent to a download client or saved in a black hole where your download client can pick it up.
  • Currently supported download clients for usenet are :
  • sabnzbd (versions later than 0.7.x preferred)
  • nzbget
  • synology_downloadstation
  • Currently supported download clients for torrent and magnets are:
  • deluge
  • transmission
  • utorrent
  • qbittorrent
  • rtorrent
  • synology_downloadstation
  • When processing the downloaded books it will save a cover picture (if available) and save all metadata into metadata.opf next to the bookfile (calibre compatible format)
  • The new theme for the site allows it to be accessed from devices with a smaller screen (such as a tablet)
  • AutoAdd feature for book management tools like Calibre which must have books in flattened directory structure, or use calibre to import your books into an existing calibre library
  • LazyLibrarian can also be used to search for and download magazines, and monitor for new issues

Install:

LazyLibrarian runs by default on port 5299 at http://localhost:5299

  • Install Python 3 v3.7 or higher - later is better
  • Git clone/extract LL wherever you like
  • Install any missing dependencies using "pip install ." or "python -m pip install ." (include the dot at the end)
  • Run python LazyLibrarian.py -d or python LazyLibrarian.py --daemon to start in daemon mode
  • Fill in all the config (see the docs)

Documentation:

There is extensive documentation at https://lazylibrarian.gitlab.io/lazylibrarian.gitlab.io/ and a reddit at https://www.reddit.com/r/LazyLibrarian/

Docker tutorial http://sasquatters.com/lazylibrarian-docker/ Config tutorial http://sasquatters.com/lazylibrarian-configuration/

Update

Auto update available via interface from master for git and source installs

Docker packages

LinuxServer : https://hub.docker.com/r/linuxserver/lazylibrarian/ The docker package includes ghostscript for magazine cover generation and calibredb (via optional variable) LinuxServer docker is multi-arch and works on X86_64, armhf and aarch64 (calibredb only available on X86_64) The dockers can be upgraded using the lazylibrarian internal upgrade mechanism