dblruby 1.0.0 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 26976efdbb810637c0f47ae21edb5905ae183644
4
- data.tar.gz: a3efa28a57d5b232f41b2e129c8cde8ead7d7c20
3
+ metadata.gz: 3de08405f7a2efcc93b46c09448d9f0da4332a97
4
+ data.tar.gz: 76cc108bcfb280a6045329e6357780e80373acf8
5
5
  SHA512:
6
- metadata.gz: 318b638e5f13794dd4558ead75598248b32786cbd64be498711505e4ee5eaef8c72b11803dc861c5e144176ccdc18d5ac2693ae379746d635be85b31cb47c640
7
- data.tar.gz: 734a9d1f29f2ed8364f3648e75cc60d4fe82f2ea0dcf799a61a9bfbf547e4102ca26f1cf417b7d04f391f058774d8ca00e26084d1cbc21bf5ec9a2847dac3caa
6
+ metadata.gz: 0d369eb612d86b6dc4b7736813262fe4159e578e072cc7b6d4bfe2e42e065af5c81591203cc08ac516ec520fc6c331da3d24b0179d1d823755f08cba5ae973d5
7
+ data.tar.gz: 870a7b96543b4a18cb28bedb72d95d16c77e0172dbdd6dae244b080770b4329b19765feb56d60bcc9fda66155152f2f8385cb727f1986cfb5f683fafe86421e1
@@ -23,7 +23,7 @@ class DBLRuby
23
23
  Bot.new(id: id)
24
24
  end
25
25
 
26
- alias loadbot bot
26
+ alias_method :loadbot, :bot
27
27
 
28
28
  # Get all of the bot's stats as if you just called DBL.bot(id)
29
29
  # @return [Bot] the bot as a bot.
@@ -37,39 +37,49 @@ class DBLRuby
37
37
  User.new(id)
38
38
  end
39
39
 
40
- alias loaduser user
40
+ alias_method :loaduser, :user
41
41
 
42
42
  # Change the API key
43
43
  # @param apikey [String] API Key of the bot, taken from the DBL.
44
44
  attr_writer :api
45
45
 
46
- alias updateapikey api=
47
- alias updateapi api=
48
- alias apikey= api=
46
+ alias_method :updateapikey, :api=
47
+ alias_method :updateapi, :api=
48
+ alias_method :apikey=, :api=
49
49
 
50
50
  # Change the bot ID
51
51
  # @param id [Integer, String] Integer/String of the bot's id.
52
52
  attr_writer :id
53
53
 
54
- alias updateid id=
54
+ alias_method :updateid, :id=
55
55
 
56
56
  # Define weekend
57
57
  def weekend
58
58
  Weekend.new
59
59
  end
60
60
 
61
+ # Skip the middleman, let's just see if it's the weekend!
62
+ def weekend?
63
+ weekend.weekend?
64
+ end
65
+
61
66
  # @see Search#initialize
62
67
  def search(search: nil, limit: 50, offset: 0, sort: nil, fields: nil)
63
68
  Search.new(search: search, limit: limit, offset: offset, sort: sort, fields: fields)
64
69
  end
65
70
 
71
+ # @see Widget#initialize
72
+ def widget(size: 'large', file_type: 'png', small_type: nil, topcolor: nil, middlecolor: nil, usernamecolor: nil, certifiedcolor: nil, datacolor: nil, labelcolor: nil, highlightcolor: nil, avatarbg: nil, leftcolor: nil, rightcolor: nil, lefttextcolor: nil, righttextcolor: nil, id: @id)
73
+ Widget.new(size: size, file_type: file_type, small_type: small_type, topcolor: topcolor, middlecolor: middlecolor, usernamecolor: usernamecolor, certifiedcolor: certifiedcolor, datacolor: datacolor, labelcolor: labelcolor, highlightcolor: highlightcolor, avatarbg: avatarbg, leftcolor: leftcolor, rightcolor: rightcolor, lefttextcolor: lefttextcolor, righttextcolor: righttextcolor, id: id)
74
+ end
75
+
66
76
  # Get the ID from instantiation
67
77
  attr_reader :id
68
78
 
69
79
  # Get the API Key from instantiation
70
80
  attr_reader :api
71
81
 
72
- alias apikey api
82
+ alias_method :apikey, :api
73
83
  end
74
84
 
75
85
  # Require files.
