Skip to content

A WebExtension to download image with comprehensible filename from Booru page in one click.

License

Notifications You must be signed in to change notification settings

kuanyui/BooruShinshi

Repository files navigation

Booru Shinshi

ボール紳士:ボール (Booru) サイト間をエレガントに渡り歩く。

This WebExtension improve your experience of browsing Booru (ボール, “board” in Japanese) sites:

  1. One-click to download image with comprehensible filename from a Booru site.
  2. Auto classfication: auto decide which folder to save, by customized tag rules.
  3. One-click to search current keyword across different Booru sites.
  4. (Optional) All image post to images will be opened with new tab (this is very usable if you are using a touchscreen device. e.g. Microsoft Surface).

This is a 100% safe & clean FLOSS. More info about permission, issue, development is on Github

I develop and release ALL my open-source software projects for free, and are ALL licensed under WTFPL, GPL, MIT, or MPL. however, my “free time” is not free actually. If my works are usable to you or make you happy, please consider to donate to reduce my business hours to make more free and open-source projects for you and this world: Thanks for your contribution!

Currently supported sites:

  • chan.sankakucomplex.com
  • yande.re
  • konachan.com
  • konachan.net
  • danbooru.donmai.us
  • gelbooru.com
  • safebooru.org
  • tbib.org
  • booru.allthefallen.moe
  • rule34.xxx
  • rule34.paheal.net
  • rule34.us

For more information please see GitHub.

Install

Screenshot

https://addons.mozilla.org/user-media/previews/full/268/268825.png https://addons.mozilla.org/user-media/previews/full/268/268821.png https://addons.mozilla.org/user-media/previews/full/268/268750.png https://addons.mozilla.org/user-media/previews/full/268/268751.png https://addons.mozilla.org/user-media/previews/full/268/268771.png

Supported Browser

  • Firefox for Desktop >= 61
  • Firefox for Android >= 61

Requirements for Development

  • Node
  • web-ext
  • GNU Make
  • Python 3 (For HTTP server)

Development

Prepare

npm i

Run for development (Watch)

make dev
web-ext run --verbose --firefox-profile ~/.mozilla/firefox/PROFILE_DIR_NAME

If webpack watch exit immediately without any error, please try https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

Run Firefox for developing WebExtension

web-ext run --verbose --firefox-profile ~/.mozilla/firefox/XXXXXXX.NAME

Deploy (Build .xpi file & run a HTTP server for download)

make xpi-server

Zip this repository for uploading to addons.mozilla.org

make zip-repo

Permission

For paranoid users such as me, these are all used permissions with its usages:

  • downloads:
    • Download.
  • tabs:
    • Detect if currently is in supported site, to decide to show/hide pageAction. (It’s impossible to achive this via only manifest.json on Firefox for Android)
  • storage:
    • (Not Implemented Yet) For saving user preferences in your Mozilla account (storage.sync)
  • konachan.net, …
    • Insert script & CSS to grab tags, grab image’s link, insert HTML & CSS to show dowbload buttons.

TODOs

  • Settings:
    • [ ] Show download button permantally / via pageAction?
    • [ ] Customizable filename formatter: site | id | artist | copyright | character | general
    • [ ] keyboard shortcuts
    • [ ] (Android) Always open post with new tab?
    • [ ] (Android) Tap on post link to popup: open, open with tab, download original, download small
  • [x] (Android) Use {} to replace [], which is easier to rename.
  • [ ] Stop observer after url grabbed
  • [x] Show floating buttons after user switch to that tab. Show download buttons only when available.
  • [x] z-index of download buttons

License

MPL 2.0