nekos 1.0.0
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 +7 -0
- data/lib/nekos.rb +153 -0
- data/lib/nekos/api.rb +47 -0
- data/lib/nekos/ver.rb +3 -0
- metadata +102 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ed2271e1fb62e39713695a96686caaeb90326ddcebebe7f79b9a8b3aec88fe2a
|
4
|
+
data.tar.gz: 3c90826de225806dd356c2490625375a43c7df3260d6d6fdb4c83380e87e478a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f471a29aa0d4fe76d4175bfd34ae8696231db73db6d1ee367fdf84964dc5669f03f4d17a8fbdc0e9563c848705636e56f8962d165b1471292eaaf45c291f796c
|
7
|
+
data.tar.gz: f9b2e7316a483d06e2b2ae23929302b3310a9895cdd10bdd9784c384424a62cc072b6e49005ea112b6a440584ebeaa6783320f493aa7bdfa65a81a14ed71b3fa
|
data/lib/nekos.rb
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
require 'nekos/api'
|
2
|
+
|
3
|
+
# nekoslife base module
|
4
|
+
module NekosLife
|
5
|
+
# The main module for interaction
|
6
|
+
class Client
|
7
|
+
@image_endpoints = []
|
8
|
+
|
9
|
+
# @!macro [attach] add_image_endpoint
|
10
|
+
# @method $2
|
11
|
+
# Gets an image of `$2`
|
12
|
+
# @return [String] the image URL with the `$2` type.
|
13
|
+
# @!visibility private
|
14
|
+
def self.add_image_endpoint(endpoint)
|
15
|
+
@image_endpoints.push endpoint
|
16
|
+
attr_reader endpoint
|
17
|
+
define_method endpoint.downcase do
|
18
|
+
API.img(endpoint)['url']
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
add_image_endpoint('feet')
|
23
|
+
add_image_endpoint('yuri')
|
24
|
+
add_image_endpoint('trap')
|
25
|
+
add_image_endpoint('futanari')
|
26
|
+
add_image_endpoint('hololewd')
|
27
|
+
add_image_endpoint('lewdkemo')
|
28
|
+
add_image_endpoint('solog')
|
29
|
+
add_image_endpoint('feetg')
|
30
|
+
add_image_endpoint('cum')
|
31
|
+
add_image_endpoint('erokemo')
|
32
|
+
add_image_endpoint('les')
|
33
|
+
add_image_endpoint('wallpaper')
|
34
|
+
add_image_endpoint('lewdk')
|
35
|
+
add_image_endpoint('ngif')
|
36
|
+
add_image_endpoint('meow')
|
37
|
+
add_image_endpoint('tickle')
|
38
|
+
add_image_endpoint('lewd')
|
39
|
+
add_image_endpoint('feed')
|
40
|
+
add_image_endpoint('gecg')
|
41
|
+
add_image_endpoint('eroyuri')
|
42
|
+
add_image_endpoint('eron')
|
43
|
+
add_image_endpoint('cum_jpg')
|
44
|
+
add_image_endpoint('bj')
|
45
|
+
add_image_endpoint('nsfw_neko_gif')
|
46
|
+
add_image_endpoint('solo')
|
47
|
+
add_image_endpoint('kemonomimi')
|
48
|
+
add_image_endpoint('nsfw_avatar')
|
49
|
+
add_image_endpoint('gasm')
|
50
|
+
add_image_endpoint('poke')
|
51
|
+
add_image_endpoint('anal')
|
52
|
+
add_image_endpoint('slap')
|
53
|
+
add_image_endpoint('hentai')
|
54
|
+
add_image_endpoint('avatar')
|
55
|
+
add_image_endpoint('erofeet')
|
56
|
+
add_image_endpoint('holo')
|
57
|
+
add_image_endpoint('keta')
|
58
|
+
add_image_endpoint('blowjob')
|
59
|
+
add_image_endpoint('pussy')
|
60
|
+
add_image_endpoint('tits')
|
61
|
+
add_image_endpoint('holoero')
|
62
|
+
add_image_endpoint('lizard')
|
63
|
+
add_image_endpoint('pussy_jpg')
|
64
|
+
add_image_endpoint('pwankg')
|
65
|
+
add_image_endpoint('classic')
|
66
|
+
add_image_endpoint('kuni')
|
67
|
+
add_image_endpoint('waifu')
|
68
|
+
add_image_endpoint('pat')
|
69
|
+
add_image_endpoint('kiss')
|
70
|
+
add_image_endpoint('femdom')
|
71
|
+
add_image_endpoint('neko')
|
72
|
+
add_image_endpoint('spank')
|
73
|
+
add_image_endpoint('cuddle')
|
74
|
+
add_image_endpoint('erok')
|
75
|
+
add_image_endpoint('fox_girl')
|
76
|
+
add_image_endpoint('boobs')
|
77
|
+
add_image_endpoint('Random_hentai_gif')
|
78
|
+
add_image_endpoint('smallboobs')
|
79
|
+
add_image_endpoint('hug')
|
80
|
+
add_image_endpoint('ero')
|
81
|
+
|
82
|
+
alias_method :holo_lewd, :hololewd
|
83
|
+
alias_method :lwed_holo, :hololewd
|
84
|
+
alias_method :lewd_kemo, :lewdkemo
|
85
|
+
alias_method :solo_girl, :solog
|
86
|
+
alias_method :ero_kemo, :erokemo
|
87
|
+
alias_method :lewd_kitsune, :lewdk
|
88
|
+
alias_method :neko_gif, :ngif
|
89
|
+
alias_method :ero_yuri, :eroyuri
|
90
|
+
alias_method :ero_neko, :eron
|
91
|
+
alias_method :ero_feet, :erofeet
|
92
|
+
alias_method :holo_ero, :holoero
|
93
|
+
alias_method :ero_holo, :holoero
|
94
|
+
alias_method :erokitsune, :erok
|
95
|
+
alias_method :small_boobs, :smallboobs
|
96
|
+
|
97
|
+
# OwOifys text.
|
98
|
+
# @param text [String] text to owoify
|
99
|
+
# @return [String] owoified text
|
100
|
+
def owoify(text)
|
101
|
+
API.get("owoify?text=#{URI.encode(text)}")['owo']
|
102
|
+
end
|
103
|
+
|
104
|
+
# Chat with the API
|
105
|
+
# @param text [String] text to query
|
106
|
+
# @param owo [true, false] whether or not to owoify response text
|
107
|
+
# @return [String] the response
|
108
|
+
def chat(text, owo = false)
|
109
|
+
API.get("chat?text=#{URI.encode(text)}#{'&owo=true' if owo}")['response']
|
110
|
+
end
|
111
|
+
|
112
|
+
# Gets a random fact
|
113
|
+
# @return [String] the fact
|
114
|
+
def fact
|
115
|
+
API.get('fact')['fact']
|
116
|
+
end
|
117
|
+
|
118
|
+
# Gets a random question
|
119
|
+
# @return [String] the question
|
120
|
+
def why
|
121
|
+
API.get('why')['why']
|
122
|
+
end
|
123
|
+
|
124
|
+
# Gets an ascii cat
|
125
|
+
# @return [String] the cat
|
126
|
+
def cat
|
127
|
+
API.get('cat')['cat']
|
128
|
+
end
|
129
|
+
|
130
|
+
# Gets an ascii cat
|
131
|
+
# @return [EightBallResponse] the response given with text and an image url
|
132
|
+
def eight_ball
|
133
|
+
EightBallResponse.new(API.get('8ball'))
|
134
|
+
end
|
135
|
+
alias_method :eightball, :eight_ball
|
136
|
+
end
|
137
|
+
|
138
|
+
# A response from the 8ball endpoint
|
139
|
+
class EightBallResponse
|
140
|
+
# @return [String] the response in text form.
|
141
|
+
attr_reader :text
|
142
|
+
alias_method :to_s, :text
|
143
|
+
|
144
|
+
# @return [String] the response in image form.
|
145
|
+
attr_reader :image_url
|
146
|
+
|
147
|
+
# @!visibility private
|
148
|
+
def initialize(data)
|
149
|
+
@text = data['response']
|
150
|
+
@image_url = data['url']
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
data/lib/nekos/api.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'nekos/ver'
|
2
|
+
require 'json'
|
3
|
+
require 'rest-client'
|
4
|
+
|
5
|
+
module NekosLife
|
6
|
+
# Main API functions
|
7
|
+
module API
|
8
|
+
module_function
|
9
|
+
|
10
|
+
BASE = 'https://nekos.life/api/v2'.freeze
|
11
|
+
|
12
|
+
# Request an endpoint easily
|
13
|
+
# @return [Hash] the response given in JSON
|
14
|
+
def request(type, *attributes)
|
15
|
+
parse_json(RestClient.send(type, *attributes))
|
16
|
+
rescue RuntimeError => e
|
17
|
+
raise e
|
18
|
+
end
|
19
|
+
|
20
|
+
# Requests an image
|
21
|
+
# @param type [String] the image type
|
22
|
+
# @return [Hash] the response given in JSON
|
23
|
+
def img(type)
|
24
|
+
request(
|
25
|
+
:get,
|
26
|
+
"#{BASE}/img/#{type}"
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Requests an endpoint
|
31
|
+
# @param endpoint [String] the endpoint
|
32
|
+
# @return [Hash] the response given in JSON
|
33
|
+
def get(endpoint)
|
34
|
+
request(
|
35
|
+
:get,
|
36
|
+
"#{BASE}/#{endpoint}"
|
37
|
+
)
|
38
|
+
end
|
39
|
+
|
40
|
+
# @!visibility private
|
41
|
+
def parse_json(raw)
|
42
|
+
JSON.parse(raw)
|
43
|
+
rescue JSON::ParserError
|
44
|
+
raw
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/lib/nekos/ver.rb
ADDED
metadata
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: nekos
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Snazzah
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-07-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.10'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.10'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: inch
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.8.0
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.8.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rubocop
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.49.1
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.49.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rest-client
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: A gem that utilizes the nekos.life API.
|
70
|
+
email: suggesttosnazzy@gmail.com
|
71
|
+
executables: []
|
72
|
+
extensions: []
|
73
|
+
extra_rdoc_files: []
|
74
|
+
files:
|
75
|
+
- lib/nekos.rb
|
76
|
+
- lib/nekos/api.rb
|
77
|
+
- lib/nekos/ver.rb
|
78
|
+
homepage: https://github.com/Nekos-Life/nekos.rb
|
79
|
+
licenses:
|
80
|
+
- MIT
|
81
|
+
metadata: {}
|
82
|
+
post_install_message:
|
83
|
+
rdoc_options: []
|
84
|
+
require_paths:
|
85
|
+
- lib
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
requirements: []
|
97
|
+
rubyforge_project:
|
98
|
+
rubygems_version: 2.7.6
|
99
|
+
signing_key:
|
100
|
+
specification_version: 4
|
101
|
+
summary: A gem that utilizes the nekos.life API.
|
102
|
+
test_files: []
|