booru 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +47 -0
- data/Rakefile +33 -0
- data/bin/booru.rb +36 -0
- data/booru.gemspec +23 -0
- data/fixtures/konachan/post_index.json +1 -0
- data/fixtures/yandere/post_index.json +1 -0
- data/lib/booru.rb +44 -0
- data/lib/booru/api.rb +27 -0
- data/lib/booru/api/artist.rb +74 -0
- data/lib/booru/api/comment.rb +48 -0
- data/lib/booru/api/favorite.rb +21 -0
- data/lib/booru/api/forum.rb +23 -0
- data/lib/booru/api/note.rb +82 -0
- data/lib/booru/api/pool.rb +101 -0
- data/lib/booru/api/post.rb +153 -0
- data/lib/booru/api/tag.rb +57 -0
- data/lib/booru/api/user.rb +21 -0
- data/lib/booru/api/wiki.rb +136 -0
- data/lib/booru/client.rb +33 -0
- data/lib/booru/client/behoimi.rb +29 -0
- data/lib/booru/client/danbooru.rb +25 -0
- data/lib/booru/client/konachan.rb +25 -0
- data/lib/booru/client/yandere.rb +25 -0
- data/lib/booru/downloader.rb +95 -0
- data/lib/booru/error.rb +32 -0
- data/lib/booru/request.rb +55 -0
- data/lib/booru/utils.rb +80 -0
- data/lib/booru/version.rb +4 -0
- metadata +140 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2012 David Palma
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# Booru (v0.0.1)
|
2
|
+
|
3
|
+
WARNING: Use at your own risk, this is still very early in development and subject to large changes.
|
4
|
+
|
5
|
+
That being said, the downloader is mostly stable.
|
6
|
+
|
7
|
+
The Booru client API methods are all mapped out, but are not tested
|
8
|
+
and provide no real checks or defaults at the moment (currently in
|
9
|
+
progress). Presumably, so long as you pass valid option hashes to the
|
10
|
+
methods, they should work. Happy hacking.
|
11
|
+
|
12
|
+
## Installation
|
13
|
+
|
14
|
+
gem install booru
|
15
|
+
|
16
|
+
## Downloader Usage
|
17
|
+
|
18
|
+
booru -b konachan -m 10 --sfw "touhou blue"
|
19
|
+
|
20
|
+
## API Usage
|
21
|
+
|
22
|
+
require 'booru'
|
23
|
+
|
24
|
+
b = Booru::Yandere.new
|
25
|
+
|
26
|
+
params = { :limit => 100,
|
27
|
+
:page =>1,
|
28
|
+
:tags => "k-on! akiyama_mio nakano_azusa"
|
29
|
+
}
|
30
|
+
posts = b.list_posts(params) # returns an array of hashes
|
31
|
+
puts posts.inspect
|
32
|
+
|
33
|
+
## Contributing
|
34
|
+
|
35
|
+
1. Fork it
|
36
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
37
|
+
3. Commit your changes (`git commit -am 'Added some feature'`)
|
38
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
39
|
+
5. Create new Pull Request
|
40
|
+
|
41
|
+
## License
|
42
|
+
|
43
|
+
MIT License. See LICENSE file for details.
|
44
|
+
|
45
|
+
## Authors
|
46
|
+
|
47
|
+
David Palma
|
data/Rakefile
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
require "bundler/gem_tasks"
|
3
|
+
require 'rake/testtask'
|
4
|
+
|
5
|
+
task :default => :test
|
6
|
+
|
7
|
+
Rake::TestTask.new do |t|
|
8
|
+
t.libs << 'lib/booru'
|
9
|
+
t.test_files = FileList['spec/lib/booru/*_spec.rb']
|
10
|
+
t.verbose = true
|
11
|
+
end
|
12
|
+
|
13
|
+
gemspec = eval(File.read(Dir["*.gemspec"].first))
|
14
|
+
|
15
|
+
desc "Validate the gemspec"
|
16
|
+
task :gemspec do
|
17
|
+
gemspec.validate
|
18
|
+
end
|
19
|
+
|
20
|
+
task :build => :gemspec do
|
21
|
+
system "gem build #{gemspec.name}.gemspec"
|
22
|
+
FileUtils.mkdir_p "pkg"
|
23
|
+
FileUtils.mv "#{gemspec.name}-#{gemspec.version}.gem", "pkg"
|
24
|
+
end
|
25
|
+
|
26
|
+
task :install => :build do
|
27
|
+
system "gem install pkg/#{gemspec.name}-#{gemspec.version}"
|
28
|
+
end
|
29
|
+
|
30
|
+
desc "Purge the pkg directory"
|
31
|
+
task :clean do
|
32
|
+
FileUtils.rm_rf "pkg"
|
33
|
+
end
|
data/bin/booru.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- encoding : utf-8 -*-
|
3
|
+
|
4
|
+
# For use/testing when no gem is installed
|
5
|
+
require './lib/booru'
|
6
|
+
|
7
|
+
opts = Trollop::options do
|
8
|
+
version "booru v#{Booru::VERSION}"
|
9
|
+
banner <<-EOM
|
10
|
+
Booru is a Ruby client for the Moebooru API and image downloader for Danbooru style image boards.
|
11
|
+
|
12
|
+
Usage:
|
13
|
+
booru [options] "tags"
|
14
|
+
|
15
|
+
Supported image boards:
|
16
|
+
danbooru, konachan, yandere, behoimi
|
17
|
+
|
18
|
+
Options:
|
19
|
+
EOM
|
20
|
+
|
21
|
+
opt :board, "Imageboard to download from", :default => 'danbooru'
|
22
|
+
opt :user, "Imageboard account username", :type => :string
|
23
|
+
opt :pass, "Imageboard account password", :type => :string
|
24
|
+
opt :max, "Max number of downloads", :type => :int
|
25
|
+
opt :output, "Output directory", :default => File.expand_path('~/booru')
|
26
|
+
opt :sfw, "Only download safe for work images.", :default => false
|
27
|
+
end
|
28
|
+
|
29
|
+
Trollop::die "No tags specified." if ARGV.empty?
|
30
|
+
|
31
|
+
puts "Using tags: #{ARGV[0]}"
|
32
|
+
opts[:tags] = ARGV[0]
|
33
|
+
opts[:tags] = [opts[:tags], 's'].join(' ') if opts[:sfw]
|
34
|
+
|
35
|
+
d = Booru::Downloader.new(opts)
|
36
|
+
d.download
|
data/booru.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/booru/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = 'booru'
|
6
|
+
s.version = Booru::VERSION
|
7
|
+
s.homepage = 'https://github.com/mistofvongola/booru'
|
8
|
+
s.summary = 'A Ruby client for the Moebooru API.'
|
9
|
+
s.description = 'A Moebooru API client and image downloader for Danbooru style image boards.'
|
10
|
+
|
11
|
+
s.authors = ['David Palma']
|
12
|
+
s.email = 'requiem.der.seele@gmail.com'
|
13
|
+
|
14
|
+
s.files = `git ls-files`.split("\n")
|
15
|
+
s.executables = s.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
16
|
+
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
17
|
+
s.require_path = ['lib']
|
18
|
+
|
19
|
+
s.add_development_dependency 'rake'
|
20
|
+
s.add_runtime_dependency 'trollop'
|
21
|
+
s.add_runtime_dependency 'nori'
|
22
|
+
s.add_runtime_dependency 'rest-client'
|
23
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[{"id":143812,"tags":"pokemon","created_at":1346614995,"creator_id":83902,"author":"markspivak","change":493559,"source":"http://www.games1.cc/1438/pokemonfuck.html","score":3,"md5":"06feb26bc528ec09061718f8cd7edf6c","file_size":129582,"file_url":"http://konachan.com/image/06feb26bc528ec09061718f8cd7edf6c/Konachan.com%20-%20143812%20pokemon.jpg","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/06/fe/06feb26bc528ec09061718f8cd7edf6c.jpg","preview_width":150,"preview_height":114,"actual_preview_width":300,"actual_preview_height":227,"sample_url":"http://konachan.com/image/06feb26bc528ec09061718f8cd7edf6c/Konachan.com%20-%20143812%20pokemon.jpg","sample_width":718,"sample_height":544,"sample_file_size":0,"jpeg_url":"http://konachan.com/image/06feb26bc528ec09061718f8cd7edf6c/Konachan.com%20-%20143812%20pokemon.jpg","jpeg_width":718,"jpeg_height":544,"jpeg_file_size":0,"rating":"q","has_children":false,"parent_id":null,"status":"pending","width":718,"height":544,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[],"flag_detail":null},{"id":143811,"tags":"accel_world arita_haruyuki mayuzumi_takumu platin_(alios)","created_at":1346612371,"creator_id":13784,"author":"SciFi","change":493558,"source":"http://i2.pixiv.net/img24/img/alios/29860806.jpg","score":11,"md5":"5534a7862b1437dd5b8bcb15d6ffd8da","file_size":1063494,"file_url":"http://konachan.com/image/5534a7862b1437dd5b8bcb15d6ffd8da/Konachan.com%20-%20143811%20accel_world%20arita_haruyuki%20mayuzumi_takumu%20platin_%28alios%29.jpg","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/55/34/5534a7862b1437dd5b8bcb15d6ffd8da.jpg","preview_width":150,"preview_height":105,"actual_preview_width":300,"actual_preview_height":210,"sample_url":"http://konachan.com/image/5534a7862b1437dd5b8bcb15d6ffd8da/Konachan.com%20-%20143811%20accel_world%20arita_haruyuki%20mayuzumi_takumu%20platin_%28alios%29.jpg","sample_width":1500,"sample_height":1052,"sample_file_size":0,"jpeg_url":"http://konachan.com/image/5534a7862b1437dd5b8bcb15d6ffd8da/Konachan.com%20-%20143811%20accel_world%20arita_haruyuki%20mayuzumi_takumu%20platin_%28alios%29.jpg","jpeg_width":1500,"jpeg_height":1052,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":1500,"height":1052,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143810,"tags":"akiyama_mio black_eyes black_hair blonde_hair blue_eyes brown_eyes brown_hair food group hirasawa_yui japanese_clothes k-on! kimono kotobuki_tsumugi long_hair nakano_azusa ponytail sakamoto_kazuya short_hair tainaka_ritsu twintails","created_at":1346610890,"creator_id":14063,"author":"meccrain","change":493578,"source":"","score":18,"md5":"e4dac56ac44de9c7666660becf2e5735","file_size":1273796,"file_url":"http://konachan.com/image/e4dac56ac44de9c7666660becf2e5735/Konachan.com%20-%20143810%20akiyama_mio%20black_eyes%20black_hair%20blonde_hair%20blue_eyes%20brown_eyes%20brown_hair%20food%20group%20k-on%21%20kimono%20long_hair%20ponytail%20short_hair%20twintails.jpg","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/e4/da/e4dac56ac44de9c7666660becf2e5735.jpg","preview_width":150,"preview_height":94,"actual_preview_width":300,"actual_preview_height":188,"sample_url":"http://konachan.com/sample/e4dac56ac44de9c7666660becf2e5735/Konachan.com%20-%20143810%20sample.jpg","sample_width":1500,"sample_height":938,"sample_file_size":1427739,"jpeg_url":"http://konachan.com/image/e4dac56ac44de9c7666660becf2e5735/Konachan.com%20-%20143810%20akiyama_mio%20black_eyes%20black_hair%20blonde_hair%20blue_eyes%20brown_eyes%20brown_hair%20food%20group%20k-on%21%20kimono%20long_hair%20ponytail%20short_hair%20twintails.jpg","jpeg_width":2560,"jpeg_height":1600,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":2560,"height":1600,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143809,"tags":"akiyama_mio black_eyes black_hair blonde_hair blush brown_eyes brown_hair cake drink food group headband hirasawa_yui k-on! kotobuki_tsumugi long_hair maruki_nobuaki nakano_azusa short_hair tainaka_ritsu","created_at":1346610671,"creator_id":14063,"author":"meccrain","change":493579,"source":"","score":10,"md5":"3940b1537309866becc5c55be5a54b92","file_size":1492922,"file_url":"http://konachan.com/image/3940b1537309866becc5c55be5a54b92/Konachan.com%20-%20143809%20akiyama_mio%20black_eyes%20black_hair%20blonde_hair%20blush%20brown_eyes%20brown_hair%20cake%20drink%20food%20group%20headband%20hirasawa_yui%20k-on%21%20long_hair%20short_hair.jpg","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/39/40/3940b1537309866becc5c55be5a54b92.jpg","preview_width":150,"preview_height":94,"actual_preview_width":300,"actual_preview_height":188,"sample_url":"http://konachan.com/sample/3940b1537309866becc5c55be5a54b92/Konachan.com%20-%20143809%20sample.jpg","sample_width":1500,"sample_height":938,"sample_file_size":1675935,"jpeg_url":"http://konachan.com/image/3940b1537309866becc5c55be5a54b92/Konachan.com%20-%20143809%20akiyama_mio%20black_eyes%20black_hair%20blonde_hair%20blush%20brown_eyes%20brown_hair%20cake%20drink%20food%20group%20headband%20hirasawa_yui%20k-on%21%20long_hair%20short_hair.jpg","jpeg_width":2560,"jpeg_height":1600,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":2560,"height":1600,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143808,"tags":"akiyama_mio black_eyes black_hair blonde_hair blue_eyes book brown_eyes brown_hair candy food group headband hirasawa_yui horiguchi_yukiko k-on! kotobuki_tsumugi long_hair nakano_azusa pajamas short_hair tainaka_ritsu twintails wink","created_at":1346610594,"creator_id":14063,"author":"meccrain","change":493580,"source":"","score":10,"md5":"aa9f02ad8b8a4f34890a0c4e3e000867","file_size":1373214,"file_url":"http://konachan.com/image/aa9f02ad8b8a4f34890a0c4e3e000867/Konachan.com%20-%20143808%20akiyama_mio%20black_eyes%20black_hair%20blue_eyes%20book%20brown_eyes%20brown_hair%20candy%20food%20group%20headband%20k-on%21%20long_hair%20pajamas%20short_hair%20twintails%20wink.jpg","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/aa/9f/aa9f02ad8b8a4f34890a0c4e3e000867.jpg","preview_width":150,"preview_height":94,"actual_preview_width":300,"actual_preview_height":188,"sample_url":"http://konachan.com/sample/aa9f02ad8b8a4f34890a0c4e3e000867/Konachan.com%20-%20143808%20sample.jpg","sample_width":1500,"sample_height":938,"sample_file_size":1520352,"jpeg_url":"http://konachan.com/image/aa9f02ad8b8a4f34890a0c4e3e000867/Konachan.com%20-%20143808%20akiyama_mio%20black_eyes%20black_hair%20blue_eyes%20book%20brown_eyes%20brown_hair%20candy%20food%20group%20headband%20k-on%21%20long_hair%20pajamas%20short_hair%20twintails%20wink.jpg","jpeg_width":2560,"jpeg_height":1600,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":2560,"height":1600,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143807,"tags":"guilty_crown pink_hair yuzuriha_inori","created_at":1346609781,"creator_id":71197,"author":"kikichakre","change":493563,"source":"","score":7,"md5":"dbfa389fc654e4bfff6cbd0b1cab2c2e","file_size":1967284,"file_url":"http://konachan.com/image/dbfa389fc654e4bfff6cbd0b1cab2c2e/Konachan.com%20-%20143807%20guilty_crown%20pink_hair%20yuzuriha_inori.jpg","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/db/fa/dbfa389fc654e4bfff6cbd0b1cab2c2e.jpg","preview_width":150,"preview_height":94,"actual_preview_width":300,"actual_preview_height":188,"sample_url":"http://konachan.com/sample/dbfa389fc654e4bfff6cbd0b1cab2c2e/Konachan.com%20-%20143807%20sample.jpg","sample_width":1500,"sample_height":938,"sample_file_size":1852876,"jpeg_url":"http://konachan.com/image/dbfa389fc654e4bfff6cbd0b1cab2c2e/Konachan.com%20-%20143807%20guilty_crown%20pink_hair%20yuzuriha_inori.jpg","jpeg_width":5120,"jpeg_height":3200,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"pending","width":5120,"height":3200,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[],"flag_detail":null},{"id":143806,"tags":"2girls animal_ears aqua_eyes breasts collar konpaku_youmu naked_apron odero pink_hair saigyouji_yuyuko short_hair sideboob tail touhou white_hair wink","created_at":1346607677,"creator_id":20645,"author":"Wiresetc","change":493581,"source":"http://i2.pixiv.net/img38/img/odero/29858387.png","score":46,"md5":"d15dfe8660b95e7aa9e5f01cd6d41ad0","file_size":1834045,"file_url":"http://konachan.com/image/d15dfe8660b95e7aa9e5f01cd6d41ad0/Konachan.com%20-%20143806%202girls%20animal_ears%20aqua_eyes%20breasts%20collar%20konpaku_youmu%20naked_apron%20odero%20pink_hair%20short_hair%20sideboob%20tail%20touhou%20white_hair%20wink.png","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/d1/5d/d15dfe8660b95e7aa9e5f01cd6d41ad0.jpg","preview_width":150,"preview_height":120,"actual_preview_width":300,"actual_preview_height":240,"sample_url":"http://konachan.com/jpeg/d15dfe8660b95e7aa9e5f01cd6d41ad0/Konachan.com%20-%20143806%202girls%20animal_ears%20aqua_eyes%20breasts%20collar%20konpaku_youmu%20naked_apron%20odero%20pink_hair%20short_hair%20sideboob%20tail%20touhou%20white_hair%20wink.jpg","sample_width":1500,"sample_height":1200,"sample_file_size":0,"jpeg_url":"http://konachan.com/jpeg/d15dfe8660b95e7aa9e5f01cd6d41ad0/Konachan.com%20-%20143806%202girls%20animal_ears%20aqua_eyes%20breasts%20collar%20konpaku_youmu%20naked_apron%20odero%20pink_hair%20short_hair%20sideboob%20tail%20touhou%20white_hair%20wink.jpg","jpeg_width":1500,"jpeg_height":1200,"jpeg_file_size":713859,"rating":"q","has_children":false,"parent_id":null,"status":"active","width":1500,"height":1200,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143805,"tags":"atuuy bath breasts brown_hair fang long_hair nipples nude original purple_eyes wet","created_at":1346607612,"creator_id":20645,"author":"Wiresetc","change":493582,"source":"http://i1.pixiv.net/img09/img/atuuy/29858105.jpg","score":60,"md5":"189b80c743ff424abddab4af0f559ec7","file_size":1766426,"file_url":"http://konachan.com/image/189b80c743ff424abddab4af0f559ec7/Konachan.com%20-%20143805%20atuuy%20bath%20breasts%20brown_hair%20fang%20long_hair%20nipples%20nude%20original%20purple_eyes%20wet.jpg","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/18/9b/189b80c743ff424abddab4af0f559ec7.jpg","preview_width":150,"preview_height":120,"actual_preview_width":300,"actual_preview_height":240,"sample_url":"http://konachan.com/sample/189b80c743ff424abddab4af0f559ec7/Konachan.com%20-%20143805%20sample.jpg","sample_width":1500,"sample_height":1200,"sample_file_size":1628109,"jpeg_url":"http://konachan.com/image/189b80c743ff424abddab4af0f559ec7/Konachan.com%20-%20143805%20atuuy%20bath%20breasts%20brown_hair%20fang%20long_hair%20nipples%20nude%20original%20purple_eyes%20wet.jpg","jpeg_width":2226,"jpeg_height":1781,"jpeg_file_size":0,"rating":"q","has_children":false,"parent_id":null,"status":"active","width":2226,"height":1781,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143804,"tags":"imouto_no_katachi long_hair miyuki_sena mutou_kurihito nipple_slip nipples no_bra open_shirt pink_hair sphere yellow_eyes","created_at":1346607410,"creator_id":20645,"author":"Wiresetc","change":493583,"source":"https://yande.re/post/show/223334","score":58,"md5":"88c25a680a579659ee5c81e4b4178644","file_size":853646,"file_url":"http://konachan.com/image/88c25a680a579659ee5c81e4b4178644/Konachan.com%20-%20143804%20imouto_no_katachi%20long_hair%20miyuki_sena%20mutou_kurihito%20nipple_slip%20nipples%20no_bra%20open_shirt%20pink_hair%20sphere%20yellow_eyes.jpg","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/88/c2/88c25a680a579659ee5c81e4b4178644.jpg","preview_width":150,"preview_height":120,"actual_preview_width":300,"actual_preview_height":240,"sample_url":"http://konachan.com/sample/88c25a680a579659ee5c81e4b4178644/Konachan.com%20-%20143804%20sample.jpg","sample_width":1500,"sample_height":1200,"sample_file_size":994834,"jpeg_url":"http://konachan.com/image/88c25a680a579659ee5c81e4b4178644/Konachan.com%20-%20143804%20imouto_no_katachi%20long_hair%20miyuki_sena%20mutou_kurihito%20nipple_slip%20nipples%20no_bra%20open_shirt%20pink_hair%20sphere%20yellow_eyes.jpg","jpeg_width":2375,"jpeg_height":1900,"jpeg_file_size":0,"rating":"q","has_children":false,"parent_id":null,"status":"active","width":2375,"height":1900,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143803,"tags":"animal_ears blonde_hair blue_eyes boots bubbles foxgirl gloves loli multiple_tails nude original pashikiso tail underwater","created_at":1346607349,"creator_id":20645,"author":"Wiresetc","change":493584,"source":"http://i2.pixiv.net/img40/img/hi5tj0gp/29857139.jpg","score":22,"md5":"7293bc2b50ab74d6159532343cac4be3","file_size":585118,"file_url":"http://konachan.com/image/7293bc2b50ab74d6159532343cac4be3/Konachan.com%20-%20143803%20animal_ears%20blonde_hair%20blue_eyes%20boots%20bubbles%20foxgirl%20gloves%20loli%20multiple_tails%20nude%20original%20pashikiso%20tail%20underwater.jpg","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/72/93/7293bc2b50ab74d6159532343cac4be3.jpg","preview_width":150,"preview_height":117,"actual_preview_width":300,"actual_preview_height":234,"sample_url":"http://konachan.com/image/7293bc2b50ab74d6159532343cac4be3/Konachan.com%20-%20143803%20animal_ears%20blonde_hair%20blue_eyes%20boots%20bubbles%20foxgirl%20gloves%20loli%20multiple_tails%20nude%20original%20pashikiso%20tail%20underwater.jpg","sample_width":1152,"sample_height":900,"sample_file_size":0,"jpeg_url":"http://konachan.com/image/7293bc2b50ab74d6159532343cac4be3/Konachan.com%20-%20143803%20animal_ears%20blonde_hair%20blue_eyes%20boots%20bubbles%20foxgirl%20gloves%20loli%20multiple_tails%20nude%20original%20pashikiso%20tail%20underwater.jpg","jpeg_width":1152,"jpeg_height":900,"jpeg_file_size":0,"rating":"q","has_children":false,"parent_id":null,"status":"active","width":1152,"height":900,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143801,"tags":"bikini chimari_mima fujisaki_shizuka game_cg green_hair hashimoto_takashi imouto_no_katachi kodamasawa_izumi meta mutou_kurihito orange_hair pink_hair sphere sumeragi_ayaka sunadori_satori swimsuit water","created_at":1346607163,"creator_id":20645,"author":"Wiresetc","change":493539,"source":"Imouto no Katachi CG","score":49,"md5":"e6a2461b9906f0fc46221d0578ce234b","file_size":2397990,"file_url":"http://konachan.com/image/e6a2461b9906f0fc46221d0578ce234b/Konachan.com%20-%20143801%20bikini%20chimari_mima%20game_cg%20green_hair%20kodamasawa_izumi%20meta%20mutou_kurihito%20orange_hair%20pink_hair%20sphere%20sumeragi_ayaka%20sunadori_satori%20swimsuit%20water.png","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/e6/a2/e6a2461b9906f0fc46221d0578ce234b.jpg","preview_width":150,"preview_height":84,"actual_preview_width":300,"actual_preview_height":169,"sample_url":"http://konachan.com/sample/e6a2461b9906f0fc46221d0578ce234b/Konachan.com%20-%20143801%20sample.jpg","sample_width":1500,"sample_height":844,"sample_file_size":1464966,"jpeg_url":"http://konachan.com/jpeg/e6a2461b9906f0fc46221d0578ce234b/Konachan.com%20-%20143801%20bikini%20chimari_mima%20game_cg%20green_hair%20kodamasawa_izumi%20meta%20mutou_kurihito%20orange_hair%20pink_hair%20sphere%20sumeragi_ayaka%20sunadori_satori%20swimsuit%20water.jpg","jpeg_width":1920,"jpeg_height":1080,"jpeg_file_size":1134113,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":1920,"height":1080,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143800,"tags":"chimari_mima close game_cg imouto_no_katachi kodamasawa_izumi loli pink_hair short_hair sphere twintails","created_at":1346606946,"creator_id":20645,"author":"Wiresetc","change":493536,"source":"Imouto no Katachi CG","score":24,"md5":"72eb53acb4bb584adcb3a16cc1575e82","file_size":2273020,"file_url":"http://konachan.com/image/72eb53acb4bb584adcb3a16cc1575e82/Konachan.com%20-%20143800%20chimari_mima%20close%20game_cg%20imouto_no_katachi%20kodamasawa_izumi%20loli%20pink_hair%20short_hair%20sphere%20twintails.png","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/72/eb/72eb53acb4bb584adcb3a16cc1575e82.jpg","preview_width":150,"preview_height":84,"actual_preview_width":300,"actual_preview_height":169,"sample_url":"http://konachan.com/sample/72eb53acb4bb584adcb3a16cc1575e82/Konachan.com%20-%20143800%20sample.jpg","sample_width":1500,"sample_height":844,"sample_file_size":1282870,"jpeg_url":"http://konachan.com/jpeg/72eb53acb4bb584adcb3a16cc1575e82/Konachan.com%20-%20143800%20chimari_mima%20close%20game_cg%20imouto_no_katachi%20kodamasawa_izumi%20loli%20pink_hair%20short_hair%20sphere%20twintails.jpg","jpeg_width":1920,"jpeg_height":1080,"jpeg_file_size":972033,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":1920,"height":1080,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143799,"tags":"breasts game_cg imouto_no_katachi long_hair miyuki_sena mutou_kurihito nipples panties pink_hair sphere sunset topless underwear wet","created_at":1346606929,"creator_id":20645,"author":"Wiresetc","change":493537,"source":"Imouto no Katachi CG","score":66,"md5":"203c33f0d9f46f10d0d92e40a0de5e28","file_size":1888924,"file_url":"http://konachan.com/image/203c33f0d9f46f10d0d92e40a0de5e28/Konachan.com%20-%20143799%20breasts%20game_cg%20imouto_no_katachi%20long_hair%20miyuki_sena%20mutou_kurihito%20nipples%20panties%20pink_hair%20sphere%20sunset%20topless%20underwear%20wet.png","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/20/3c/203c33f0d9f46f10d0d92e40a0de5e28.jpg","preview_width":150,"preview_height":84,"actual_preview_width":300,"actual_preview_height":169,"sample_url":"http://konachan.com/sample/203c33f0d9f46f10d0d92e40a0de5e28/Konachan.com%20-%20143799%20sample.jpg","sample_width":1500,"sample_height":844,"sample_file_size":1084903,"jpeg_url":"http://konachan.com/jpeg/203c33f0d9f46f10d0d92e40a0de5e28/Konachan.com%20-%20143799%20breasts%20game_cg%20imouto_no_katachi%20long_hair%20miyuki_sena%20mutou_kurihito%20nipples%20panties%20pink_hair%20sphere%20sunset%20topless%20underwear%20wet.jpg","jpeg_width":1920,"jpeg_height":1080,"jpeg_file_size":715340,"rating":"q","has_children":false,"parent_id":null,"status":"active","width":1920,"height":1080,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143798,"tags":"ass bikini game_cg hashimoto_takashi imouto_no_katachi orange_hair sphere sumeragi_ayaka swimsuit wet","created_at":1346606311,"creator_id":20645,"author":"Wiresetc","change":493533,"source":"Imouto no Katachi CG","score":74,"md5":"8ee55fc1c7f72df0e8e1c95096c59bc0","file_size":2055662,"file_url":"http://konachan.com/image/8ee55fc1c7f72df0e8e1c95096c59bc0/Konachan.com%20-%20143798%20ass%20bikini%20game_cg%20hashimoto_takashi%20imouto_no_katachi%20orange_hair%20sphere%20sumeragi_ayaka%20swimsuit%20wet.png","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/8e/e5/8ee55fc1c7f72df0e8e1c95096c59bc0.jpg","preview_width":150,"preview_height":84,"actual_preview_width":300,"actual_preview_height":169,"sample_url":"http://konachan.com/sample/8ee55fc1c7f72df0e8e1c95096c59bc0/Konachan.com%20-%20143798%20sample.jpg","sample_width":1500,"sample_height":844,"sample_file_size":1133927,"jpeg_url":"http://konachan.com/jpeg/8ee55fc1c7f72df0e8e1c95096c59bc0/Konachan.com%20-%20143798%20ass%20bikini%20game_cg%20hashimoto_takashi%20imouto_no_katachi%20orange_hair%20sphere%20sumeragi_ayaka%20swimsuit%20wet.jpg","jpeg_width":1920,"jpeg_height":1080,"jpeg_file_size":760240,"rating":"q","has_children":false,"parent_id":null,"status":"active","width":1920,"height":1080,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143797,"tags":"bed game_cg imouto_no_katachi long_hair masturbation mutou_kurihito panties phone pink_hair sphere suzunomiya_mayuki underwear","created_at":1346606239,"creator_id":20645,"author":"Wiresetc","change":493538,"source":"Imouto no Katachi CG","score":28,"md5":"461ca0eb66bf0053626d7cbd1483fa1b","file_size":2236676,"file_url":"http://konachan.com/image/461ca0eb66bf0053626d7cbd1483fa1b/Konachan.com%20-%20143797%20bed%20game_cg%20imouto_no_katachi%20long_hair%20masturbation%20mutou_kurihito%20panties%20phone%20pink_hair%20sphere%20suzunomiya_mayuki%20underwear.png","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/46/1c/461ca0eb66bf0053626d7cbd1483fa1b.jpg","preview_width":150,"preview_height":84,"actual_preview_width":300,"actual_preview_height":169,"sample_url":"http://konachan.com/sample/461ca0eb66bf0053626d7cbd1483fa1b/Konachan.com%20-%20143797%20sample.jpg","sample_width":1500,"sample_height":844,"sample_file_size":1100076,"jpeg_url":"http://konachan.com/jpeg/461ca0eb66bf0053626d7cbd1483fa1b/Konachan.com%20-%20143797%20bed%20game_cg%20imouto_no_katachi%20long_hair%20masturbation%20mutou_kurihito%20panties%20phone%20pink_hair%20sphere%20suzunomiya_mayuki%20underwear.jpg","jpeg_width":1920,"jpeg_height":1080,"jpeg_file_size":695799,"rating":"e","has_children":false,"parent_id":null,"status":"active","width":1920,"height":1080,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143796,"tags":"blush breasts brown_eyes brown_hair hatsukoi_1/1 koizumi_amane long_hair morino_yukino naked_apron nipples","created_at":1346605917,"creator_id":20645,"author":"Wiresetc","change":493529,"source":"https://yande.re/post/show/223329","score":41,"md5":"b44b4f5384c625b737e84ced611b455f","file_size":893875,"file_url":"http://konachan.com/image/b44b4f5384c625b737e84ced611b455f/Konachan.com%20-%20143796%20blush%20breasts%20brown_eyes%20brown_hair%20hatsukoi_1_1%20koizumi_amane%20long_hair%20morino_yukino%20naked_apron%20nipples.jpg","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/b4/4b/b44b4f5384c625b737e84ced611b455f.jpg","preview_width":150,"preview_height":120,"actual_preview_width":300,"actual_preview_height":240,"sample_url":"http://konachan.com/image/b44b4f5384c625b737e84ced611b455f/Konachan.com%20-%20143796%20blush%20breasts%20brown_eyes%20brown_hair%20hatsukoi_1_1%20koizumi_amane%20long_hair%20morino_yukino%20naked_apron%20nipples.jpg","sample_width":1419,"sample_height":1135,"sample_file_size":0,"jpeg_url":"http://konachan.com/image/b44b4f5384c625b737e84ced611b455f/Konachan.com%20-%20143796%20blush%20breasts%20brown_eyes%20brown_hair%20hatsukoi_1_1%20koizumi_amane%20long_hair%20morino_yukino%20naked_apron%20nipples.jpg","jpeg_width":1419,"jpeg_height":1135,"jpeg_file_size":0,"rating":"q","has_children":false,"parent_id":null,"status":"active","width":1419,"height":1135,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143795,"tags":"blush hat jpeg_artifacts photoshop red_hair ribbons wings","created_at":1346605832,"creator_id":69874,"author":"ViridianCrystal","change":493564,"source":"http://www.pixiv.net/member_illust.php?mode=medium&illust_id=5858310","score":29,"md5":"a99e6ca29d98a16dc87d7f4a8fd5b913","file_size":2488611,"file_url":"http://konachan.com/image/a99e6ca29d98a16dc87d7f4a8fd5b913/Konachan.com%20-%20143795%20blush%20hat%20jpeg_artifacts%20photoshop%20red_hair%20ribbons%20wings.png","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/a9/9e/a99e6ca29d98a16dc87d7f4a8fd5b913.jpg","preview_width":150,"preview_height":113,"actual_preview_width":300,"actual_preview_height":225,"sample_url":"http://konachan.com/sample/a99e6ca29d98a16dc87d7f4a8fd5b913/Konachan.com%20-%20143795%20sample.jpg","sample_width":1440,"sample_height":1080,"sample_file_size":1712145,"jpeg_url":"http://konachan.com/jpeg/a99e6ca29d98a16dc87d7f4a8fd5b913/Konachan.com%20-%20143795%20blush%20hat%20jpeg_artifacts%20photoshop%20red_hair%20ribbons%20wings.jpg","jpeg_width":1440,"jpeg_height":1080,"jpeg_file_size":782182,"rating":"s","has_children":false,"parent_id":97288,"status":"pending","width":1440,"height":1080,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[],"flag_detail":null},{"id":143794,"tags":"gray_hair hashimoto_takashi kasugano_sora loli long_hair nipples nude sphere yosuga_no_sora","created_at":1346605814,"creator_id":20645,"author":"Wiresetc","change":493527,"source":"https://yande.re/post/show/223322","score":33,"md5":"27eb5fb136bfedcb20749c085ef05b0a","file_size":1019923,"file_url":"http://konachan.com/image/27eb5fb136bfedcb20749c085ef05b0a/Konachan.com%20-%20143794%20gray_hair%20hashimoto_takashi%20kasugano_sora%20loli%20long_hair%20nipples%20nude%20sphere%20yosuga_no_sora.jpg","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/27/eb/27eb5fb136bfedcb20749c085ef05b0a.jpg","preview_width":150,"preview_height":120,"actual_preview_width":300,"actual_preview_height":240,"sample_url":"http://konachan.com/sample/27eb5fb136bfedcb20749c085ef05b0a/Konachan.com%20-%20143794%20sample.jpg","sample_width":1500,"sample_height":1200,"sample_file_size":1222841,"jpeg_url":"http://konachan.com/image/27eb5fb136bfedcb20749c085ef05b0a/Konachan.com%20-%20143794%20gray_hair%20hashimoto_takashi%20kasugano_sora%20loli%20long_hair%20nipples%20nude%20sphere%20yosuga_no_sora.jpg","jpeg_width":2000,"jpeg_height":1600,"jpeg_file_size":0,"rating":"q","has_children":false,"parent_id":null,"status":"active","width":2000,"height":1600,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143793,"tags":"akizuki_tsukasa cherry_blossoms game_cg haruno_tsubame jpeg_artifacts kiss night sakura_sakimashita sky sorahane","created_at":1346605288,"creator_id":78520,"author":"Torrefaction","change":493526,"source":"Sakura Sakimashita CG","score":13,"md5":"3bcd7495472ec18e93fb2e970201357f","file_size":398914,"file_url":"http://konachan.com/image/3bcd7495472ec18e93fb2e970201357f/Konachan.com%20-%20143793%20akizuki_tsukasa%20cherry_blossoms%20game_cg%20haruno_tsubame%20jpeg_artifacts%20kiss%20night%20sakura_sakimashita%20sky%20sorahane.jpg","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/3b/cd/3bcd7495472ec18e93fb2e970201357f.jpg","preview_width":150,"preview_height":84,"actual_preview_width":300,"actual_preview_height":169,"sample_url":"http://konachan.com/image/3bcd7495472ec18e93fb2e970201357f/Konachan.com%20-%20143793%20akizuki_tsukasa%20cherry_blossoms%20game_cg%20haruno_tsubame%20jpeg_artifacts%20kiss%20night%20sakura_sakimashita%20sky%20sorahane.jpg","sample_width":1280,"sample_height":720,"sample_file_size":0,"jpeg_url":"http://konachan.com/image/3bcd7495472ec18e93fb2e970201357f/Konachan.com%20-%20143793%20akizuki_tsukasa%20cherry_blossoms%20game_cg%20haruno_tsubame%20jpeg_artifacts%20kiss%20night%20sakura_sakimashita%20sky%20sorahane.jpg","jpeg_width":1280,"jpeg_height":720,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"pending","width":1280,"height":720,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[],"flag_detail":null},{"id":143792,"tags":"akaza_akari cosplay funami_yui glasses guitar hatsune_miku headphones ikeda_chitose ikeda_chizuru instrument izayoi_sakuya japanese_clothes k-on! maid miko nagato_yuki school_swimsuit seifuku sugiura_ayano suzumiya_haruhi_no_yuutsu sweeter swimsuit sword thighhighs toshinou_kyouko touhou vocaloid weapon wink witch yoshikawa_chinatsu yuru_yuri","created_at":1346605212,"creator_id":20645,"author":"Wiresetc","change":493522,"source":"http://i1.pixiv.net/img75/img/110111/29696613_big_p1.jpg","score":23,"md5":"91a2f38d35106aca33541f8e466a4c56","file_size":1487076,"file_url":"http://konachan.com/image/91a2f38d35106aca33541f8e466a4c56/Konachan.com%20-%20143792%20cosplay%20funami_yui%20glasses%20guitar%20headphones%20instrument%20k-on%21%20maid%20miko%20seifuku%20sweeter%20swimsuit%20sword%20touhou%20vocaloid%20weapon%20wink%20witch%20yuru_yuri.jpg","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/91/a2/91a2f38d35106aca33541f8e466a4c56.jpg","preview_width":150,"preview_height":120,"actual_preview_width":300,"actual_preview_height":240,"sample_url":"http://konachan.com/sample/91a2f38d35106aca33541f8e466a4c56/Konachan.com%20-%20143792%20sample.jpg","sample_width":1500,"sample_height":1200,"sample_file_size":979724,"jpeg_url":"http://konachan.com/image/91a2f38d35106aca33541f8e466a4c56/Konachan.com%20-%20143792%20cosplay%20funami_yui%20glasses%20guitar%20headphones%20instrument%20k-on%21%20maid%20miko%20seifuku%20sweeter%20swimsuit%20sword%20touhou%20vocaloid%20weapon%20wink%20witch%20yuru_yuri.jpg","jpeg_width":2388,"jpeg_height":1910,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":2388,"height":1910,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":143791,"tags":"animal_ears highschool_dxd lollipop miyama-zero nopan seifuku tail toujou_koneko white white_hair wings yellow_eyes","created_at":1346605035,"creator_id":20645,"author":"Wiresetc","change":493520,"source":"Miyama-zero - Men At Girls","score":47,"md5":"320d8c221883c08d14a9ec00a6769a22","file_size":1211540,"file_url":"http://konachan.com/image/320d8c221883c08d14a9ec00a6769a22/Konachan.com%20-%20143791%20animal_ears%20highschool_dxd%20lollipop%20miyama-zero%20nopan%20seifuku%20tail%20toujou_koneko%20white%20white_hair%20wings%20yellow_eyes.jpg","is_shown_in_index":true,"preview_url":"http://konachan.com/data/preview/32/0d/320d8c221883c08d14a9ec00a6769a22.jpg","preview_width":150,"preview_height":120,"actual_preview_width":300,"actual_preview_height":240,"sample_url":"http://konachan.com/sample/320d8c221883c08d14a9ec00a6769a22/Konachan.com%20-%20143791%20sample.jpg","sample_width":1500,"sample_height":1200,"sample_file_size":664576,"jpeg_url":"http://konachan.com/image/320d8c221883c08d14a9ec00a6769a22/Konachan.com%20-%20143791%20animal_ears%20highschool_dxd%20lollipop%20miyama-zero%20nopan%20seifuku%20tail%20toujou_koneko%20white%20white_hair%20wings%20yellow_eyes.jpg","jpeg_width":2750,"jpeg_height":2200,"jpeg_file_size":0,"rating":"q","has_children":false,"parent_id":null,"status":"active","width":2750,"height":2200,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]}]
|
@@ -0,0 +1 @@
|
|
1
|
+
[{"id":223458,"tags":"c.c._lemon c.c._lemon_(character) cleavage hao_(patinnko) thighhighs","created_at":1346617726,"creator_id":9241,"author":"eridani","change":1116481,"source":"http://www.pixiv.net/member_illust.php?mode=manga&illust_id=28061906","score":0,"md5":"fd918966c54dbacb739d1ed775160b6c","file_size":1045463,"file_url":"https://yande.re/image/fd918966c54dbacb739d1ed775160b6c/yande.re%20223458%20c.c._lemon%20c.c._lemon_%28character%29%20cleavage%20hao_%28patinnko%29%20thighhighs.png","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/fd/91/fd918966c54dbacb739d1ed775160b6c.jpg","preview_width":127,"preview_height":150,"actual_preview_width":255,"actual_preview_height":300,"sample_url":"https://yande.re/sample/fd918966c54dbacb739d1ed775160b6c/yande.re%20223458%20sample.jpg","sample_width":1200,"sample_height":1414,"sample_file_size":182990,"jpeg_url":"https://yande.re/jpeg/fd918966c54dbacb739d1ed775160b6c/yande.re%20223458%20c.c._lemon%20c.c._lemon_%28character%29%20cleavage%20hao_%28patinnko%29%20thighhighs.jpg","jpeg_width":1515,"jpeg_height":1785,"jpeg_file_size":571269,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":1515,"height":1785,"is_held":true,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223457,"tags":"mecha muvluv muvluv_alternative sigelinde_von_fahrenhorst wilfried_von_aichberger","created_at":1346614983,"creator_id":22039,"author":"CryFleuret","change":1116477,"source":"","score":2,"md5":"575bf68ee9d2313a8113c86c7ba47015","file_size":1115418,"file_url":"https://yande.re/image/575bf68ee9d2313a8113c86c7ba47015/yande.re%20223457%20mecha%20muvluv%20muvluv_alternative%20sigelinde_von_fahrenhorst%20wilfried_von_aichberger.png","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/57/5b/575bf68ee9d2313a8113c86c7ba47015.jpg","preview_width":150,"preview_height":100,"actual_preview_width":300,"actual_preview_height":199,"sample_url":"https://yande.re/sample/575bf68ee9d2313a8113c86c7ba47015/yande.re%20223457%20sample.jpg","sample_width":1500,"sample_height":997,"sample_file_size":262933,"jpeg_url":"https://yande.re/jpeg/575bf68ee9d2313a8113c86c7ba47015/yande.re%20223457%20mecha%20muvluv%20muvluv_alternative%20sigelinde_von_fahrenhorst%20wilfried_von_aichberger.jpg","jpeg_width":1566,"jpeg_height":1041,"jpeg_file_size":641244,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":1566,"height":1041,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223456,"tags":"helgarose_von_falkenmayer ilfriede_von_feulner lunateresia_von_wizleben muvluv muvluv_alternative","created_at":1346614727,"creator_id":22039,"author":"CryFleuret","change":1116475,"source":"","score":3,"md5":"4e350b23f942ddc4acc92e61d1f8757b","file_size":1399456,"file_url":"https://yande.re/image/4e350b23f942ddc4acc92e61d1f8757b/yande.re%20223456%20helgarose_von_falkenmayer%20ilfriede_von_feulner%20lunateresia_von_wizleben%20muvluv%20muvluv_alternative.png","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/4e/35/4e350b23f942ddc4acc92e61d1f8757b.jpg","preview_width":150,"preview_height":122,"actual_preview_width":300,"actual_preview_height":243,"sample_url":"https://yande.re/sample/4e350b23f942ddc4acc92e61d1f8757b/yande.re%20223456%20sample.jpg","sample_width":1481,"sample_height":1200,"sample_file_size":381279,"jpeg_url":"https://yande.re/jpeg/4e350b23f942ddc4acc92e61d1f8757b/yande.re%20223456%20helgarose_von_falkenmayer%20ilfriede_von_feulner%20lunateresia_von_wizleben%20muvluv%20muvluv_alternative.jpg","jpeg_width":1500,"jpeg_height":1215,"jpeg_file_size":843992,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":1500,"height":1215,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223455,"tags":"loli swimsuits tagme","created_at":1346614586,"creator_id":1305,"author":"Radioactive","change":1116479,"source":"","score":3,"md5":"d0e13822f35da228fadbb8fd5f60eafc","file_size":5773919,"file_url":"https://yande.re/image/d0e13822f35da228fadbb8fd5f60eafc/yande.re%20223455%20loli%20swimsuits%20tagme.jpg","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/d0/e1/d0e13822f35da228fadbb8fd5f60eafc.jpg","preview_width":103,"preview_height":150,"actual_preview_width":206,"actual_preview_height":300,"sample_url":"https://yande.re/sample/d0e13822f35da228fadbb8fd5f60eafc/yande.re%20223455%20sample.jpg","sample_width":1029,"sample_height":1500,"sample_file_size":293071,"jpeg_url":"https://yande.re/image/d0e13822f35da228fadbb8fd5f60eafc/yande.re%20223455%20loli%20swimsuits%20tagme.jpg","jpeg_width":4707,"jpeg_height":6864,"jpeg_file_size":0,"rating":"q","has_children":false,"parent_id":null,"status":"active","width":4707,"height":6864,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223454,"tags":"spike","created_at":1346614301,"creator_id":9241,"author":"eridani","change":1116472,"source":"http://i1.pixiv.net/img43/img/daible2099/22907344.jpg","score":0,"md5":"e2f0e4f562fd423f695388eb2a7e350f","file_size":1605265,"file_url":"https://yande.re/image/e2f0e4f562fd423f695388eb2a7e350f/yande.re%20223454%20spike.jpg","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/e2/f0/e2f0e4f562fd423f695388eb2a7e350f.jpg","preview_width":106,"preview_height":150,"actual_preview_width":212,"actual_preview_height":300,"sample_url":"https://yande.re/sample/e2f0e4f562fd423f695388eb2a7e350f/yande.re%20223454%20sample.jpg","sample_width":1061,"sample_height":1500,"sample_file_size":285966,"jpeg_url":"https://yande.re/image/e2f0e4f562fd423f695388eb2a7e350f/yande.re%20223454%20spike.jpg","jpeg_width":1754,"jpeg_height":2480,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":1754,"height":2480,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223453,"tags":"bernadette_e_tigre_le_la_rivi\u00e8re ilfriede_von_feulner muvluv muvluv_alternative","created_at":1346614290,"creator_id":22039,"author":"CryFleuret","change":1116471,"source":"","score":2,"md5":"4a1c75427317b991923e7545d2e455dc","file_size":1790429,"file_url":"https://yande.re/image/4a1c75427317b991923e7545d2e455dc/yande.re%20223453%20bernadette_e_tigre_le_la_rivi%C3%A8re%20ilfriede_von_feulner%20muvluv%20muvluv_alternative.png","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/4a/1c/4a1c75427317b991923e7545d2e455dc.jpg","preview_width":122,"preview_height":150,"actual_preview_width":243,"actual_preview_height":300,"sample_url":"https://yande.re/sample/4a1c75427317b991923e7545d2e455dc/yande.re%20223453%20sample.jpg","sample_width":1200,"sample_height":1481,"sample_file_size":416978,"jpeg_url":"https://yande.re/jpeg/4a1c75427317b991923e7545d2e455dc/yande.re%20223453%20bernadette_e_tigre_le_la_rivi%C3%A8re%20ilfriede_von_feulner%20muvluv%20muvluv_alternative.jpg","jpeg_width":1620,"jpeg_height":2000,"jpeg_file_size":1400173,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":1620,"height":2000,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223452,"tags":"spike tagme","created_at":1346614214,"creator_id":9241,"author":"eridani","change":1116470,"source":"http://i1.pixiv.net/img43/img/daible2099/20771966.jpg","score":0,"md5":"d30c13263e9ce5825683e080fe47f1c3","file_size":4050119,"file_url":"https://yande.re/image/d30c13263e9ce5825683e080fe47f1c3/yande.re%20223452%20spike%20tagme.jpg","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/d3/0c/d30c13263e9ce5825683e080fe47f1c3.jpg","preview_width":106,"preview_height":150,"actual_preview_width":212,"actual_preview_height":300,"sample_url":"https://yande.re/sample/d30c13263e9ce5825683e080fe47f1c3/yande.re%20223452%20sample.jpg","sample_width":1061,"sample_height":1500,"sample_file_size":363889,"jpeg_url":"https://yande.re/image/d30c13263e9ce5825683e080fe47f1c3/yande.re%20223452%20spike%20tagme.jpg","jpeg_width":2480,"jpeg_height":3507,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":2480,"height":3507,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223451,"tags":"gintama spike swimsuits tama_(gintama)","created_at":1346613329,"creator_id":9241,"author":"eridani","change":1116466,"source":"http://i1.pixiv.net/img43/img/daible2099/13238615.jpg","score":3,"md5":"e8cca3095784eb5a07b04bbd9a5ddb63","file_size":2274287,"file_url":"https://yande.re/image/e8cca3095784eb5a07b04bbd9a5ddb63/yande.re%20223451%20gintama%20spike%20swimsuits%20tama_%28gintama%29.jpg","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/e8/cc/e8cca3095784eb5a07b04bbd9a5ddb63.jpg","preview_width":106,"preview_height":150,"actual_preview_width":211,"actual_preview_height":300,"sample_url":"https://yande.re/sample/e8cca3095784eb5a07b04bbd9a5ddb63/yande.re%20223451%20sample.jpg","sample_width":1057,"sample_height":1500,"sample_file_size":341221,"jpeg_url":"https://yande.re/image/e8cca3095784eb5a07b04bbd9a5ddb63/yande.re%20223451%20gintama%20spike%20swimsuits%20tama_%28gintama%29.jpg","jpeg_width":1800,"jpeg_height":2554,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":1800,"height":2554,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223450,"tags":"seifuku tagme","created_at":1346613261,"creator_id":1305,"author":"Radioactive","change":1116439,"source":"","score":2,"md5":"81c12211af6b5fd29a542020b77a2050","file_size":4127383,"file_url":"https://yande.re/image/81c12211af6b5fd29a542020b77a2050/yande.re%20223450%20seifuku%20tagme.jpg","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/81/c1/81c12211af6b5fd29a542020b77a2050.jpg","preview_width":150,"preview_height":110,"actual_preview_width":300,"actual_preview_height":219,"sample_url":"https://yande.re/sample/81c12211af6b5fd29a542020b77a2050/yande.re%20223450%20sample.jpg","sample_width":1500,"sample_height":1095,"sample_file_size":301709,"jpeg_url":"https://yande.re/image/81c12211af6b5fd29a542020b77a2050/yande.re%20223450%20seifuku%20tagme.jpg","jpeg_width":4215,"jpeg_height":3077,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":4215,"height":3077,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223449,"tags":"spike","created_at":1346613159,"creator_id":9241,"author":"eridani","change":1116467,"source":"http://i1.pixiv.net/img43/img/daible2099/29799790.jpg","score":2,"md5":"755b06d4021b1cb63b828fc774a07949","file_size":1547099,"file_url":"https://yande.re/image/755b06d4021b1cb63b828fc774a07949/yande.re%20223449%20spike.jpg","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/75/5b/755b06d4021b1cb63b828fc774a07949.jpg","preview_width":150,"preview_height":98,"actual_preview_width":300,"actual_preview_height":196,"sample_url":"https://yande.re/sample/755b06d4021b1cb63b828fc774a07949/yande.re%20223449%20sample.jpg","sample_width":1500,"sample_height":978,"sample_file_size":294920,"jpeg_url":"https://yande.re/image/755b06d4021b1cb63b828fc774a07949/yande.re%20223449%20spike.jpg","jpeg_width":2300,"jpeg_height":1500,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":2300,"height":1500,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223448,"tags":"hachisuka_goemon loli oda_nobuna_no_yabou tagme","created_at":1346613118,"creator_id":1305,"author":"Radioactive","change":1116478,"source":"","score":6,"md5":"e11be9c0eeeeb520591399dddb167903","file_size":904093,"file_url":"https://yande.re/image/e11be9c0eeeeb520591399dddb167903/yande.re%20223448%20hachisuka_goemon%20loli%20oda_nobuna_no_yabou%20tagme.jpg","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/e1/1b/e11be9c0eeeeb520591399dddb167903.jpg","preview_width":100,"preview_height":150,"actual_preview_width":200,"actual_preview_height":300,"sample_url":"https://yande.re/sample/e11be9c0eeeeb520591399dddb167903/yande.re%20223448%20sample.jpg","sample_width":1001,"sample_height":1500,"sample_file_size":347594,"jpeg_url":"https://yande.re/image/e11be9c0eeeeb520591399dddb167903/yande.re%20223448%20hachisuka_goemon%20loli%20oda_nobuna_no_yabou%20tagme.jpg","jpeg_width":1200,"jpeg_height":1799,"jpeg_file_size":0,"rating":"q","has_children":false,"parent_id":null,"status":"active","width":1200,"height":1799,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223447,"tags":"spike","created_at":1346613051,"creator_id":9241,"author":"eridani","change":1116468,"source":"http://i1.pixiv.net/img43/img/daible2099/28499111.jpg","score":1,"md5":"ed6088c8cd583ff10727319efd61192c","file_size":1028878,"file_url":"https://yande.re/image/ed6088c8cd583ff10727319efd61192c/yande.re%20223447%20spike.jpg","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/ed/60/ed6088c8cd583ff10727319efd61192c.jpg","preview_width":106,"preview_height":150,"actual_preview_width":212,"actual_preview_height":300,"sample_url":"https://yande.re/sample/ed6088c8cd583ff10727319efd61192c/yande.re%20223447%20sample.jpg","sample_width":1060,"sample_height":1500,"sample_file_size":300777,"jpeg_url":"https://yande.re/image/ed6088c8cd583ff10727319efd61192c/yande.re%20223447%20spike.jpg","jpeg_width":1240,"jpeg_height":1754,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":1240,"height":1754,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223446,"tags":"shuka tagme","created_at":1346612934,"creator_id":1305,"author":"Radioactive","change":1116431,"source":"http://i2.pixiv.net/img04/img/taupe/29860239.jpg","score":0,"md5":"769aac131791f8f91b92fab96cd9b001","file_size":855283,"file_url":"https://yande.re/image/769aac131791f8f91b92fab96cd9b001/yande.re%20223446%20shuka%20tagme.jpg","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/76/9a/769aac131791f8f91b92fab96cd9b001.jpg","preview_width":150,"preview_height":106,"actual_preview_width":300,"actual_preview_height":212,"sample_url":"https://yande.re/sample/769aac131791f8f91b92fab96cd9b001/yande.re%20223446%20sample.jpg","sample_width":1500,"sample_height":1062,"sample_file_size":722959,"jpeg_url":"https://yande.re/image/769aac131791f8f91b92fab96cd9b001/yande.re%20223446%20shuka%20tagme.jpg","jpeg_width":1500,"jpeg_height":1062,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":1500,"height":1062,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223445,"tags":"kotoba_noriaki tagme","created_at":1346612879,"creator_id":1305,"author":"Radioactive","change":1116430,"source":"http://i2.pixiv.net/img12/img/ijiekoniidennpa/29859630.jpg","score":1,"md5":"5a0fc948ab53a98e8fd65fd38553d926","file_size":2233025,"file_url":"https://yande.re/image/5a0fc948ab53a98e8fd65fd38553d926/yande.re%20223445%20kotoba_noriaki%20tagme.jpg","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/5a/0f/5a0fc948ab53a98e8fd65fd38553d926.jpg","preview_width":142,"preview_height":150,"actual_preview_width":284,"actual_preview_height":300,"sample_url":"https://yande.re/sample/5a0fc948ab53a98e8fd65fd38553d926/yande.re%20223445%20sample.jpg","sample_width":1200,"sample_height":1268,"sample_file_size":266177,"jpeg_url":"https://yande.re/image/5a0fc948ab53a98e8fd65fd38553d926/yande.re%20223445%20kotoba_noriaki%20tagme.jpg","jpeg_width":1904,"jpeg_height":2012,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":1904,"height":2012,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223444,"tags":"c.c._lemon c.c._lemon_(character) spike tagme","created_at":1346612873,"creator_id":9241,"author":"eridani","change":1116469,"source":"http://i1.pixiv.net/img43/img/daible2099/28216247.jpg","score":0,"md5":"38535a12bdee82109ddc8849f1484dfe","file_size":717165,"file_url":"https://yande.re/image/38535a12bdee82109ddc8849f1484dfe/yande.re%20223444%20c.c._lemon%20c.c._lemon_%28character%29%20spike%20tagme.jpg","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/38/53/38535a12bdee82109ddc8849f1484dfe.jpg","preview_width":106,"preview_height":150,"actual_preview_width":212,"actual_preview_height":300,"sample_url":"https://yande.re/sample/38535a12bdee82109ddc8849f1484dfe/yande.re%20223444%20sample.jpg","sample_width":1060,"sample_height":1500,"sample_file_size":216147,"jpeg_url":"https://yande.re/image/38535a12bdee82109ddc8849f1484dfe/yande.re%20223444%20c.c._lemon%20c.c._lemon_%28character%29%20spike%20tagme.jpg","jpeg_width":1158,"jpeg_height":1638,"jpeg_file_size":0,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":1158,"height":1638,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]},{"id":223443,"tags":"archaic_sealed_heat tagme","created_at":1346612147,"creator_id":1305,"author":"Radioactive","change":1116426,"source":"","score":0,"md5":"582d734474d73fcdebef21e5b58b12fd","file_size":5494320,"file_url":"https://yande.re/image/582d734474d73fcdebef21e5b58b12fd/yande.re%20223443%20archaic_sealed_heat%20tagme.png","is_shown_in_index":true,"preview_url":"https://yande.re/data/preview/58/2d/582d734474d73fcdebef21e5b58b12fd.jpg","preview_width":127,"preview_height":150,"actual_preview_width":254,"actual_preview_height":300,"sample_url":"https://yande.re/sample/582d734474d73fcdebef21e5b58b12fd/yande.re%20223443%20sample.jpg","sample_width":1200,"sample_height":1415,"sample_file_size":355881,"jpeg_url":"https://yande.re/jpeg/582d734474d73fcdebef21e5b58b12fd/yande.re%20223443%20archaic_sealed_heat%20tagme.jpg","jpeg_width":2127,"jpeg_height":2508,"jpeg_file_size":2023132,"rating":"s","has_children":false,"parent_id":null,"status":"active","width":2127,"height":2508,"is_held":false,"frames_pending_string":"","frames_pending":[],"frames_string":"","frames":[]}]
|
data/lib/booru.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
$:.unshift File.dirname(__FILE__) # For use/testing when no gem is installed
|
3
|
+
|
4
|
+
# stdlib
|
5
|
+
require 'open-uri'
|
6
|
+
require 'cgi'
|
7
|
+
require 'digest'
|
8
|
+
require 'json'
|
9
|
+
|
10
|
+
# third party
|
11
|
+
begin
|
12
|
+
require 'trollop'
|
13
|
+
require 'rest-client'
|
14
|
+
require 'nori'
|
15
|
+
rescue LoadError => e
|
16
|
+
puts "LoadError: #{e.message}"
|
17
|
+
end
|
18
|
+
|
19
|
+
# internal api methods
|
20
|
+
require 'booru/version'
|
21
|
+
require 'booru/error.rb'
|
22
|
+
require 'booru/request.rb'
|
23
|
+
require 'booru/api.rb'
|
24
|
+
require 'booru/api/artist'
|
25
|
+
require 'booru/api/comment'
|
26
|
+
require 'booru/api/favorite'
|
27
|
+
require 'booru/api/forum'
|
28
|
+
require 'booru/api/note'
|
29
|
+
require 'booru/api/pool'
|
30
|
+
require 'booru/api/post'
|
31
|
+
require 'booru/api/tag'
|
32
|
+
require 'booru/api/user'
|
33
|
+
require 'booru/api/wiki'
|
34
|
+
|
35
|
+
# internal client
|
36
|
+
require 'booru/client.rb'
|
37
|
+
require 'booru/client/konachan.rb'
|
38
|
+
require 'booru/client/yandere.rb'
|
39
|
+
require 'booru/client/danbooru.rb'
|
40
|
+
require 'booru/client/behoimi.rb'
|
41
|
+
|
42
|
+
# internal tools
|
43
|
+
require 'booru/utils'
|
44
|
+
require 'booru/downloader.rb'
|
data/lib/booru/api.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module Booru
|
3
|
+
module API
|
4
|
+
|
5
|
+
def parse(response)
|
6
|
+
case @format
|
7
|
+
when :json
|
8
|
+
JSON.parse(response)
|
9
|
+
when :xml
|
10
|
+
Nori.parse(response)
|
11
|
+
else
|
12
|
+
response
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def query_string(path, options = {}, formatted = false)
|
17
|
+
params = options.map { |k,v| "#{k}=#{v}" }.join("&")
|
18
|
+
path = formatted_path(path) unless formatted
|
19
|
+
path += "?#{params}" unless params.empty?
|
20
|
+
end
|
21
|
+
|
22
|
+
def formatted_path(path)
|
23
|
+
[path, @format].compact.join('.')
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module Booru
|
3
|
+
module API
|
4
|
+
module Artist
|
5
|
+
|
6
|
+
# List: This action retrieves a list of artists
|
7
|
+
# TODO optional args?
|
8
|
+
#
|
9
|
+
# options - The Hash used to refine the selection (default: {}):
|
10
|
+
# :name - The name (or a fragment of the name) of the
|
11
|
+
# artist.
|
12
|
+
# :order - Can be date or name.
|
13
|
+
# :page - The page number (default: 1)
|
14
|
+
def list_artists(options = {})
|
15
|
+
base_url = '/artist/index'
|
16
|
+
query = query_string(base_url, options)
|
17
|
+
parse(get(query))
|
18
|
+
end
|
19
|
+
|
20
|
+
# Create: This action creates an artist
|
21
|
+
# TODO Optional args?
|
22
|
+
#
|
23
|
+
# options - The Hash used to refine the selection (default: {}):
|
24
|
+
# :artist[name] - The artist's name.
|
25
|
+
# :artist[urls] - A list of URLs associated with the
|
26
|
+
# artist, whitespace delimited.
|
27
|
+
# :artist[alias] - The artist that this artist is an
|
28
|
+
# alias for. Simply enter the alias
|
29
|
+
# artist's name.
|
30
|
+
# :artist[group] - The group or cicle that this artist is a
|
31
|
+
# member of. Simply enter the group's name.
|
32
|
+
def create_artist(options = {})
|
33
|
+
base_url = '/artist/create'
|
34
|
+
query = query_string(base_url, options)
|
35
|
+
parse(post(query))
|
36
|
+
end
|
37
|
+
|
38
|
+
# Update: This action updates an artist's attributes
|
39
|
+
#
|
40
|
+
# Only the id parameter is required.
|
41
|
+
#
|
42
|
+
# options - The Hash used to refine the selection (default: {}):
|
43
|
+
# :id - The id of thr artist to update.
|
44
|
+
# :artist[name] - The artist's name (optional).
|
45
|
+
# :artist[urls] - A list of URLs associated with the
|
46
|
+
# artist, whitespace delimited (optional).
|
47
|
+
# :artist[alias] - The artist that this artist is an
|
48
|
+
# alias for. Simply enter the alias
|
49
|
+
# artist's name (optional).
|
50
|
+
# :artist[group] - The group or cicle that this artist is a
|
51
|
+
# member of. Simply enter the group's name
|
52
|
+
# (optional).
|
53
|
+
def update_artist(options = {})
|
54
|
+
base_url = '/artist/update'
|
55
|
+
query = query_string(base_url, options)
|
56
|
+
parse(post(query))
|
57
|
+
end
|
58
|
+
|
59
|
+
# Destroy: This action deletes an artist
|
60
|
+
#
|
61
|
+
# options - The Hash used to refine the selection (default: {}):
|
62
|
+
# :id - The id of the artist to destroy.
|
63
|
+
#
|
64
|
+
# You must be logged in to delete artists.
|
65
|
+
def destroy_artist(options = {})
|
66
|
+
base_url = '/artist/destroy'
|
67
|
+
query = query_string(base_url, options)
|
68
|
+
parse(post(query))
|
69
|
+
end
|
70
|
+
|
71
|
+
alias_method :delete_artist, :destroy_artist
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module Booru
|
3
|
+
module API
|
4
|
+
module Comment
|
5
|
+
|
6
|
+
# Show: This action retrieves a single comment.
|
7
|
+
#
|
8
|
+
# options - The Hash used to refine the selection (default: {}):
|
9
|
+
# :id - The id number of the comment to retrieve.
|
10
|
+
def show_comment(options = {})
|
11
|
+
base_url = '/comment/destroy'
|
12
|
+
query = query_string(base_url, options)
|
13
|
+
parse(get(query))
|
14
|
+
end
|
15
|
+
|
16
|
+
# Create: This action creates a comment
|
17
|
+
#
|
18
|
+
# options - The Hash used to refine the selection (default: {}):
|
19
|
+
# :comment[anonymous] - Set to 1 if you want to post this
|
20
|
+
# comment anonymously (optional).
|
21
|
+
# :comment[post_id] - The post id number to which you are
|
22
|
+
# responding.
|
23
|
+
# :comment[body] - The body of the comment.
|
24
|
+
def create_comment(options = {})
|
25
|
+
base_url = '/comment/create'
|
26
|
+
query = query_string(base_url, options)
|
27
|
+
parse(post(query))
|
28
|
+
end
|
29
|
+
|
30
|
+
alias_method :post_comment, :create_comment
|
31
|
+
|
32
|
+
# Destroy: This action deletes a comment
|
33
|
+
#
|
34
|
+
# options - The Hash used to refine the selection (default: {}):
|
35
|
+
# :id - The id number of the comment to delete.
|
36
|
+
#
|
37
|
+
# You must be logged in to use this action. You must also be the owner
|
38
|
+
# of the comment, or you must be a moderator.
|
39
|
+
def destroy_comment(options = {})
|
40
|
+
base_url = '/comment/destroy'
|
41
|
+
query = query_string(base_url, options)
|
42
|
+
parse(post(query))
|
43
|
+
end
|
44
|
+
|
45
|
+
alias_method :delete_comment, :destroy_comment
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module Booru
|
3
|
+
module API
|
4
|
+
module Favorite
|
5
|
+
# List Users: This action retrieves a list of users who have
|
6
|
+
# 'favorited' the post specified
|
7
|
+
#
|
8
|
+
# options - The Hash used to refine the selection (default: {}):
|
9
|
+
# :id - The post id.
|
10
|
+
#
|
11
|
+
# There is no XML API for this action.
|
12
|
+
def list_favorites(options = {})
|
13
|
+
base_url = 'favorite/list_users.xml'
|
14
|
+
query = query_string(base_url, options, formatted = true)
|
15
|
+
parse(get(query))
|
16
|
+
end
|
17
|
+
|
18
|
+
alias_method :post_favorites, :list_favorites
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module Booru
|
3
|
+
module API
|
4
|
+
module Forum
|
5
|
+
|
6
|
+
# List: This action retrieves information from the forum
|
7
|
+
#
|
8
|
+
# If you don't specify any parameters you'll get a list of all the
|
9
|
+
# parent topics.
|
10
|
+
#
|
11
|
+
# options - The Hash used to refine the selection (default: {}):
|
12
|
+
# :parent_id - The parent ID number. You'll return all the
|
13
|
+
# responses to that forum post.
|
14
|
+
def forum_list(options = {})
|
15
|
+
base_url = 'forum/index'
|
16
|
+
query = query_string(base_url, options)
|
17
|
+
parse(get(query))
|
18
|
+
end
|
19
|
+
|
20
|
+
alias_method :list_forum, :forum_list
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module Booru
|
3
|
+
module API
|
4
|
+
module Note
|
5
|
+
|
6
|
+
# List: This action retrieves a list of notes for a specified post
|
7
|
+
#
|
8
|
+
# options - The Hash used to refine the selection (default: {}):
|
9
|
+
# :post_id - The post id number to retrieve notes for.
|
10
|
+
def list_notes(options = {})
|
11
|
+
base_url = '/note/index'
|
12
|
+
query = query_string(base_url, options)
|
13
|
+
parse(get(query))
|
14
|
+
end
|
15
|
+
|
16
|
+
# Search: This action searches and retrieves a list of notes
|
17
|
+
#
|
18
|
+
# options - The Hash used to refine the selection (default: {}):
|
19
|
+
# :query - A word or phrase to search for.
|
20
|
+
def search_notes(options = {})
|
21
|
+
base_url = '/note/search'
|
22
|
+
query = query_string(base_url, options)
|
23
|
+
parse(get(query))
|
24
|
+
end
|
25
|
+
|
26
|
+
# History: This action retrieves a note's history (previous versions)
|
27
|
+
#
|
28
|
+
# You can either specify id, post_id, or nothing. Specifying nothing
|
29
|
+
# will give you a list of every note verison.
|
30
|
+
#
|
31
|
+
# options - The Hash used to refine the selection (default: {}):
|
32
|
+
# :limit - How many versions to retrieve.
|
33
|
+
# :page - The offset.
|
34
|
+
# :post_id - The post id number to retrieve note versions for.
|
35
|
+
# :id - The note id number to retrieve versions for.
|
36
|
+
def note_history(options = {})
|
37
|
+
base_url = '/note/history'
|
38
|
+
query = query_string(base_url, options)
|
39
|
+
parse(get(query))
|
40
|
+
end
|
41
|
+
|
42
|
+
# Revert: This action reverts a note to a previous version
|
43
|
+
#
|
44
|
+
# options - The Hash used to refine the selection (default: {}):
|
45
|
+
# :id - The note id to update.
|
46
|
+
# :version - The version to revert to.
|
47
|
+
#
|
48
|
+
# Potential error reasons: "Post is locked"
|
49
|
+
def revert_note(options = {})
|
50
|
+
base_url = '/note/revert'
|
51
|
+
query = query_string(base_url, options)
|
52
|
+
parse(post(query))
|
53
|
+
end
|
54
|
+
|
55
|
+
# Create/Update: This action creates or modifies an existing note
|
56
|
+
#
|
57
|
+
# Notes differ from the other controllers in that the interface for
|
58
|
+
# creation and updates is the same. If you supply an id parameter,
|
59
|
+
# then Danbooru will assume you're updating an existing note.
|
60
|
+
# Otherwise, it will create a new note.
|
61
|
+
#
|
62
|
+
# options - The Hash used to refine the selection (default: {}):
|
63
|
+
# :id - If you are updating a note, this is
|
64
|
+
# the note id number to update.
|
65
|
+
# :note[post_id] - The post id number of this note.
|
66
|
+
# :note[x] - The x coordinate of the note.
|
67
|
+
# :note[y] - The y coordinate of the note.
|
68
|
+
# :note[width] - The width of the note.
|
69
|
+
# :note[height] - The height of the note.
|
70
|
+
# :note[is_active] - Whether or not the note is visible.
|
71
|
+
# Set to 1 for active, 0 for inactive.
|
72
|
+
# :note[body] - The note message.
|
73
|
+
#
|
74
|
+
# Potential error reasons: "Post is locked"
|
75
|
+
def update_note(options = {})
|
76
|
+
base_url = '/note/update'
|
77
|
+
query = query_string(base_url, options)
|
78
|
+
parse(post(query))
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|