@@ -79,3 +89,4 @@ require 'dblruby/user'
79
89
  require 'dblruby/search'
80
90
  require 'dblruby/stats'
81
91
  require 'dblruby/weekend'
92
+ require 'dblruby/widget'
@@ -18,7 +18,7 @@ class DBLRuby::Bot
18
18
  # @return data in raw json form.
19
19
  attr_reader :data
20
20
 
21
- alias to_s data
21
+ alias_method :to_s, :data
22
22
 
23
23
  # Return the error if there is one, nil otherwise.
24
24
  # @return [String, nil] the error.
@@ -110,8 +110,8 @@ class DBLRuby::Bot
110
110
  @data['discriminator']
111
111
  end
112
112
 
113
- alias discrim discriminator
114
- alias tag discriminator
113
+ alias_method :discrim, :discriminator
114
+ alias_method :tag, :discriminator
115
115
 
116
116
  # The username of the bot.
117
117
  # @return [String] the bot's username.
@@ -156,8 +156,8 @@ class DBLRuby::Bot
156
156
  @data['server_count'].to_i
157
157
  end
158
158
 
159
- alias guild_count server_count
160
- alias server server_count
159
+ alias_method :guild_count, :server_count
160
+ alias_method :server, :server_count
161
161
 
162
162
  # Get the bot's "This Bot Powers the following Servers"
163
163
  # @return [Array<String>] the bot's guilds.
@@ -165,7 +165,7 @@ class DBLRuby::Bot
165
165
  @data['guilds']
166
166
  end
167
167
 
168
- alias servers guilds
168
+ alias_method :servers, :guilds
169
169
 
170
170
  # Get the bot's shards.
171
171
  # @return [Array<String>] the bot's shards.
@@ -179,7 +179,7 @@ class DBLRuby::Bot
179
179
  @data['monthlyPoints'].to_i
180
180
  end
181
181
 
182
- alias monthlyvotes monthlypoints
182
+ alias_method :monthlyvotes, :monthlypoints
183
183
 
184
184
  # The amount of upvotes the bot has.
185
185
  # @return [Integer] the bot's total points/votes.
@@ -187,7 +187,7 @@ class DBLRuby::Bot
187
187
  @data['points'].to_i
188
188
  end
189
189
 
190
- alias votes points
190
+ alias_method :votes, :points
191
191
 
192
192
  # The certified status of the bot.
193
193
  # @return [true, false] the bot's certified status.
@@ -195,9 +195,9 @@ class DBLRuby::Bot
195
195
  @data['certifiedBot']
196
196
  end
197
197
 
198
- alias certifiedbot certified?
199
- alias certified certified?
200
- alias certifiedbot? certified?
198
+ alias_method :certifiedbot, :certified?
199
+ alias_method :certified, :certified?
200
+ alias_method :certifiedbot?, :certified?
201
201
 
202
202
  # The owners of the bot. First one in the array is the main owner.
203
203
  # @return [Array<String>] the bot's owners in an array.
@@ -217,5 +217,5 @@ class DBLRuby::Bot
217
217
  @data['donatebotguildid']
218
218
  end
219
219
 
220
- alias donatebotserverid donatebotguildid
220
+ alias_method :donatebotserverid, :donatebotguildid
221
221
  end
@@ -1,14 +1,17 @@
1
1
  # Errors are cool.
2
2
  module DBLRuby::Errors
3
- # Ran if a 404 error is returned in #loadbot
3
+ # Raised if a 404 error is returned in #bot
4
4
  class InvalidBot < RuntimeError; end
5
5
 
6
- # Ran if a 404 error is returned in #loaduser
6
+ # Raised if a 404 error is returned in #user
7
7
  class InvalidUser < RuntimeError; end
8
8
 
9
- # Ran if a 401 unauthorized error is returned in stats.
9
+ # Raised if a 401 unauthorized error is returned in stats.
10
10
  class InvalidAPIKey < RuntimeError; end
11
11
 
12
- # Ran if a 404 unknown error is returned in stats.
12
+ # Raised if a 404 unknown error is returned in stats.
13
13
  class InvalidID < RuntimeError; end
14
+
15
+ # Rasied if an invalid Widget parameter is specified
16
+ class InvalidWidget < RuntimeError; end
14
17
  end
