Version 1.7.0
Download from custom websites
Currently, the custom servers config file will reside by default in either:
$XDG_CONFIG_HOME/imageboard-downloader/servers.toml
%APPDATA%/FerrahWolfeh/imageboard-downloader/servers.toml
$IBDL_SERVER_CFG/servers.toml
Now, to download from a custom server, once configured, is pretty straightforward and similar to the old way:
cargo run --release -- search -i my_custom_server "tag1" "tag2"
In order to verify which servers are available for download, just run the app as usual, but with a --servers
flag:
cargo run --release -- post --servers 123456
The current format for the server config file is as follows with some fields being ok if omitted:
[servers]
# Currently supported server types are ["danbooru", "e621" , "gelbooru", "gelbooru beta 0.2" | "gelbooru_020", "moebooru"]
[servers.danbooru]
pretty_name = "Danbooru" # Required
server = "danbooru" # Required
base_url = "https://danbooru.donmai.us" # Required
post_url = "https://danbooru.donmai.us/posts/" # Optional
post_list_url = "https://danbooru.donmai.us/posts.json" # Optional
pool_idx_url = "https://danbooru.donmai.us/pools" # Optional
max_post_limit = 200 # Required
auth_url = "https://danbooru.donmai.us/profile.json" # Optional
[servers.gelbooru]
pretty_name = "Gelbooru"
server = "gelbooru"
base_url = "https://gelbooru.com"
post_url = "http://gelbooru.com/index.php?page=dapi&s=post&q=index&json=1"
post_list_url = "http://gelbooru.com/index.php?page=dapi&s=post&q=index&json=1"
max_post_limit = 100
[servers.yandere]
pretty_name = "Yande.re"
server = "moebooru"
base_url = "https://yande.re"
post_list_url = "https://yande.re/post.json"
max_post_limit = 100
[servers.xbooru]
pretty_name = "xbooru"
server = "gelbooru"
base_url = "https://xbooru.com/"
post_url = "https://xbooru.com/index.php?page=dapi&s=post&q=index&json=1"
post_list_url = "https://xbooru.com/index.php?page=dapi&s=post&q=index&json=1"
max_post_limit = 100
image_url = "https://img.xbooru.com/"
These new changes will also change a bit how the global blacklist works, with now the new format being:
[blacklist]
[blacklist.global]
tags = [] # Place in this array all the tags that will be excluded from all imageboards
# Place in the following all the tags that will be excluded from specific imageboards
[blacklist.danbooru]
tags = []
[blacklist.e621]
tags = []
[blacklist.realbooru]
tags = []
[blacklist.rule34]
tags = []
[blacklist.gelbooru]
tags = []
[blacklist.konachan]
tags = []
[blacklist.custom_server]
tags = []
Known bugs Fixed
- Downloading with
gelbooru
servers paradoxically crashes withExtractorError::PostMapFail
when a download session finishes successfully. - The dialog message to confirm overwriting the output directory messes up with debug logs.
- Global Blacklist counting items removed by
--no-animated
- Realbooru server giving 404 errors when downloading posts.
Important API changes:
ibdl-common
no longer holds all info from the imageboards in theImageBoards
enum.- Major overhaul of
Extractor
trait. Now it should exposefeatures()
andconfig()
functions to better interface with new workflow. - Other stuff that I definetly forgot... (it's a lot)
Main PR
- Add custom imageboard servers functionality & major code cleanup and patching. in #7
Full Changelog: 1.6.2...1.7.0