# BookBounty ![Build Status](https://github.com/TheWicklowWolf/BookBounty/actions/workflows/main.yml/badge.svg) ![Docker Pulls](https://img.shields.io/docker/pulls/thewicklowwolf/bookbounty.svg) image BookBounty is a tool for finding missing Readarr books. ## Run using docker-compose ```yaml services: bookbounty: image: thewicklowwolf/bookbounty:latest container_name: bookbounty ports: - 5000:5000 volumes: - /path/to/config:/bookbounty/config - /path/to/downloads:/bookbounty/downloads - /etc/localtime:/etc/localtime:ro restart: unless-stopped ``` --- ## Configuration via environment variables Certain values can be set via environment variables: * __PUID__: The user ID to run the app with. Defaults to `1000`. * __PGID__: The group ID to run the app with. Defaults to `1000`. * __readarr_address__: The URL for Readarr. Defaults to `http://192.168.1.2:8787`. * __readarr_api_key__: The API key for Readarr. Defaults to ` `. * __libgen_address__: The URL for Library Genesis. The only supported URL at present is `http://libgen.is`. * __sleep_interval__: Interval to sleep between downloads (seconds). Defaults to `0`. * __sync_schedule__: Scheduled hours to run e.g. 14 for 2pm (comma separated values in 24hr). Defaults to ` `. * __minimum_match_ratio__: Minimum percentage for a match. Defaults to `90`. * __selected_path_type__: Select Download Structure (file or folder). Defaults to `file`. * __search_type__: Select Search Type (fiction or non-fiction). Defaults to `fiction`. * __library_scan_on_completion__: Whether to scan Readarr Library on completion. Defaults to `True`. * __request_timeout__: Timeout for requests (seconds). Defaults to `120`. * __thread_limit__: Max number of threads to use. Defaults to `1`. * __selected_language__: Filter download by languages (specific languages or all). Defaults to `English`. This is used if BookBounty is unable to get the languages from the Readarr Metadata Profile. * __preferred_extensions_fiction__: Filter fiction download by extension (comma separated). Defaults to `.epub, .mobi, .azw3, .djvu`. * __preferred_extensions_non_fiction__: Filter non-fiction download by extension (comma separated). Defaults to `.pdf .epub, .mobi, .azw3, .djvu`. * __search_last_name_only__: Use only the author's last name in searches. Defaults to `False`. * __search_shortened_title__: Use shortened title when searching (remove everything after `:`). Defaults to `False`. ## Sync Schedule Use a comma-separated list of hours to start sync (e.g. `2, 20` will initiate a sync at 2 AM and 8 PM). > Note: There is a deadband of up to 10 minutes from the scheduled start time. ## Readarr Integration You have two choices to integrate BookBounty with Readarr: 1. Directly map `/bookbounty/downloads` to your main Readarr folder and configure `selected_path_type=folder`. This method will attempt to create the correct folder structure (`/author/book/filename.ext`, etc.) before downloading files directly into their respective folders. 2. Alternatively, map `/bookbounty/downloads` to an `_unprocessed` folder and set `selected_path_type=file`. This method downloads all files into a single folder. After a library scan in Readarr, some files may remain unmapped and require manual import. After importing, you can use the "**Rename Files**" function in Readarr to organize the files into the correct folders. For both methods, setting `library_scan_on_completion=True` automates the import process in Readarr. **Note:** Readarr does not automatically rename files upon import. --- image --- image --- https://hub.docker.com/r/thewicklowwolf/bookbounty