Automated Fanfiction Download using FanficFare CLI
This is a docker image to run the Automated FFF CLI, with pushbullet integration.
This program will support any website that FanFicFare will support. However, it does make use of multi-processing, spawning a different "watcher" for each website. This list is currently hard-coded, and anything not in the list is treated as part of a single queue "other".
If you wish to add more watchers for different websites, then open an issue or submit a request to modify this dictionary.
- Setup the Calibre Content Server. Instructions can be found on the calibre website
- Make note of the IP address, Port and Library for the server. If needed, also make note of the Username and Password.
- Install the docker image with
docker pull mrtyton/automated-ffdl
- Map the
/config
volume to someplace on your drive. - After running the image once, it will have copied over default configs. Fill them out and everything should start working.
- This default config is currently broken, so when you map the
/config
volume just copy over the default ones found in this repo.
- This default config is currently broken, so when you map the
- Make sure that you have calibre, and more importantly calibredb installed on the system that you're running the script on.
calibredb
should be installed standard when you install calibre. - Install Python3
- Clone the Repo
- Run
python -m pip install -r requirements.txt
- Install FanficFare
- Fill out the config.toml file
- Navigate to
root/app
and runpython fanficdownload.py
The config file is a TOML file that contains the script's specific options. Changes to this file will only take effect upon script startup.
In order for the script to work, you have to fill out the email login information.
[email]
email = ""
password = ""
server = ""
mailbox = ""
sleep_time = 60
email
: The email address, username only.password
: The password to the email address. It is recommened that you use an app password (Google's page on App Password), rather than your email's actual password.server
: Address for the email server. For Gmail, this is going to beimap.gmail.com
. For other web services, you'll have to search for them.mailbox
: Which mailbox to check, such asINBOX
, for the unread update emails.sleep_time
: How often to check the email account for new updates, in seconds. Default is 60 seconds, but you can make this as often as you want. Recommended that you don't go too fast though, since some email providers will not be happy.
The Calibre information for access and updating.
[calibre]
path=""
username=""
password=""
default_ini=""
personal_ini=""
path
: This is the path to your Calibre database. It's the location where your Calibre library is stored on your system. This can be either a directory that contains thecalibre.db
file, or the URL/Port/Library marked down above, such ashttps://192.168.1.1:9001/#Fanfiction
This is the only argument that is required in this section.username
: If your Calibre database is password protected, this is the username you use to access it.password
: If your Calibre database is password protected, this is the password you use to access it.default_ini
: This is the path to the default INI configuration file for FanFicFare.personal_ini
: This is the path to your personal INI configuration file for FanFicFare.
For both the default and personal INI, any changes made to them will take effect during the next update check, it does not require a restart of the script.
This script has an optional Pushbullet integration, in case you want to get phone notifications when an update has occurred. The system will also send a notification if it fails to update a story, for whatever reason.
[pushbullet]
enabled = false
api_key = ""
device = ""
enabled
: Whether or not to enable the pushbullet notificationsapi_key
: Your Pushbullet API Keydevice
: If you want to send the notification to a specific device rather than the entirety of the pushbullet subscriptions, you can specify which device here with the device name.