Danbooru Client – a client for Danbooru based sites

2009 October 25
by Einar

A while ago I presented “danbooru2nepomuk”, a small program to tag images coming from Danbooru-based image boards. Today I want to present the evolution of that program, that is a PyKDE4 client for those boards.

Danbooru? Is it something you eat?

Well, aside from the Wikipedia link above, I think a small introduction is in order, at least for the readers coming from PlanetKDE. Danbooru is a kind of image board which structures its data semantically, by having tags attached to images (along with other things, such as favorites, rating, etc.). It can be browsed normally (newest posts, etc.) or by using tags and other properties. Some boards are quite popular in the anime-viewing community. The neat thing about Danbooru (which is by itself a Ruby on Rails application) is the fact that it can provide a REST and POST API to access data. So. it’s technically possible to access such boards programmatically: the API permits not only retrieving posts, but also upload, tag, and perform other operations.

The API could be technically used also for client applications, in order to free the user from using a browser. That is what Danbooru Client is aiming to do.

Introducing Danbooru Client

Danbooru Client fits exactly these needs by providing a GUI to (part of) the Danbooru API.

Features:

  • Connect to any Danbooru board (three predefined)
  • Download up to 100 images with selectable tags;
  • Download or view images with the KDE preferred image viewer;
  • Tag semantically the images using Nepomuk.

Requirements:

  • PyQt (at least version 4.5)
  • PyKDE4 (tested with PyKDE 4.3 only)
  • (optional) Nepomuk
  • Python (at least version 2.5)

Screenshots

(click to enlarge)

Download & Installation

You can obtain Danbooru Client from kde-apps.org. For the bleeding edge people (but are there such users for such an application?) there is a git repository set up at Gitorious. Once downloaded, you need to use CMake to install the files. Unfortunately due to the way CMake is set up, you’ll need the KDE development headers and a working C++ compiler, even though you won’t need them for the installation.

The installation process is very straightforward:

cd /path/to/source
mkdir build; cd build
cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ../
make # This just byte-compiles Python files
sudo make install

Then, just launch “danbooru_client”.

Known limitations

There are plenty for now, it’s just version 0.1:

  • Zero documentation (although it’s kind of straightforward to use)
  • Empty cells are created when a row is not filled with images
  • No support for multi-download
  • Untested login/password access
  • The interface may be horrid
  • Danbooru does not support rating filtering via API, so it’s not currently possible to do so

The client is licensed under the GPL v2 or later. The artwork for the splash screen is also under the GPL and was made by Melissa Adkins.

10 Responses leave one →
  1. 2009 October 25
    ltottom permalink

    UI needs to be usable while downloading. once nepomuk isn’t so crappy i can give that a try.

    otherwise, love it even how limited it is, very cool. thanks guy

  2. 2009 October 25

    @ltottom

    I can easily make the download asynchrononous (i.e. the UI will work) – the problem is that I (to my knowledge) can’t queue KIO operations, which means that if someone downloads 100 thumbnails, KIO will trigger 100 slaves(!) which can easily hammer a server. I just want to play nice with Danbooru sites’ admins: of course if there’s a better solution, I can implement that.

  3. 2009 October 25
    narutorox69 permalink

    thx, now i can get my hentai 2x as fast

  4. 2009 October 26

    Good! I test it on Fedora 11 and KDE 4.3.2 and works well ^^

    Good work!

    P.D. The wall of the screenshot on the top are really nice! Can you share it? pls!

    Greetings.

  5. 2009 October 26

    @All – I may have found a way to make downloading asynchronous without killing some servers. It’ll require some rework of the API backend, though…

  6. 2009 October 26

    @Gómez Hyuuga

    I found it on konachan.com. Here’s the link: http://konachan.com/post/show/35010/akino_momiji-autumn-sakura_musubi-suzuhira_hiro

  7. 2009 October 26
    maniacmusician permalink

    @Einar: It looks like you’ve found a solution to the asynchronous downloading issue. I was going to say, that even if KIO doesn’t support queueing in its framework, it doesn’t sound like it would be too difficult to code as part of the client. As long as KIO can return a value on completion of an individual download, which I would be surprised if it didn’t do.

    I went to check out the website of Ms. Adkins, and was surprised to find that it was coded entirely in Flash. While Flash is certainly a viable framework in certain use cases, it’s disappointing to see it used when much more flexible and standards-compliant technologies can achieve the same end with better results.

    Usually I wouldn’t mention it (or be surprised), but since she’s a graphic designer, who cites web design as a specialty, it leaves more of a bad taste. Especially for potential clients who are aware of such things and might know a thing or two about web design.

  8. 2009 October 27

    @maniacmusician: Turns out that there was support for queueing, so I set it up straight away, and the newest version I pushed on kde-apps.org is now using async downloads. I haven’t tested it extensively, but it works fine. Also I fixed thumbnail caching, that was completely broken in version 0.2.

    With regards to Flash… I agree with the sentiment that other, better technologies would be better (I and Melissa have been discussing this to no end), but sadly even big-name websites are (ab)using that technology for their purposes, not to mention that quite a number of graphic designers code their own portfolios in Flash.

  9. 2009 October 27

    @maniacmusician
    I’m sorry to see your disappointment, with regards to Flash. I am aware of the solutions using other open technologies (CSS first fo all), but usually my clients want to see my skills not as a pure web designer but as a general graphic designer, and so this includes multimedia. Clients that do not follow standards always look for creativity, that is why I need to continue using Flash for now (although I can use CSS/HTML as well).

  10. 2009 November 5

    I really good app, and good work about the tags.
    Works perfect in Arch Linux with Kdemod4.3.

    Greetings

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS