dblruby 0.5.0 → 0.6.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: 74234c3df2d4ba601ee219351cf3c9a0ec6a5a06
4
- data.tar.gz: 64b71fea55fc450f5d35ed5c27e0328ab781ceeb
3
+ metadata.gz: c4680057787917a041e0979551c47c6e4cdc9f10
4
+ data.tar.gz: 56b41a0ad44a2b4ec64f59db28ab4bdfbb5331ef
5
5
  SHA512:
6
- metadata.gz: efbcc7c1a244954e38460aca78455867ed9d8d8a54846eed6e0831a6349ea18943acf116dfcc67d13ca0573a5cbacc12341ba1b13ceea0a2ddecaa770c6a5be3
7
- data.tar.gz: 5ff26982b39589e881e9f79be510a14c757103fe842c979bd713ceed4bc4a7a4d914fb23f16f62d63a29fc5ea3d95f9ac8071785864052aae95b410a0ca1adb8
6
+ metadata.gz: f9821d6aae9167946d150889deb2a540caed370976dd26fff9381374d7dc35e78828c05b63baf1864e8690ed109562ad2a6369163ea7eb301b04de57e0f12958
7
+ data.tar.gz: 5fa58dd63c36bcde3b661c485dd7d78af563f81baac35e3b66bc9643fe75e583c485fe5b52b2bbdfa810924312dd9b008998976a778995522260f27c591d4df8
data/lib/dblruby.rb CHANGED
@@ -30,6 +30,26 @@ class DBLRuby
30
30
  @user = User.new(id)
31
31
  end
32
32
 
33
+ # Change the API key
34
+ # @param apikey [String] API Key of the bot, taken from the DBL.
35
+ def updateapi(apikey)
36
+ @api = apikey
37
+ makestats
38
+ end
39
+
40
+ alias updateapikey updateapi
41
+ alias api= updateapi
42
+ alias apikey= updateapi
43
+
44
+ # Change the bot ID
45
+ # @param id [Integer, String] Integer/String of the bot's id.
46
+ def updateid(id)
47
+ @id = id
48
+ makestats
49
+ end
50
+
51
+ alias id= updateid
52
+
33
53
  # Get the ID from instantiation
34
54
  attr_reader :id
35
55
 
data/lib/dblruby/bot.rb CHANGED
@@ -5,11 +5,16 @@ class DBLRuby::Bot
5
5
  def initialize(id)
6
6
  url = "https://discordbots.org/api/bots/#{id}"
7
7
  @data = JSON.parse(RestClient.get(url))
8
+ rescue RestClient::NotFound
9
+ raise DBLRuby::Errors::InvalidBot,
10
+ 'The API returned a 404 error! Is that bot listed?'
8
11
  end
9
12
 
10
13
  # @return data in raw json form.
11
14
  attr_reader :data
12
15
 
16
+ alias to_s data
17
+
13
18
  # Get the bot's invite link.
14
19
  # @return [String] the bot's invite link.
15
20
  def invite
@@ -2,4 +2,13 @@
2
2
  module DBLRuby::Errors
3
3
  # Ran if No Data is returned.
4
4
  class NoData < RuntimeError; end
5
+
6
+ # Ran if a 404 error is returned in #loadbot
7
+ class InvalidBot < RuntimeError; end
8
+
9
+ # Ran if a 404 error is returned in #loaduser
10
+ class InvalidUser < RuntimeError; end
11
+
12
+ # Ran if a 401 unauthorized error is returned in stats.
13
+ class InvalidAPIKey < RuntimeError; end
5
14
  end
data/lib/dblruby/stats.rb CHANGED
@@ -14,6 +14,8 @@ class DBLRuby::Stats
14
14
  JSON.parse(RestClient.get(url))['server_count'].to_i
15
15
  end
16
16
 
17
+ alias servers servercount
18
+
17
19
  # Update the bot's server count.
18
20
  # @param id [Integer, String] Integer/String ID of bot server count.
19
21
  def updateservercount(count)
@@ -21,8 +23,13 @@ class DBLRuby::Stats
21
23
  json = '{"server_count":' + count.to_s + '}'
22
24
  RestClient.post(url, json, :Authorization => @api, :'Content-Type' => :json)
23
25
  "Successfully set the server count to #{count}"
26
+ rescue RestClient::Unauthorized
27
+ raise DBLRuby::Errors::InvalidAPIKey,
28
+ 'There was an error posting stats to the DBL. Is your API key ok?'
24
29
  end
25
30
 
31
+ alias servers= updateservercount
32
+
26
33
  # Check to see if a user really voted, via an ID.
27
34
  # @param id [Integer, String] Integer/String ID of user you're requesting.
28
35
  # @return [true, false] if the user voted or not.
@@ -33,5 +40,8 @@ class DBLRuby::Stats
33
40
  :'Content-Type' => :json)
34
41
  o = JSON.parse(r)['voted'].to_i
35
42
  !o.zero?
43
+ rescue RestClient::Unauthorized
44
+ raise DBLRuby::Errors::InvalidAPIKey,
45
+ 'There was an error posting stats to the DBL. Is your API key ok?'
36
46
  end
37
47
  end
data/lib/dblruby/user.rb CHANGED
@@ -5,6 +5,9 @@ class DBLRuby::User
5
5
  def initialize(id)
6
6
  url = "https://discordbots.org/api/users/#{id}"
7
7
  @data = JSON.parse(RestClient.get(url))
8
+ rescue RestClient::NotFound
9
+ raise DBLRuby::Errors::InvalidUser,
10
+ 'The API returned a 404 error! Does that user exist?'
8
11
  end
9
12
 
10
13
  # @return data in raw json form.
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: 0.5.0
4
+ version: 0.6.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-04-23 00:00:00.000000000 Z
11
+ date: 2018-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -24,7 +24,7 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 2.1.0.rc1
27
- description: A gem made for the Discord Bot List in ruby.
27
+ description: A Ruby library for the Discord Bot List (https://discordbots.org) API.
28
28
  email: chew@chew.pw
29
29
  executables: []
30
30
  extensions: []
@@ -47,7 +47,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
47
47
  requirements:
48
48
  - - ">="
49
49
  - !ruby/object:Gem::Version
50
- version: '0'
50
+ version: 2.2.4
51
51
  required_rubygems_version: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - ">="
@@ -58,5 +58,5 @@ rubyforge_project:
58
58
  rubygems_version: 2.6.8
59
59
  signing_key:
60
60
  specification_version: 4
61
- summary: A gem made for DBL in ruby.
61
+ summary: Discord Bot List API for Ruby
62
62
  test_files: []