@@ -23,7 +23,7 @@ class DBLRuby::Search
23
23
  # @return data in raw json form.
24
24
  attr_reader :data
25
25
 
26
- alias to_s data
26
+ alias_method :to_s, :data
27
27
 
28
28
  # @return [String] the search query
29
29
  attr_reader :search
@@ -18,7 +18,7 @@ class DBLRuby::Stats
18
18
  'DBL Returned a 404 unknown error! Did you enter the correct ID?'
19
19
  end
20
20
 
21
- alias servers servercount
21
+ alias_method :servers, :servercount
22
22
 
23
23
  # Update the bot's server count.
24
24
  # @param count [Integer, Array<Integer>] Integer/String of bot server count.
@@ -40,7 +40,7 @@ class DBLRuby::Stats
40
40
  'There was an error posting stats to the DBL. Is your API key ok?'
41
41
  end
42
42
 
43
- alias servers= updateservercount
43
+ alias_method :servers=, :updateservercount
44
44
 
45
45
  # Check to see if a user really voted, via an ID.
46
46
  # @param id [Integer, String] Integer/String ID of user you're requesting.
@@ -14,7 +14,7 @@ class DBLRuby::User
14
14
  # @return data in raw json form.
15
15
  attr_reader :data
16
16
 
17
- alias to_s data
17
+ alias_method :to_s, :data
18
18
 
19
19
  # Return the error if there is one, nil otherwise.
20
20
  # @return [String, nil] the error.
@@ -46,8 +46,8 @@ class DBLRuby::User
46
46
  @data['discriminator'].delete('#').to_i
47
47
  end
48
48
 
49
- alias discrim discriminator
50
- alias tag discriminator
49
+ alias_method :discrim, :discriminator
50
+ alias_method :tag, :discriminator
51
51
 
52
52
  # Returns the user's distinct, which is the Username and Discriminator.
53
53
  # @return [String] the user's username + discrim.
@@ -133,7 +133,7 @@ class DBLRuby::User
133
133
  @data['color']
134
134
  end
135
135
 
136
- alias colour color
136
+ alias_method :colour, :color
137
137
 
138
138
  # The supporter status of the user.
139
139
  # @return [true, false] the user's supporter status.
@@ -141,7 +141,7 @@ class DBLRuby::User
141
141
  @data['supporter']
142
142
  end
143
143
 
144
- alias supporter supporter?
144
+ alias_method :supporter, :supporter?
145
145
 
146
146
  # The certified status of the user.
147
147
  # @return [true, false] the user's certified status.
@@ -149,9 +149,9 @@ class DBLRuby::User
149
149
  @data['certifiedDev']
150
150
  end
151
151
 
152
- alias certified certified?
153
- alias certifieddev certified
154
- alias certifieddev? certified
152
+ alias_method :certified, :certified?
153
+ alias_method :certifieddev, :certified
154
+ alias_method :certifieddev?, :certified
155
155
 
156
156
  # The mod status of the user.
157
157
  # @return [true, false] the user's mod status.
@@ -159,7 +159,7 @@ class DBLRuby::User
159
159
  @data['mod']
160
160
  end
161
161
 
162
- alias mod mod?
162
+ alias_method :mod, :mod?
163
163
 
164
164
  # The website moderator status of the user.
165
165
  # @return [true, false] the user's website mod status.
@@ -167,7 +167,7 @@ class DBLRuby::User
167
167
  @data['webMod']
168
168
  end
169
169
 
170
- alias webmod webmod?
170
+ alias_method :webmod, :webmod?
171
171
 
172
172
  # The admin status of the user.
173
173
  # @return [true, false] the user's admin status.
@@ -175,5 +175,5 @@ class DBLRuby::User
175
175
  @data['admin']
176
176
  end
177
177
 
178
- alias admin admin?
178
+ alias_method :admin, :admin?
179
179
  end
@@ -9,7 +9,7 @@ class DBLRuby::Weekend
9
9
  # @return data in raw json form.
10
10
  attr_reader :data
11
11
 
12
- alias to_s data
12
+ alias_method :to_s, :data
13
13
 
14
14
  # Return the whether it's the weekend.
15
15
  # @return [true, false] the weekend status.
@@ -17,5 +17,5 @@ class DBLRuby::Weekend
17
17
  @data['is_weekend']
18
18
  end
19
19
 
