Cheesecake

"Yonder lies the castle of my father..."


(via)

3D Cheesecake 14


To celebrate California getting drenched, I found some wet dreams…

more...

Pixiv Champloo 2


Just another curated random subset to stir up my Pixiv recommendations. That is, a script opens 100 random images out of ~11,000, and I choose whatever catches my eye, repeating until I get at least 26 in both the sfw and nsfw sets.

The workflow is: drag-and-drop from Preview into a Terminal window where I’ve typed an echo command, switch focus to the terminal, press spacebar twice, and switch back to Preview. When I’m done, switch to the terminal and hit enter, then edit the echo command into an mv into a subdirectory.

Why the odd steps? Because Apple keeps making Preview.app flakier with each release. Normally, when you drag files into Terminal, you get the properly-escaped full path followed by a space, but when you drag from Preview, it will be followed by a backslash and a return, except when it’s followed by a non-backslashed return, which happens at random intervals. That’s why I’m collecting the list with echo instead of using mv directly.

This is in addition to the way it will sometimes return a quarantine path for files that have extended attributes, which is why I strip those off immediately after downloading (xattr -d com.apple.quarantine *.*, or copy them to an ExFAT volume and periodically rm ._*).

I defer the mv to the end because Preview refreshes all the image thumbnails when it detects that some of them have moved. This is no big deal when you have only 100 images open, but if you’re, say, pulling up everything that Pixiv tagged as 魅惑の谷間 (~1,500 at the moment…), it’s annoying.

The rest of my workflow is resizing with ImageMagick and optimizing JPEG size with Guetzli, pulling in links and tags with my PixivPy script, and uploading with s3cmd. I generally accept the shuffled order, but select one image to pull above the fold, then maybe shift a few that got clustered, and put a punchline at the end if I have one. And a cleanup script to number them all sequentially before posting.

more...

3D Cheesecake 13


Once more into the breeches!

[this collection proudly assembled under the supervision of a neighborhood stray cat, with inspirational music provided by Konya Wa Hurricane on endless repeat. No journalists were harmed during the production of this entry, not even the Huffgawkbuzzhos I spotted holding up “wil hait-tweet 4 food” signs outside the discount medical-marijuana dispensary.]

more...

Pixiv Champloo 1


A little random selection to stir up my recommendations page…

more...

3D Cheesecake 12


I either need to stop downloading or post faster. I’m up to 3.4 GB of living girls and nearly 6 GB of Pixiv. Maybe I’ll schedule a bunch of cheesecake for while I’m on vacation in April.

Update:

Names added for all but 5.5 pictures; the half is the cover photo of an AV film that doesn’t name the actresses. The other five stumped both Google and TinEye.

more...

Pixiv: Mecha-bare


Robot girl takes it all off!

No, stop, put some of that back on.

Of course mecha-musume get mecha-bare, but in the keyword メカバレ (meka-baré), it comes from the verb bareru (“to be exposed”), so in context it’s a gal whose robotic parts are showing. Naturally, this will often also involve exposure of her more human parts as well.

Sadly, a simple search for メカバレ felt a lot like the old days of trying to pull cheesecake off of Gelbooru: I had to skip over lots of loli, bondage, rape, and loli-bondage-rape pics to find these. I allowed minor combat damage, but the more severe stuff was not appealing.

more...

Most-blogged Pixiv artists


Since switching to Pixiv as my primary 2D image source, I’ve been bookmarking every picture I blog. Last night, I hacked together another PixivPy script to figure out which artists I’ve blogged work from, sorted by number of images and whether or not I follow them. The core of the code looks more or less like this, for anyone who might want to play with PixivPy:

from pixivpy3 import *
aapi = AppPixivAPI()
aapi.auth(refresh_token = my_auth_token)
result = aapi.user_bookmarks_illust(aapi.user_id)
for i in result.illusts:
    if i.user.id == 0:
        break
    if i.user.is_followed:
        # do stuff
    else:
        # do other stuff

while result.next_url:
    next_qs = aapi.parse_qs(result.next_url)
    result = aapi.user_bookmarks_illust(**next_qs)
    for i in result.illusts:
        if i.user.id == 0:
            break
        if i.user.is_followed:
            # do stuff
        else:
            # do other stuff

(the i.user.id == 0 check was discovered through old-school printf debugging; it’s the only place in the API where I’ve needed something like that so far)

The most-blogged artists list currently looks like this:

CountArtist
12N.G.
10ちた@1月からのお仕事募集中
9もねてぃ◎エロゲ3月発売
8朱シオ
7方天戟(げっきー)
7みづき
6ましゅー
6Salmon88
6柊はじめ@C95月曜日カ46a
6森沢晴行
6mamuru日曜日東D46b
5風牙
5しろきつね:こみトレ_ア25a
5はまけん。@2日目西れ43b
5立羽 @ 3日目 西れ-29a
5米白粕
5たけあしろ
5whoisshe
5宮前りん
5ヤッペン@5月以降仕事募集中
5GIn00
5
5TanDo

“Need a clue, take a clue,
 got a clue, leave a clue”