rubyhexagon 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rubyhexagon.rb +3 -3
- data/lib/rubyhexagon/api.rb +1 -1
- data/lib/rubyhexagon/api/artist.rb +10 -0
- data/lib/rubyhexagon/api/pool.rb +29 -0
- data/lib/rubyhexagon/api/post.rb +63 -3
- data/lib/rubyhexagon/api/post/flag.rb +9 -0
- data/lib/rubyhexagon/api/post/note.rb +77 -0
- data/lib/rubyhexagon/api/post/tag_item.rb +9 -0
- data/lib/rubyhexagon/api/tag.rb +10 -4
- data/lib/rubyhexagon/api/tag/alias.rb +5 -0
- data/lib/rubyhexagon/api/tag/implication.rb +5 -0
- data/lib/rubyhexagon/api/user.rb +16 -1
- data/lib/rubyhexagon/artist.rb +66 -6
- data/lib/rubyhexagon/error.rb +0 -19
- data/lib/rubyhexagon/pool.rb +54 -8
- data/lib/rubyhexagon/post.rb +145 -25
- data/lib/rubyhexagon/post/flag.rb +38 -0
- data/lib/rubyhexagon/post/image.rb +25 -3
- data/lib/rubyhexagon/post/note.rb +174 -0
- data/lib/rubyhexagon/post/tag_item.rb +45 -5
- data/lib/rubyhexagon/tag.rb +37 -4
- data/lib/rubyhexagon/tag/alias.rb +35 -6
- data/lib/rubyhexagon/tag/implication.rb +35 -5
- data/lib/rubyhexagon/tag/type.rb +20 -5
- data/lib/rubyhexagon/user.rb +40 -3
- data/lib/rubyhexagon/user/level.rb +13 -3
- metadata +4 -4
- data/lib/rubyhexagon/api/note.rb +0 -50
- data/lib/rubyhexagon/note.rb +0 -112
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db0b8e40637feb6bbf0f6a51172e882da9f50302
|
4
|
+
data.tar.gz: 9313eabbf199ad7131adae13d2c07d7fa898bf1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89e0c912d9b3acd09811fb3924af6716c8341effa924853457b44d4354316b05f7358fb337c8d4a1445be40e810d6a17bfbddb6935e8c4064f8755b372a1b60d
|
7
|
+
data.tar.gz: a383b82a2671b960b96f326667d6bfe552017ad83a6c69cb4807521fcd39283b8a0239f090e6e8e920c055d1e1f599b4cdbf9251d15f5d766e983e7b2e0c749f
|
data/lib/rubyhexagon.rb
CHANGED
@@ -26,9 +26,9 @@ require 'tempfile'
|
|
26
26
|
require_relative 'rubyhexagon/error'
|
27
27
|
|
28
28
|
require_relative 'rubyhexagon/artist'
|
29
|
-
require_relative 'rubyhexagon/note'
|
30
29
|
require_relative 'rubyhexagon/post'
|
31
30
|
require_relative 'rubyhexagon/post/flag'
|
31
|
+
require_relative 'rubyhexagon/post/note'
|
32
32
|
require_relative 'rubyhexagon/post/tag_item'
|
33
33
|
require_relative 'rubyhexagon/pool'
|
34
34
|
require_relative 'rubyhexagon/post/image'
|
@@ -48,7 +48,7 @@ module Rubyhexagon
|
|
48
48
|
# Minor version part
|
49
49
|
MINOR = 0
|
50
50
|
# Patch version part
|
51
|
-
PATCH =
|
51
|
+
PATCH = 1
|
52
52
|
# Name of gem
|
53
53
|
NAME = 'rubyhexagon'
|
54
54
|
# Full version string
|
@@ -62,9 +62,9 @@ E621 = Rubyhexagon
|
|
62
62
|
|
63
63
|
require_relative 'rubyhexagon/api'
|
64
64
|
require_relative 'rubyhexagon/api/artist'
|
65
|
-
require_relative 'rubyhexagon/api/note'
|
66
65
|
require_relative 'rubyhexagon/api/post'
|
67
66
|
require_relative 'rubyhexagon/api/post/flag'
|
67
|
+
require_relative 'rubyhexagon/api/post/note'
|
68
68
|
require_relative 'rubyhexagon/api/post/tag_item'
|
69
69
|
require_relative 'rubyhexagon/api/pool'
|
70
70
|
require_relative 'rubyhexagon/api/tag'
|
data/lib/rubyhexagon/api.rb
CHANGED
@@ -20,8 +20,18 @@ module Rubyhexagon
|
|
20
20
|
# A class to interact with the e621 web interface.
|
21
21
|
#
|
22
22
|
# @author Maxine Michalski
|
23
|
+
# @api public
|
23
24
|
# @since 2.0.0
|
24
25
|
class Artist
|
26
|
+
# @author Maxine Michalski
|
27
|
+
#
|
28
|
+
# Fetch a list of artists
|
29
|
+
#
|
30
|
+
# @param query [Hsah] Query for fetching artist data
|
31
|
+
# @example Get list of artists
|
32
|
+
# E621::Artist.list(name: 'artist') #=> Array<E621::Artist>
|
33
|
+
# @return [Array<E621::Artist>]
|
34
|
+
# @see https://e621.net/help/show/api#artists
|
25
35
|
def self.list(query)
|
26
36
|
raise ArgumentError, 'A Hash is required' unless query.is_a?(Hash)
|
27
37
|
E621::API.fetch(:artist, :index, query).map do |artist|
|
data/lib/rubyhexagon/api/pool.rb
CHANGED
@@ -20,8 +20,19 @@ module Rubyhexagon
|
|
20
20
|
# A class to interact with the e621 web interface.
|
21
21
|
#
|
22
22
|
# @author Maxine Michalski
|
23
|
+
# @api public
|
23
24
|
# @since 1.4.0
|
24
25
|
class Pool
|
26
|
+
# @author Maxine Michalski
|
27
|
+
#
|
28
|
+
# Fetch pool information
|
29
|
+
#
|
30
|
+
# @param pool [E621::Pool|Hash] A pool or hash to fetch data for
|
31
|
+
# @param page [Hash]
|
32
|
+
# @example Get pool information
|
33
|
+
# E621::Pool.show(id: 1, page: 1) #=> E621::Pool
|
34
|
+
# @return [E621::Pool]
|
35
|
+
# @see https://e621.net/help/show/api#pools
|
25
36
|
def self.show(pool, page = nil)
|
26
37
|
unless (pool.is_a?(Hash) && pool[:id].is_a?(Integer)) ||
|
27
38
|
pool.is_a?(E621::Pool)
|
@@ -34,6 +45,15 @@ module Rubyhexagon
|
|
34
45
|
end
|
35
46
|
end
|
36
47
|
|
48
|
+
# @author Maxine Michalski
|
49
|
+
#
|
50
|
+
# Fetch a list of pools
|
51
|
+
#
|
52
|
+
# @param query [Hsah] Query for fetching pool data
|
53
|
+
# @example Get list of pools
|
54
|
+
# E621::Pool.list(name: 'moo', page: 1) #=> Array<E621::Pool>
|
55
|
+
# @return [Array<E621::Pool>]
|
56
|
+
# @see https://e621.net/help/show/api#pools
|
37
57
|
def self.list(query)
|
38
58
|
raise ArgumentError, 'A Hash is required' unless query.is_a?(Hash)
|
39
59
|
E621::API.fetch(:pool, :index, query).map do |pool|
|
@@ -41,6 +61,15 @@ module Rubyhexagon
|
|
41
61
|
end
|
42
62
|
end
|
43
63
|
|
64
|
+
# @author Maxine Michalski
|
65
|
+
#
|
66
|
+
# Fetch pool information
|
67
|
+
#
|
68
|
+
# @param page [Hash]
|
69
|
+
# @example Get pool information
|
70
|
+
# poolshow(page: 1) #=> E621::Pool
|
71
|
+
# @return [E621::Pool]
|
72
|
+
# @see https://e621.net/help/show/api#pools
|
44
73
|
def show(page)
|
45
74
|
page = page[:page]
|
46
75
|
E621::API.fetch(:pool, :show, id: @id, page: page)[:posts].map do |post|
|
data/lib/rubyhexagon/api/post.rb
CHANGED
@@ -20,15 +20,18 @@ module Rubyhexagon
|
|
20
20
|
# A class to interact with the e621 web interface.
|
21
21
|
#
|
22
22
|
# @author Maxine Michalski
|
23
|
+
# @api public
|
23
24
|
# @since 1.4.0
|
24
25
|
class Post
|
25
26
|
# @author Maxine Michalski
|
26
27
|
#
|
27
28
|
# Fetch data for post
|
28
29
|
#
|
29
|
-
# @param
|
30
|
-
#
|
30
|
+
# @param post [Hash|E621::Post] User data to fetch from
|
31
|
+
# @example Get Post information
|
32
|
+
# E621::Post.show(id: 1) #=> E621::Post
|
31
33
|
# @return [E621::Post]
|
34
|
+
# @see https://e621.net/help/show/api#posts
|
32
35
|
def self.show(post)
|
33
36
|
unless (post.is_a?(Hash) && post[:id].is_a?(Integer)) ||
|
34
37
|
post.is_a?(E621::Post)
|
@@ -38,6 +41,16 @@ module Rubyhexagon
|
|
38
41
|
new(E621::API.fetch(:post, :show, id: id))
|
39
42
|
end
|
40
43
|
|
44
|
+
# @author Maxine Michalski
|
45
|
+
#
|
46
|
+
# Fetch tag information
|
47
|
+
#
|
48
|
+
# @note This method fetches complete tag information for a post
|
49
|
+
# @param post [Hash|E621::Post] User data to fetch from
|
50
|
+
# @example Get tags for post
|
51
|
+
# E621::Post.tags(id: 1) #=> Array<E621::Tag>
|
52
|
+
# @return [Array<E621::Tag>]
|
53
|
+
# @see https://e621.net/help/show/api#posts
|
41
54
|
def self.tags(post)
|
42
55
|
unless (post.is_a?(Hash) && post[:id].is_a?(Integer)) ||
|
43
56
|
post.is_a?(E621::Post)
|
@@ -49,6 +62,14 @@ module Rubyhexagon
|
|
49
62
|
end
|
50
63
|
end
|
51
64
|
|
65
|
+
# @author Maxine Michalski
|
66
|
+
#
|
67
|
+
# Fetch a list of posts
|
68
|
+
#
|
69
|
+
# @example Get a list of posts
|
70
|
+
# E621::Post.list(tags: 'female') #=> Array<E621::Post>
|
71
|
+
# @return [Array<E621::Post>]
|
72
|
+
# @see https://e621.net/help/show/api#posts
|
52
73
|
def self.list(query)
|
53
74
|
raise ArgumentError, 'A Hash is required' unless query.is_a?(Hash)
|
54
75
|
E621::API.fetch(:post, :index, query).map do |post|
|
@@ -56,6 +77,14 @@ module Rubyhexagon
|
|
56
77
|
end
|
57
78
|
end
|
58
79
|
|
80
|
+
# @author Maxine Michalski
|
81
|
+
#
|
82
|
+
# Fetch a list of deleted posts
|
83
|
+
#
|
84
|
+
# @example Get a list of deleted posts
|
85
|
+
# E621::Post.deleted(page: 1) #=> Array<E621::Post>
|
86
|
+
# @return [Array<E621::Post>]
|
87
|
+
# @see https://e621.net/help/show/api#posts
|
59
88
|
def self.deleted(query)
|
60
89
|
raise ArgumentError, 'A Hash is required' unless query.is_a?(Hash)
|
61
90
|
E621::API.fetch(:post, :deleted_index, query).map do |post|
|
@@ -63,6 +92,14 @@ module Rubyhexagon
|
|
63
92
|
end
|
64
93
|
end
|
65
94
|
|
95
|
+
# @author Maxine Michalski
|
96
|
+
#
|
97
|
+
# Fetch a list of popular posts
|
98
|
+
#
|
99
|
+
# @example Get popular posts, by day
|
100
|
+
# E621::Post.popular_by(:day) #=> E621::Post
|
101
|
+
# @return [Array<E621::Post>]
|
102
|
+
# @see https://e621.net/help/show/api#posts
|
66
103
|
def self.popular_by(period)
|
67
104
|
unless %i[day week month].include?(period)
|
68
105
|
raise ArgumentError, 'Period must be day, week or month'
|
@@ -72,10 +109,25 @@ module Rubyhexagon
|
|
72
109
|
end
|
73
110
|
end
|
74
111
|
|
112
|
+
# @author Maxine Michalski
|
113
|
+
#
|
114
|
+
# Fetch data for a post
|
115
|
+
#
|
116
|
+
# @example Get post data
|
117
|
+
# post.show #=> E621::Post
|
118
|
+
# @return [E621::Post]
|
119
|
+
# @see https://e621.net/help/show/api#posts
|
75
120
|
def show
|
76
121
|
E621::Post.new(E621::API.fetch(:post, :show, id: @id))
|
77
122
|
end
|
78
123
|
|
124
|
+
# @author Maxine Michalski
|
125
|
+
#
|
126
|
+
# Download a file from a post
|
127
|
+
#
|
128
|
+
# @example Download file
|
129
|
+
# post.download(:image) #=> Tempfile
|
130
|
+
# @return [Tempfile]
|
79
131
|
def download(which)
|
80
132
|
unless %i[image preview sample].include?(which)
|
81
133
|
raise ArgumentError, 'Unsupported doanload'
|
@@ -83,9 +135,17 @@ module Rubyhexagon
|
|
83
135
|
E621::API.download(__send__(which).url)
|
84
136
|
end
|
85
137
|
|
138
|
+
# @author Maxine Michalski
|
139
|
+
#
|
140
|
+
# List of notes, that belong to a post
|
141
|
+
#
|
142
|
+
# @example Get nots for a post
|
143
|
+
# post.notes #=> Array<E621::Post::Note>
|
144
|
+
# @return [E621::Post::Note]
|
145
|
+
# @see https://e621.net/help/show/api#notes
|
86
146
|
def notes
|
87
147
|
E621::API.fetch(:note, :index, post_id: @id).map do |n|
|
88
|
-
E621::Note.new(n)
|
148
|
+
E621::Post::Note.new(n)
|
89
149
|
end
|
90
150
|
end
|
91
151
|
end
|
@@ -21,8 +21,17 @@ module Rubyhexagon
|
|
21
21
|
# A class to interact with the e621 web interface.
|
22
22
|
#
|
23
23
|
# @author Maxine Michalski
|
24
|
+
# @api public
|
24
25
|
# @since 2.0.0
|
25
26
|
class Flag
|
27
|
+
# @author Maxine Michalski
|
28
|
+
#
|
29
|
+
# Fetch a list of flags
|
30
|
+
#
|
31
|
+
# @example Get a list of posts
|
32
|
+
# E621::Post::Flagi.list(page: 1) #=> Array<E621::Post::Flag>
|
33
|
+
# @return [Array<E621::Flag>]
|
34
|
+
# @see https://e621.net/help/show/api#flaghistory
|
26
35
|
def self.list(query)
|
27
36
|
unless query.is_a?(Hash)
|
28
37
|
raise ArgumentError, 'A Hash or Post object is required'
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2014-2018, 2020 Maxine Michalski <maxine@furfind.net>
|
4
|
+
#
|
5
|
+
# This file is part of rubyhexagon.
|
6
|
+
#
|
7
|
+
# rubyhexagon is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU General Public License as published by
|
9
|
+
# the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# rubyhexagon is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU General Public License for more details.
|
16
|
+
# You should have received a copy of the GNU General Public License
|
17
|
+
# along with rubyhexagon. If not, see <http://www.gnu.org/licenses/>.
|
18
|
+
|
19
|
+
module Rubyhexagon
|
20
|
+
class Post
|
21
|
+
# A class to interact with the e621 web interface.
|
22
|
+
#
|
23
|
+
# @author Maxine Michalski
|
24
|
+
# @api public
|
25
|
+
# @since 2.0.0
|
26
|
+
class Note
|
27
|
+
# @author Maxine Michalski
|
28
|
+
#
|
29
|
+
# Fetch a list of notes
|
30
|
+
#
|
31
|
+
# @example Get a list of notes
|
32
|
+
# E621::Post::Note.list(id: 1) #=> Array<E621::Post::Note>
|
33
|
+
# @return [Array<E621::Note>]
|
34
|
+
# @see https://e621.net/help/show/api#notes
|
35
|
+
def self.list(post)
|
36
|
+
unless post.is_a?(Hash) || post.is_a?(E621::Post)
|
37
|
+
raise ArgumentError, 'A Hash or Post object is required'
|
38
|
+
end
|
39
|
+
post.store(:post_id, post.delete(:id)) if post.is_a?(Hash)
|
40
|
+
post = { post_id: post.id } if post.is_a?(E621::Post)
|
41
|
+
E621::API.fetch(:note, :index, post).map do |note|
|
42
|
+
new(note)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# @author Maxine Michalski
|
47
|
+
#
|
48
|
+
# Search for notes
|
49
|
+
#
|
50
|
+
# @example Get a list of notes
|
51
|
+
# E621::Post::Note.search(query: 'moo') #=> Array<E621::Post::Note>
|
52
|
+
# @return [Array<E621::Note>]
|
53
|
+
# @see https://e621.net/help/show/api#notes
|
54
|
+
def self.search(query)
|
55
|
+
raise ArgumentError, 'A Hash is required' unless query.is_a?(Hash)
|
56
|
+
E621::API.fetch(:note, :search, query).map do |note|
|
57
|
+
new(note)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
# @author Maxine Michalski
|
62
|
+
#
|
63
|
+
# Fetch a list of note versions
|
64
|
+
#
|
65
|
+
# @example Get a list of notes
|
66
|
+
# E621::Post::Note.list(post_id: 1) #=> Array<E621::Post::Note>
|
67
|
+
# @return [Array<E621::Note>]
|
68
|
+
# @see https://e621.net/help/show/api#notes
|
69
|
+
def self.history(query)
|
70
|
+
raise ArgumentError, 'A Hash is required' unless query.is_a?(Hash)
|
71
|
+
E621::API.fetch(:note, :history, query).map do |note|
|
72
|
+
new(note)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -21,8 +21,17 @@ module Rubyhexagon
|
|
21
21
|
# A class to interact with the e621 web interface.
|
22
22
|
#
|
23
23
|
# @author Maxine Michalski
|
24
|
+
# @api public
|
24
25
|
# @since 2.0.0
|
25
26
|
class TagItem
|
27
|
+
# @author Maxine Michalski
|
28
|
+
#
|
29
|
+
# Fetch a list of tag items
|
30
|
+
#
|
31
|
+
# @example Get a list of posts
|
32
|
+
# E621::Post::TagItem.list(page: 1) #=> Array<E621::Post::TagItem>
|
33
|
+
# @return [Array<E621::TagItem>]
|
34
|
+
# @see https://e621.net/help/show/api#taghistory
|
26
35
|
def self.list(query)
|
27
36
|
unless query.is_a?(Hash)
|
28
37
|
raise ArgumentError, 'A Hash or Post object is required'
|
data/lib/rubyhexagon/api/tag.rb
CHANGED
@@ -20,6 +20,7 @@ module Rubyhexagon
|
|
20
20
|
# A class to interact with the e621 web interface.
|
21
21
|
#
|
22
22
|
# @author Maxine Michalski
|
23
|
+
# @api public
|
23
24
|
# @since 1.4.0
|
24
25
|
class Tag
|
25
26
|
# @author Maxine Michalski
|
@@ -27,8 +28,10 @@ module Rubyhexagon
|
|
27
28
|
# Fetch tag data
|
28
29
|
#
|
29
30
|
# @param tag [Hash|E621::Tag] a hash or tag object
|
30
|
-
#
|
31
|
+
# @example Get tag information
|
32
|
+
# E621::Tag.show(id: 1) #=> E621::Tag
|
31
33
|
# @return [E621::Tag]
|
34
|
+
# @see https://e621.net/help/show/api#tags
|
32
35
|
def self.show(tag)
|
33
36
|
unless (tag.is_a?(Hash) && tag[:id].is_a?(Integer)) ||
|
34
37
|
tag.is_a?(E621::Tag)
|
@@ -43,8 +46,10 @@ module Rubyhexagon
|
|
43
46
|
# Fetch a list of tags
|
44
47
|
#
|
45
48
|
# @param query [Hash] query data
|
46
|
-
#
|
49
|
+
# @example Get list of tags
|
50
|
+
# E621::Tag.list(name: 'feline') #=> Array<E621::Tag>
|
47
51
|
# @return [Array<E621::Tag>]
|
52
|
+
# @see https://e621.net/help/show/api#tags
|
48
53
|
def self.list(query)
|
49
54
|
raise ArgumentError, 'A Hash is required' unless query.is_a?(Hash)
|
50
55
|
E621::API.fetch(:tag, :index, query).map do |tag|
|
@@ -54,8 +59,9 @@ module Rubyhexagon
|
|
54
59
|
|
55
60
|
# @author Maxine Michalski
|
56
61
|
#
|
57
|
-
# Return a filled Tag object from a tag
|
58
|
-
#
|
62
|
+
# Return a filled Tag object from a tag
|
63
|
+
# @example Gwt tag information
|
64
|
+
# tag.show #=> E621::Tag
|
59
65
|
# @return [E621::Tag]
|
60
66
|
def show
|
61
67
|
E621::Tag.new(E621::API.fetch(:tag, :show,
|
@@ -21,6 +21,7 @@ module Rubyhexagon
|
|
21
21
|
# A class to interact with the e621 web interface.
|
22
22
|
#
|
23
23
|
# @author Maxine Michalski
|
24
|
+
# @api public
|
24
25
|
# @since 2.0.0
|
25
26
|
class Alias
|
26
27
|
# @author Maxine Michalski
|
@@ -29,7 +30,11 @@ module Rubyhexagon
|
|
29
30
|
#
|
30
31
|
# @param query [Hash] Parameter for query
|
31
32
|
#
|
33
|
+
# @example Get a list of posts
|
34
|
+
# E621::Tag::Alias.list(implied_to: 'feline',
|
35
|
+
# page: 1) #=> Array<E621::Tag::Alias>
|
32
36
|
# @return [Array[E621::Tag::Alias]
|
37
|
+
# @see https://e621.net/help/show/api#aliases
|
33
38
|
def self.list(query)
|
34
39
|
raise ArgumentError, 'A Hash is required' unless query.is_a?(Hash)
|
35
40
|
E621::API.fetch(:tag_alias, :index, query).map do |tag|
|
@@ -21,6 +21,7 @@ module Rubyhexagon
|
|
21
21
|
# A class to interact with the e621 web interface.
|
22
22
|
#
|
23
23
|
# @author Maxine Michalski
|
24
|
+
# @api public
|
24
25
|
# @since 2.0.0
|
25
26
|
class Implication
|
26
27
|
# @author Maxine Michalski
|
@@ -29,7 +30,11 @@ module Rubyhexagon
|
|
29
30
|
#
|
30
31
|
# @param query [Hash] Parameter for query
|
31
32
|
#
|
33
|
+
# @example Get a list of posts
|
34
|
+
# E621::Tag::Implication.list(implied_to: 'feline',
|
35
|
+
# page: 1) #=> Array<E621::Tag::Implication>
|
32
36
|
# @return [Array[E621::Tag::Implication]
|
37
|
+
# @see https://e621.net/help/show/api#implications
|
33
38
|
def self.list(query)
|
34
39
|
raise ArgumentError, 'A Hash is required' unless query.is_a?(Hash)
|
35
40
|
E621::API.fetch(:tag_implication, :index, query).map do |tag|
|