utopian_ruby_api 0.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 +7 -0
- data/lib/utopian_ruby_api.rb +108 -0
- metadata +87 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e343c5854a173aa24acb8c012e989911ec128d64e763e4b9a6a538873c59e1db
|
4
|
+
data.tar.gz: b16f508c7f92873987535d080e9bbd031a1de3f4ffd7d7162ca9cb26631d137c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c9b370acd00f8b7847fbe31baed3b2b6f38df311f822be8a735d9bde4b95b7bf1158c3a0887cc2470531d62fee653684655f131d89b2a5667601093d399b60b7
|
7
|
+
data.tar.gz: efa0ca7bb237cb8003a0bfb90f310014c1565116e9274d3a030b36e16ee1fbcbd6df2d7d2ed5b2e0f1bb3bad417e17fcf1bc900b33b117c44d5af691f6065fa2
|
@@ -0,0 +1,108 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'addressable'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
module UtopianRuby
|
6
|
+
class UtopianRubyAPI
|
7
|
+
@@host = 'https://api.utopian.io'
|
8
|
+
|
9
|
+
def self.get_connection()
|
10
|
+
conn = Faraday.new(:url => @@host) do |c|
|
11
|
+
c.use Faraday::Request::UrlEncoded
|
12
|
+
#c.use Faraday::Response::Logger
|
13
|
+
c.use Faraday::Adapter::NetHttp
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.get_request(endpoint)
|
18
|
+
get_connection().get endpoint
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.get_url_parameters(params)
|
22
|
+
uri = Addressable::URI.new
|
23
|
+
uri.query_values = params
|
24
|
+
uri.query
|
25
|
+
end
|
26
|
+
|
27
|
+
# list all Utopian moderators
|
28
|
+
def self.get_moderators()
|
29
|
+
JSON.parse(get_request('/api/moderators').body)
|
30
|
+
end
|
31
|
+
|
32
|
+
# check if a user is a moderator
|
33
|
+
def self.is_moderator(user)
|
34
|
+
get_moderators()["results"].each do |moderator|
|
35
|
+
if moderator['account']==user
|
36
|
+
return true
|
37
|
+
end
|
38
|
+
end
|
39
|
+
false
|
40
|
+
end
|
41
|
+
|
42
|
+
# check if a user is an utopian supervisor
|
43
|
+
def self.is_supervisor(user)
|
44
|
+
get_moderators()["results"].each do |moderator|
|
45
|
+
if moderator['account']==user and moderator['supermoderator']
|
46
|
+
return true
|
47
|
+
end
|
48
|
+
end
|
49
|
+
false
|
50
|
+
end
|
51
|
+
|
52
|
+
# get a particular moderator's metadata
|
53
|
+
def self.get_moderator(user)
|
54
|
+
get_moderators()["results"].each do |moderator|
|
55
|
+
if moderator['account']==user
|
56
|
+
return moderator
|
57
|
+
end
|
58
|
+
end
|
59
|
+
nil
|
60
|
+
end
|
61
|
+
|
62
|
+
# return sponsor list
|
63
|
+
def self.get_sponsors()
|
64
|
+
JSON.parse(get_request('/api/sponsors').body)
|
65
|
+
end
|
66
|
+
|
67
|
+
# check if a user is an utopian sponsor
|
68
|
+
def self.is_sponsor(user)
|
69
|
+
get_sponsors()["results"].each do |sponsor|
|
70
|
+
if sponsor['account']==user
|
71
|
+
return true
|
72
|
+
end
|
73
|
+
end
|
74
|
+
false
|
75
|
+
end
|
76
|
+
|
77
|
+
# return Utopian current stats
|
78
|
+
def self.stats()
|
79
|
+
JSON.parse(get_request('/api/stats').body)
|
80
|
+
end
|
81
|
+
|
82
|
+
# return if Utopian is currently voting
|
83
|
+
def self.is_voting()
|
84
|
+
self.stats()["stats"]["bot_is_voting"]
|
85
|
+
end
|
86
|
+
|
87
|
+
# return JSON containing all post information that satisfies params
|
88
|
+
def self.get_posts(params=nil)
|
89
|
+
if params.nil?
|
90
|
+
params = {}
|
91
|
+
end
|
92
|
+
JSON.parse(get_request('/api/posts?'+get_url_parameters(params)).body)
|
93
|
+
end
|
94
|
+
|
95
|
+
# return a particular post information
|
96
|
+
def self.get_post(author,permlink)
|
97
|
+
JSON.parse(get_request('/api/posts/'+author+'/'+permlink).body)
|
98
|
+
end
|
99
|
+
|
100
|
+
# return total number of Utopian posts that satisfy params
|
101
|
+
def self.post_count(params)
|
102
|
+
if params.nil?
|
103
|
+
params = {"limit":1}
|
104
|
+
end
|
105
|
+
get_posts(params)["total"]
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
metadata
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: utopian_ruby_api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Yuxi
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-01-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.13'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.13'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: addressable
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.5'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.5'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.7'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.7'
|
55
|
+
description: Utopian API ruby client, providing information about Utopian.io moderators,
|
56
|
+
sponsors, posts, stats etc
|
57
|
+
email:
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- lib/utopian_ruby_api.rb
|
63
|
+
homepage: http://rubygems.org/gems/utopian_ruby_api
|
64
|
+
licenses:
|
65
|
+
- MIT
|
66
|
+
metadata: {}
|
67
|
+
post_install_message:
|
68
|
+
rdoc_options: []
|
69
|
+
require_paths:
|
70
|
+
- lib
|
71
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0'
|
81
|
+
requirements: []
|
82
|
+
rubyforge_project:
|
83
|
+
rubygems_version: 2.7.3
|
84
|
+
signing_key:
|
85
|
+
specification_version: 4
|
86
|
+
summary: Utopian API ruby client
|
87
|
+
test_files: []
|