20
- alias isweekend weekend?
20
+ alias_method :isweekend, :weekend?
21
21
  end
@@ -0,0 +1,119 @@
1
+ # Make a widget
2
+ class DBLRuby::Widget
3
+ BASE_URL = 'https://discordbots.org/api/widget/'.freeze
4
+
5
+ # Make a new widget
6
+ # @param size ['large', 'small'] The size of the widget.
7
+ # @param file_type ['png', 'svg'] The file type of the image
8
+ # @param small_type ['owner', 'status', 'upvotes', 'servers', 'lib'] The type of small widget.
9
+ # @param topcolor [Hexadecimal] The top color of the widget (Large)
10
+ # @param middlecolor [Hexadecimal] The middle color of the widget (Large)
11
+ # @param usernamecolor [Hexadecimal] The username color of the widget (Large)
12
+ # @param certifiedcolor [Hexadecimal] The certified color of the widget (Large)
13
+ # @param datacolor [Hexadecimal] The data color of the widget (Large)
14
+ # @param labelcolor [Hexadecimal] The label color of the widget (Large)
15
+ # @param highlightcolor [Hexadecimal] The highlight color of the widget (Large)
16
+ # @param avatarbg [Hexadecimal] The avatar background color of the widget (Small)
17
+ # @param leftcolor [Hexadecimal] The left color of the widget (Small)
18
+ # @param rightcolor [Hexadecimal] The right color of the widget (Small)
19
+ # @param lefttextcolor [Hexadecimal] The left text color of the widget (Small)
20
+ # @param righttextcolor [Hexadecimal] The right text color of the widget (Small)
21
+ # @param noavatar [true, false] Whether there should be an avatar (Small)
22
+ def initialize(size: 'large', file_type: 'png',
23
+ small_type: nil,
24
+ topcolor: nil, middlecolor: nil, usernamecolor: nil, certifiedcolor: nil, datacolor: nil, labelcolor: nil, highlightcolor: nil,
25
+ avatarbg: nil, leftcolor: nil, rightcolor: nil, lefttextcolor: nil, righttextcolor: nil, noavatar: nil,
26
+ id: nil)
27
+ @size = size
28
+ @file_type = file_type
29
+ @small_type = small_type
30
+ @topcolor = topcolor
31
+ @middlecolor = middlecolor
32
+ @usernamecolor = usernamecolor
33
+ @certifiedcolor = certifiedcolor
34
+ @datacolor = datacolor
35
+ @labelcolor = labelcolor
36
+ @highlightcolor = highlightcolor
37
+ @avatarbg = avatarbg
38
+ @leftcolor = leftcolor
39
+ @rightcolor = rightcolor
40
+ @lefttextcolor = lefttextcolor
41
+ @righttextcolor = righttextcolor
42
+ @noavatar = noavatar
43
+ @id = id
44
+
45
+ raise DBLRuby::Errors::InvalidWidget, 'Small size specified but no small type was provided' if @size == 'small' && @small_type.nil?
46
+ raise DBLRuby::Errors::InvalidWidget, 'Small parameter specified for large widget' if @size == 'large' && (!@avatarbg.nil? || !@leftcolor.nil? || !@rightcolor.nil? || !@lefttextcolor.nil? || !@righttextcolor.nil? || !@noavatar.nil?)
47
+ raise DBLRuby::Errors::InvalidWidget, 'Large parameter specified for small widget' if @size == 'small' && (!@topcolor.nil? || !@middlecolor.nil? || !@usernamecolor.nil? || !@certifiedcolor.nil? || !@datacolor.nil? || !@labelcolor.nil? || !@highlightcolor.nil?)
48
+
49
+ raise DBLRuby::Errors::InvalidWidget, 'Invalid size' unless %w[small large].include? @size
50
+ raise DBLRuby::Errors::InvalidWidget, 'Invalid small widget type' if @size == 'small' && !%w[owner status upvotes servers lib].include?(@small_type)
51
+ raise DBLRuby::Errors::InvalidWidget, 'Invalid file type' unless %w[png svg].include? @file_type
52
+ raise DBLRuby::Errors::InvalidWidget, 'Invalid noavatar parameter' unless %w[true false].include? @noavatar
53
+ end
54
+
55
+ def size=(size)
56
+ raise DBLRuby::Errors::InvalidWidget, 'Invalid size' unless %w[small large].include? size
57
+
58
+ @size = size
59
+ end
60
+
61
+ def file_type=(file_type)
62
+ raise DBLRuby::Errors::InvalidWidget, 'Invalid file type' unless %w[png svg].include? file_type
63
+
64
+ @file_type = file_type
65
+ end
66
+
67
+ def small_type=(small_type)
68
+ raise DBLRuby::Errors::InvalidWidget, 'Invalid small widget type' if @size == 'small' && !%w[owner status upvotes servers lib].include?(small_type)
69
+
70
+ @small_type = small_type
71
+ end
72
+
73
+ attr_writer :topcolor
74
+ attr_writer :middlecolor
75
+ attr_writer :usernamecolor
76
+ attr_writer :certifiedcolor
77
+ attr_writer :datacolor
78
+ attr_writer :labelcolor
79
+ attr_writer :highlightcolor
80
+ attr_writer :avatarbg
81
+ attr_writer :leftcolor
82
+ attr_writer :rightcolor
83
+ attr_writer :lefttextcolor
84
+ attr_writer :righttextcolor
85
+
86
+ def noavatar=(noavatar)
87
+ raise DBLRuby::Errors::InvalidWidget, 'Invalid noavatar parameter' unless %w[true false].include? noavatar
88
+
89
+ @noavatar = noavatar
90
+ end
91
+
92
+ # @return [String] The URL, ready for linking.
93
+ def url
94
+ params = []
95
+ if @size == 'large'
96
+ params.push("topcolor=#{@topcolor}") unless @topcolor.nil?
97
+ params.push("middlecolor=#{@middlecolor}") unless @middlecolor.nil?
98
+ params.push("usernamecolor=#{@usernamecolor}") unless @usernamecolor.nil?
99
+ params.push("certifiedcolor=#{@certifiedcolor}") unless @certifiedcolor.nil?
100
+ params.push("datacolor=#{@datacolor}") unless @datacolor.nil?
101
+ params.push("labelcolor=#{@labelcolor}") unless @labelcolor.nil?
102
+ params.push("highlightcolor=#{@highlightcolor}") unless @highlightcolor.nil?
103
+ output = "#{BASE_URL}#{@id}.#{@file_type}"
104
+ elsif @size == 'small'
105
+ params.push("avatarbg=#{@avatarbg}") unless @avatarbg.nil?
106
+ params.push("leftcolor=#{@leftcolor}") unless @leftcolor.nil?
107
+ params.push("rightcolor=#{@rightcolor}") unless @rightcolor.nil?
108
+ params.push("certifiedcolor=#{@certifiedcolor}") unless @certifiedcolor.nil?
109
+ params.push("lefttextcolor=#{@lefttextcolor}") unless @lefttextcolor.nil?
110
+ params.push("righttextcolor=#{@labelcolor}") unless @righttextcolor.nil?
111
+ params.push("noavatar=#{@noavatar}") unless @noavatar.nil?
112
+ output = "#{BASE_URL}#{@small_type}/#{@id}.#{@file_type}"
113
+ end
114
+ output += "?#{params.join('&')}" unless params.length.zero?
115
+ output
116
+ end
117
+
118
+ alias_method :to_s, :url
119
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dblruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chewsterchew
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-10 00:00:00.000000000 Z
11
+ date: 2018-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -45,13 +45,13 @@ extensions: []
45
45
  extra_rdoc_files: []
46
46
  files:
47
47
  - lib/dblruby.rb
48
- - lib/dblruby/api.rb
49
48
  - lib/dblruby/bot.rb
50
49
  - lib/dblruby/errors.rb
51
50
  - lib/dblruby/search.rb
52
51
  - lib/dblruby/stats.rb
53
52
  - lib/dblruby/user.rb
54
53
  - lib/dblruby/weekend.rb
54
+ - lib/dblruby/widget.rb
55
55
  homepage: http://github.com/Chewsterchew/DBLRuby
56
56
  licenses:
57
57
  - MIT
@@ -1,11 +0,0 @@
1
- # What api
2
- class DBLRuby::API
3
- # Run a simple GET request.
4
- # @return [JSON] whatever rest-client returned, but parsed.
5
- def get(url)
6
- r = RestClient.get(url,
7
- :Authorization => DBLRuby.api,
8
- :'Content-Type' => :json)
9
- JSON.parse(r)
10
- end
11
- end