Tags give the ability to mark specific points in history as being important
  • 1.7.0
    a5d01ab2 · Tidied cache returns ·

    Packages: flatpak  flatpak+  deb  rpm  snap 

    New Features
    Comics - initial code needs testing
    Apprise notifier

    Enhancements
    RSS link address override
    Use relative links in opds
    Option to send audiobooks as podcasts
    Added html cache (for comic searches)
    Additional unrar lib can use unrar executable on unix, includes it's own copy of unrardll for windows
    New logger for windows to work around file locking issues
    SSL certificate option for openssl
    getBookPubdate api call

    Bug Fixes
    Allow "&" to match "and" in magazine titles and "+" to match "plus"
    Fix for magazinescan of foldername with multiple variables
    Show comic size in Mb
    Add ascii safe replacement for os.walk
    Add comics to author/title exemption
    Ensure "library" is passed to searchers
    Use category 600 for magazines on piratebay
    Fixed deluge file/foldername comms
    Authorname initial changes for nzb matching

  • 1.6.3   December 2018

    Packages: flatpak  flatpak+  deb  rpm  snap 

    New Features
    Goodreads audiobook shelf sync
    Added option for NYTimes best-sellers as a wishlist
    SendTo option for emailing books to kindles
    Database statistics popup in config
    Book description editor
    Context-sensitive help pages
    Read book genre from goodreads and googlebooks
    Genre editor for merging/ignoring/replacing genres

    Enhancements
    Speed up database queries using WAL and moved lock
    Made name matching ratios configurable in config.ini
    Force search ignores delay counters
    Added flags to govern whether the autoadd files are copied (thanks @knobunc)
    Allow prefix matches from files on disk (thanks @knobunc)
    Warning messages for older libraries
    Separated wishlist task from rss task
    WishLists can be eBook AudioBook or both
    Store wishlist requester details (thanks @jcal22)
    Added config options for download OPF and wishlist tags
    Added switch for deleting empty mag folders
    Added DLTypes to all providers (A)udio (E)book (M)ag
    Added thumbnails and multiple book formats to opds server
    Popup showing email results
    Separate csv files for ebook/audiobook
    Separate Import/Include routines for audiobooks
    Made git source configurable (only in config.ini)
    Made user agent configurable (only in config.ini)
    Added Read/ToRead and ratings options to opds server
    Added page_size config option to opds
    Autodetect aldiko and bypass known paging bug
    Show userid on user admin page for opds and rss use
    Try to get book description from googlebooks if not available from goodreads
    listNoDesc setNoDesc and listNoBooks listNoGenre setNoGenre api calls
    Keep track of googleapi limit and blocked error
    Add GB_COUNTRY to config.ini for googlebooks geo specific content
    Added genre display to opds and books pages
    Show database version in system info
    Nested cache directories
    Added audiobook file concatenation to example_preprocessor.py
    Read "posted" date from piratebay
    Format dates for sorting in manual searchresults
    Additional startup checks for git source
    Shutdown/restart changes for docker installations
    Check id3 comment tags for "unabridged"
    Allow more recent cherrypy to be used (python 3 only)
    preprocessor now has option to add missing audio tags
    Simplified fuzzy matching in wishlist/csv imports
    Added defaults for missing grgenre entries in the json file
    Added URL Base for utorrent and qbittorrent
    Only zip multi-file audiobooks

    Bug Fixes
    Suppress duplicate language table entries
    Remove any old goodreads shelf details
    Fix magazine names with cyrillic chars
    Fix for parameter passing to scripts
    runScript force prefix of python executable under windows
    Fix sending data to qbittorrent
    Rename csv file if import fails
    Removed escaping from placeholder parameters in SQL (thanks @knobunc)
    Fix invalid xml comparison
    Check attachment isn't too large to email
    Fix error moving files in Windows with path larger than 256 (thanks @jcal22)
    Fix for single file audiobooks with no tags
    Fix for utorrent test under python3
    Check minimum seeders on torznab results
    Update AuxInfo on manual imports
    Added url base option to transmission and deluge
    Fix typo causing missing series names
    Hide rating on small and extra small devices as stars not resizeable
    Check series and author statuses when adding wishlist books
    Additional database startup checks, orphans etc.
    Fix indent error that stopped local gs working
    Additional debug logging in database routines
    Various constraint and "foreign key" errors fixed
    Synology duplicate detection fixes
    Synology file list typo fixed
    Delete bad xml/json files unless debugging
    Fix for accented characters in audio playlists
    Added code to update authorid if goodreads changes it
    Update author books count on csv import of a new author
    Corrected email address use for notifier test and user messages
    Honour "Include other books by new authors" when importing from alternate folder
    Fix for postprocessing unicode filenames on python2

  • 1.6.2

    lazylibrarian_1.6.2-1_all.deb
    lazylibrarian-1.6.2-1.noarch.rpm
    lazylibrarian-1.6.2_amd64.snap
    New Features
    Added includeAlternate, createMagCover, createPlaylist api calls
    Optional page number for magazine covers
    Option to generate a new cover from issues page
    Transmission/qbittorrent optional delete if still seeding
    Added book description popup

    Cosmetic changes
    html5 clear button on search boxes
    html5 number fields in config
    Shorten long titles and add tooltip with full title
    Added tooltip showing transfer type (nzb/torrent/magnet)
    More compact config pages

    Bug Fixes
    Strip leading/trailing spaces on config values
    Suppress auto-update if sync/scan in progress
    Fix deb post-install script
    Extra debugging messages on copy/move if permission refused

  • v1.6.1

    New Features OPDS server Delayed searches for previously unfound books Daily api limits for nzb/tor providers

    Bug fixes/enhancements Show ssl version info in debug log and system info popup Added more icon sizes to manifest Show torrent dates from limewire and torrentdownloads Added spinner while manual searching for books Don't rename downloads from nzb providers until postprocessing Added link to rss feeds for apps that do page scraping Changes for jackett results where jackett may b64encode the response Deluge/jackett communication fixed Show reason for download failure in history popup Cache isbn lookups to reduce future api calls Added check for urllib3 as some requests installations don't include it Additional namevars for series naming Slack messaging changes (thanks @barbecuesauce) Magazine opf changes (thanks @knobunc) Added openlibrary as a source of book covers Assume author of book 1 of a series is the main series author File contents checking for rtorrent, utorrent, synology torrents Option to rename "Open" button if lazylibrarian being used purely for admin/download, not accessing books Added playlists to audiobooks and option to download different parts New series filters, Complete, Partial, Empty Show original publication date where available Versioncheck interval of zero now disables startup check New job status popup New setWorkID and authorUpdate api calls On refresh, verify bookid/workid have not changed at goodreads Fix possible incorrect book status on author refresh Fix filter reset button resetting too much, or not enough Fix for some piratebay proxies returning full url instead of relative

  • 1.6.0

    Major database upgrade LibraryThing have disabled WhatWork which was a useful source of series and author info. Database rebuild required to use alternate info from GoodReads and Google.

    New Features Show ETA for database upgrade Slack URL made configurable Moved config [SAVE] button to top of page Added select buttons to authors for bulk status changes Added "banned extensions" check, so we can look inside torrent contents and reject (only for deluge/transmission/qbittorrent currently) Separate out issues we already (think we) have in pastissues table Test providers now reloads capabilities before testing (unless set to manual) Add magazine rename option on libraryscan Added option for user to set their preferred booktype for [Open] BookType popup if more than one type and no default set, or default not available RSS feeds for recent downloads Debug loglevels are now a bitmask, and can be set using --loglevel Added python magic library to detect booktypes from libgen if they don't tell us the extension Separate wishlist interval timer (rss and wishlists at different intervals) Added webapp manifest and icons for full screen integration on mobiles Remove need for magazine folder to start with . or _ Added growl notifier Show rating count in search and enable sorting for rates (thanks cdancette) Options to blacklist failed and/or processed downloads for retry Local copies of js and css files Update to fontawesome 5.0.13 and use local copy Progress bars in history for snatched items

    Bug Fixes Remove the "ignore for 24hrs" cookie on manual version check Recount series totals if a book status is changed Recalculate most recent issue details on issue removal Check preferred filetype for email per-user Show direct download progress bar Repair google books when no api key, and when index error (thanks cdancette) Fix for a rescan not checking if the new result is already in the database Fix for python3 using bytes when unpacking archives Fix for deluge labels needing to be lowercase Fix for goodreads merging authorids Fix for "Change Selected Books" action in Manage resets books/audiobooks filter Fix for Transmission ReadTimeout Transmission/qBitTorrent/Deluge now pass torrent contents to fix jackett redirect issue Reworked issue number / date parsing for magazines

  • 1.5.1

    Bug fixes and enhancements

    Fix if incompatible csv module found Use displayname in manual search results Reworked deluge communication Added certificate option to deluge webui Added listNoLang and listNoISBN api calls Keep transmission session id between calls Confirmation dialog before deleting author Changes for http redirected to magnets Fix broken twitter notifier, changed auth request saving Fix not saving audiostatus when refreshing author Test providers buttons clear book-search if bad request Managebooks changes to manage ebookl or audiobook For notifiers that return a devicelist, send test message after getting the list Added ignoreclient logMessage grSync and getIssueName api calls Use subcat instead of main category in nzb searches, not in addition to Return to issue page with refresh on libraryscan Include "wanted" details in call to custom notifier Magazinescan for single title Allow custom notifier to return stdout/stderr messages to lazylibrarian Add "ignore" button to all github popups

  • 1.5.0

    Major change is python3 compatibility. LazyLibrarian should now run under python 2 and 3 from the same codebase, with the exception of some libraries where we ship library versions for both pythons.

    Other Changes Calibre user column syncing Magazine name matching optimisation Magazine select optimisation Sqlite3 query optimisation Look inside downloaded archives for ebooks Option to disable magazine opf creation Updated requests library qbittorrent api fix Upgraded to beautifulsoup4 Updated oauth2 library Cosmetic changes to config page Added "display name" for Newznab/Torznab/RSS providers Postprocessor optimisations Added universal line ending to csv reader Updated bencode library Updated pynma New id3 reader library "tinytag" Fix for testing providers without saving first

  • 1.4.3

    ** Updates and new features** Old default interface is renamed "legacy" and Bookstrap is the new default Rewrites/changes to make porting to python3 easier Show system info in config Show remote ip address in api calls Add cover selector to book manual edit page lossless compression of images saves 66KB (thanks Fish2) writeOPF and writeAllOPF functions Add $Series variable to book rename Hook for optional debug/fix module at startup Add titles to coverwall Limit coverwall results for slow connections Added PROXY_LOCAL to config.ini Show recent downloads or recent additions in book coverwall Added test button for calibredb Look for books in downloaded archives (tar/zip/rar) Added "Read" and "ToRead" bookmarks to status buttons and api commands Option to auto login the admin user if single user system Added SerNum and SerName variables to name formatting options Separate autoadd directory for magazines

    ** Bug Fixes ** Fix for calibre author name capitalisation Moved download directory into the same config section as the other folders Accept any downloaded jpg as a book cover, not just cover.jpg Regex changes to reduce false series matches Extra password stripping in debug log Remember added/downloaded status on changing nr of columns Check for single file audiobooks with no tags Use unignoredbooks for homepage totals (thanks HaydoZV2) Check renamed torrent doesn't now contain a reject word Use composer as author from mp3 tags (if present) Ensure we talk to git using English month/day names

  • 1.4.2

    New Features User accounts Telegram notifier Goodreads listopia feeds Optional sort author names surname first Optional sort books without definite article Delete books rather than mark ignored if author is not active Optional rename existing books/audiobooks to match naming patterns Series links on manage/ebook/audiobook pages Series status shows both ebook and audiobook status Use https for goodreads calls (new goodreads requirement from December) Goodreads oAuth registration included in main program Layout changes in config providers Include sample bookstrap theme in distribution Include config.ini in debug.zip addBook api call, type option added to queue/unqueue Added global reject list for mags Option to ignore startup version check

    Bug Fixes Include "pen name" as valid author role Remove empty provider slots in config Fix for losing author status on rescan Fix broken "Manual" edit link Fix for Localhost redirecting to 127.0.0.1 Workaround for systems with older sqlite3 that don't support group_concat Bug fix for id3 detection with missing/empty fields Check if goodreads renames an untitled book and update to match Changes to exception handling, and include exception name in log message Threading name changes so we can check for duplicate tasks Extra debug messages in fetchURL and github communication Replaced shlex and re.sub with faster alternatives Delete from wanted table when deleting book/mag from database Delete orphaned entries in wanted table Use configured logdir at startup

  • 1.4.1

    New Features Goodreads sync bookshelves Goodreads follow/unfollow authors Column tidying to reduce clutter Extra debug columns in log (thanks @billbo99) Added windows daemon instructions to wiki (thanks @seanvree) Extra links to series page from author page (thanks @billbo99) Added "file-as" to metadata.opf for calibre Added user/pass options to calibredb, url access, delete from calibre Check age of nzb and reject if too old Allow pseudonym as a valid author role New id3 library for audiobook metadata Anonymised debug log creation Added a few more icons on buttons

    Bug Fixes Use authorid instead of authorname in search results Fix for books with no title Oldest author change to include "wanted" and "loading" status Default TASK_AGE set to 2hrs Syntax fix in README.md (thanks @petemounce) Goodreads image grabbing changed Allow utf-8 responses in webforms Fix for scandinavian characters in authornames Fix for authorname ending in dot Fix for libgen dns block Fix for emailing books and magazines

  • 1.4.0

    New Features Option to email book/mag via notifier Coverwall option on issues page Create magazine .opf files Show libraryscan in progress with refresh on relevant pages Buttons to clear download counters and blocklist Added second libgen slot in config Allow user to set libgen search Separate audiobook and ebook manual searches Magazine issue name can be date only, or title & date Added "remove from history" command on successful postprocessing Sab and nzbget Added categories for tpb Prowl notifier support - thanks @barbequesauce Added "show ignored authors" button csv import improved Added mimetype for downloads so browsers can auto-open Added WorldWideTorrent provider

    Bug Fixes sqlite commands now use tuples instead of string substitution Ensure params are url encoded Fix check for missing books on libraryscan Check ebook/audiobook locations on author scan Magazine title error trapping Set maximum search pages in config utf-8 and latin-1 config parameter changes Fix incorrect button for opening audiobooks Prefer opf metadata to embedded if conflicting Store link to preferred ebook type, not first one scanned Re-ordered postprocessor bookcount/status handling Add manual search snatches to history Fix for space at end of directory name Fuzzy match changes Fix broken status sort Fixed unknown 'module' references in logger calls Unicode import fix Config parser error checking Torznab url splitting changed Better handling of incomplete xml pages

  • 1.3.0

    New Features NOTE - some of the new features are only available in the bookstrap interface Eventually plan is to make bookstrap the default for new installs and drop the old default interface

    Audiobook support with id3 tag reading Toggle buttons for column visibility Combined book searches (rss/tor/nzb all searched in one task) Provider priorities (prefer nzb over tor, one nzb over another, etc) Button to clear failed search results (failed search = blacklisted) Moved libraryscan buttons into Author, eBook and Audiobook pages to only scan relevant parts Added temporary provider blacklist to stop querying providers that returned an earlier error, eg api limit exceeded, provider unavailable Removed googlebooks api key, the daily limits are quite restrictive so each user needs to get their own key

    Bug Fixes Better exception handling More debug messages added Fix for default interface failing to save config items that only bookstrap interface knows about Fix missing labels on default config page preventing git items and webroot saving properly Update from command line moved earlier in bootup, so can recover from previous broken update Renamed Search Filter to Result Filter so it's more clearly not a search box More unicode conversions and error trapping

  • 1.2.2

    Minor bugfix for book tables not displaying until config updated

  • 1.2.1

    New Features Nothing too major this time... Generate a separate dbupgrade log Better percentage match calculation on book titles Try to force more relaxed permissions after calibredb import Moved most of the html generation from python into datatables rendering Default init scripts set to users home directory for database/config/cache Disable all web interface tabs while dbupgrade in progress Store last lazylibrarian upgrade date/time in config NaturalSort routines for sorting mixed text/numbers in both interfaces Added preformatted series list for faster display & filtering Option to hide magazine and series buttons, cover images, author images if not wanted Added a "snap" package - note - confined to users home directory, no access to other folders

    Bug Fixes / Debugging Fix for dbupgrade retry after failure Extra debugging messages if file permissions cannot be set Extra error trapping around reading goodreads/googlebooks xml and json results Goodreads wishlist now ignores repeated entries Deluge cancel auth cookie if auth fails Lots of html tidying, removed mismatched tags, tab/space consistency Removed check for internet access as causing problems in docker

  • 1.2.0

    New Features goodreads rss wishlist support Option to not collect series info on import Option to select series by series status Provider and notifier test buttons now auto-save values if test successful New api commands deleteEmptySeries, listMissingWorkpages, getBookAuthors Option to hide magazine and series buttons if not in use

    Bug Fixes / Debugging Improved import by isbn Improved googlebooks name/title search Improvd rss feed matching by ignoring [keywords in brackets] when scoring match percentages Replace empty values with default values in config where appropriate Fix for googlebooks adding author from search results Improved bookwork searching Better series number parsing for googlebooks Fix bug that lost author images Fix bug that didn't save provider changes Fix bug for natural sorting on default interface Extra warnings if provider host/port not configured Error trapping for notifiers if network down

  • 1.1.0

    New Features Manual Book Search Series tab for library and individual author Multiple series per book Minimum size filter for ebook and magazine downloads Custom notifier option with examples Added rescan counter to libraryscan stats Several new api commands: dumpMonths showTasks vacuum setAllWorkSeries listIgnoredBooks listIgnoredAuthors listIgnoredSeries Option to ignore books with future publication dates Image cache reorganised to separate author and book images Moved config items into a dictionary for easier maintenance Vacuum database after upgrades "Natural sort" for magazine series Default file permissions now configurable in config.ini CSV import now only adds the books in the csv file, not the whole author back catalog. Authors added this way are marked as "ignored" and won't show in the author list unless already there

    Bug Fixes / Debugging Improved series name handling Fixed nzbget_category save Moved database upgrade to prevent locked database Extra exception trapping and error reporting Removed redundant "collate nocase" in single result searches Re-ordered & optimised libraryscan searches Extra search on importing a book not found in database Fix broken librarything language lookup Don't run cron search/process tasks if an equivalent manual task is running (& vice-versa) New header images for default interface, all using same font If unable to rename a directory to name.fail try to create a .bts file in the folder instead Pushbullet try to use system requests library first Warn if calibredb import does not put book in the folder we expect Extra headers in deluge for json communication Warn if "add authors" is disabled in libraryscan Removed option to set book status to "snatched"

  • 1.0.1

    New Features Author editing (name, image, dates) Create cbz/cbr/epub magazine covers Reduced magazine cover size on bookstrap themes Try local copy of gswin first on windows Source installs now upgrade on first run in case zip file is old Extra api calls for author and book editing and locking

    Bug fixes / debugging Show failed query if database is locked to help tracking Timing changes for database upgrades Database integrity check at startup Extra debug messages in cover creation

  • v1.0.0

    Added prebuilt deb and rpm files.
    Docker packages are also available from https://hub.docker.com/r/linuxserver/lazylibrarian/ AUR package available here: https://aur.archlinux.org/packages/lazylibrarian/