dblista 0.1.5 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a8a9f1ef63473322f8f5cfb544e460fe77740bfba0bf6e767be8d583f2906cb6
4
- data.tar.gz: 855aeed578c2e189b9c57098e1978b24c1a38a2225ddb232fa84959f6ac2c264
3
+ metadata.gz: 1fa0b18a050a6369352d032a11be2497c207a8f16a4456c11aa2be79695d3738
4
+ data.tar.gz: c46e76121ccf62a37004db3c867f421d02ce12c4b0516a73e1d37e00f88cdc54
5
5
  SHA512:
6
- metadata.gz: cc04945b098ae8850aac02baec8cc6d20fc8f6388ec60e86a8ac6533d00b85d6439613ea7da5ba5a0dc097f95bba79c4f09b3a718fda7954215723d1ab887bb3
7
- data.tar.gz: 3c94d344e3c0e5f61a0114daa40845dfd8d83d60baaa2f2ec942b7618e37c0d6bd5143dfaf1b3b110f5721daa6e38b62df84617695f899477eed4119ff0b9723
6
+ metadata.gz: 9940f8419b0c118ffb071640481ef77d87479e66cc0a723d9ff8f03a365207d4f419779b2cd77646309ac584b2f8e9ada0147a74bf3b1cd5db613a5839445b33
7
+ data.tar.gz: 8dea89026931f27610552e00dc2a008ee1a02df08777661964bfb244d90400d7e95b27cce6e7142bd64a3e9cc9258583823fa254e687baa3cb34141a0fd439ee
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dblista (0.1.5)
4
+ dblista (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -12,6 +12,7 @@ require_relative 'dblista/errors'
12
12
  require_relative 'dblista/list/bot'
13
13
  require_relative 'dblista/list/server'
14
14
  require_relative 'dblista/user/client'
15
+ require_relative 'dblista/helpers'
15
16
 
16
17
  # Main module
17
18
  module DBLista
@@ -36,7 +37,7 @@ module DBLista
36
37
  response = _https(uri).request(req)
37
38
  result = JSON.parse response.body
38
39
  raise DBLista::Error, result['error'].capitalize unless result['status'] == 'success'
39
- result
40
+ result['data']
40
41
  end
41
42
 
42
43
  # @!visibility private
@@ -6,6 +6,8 @@ module DBLista::Errors
6
6
  ID_NEEDED = 'You need to enter ID'
7
7
  # Raised when provided page is not an integer
8
8
  PAGE_INTEGER = 'Page must be an integer'
9
+ # Raised when rank is not an integer
10
+ RANK_INTEGER = 'Rank must be an integer'
9
11
  # Raised when token is not provided
10
12
  TOKEN_NOT_PROVIDED = 'Token is not provided'
11
13
  # Raised when type symbol is invalid
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Helper methods
4
+ module DBLista::Helpers
5
+ # Crafts avatar url from user ID and avatar hash
6
+ #
7
+ # @param id [Integer] user ID
8
+ # @param hash [String] avatar hash
9
+ # @param size [Integer] avatar width (defaults to 2048)
10
+ # @return [Hash] raw data from DBLista
11
+ def self.get_avatar(id, hash, size = 2048)
12
+ "https://cdn.discordapp.com/avatars/#{id}/#{hash}?size=#{size}"
13
+ end
14
+ end
@@ -8,7 +8,7 @@ module DBLista
8
8
  #
9
9
  # @example Checking DBLista user information
10
10
  # info = DBLista::Information.user 123456789012345678
11
- # puts info['data']
11
+ # puts info
12
12
  module Information
13
13
  # Fetches DBLista bot information
14
14
  #
@@ -8,7 +8,7 @@ require 'cgi'
8
8
  #
9
9
  # @example Fetch top 25 bots
10
10
  # top = DBLista::List::Bot.top
11
- # puts top['data'].inspect
11
+ # puts top.inspect
12
12
  module DBLista::List
13
13
  # Bot lists
14
14
  module Bot
@@ -40,5 +40,19 @@ module DBLista::User
40
40
 
41
41
  DBLista._delete("/#{type}s/#{id}", nil, @token)
42
42
  end
43
+
44
+ # Manages user (bans or adds premium)
45
+ # Available only for DBLista staff
46
+ #
47
+ # @param id [Integer] user ID
48
+ # @param banned [Boolean] user ban status
49
+ # @param premium [Integer] days for premium
50
+ # @return [Hash] raw data from DBLista
51
+ def manage_user(id, banned = false, premium = 0)
52
+ DBLista._post("/users/#{id}/manage", {
53
+ premium: premium,
54
+ ban: banned
55
+ }, @token)
56
+ end
43
57
  end
44
58
  end
@@ -5,6 +5,7 @@ require_relative './boosting'
5
5
  require_relative './rating'
6
6
  require_relative './voting'
7
7
  require_relative './notifications'
8
+ require_relative './verification'
8
9
 
9
10
  # User module - client + client modules
10
11
  module DBLista::User
@@ -23,6 +24,7 @@ module DBLista::User
23
24
  include DBLista::User::Boosting
24
25
  include DBLista::User::Rating
25
26
  include DBLista::User::Notifications
27
+ include DBLista::User::Verification
26
28
 
27
29
  # Allowed entity types to use
28
30
  ALLOWED_TYPES = %i[bot server].freeze
@@ -34,7 +36,7 @@ module DBLista::User
34
36
 
35
37
  @token = token
36
38
 
37
- raise DBLista::Error, DBLista::Errors::INVALID_TOKEN unless me['status'] == 'success'
39
+ me
38
40
  end
39
41
 
40
42
  # Fetches information about current user
@@ -16,5 +16,34 @@ module DBLista::User
16
16
  def clear_notifications
17
17
  DBLista._get('/users/me/notifications/clear', @token)
18
18
  end
19
+
20
+ # Sends notification to specified user
21
+ # Available only for DBLista staff
22
+ #
23
+ # @param rank [Integer] user ID
24
+ # @param details [String] details (content)
25
+ # @param url [String] url to redirect if clicked
26
+ # @return [Hash] raw data from DBLista
27
+ def send_notification(id, details, url = '#')
28
+ DBLista._validate_id id
29
+ DBLista._post("/users/#{id}/notifications", {
30
+ text: details,
31
+ url: url || '#'
32
+ }, @token)
33
+ end
34
+
35
+ # Sends notification to specified group (rank)
36
+ # Available only for DBLista staff
37
+ #
38
+ # @param rank [Integer] rank ID
39
+ # @param details [String] details (content)
40
+ # @param url [String] url to redirect if clicked
41
+ # @return [Hash] raw data from DBLista
42
+ def send_group_notification(rank, details, url = '#')
43
+ DBLista._post("/users/group/#{rank}/notifications", {
44
+ text: details,
45
+ url: url || '#'
46
+ }, @token)
47
+ end
19
48
  end
20
49
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'cgi'
4
+
5
+ module DBLista::User
6
+ # User client - verification (only for staff)
7
+ module Verification
8
+ # Approves specified bot
9
+ #
10
+ # @param id [Integer] bot ID
11
+ # @param reason [String] reason for approving
12
+ # @return [Boolean] true if operation succeded
13
+ def approve(id, reason = 'Brak powodu')
14
+ DBLista._validate_id id
15
+
16
+ DBLista._post("/bots/#{id}/approve?reason=#{CGI.escape reason}", nil, @token)
17
+ true
18
+ end
19
+
20
+ # Rejects specified bot
21
+ #
22
+ # @param id [Integer] bot ID
23
+ # @param reason [String] reason for rejecting
24
+ # @return [Boolean] true if operation succeded
25
+ def reject(id, reason = 'Brak powodu')
26
+ DBLista._validate_id id
27
+
28
+ DBLista._post("/bots/#{id}/reject?reason=#{CGI.escape reason}", nil, @token)
29
+ true
30
+ end
31
+
32
+ # Sets specified bot verification status to pending
33
+ #
34
+ # @param id [Integer] bot ID
35
+ # @return [Boolean] true if operation succeded
36
+ def set_pending(id)
37
+ DBLista._validate_id id
38
+
39
+ DBLista._post("/bots/#{id}/set-pending", nil, @token)
40
+ true
41
+ end
42
+ end
43
+ end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module DBLista
4
4
  # Wrapper version
5
- VERSION = '0.1.5'
5
+ VERSION = '0.2.0'
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dblista
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - deepivin
@@ -71,6 +71,7 @@ files:
71
71
  - example/info.rb
72
72
  - lib/dblista.rb
73
73
  - lib/dblista/errors.rb
74
+ - lib/dblista/helpers.rb
74
75
  - lib/dblista/info.rb
75
76
  - lib/dblista/list/bot.rb
76
77
  - lib/dblista/list/server.rb
@@ -80,6 +81,7 @@ files:
80
81
  - lib/dblista/user/client.rb
81
82
  - lib/dblista/user/notifications.rb
82
83
  - lib/dblista/user/rating.rb
84
+ - lib/dblista/user/verification.rb
83
85
  - lib/dblista/user/voting.rb
84
86
  - lib/dblista/version.rb
85
87
  homepage: https://github.com/marek12306/dblista-wrapper-ruby