Skip to content

Version 1.7.0

Latest
Compare
Choose a tag to compare
@FerrahWolfeh FerrahWolfeh released this 18 Jan 06:41
62e5c01

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 with ExtractorError::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 the ImageBoards enum.
  • Major overhaul of Extractor trait. Now it should expose features() and config() 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