dblista 0.3.2 → 0.4.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
  SHA256:
3
- metadata.gz: 7a839df00612d366d1a0184c647cdce72895f1ee02d71c25deb2e76ae78c7026
4
- data.tar.gz: 4922b94a22e10332f564ef628058664204c3904c794e1381cab452478c24af8f
3
+ metadata.gz: 20bc126654c09a9c27d1a5601a5fd6ca6f78d97b434c4c72d0f053b790a55bcf
4
+ data.tar.gz: b37f3e82284ca081f443422a5b2b1a34c2beafa3ae5233f5533e2b2ce557e87d
5
5
  SHA512:
6
- metadata.gz: c9131862894f3adfaba7fb2a0add9f7fb31f423a8a94ebbd19efb8d1f84f8c14e8ee9acec3c1742a3eef0cc2e02cb8f228f5ab3eb98b5e6ebe8de0427b4f2d14
7
- data.tar.gz: 3105e3459bea2a2c8f33f1f4470ead0d103d6757396bdde267e4b323cd5839e573d90d63d47ab6b3756083cf0e5f9a18740b2a844629ddc06ceca51ea6ab6150
6
+ metadata.gz: 2e8c060120beae4594c8b5e9faa0b81bbc29dbe08c4fb0f27a61afe7816092594dc5ef205565538599aa17a97352b53b853c256b5faa5dca68c6dcbce11c613d
7
+ data.tar.gz: 6992b4c8b78a17f307d2ed2c2225c5e333cee7630c9cbf485af5c661fc89b89348c595848a8ea205e0435136555a3dcbbf85cbca0505fce87d603126b2987073
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dblista (0.3.2)
4
+ dblista (0.4.0)
5
+ zache
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
@@ -21,6 +22,7 @@ GEM
21
22
  diff-lcs (>= 1.2.0, < 2.0)
22
23
  rspec-support (~> 3.9.0)
23
24
  rspec-support (3.9.3)
25
+ zache (0.12.0)
24
26
 
25
27
  PLATFORMS
26
28
  x86-mingw32
data/README.md CHANGED
@@ -38,4 +38,4 @@ puts top
38
38
 
39
39
  ## Licencja
40
40
 
41
- Ten gem jest dostępny na licencji [MIT License](https://opensource.org/licenses/MIT). Rób z nim co chcesz.
41
+ Ten gem jest dostępny na licencji [MIT License](https://opensource.org/licenses/MIT). Rób z tym co chcesz.
@@ -24,6 +24,8 @@ Gem::Specification.new do |spec|
24
24
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
25
25
  spec.require_paths = ["lib"]
26
26
 
27
+ spec.add_dependency "zache"
28
+
27
29
  spec.add_development_dependency "bundler", "~> 1.17"
28
30
  spec.add_development_dependency "rake", ">= 12.3.3"
29
31
  spec.add_development_dependency "rspec", "~> 3.2"
@@ -0,0 +1,11 @@
1
+ require 'dblista'
2
+ require 'discordrb'
3
+
4
+ bot = Discordrb::Bot.new token: 'TOKEN'
5
+ dbl = DBLista::Stats.new 'DBLISTA_TOKEN', bot
6
+
7
+ bot.message(content: 'Ping!') do |event|
8
+ event.respond 'Pong!'
9
+ end
10
+
11
+ bot.run
@@ -0,0 +1,26 @@
1
+ require 'dblista'
2
+
3
+ client = DBLista::User::Client.new('TOKEN')
4
+
5
+ client.add({
6
+ id: 'id',
7
+ info: {
8
+ library: 'NiceBot',
9
+ tags: [
10
+ DBLista::Tags::Bot::FUN,
11
+ DBLista::Tags::Bot::TOOLS
12
+ ],
13
+ prefix: '!',
14
+ fullDescription: 'long description',
15
+ shortDescription: 'summary'
16
+ },
17
+ links: {
18
+ gitRepository: 'http://github.com/example/example',
19
+ website: 'http://example.com',
20
+ discordServer: 'discord server'
21
+ },
22
+ owners: [
23
+ 'id 1',
24
+ 'id 2'
25
+ ]
26
+ })
@@ -0,0 +1,5 @@
1
+ require 'dblista'
2
+
3
+ DBLista::List::Bot.all.each do |server|
4
+ puts server['name']
5
+ end
@@ -0,0 +1,6 @@
1
+ require 'dblista'
2
+
3
+ client = DBLista::User::Client.new('TOKEN')
4
+
5
+ puts client.notifications
6
+ client.clear_notifications
@@ -0,0 +1,5 @@
1
+ require 'dblista'
2
+
3
+ results = DBLista::List::Bot.search(DBLista::Tags::Bot::MUSIC)
4
+
5
+ puts results
@@ -0,0 +1,5 @@
1
+ require 'dblista'
2
+
3
+ user = DBLista::Information.user('ID')
4
+
5
+ puts DBLista::Helpers.get_avatar(user['id'], user['avatar'], 1024)
@@ -4,6 +4,7 @@ require 'net/http'
4
4
  require 'net/https'
5
5
  require 'open-uri'
6
6
  require 'json'
7
+ require 'zache'
7
8
 
8
9
  require_relative 'dblista/version'
9
10
  require_relative 'dblista/info'
@@ -24,6 +25,11 @@ module DBLista
24
25
  # Regexp for checking if string is a number
25
26
  IS_NUMBER = /^\d+$/.freeze
26
27
 
28
+ # Cache
29
+ Cache = Zache.new
30
+ # Cache entry lifetime
31
+ CACHE_LIFETIME = 15
32
+
27
33
  def self._https(uri)
28
34
  Net::HTTP.new(uri.host, uri.port).tap do |http|
29
35
  http.use_ssl = true
@@ -84,4 +90,8 @@ module DBLista
84
90
  def self._limit_integer(input)
85
91
  raise DBLista::Error, DBLista::Errors::LIMIT_INTEGER unless input.is_a?(Integer)
86
92
  end
93
+
94
+ def self._cache(name)
95
+ DBLista::Cache.get(name.to_sym, lifetime: DBLista::CACHE_LIFETIME) { yield }
96
+ end
87
97
  end
@@ -35,6 +35,34 @@ module DBLista
35
35
  USER = 0
36
36
  MODERATOR = 1
37
37
  BIG_MODERATOR = 2
38
- ADMINISTRATOR = 3
38
+ ADMINISTRATOR = 10
39
+ end
40
+ # Bot libraries
41
+ module Libraries
42
+ DISCORD_JS = :'discord.js'
43
+ ERIS = :eris
44
+ DSHARP_PLUS = :DSharpPlus
45
+ DISCORD_NET = :'Discord.Net'
46
+ DISCORDGO = :DiscordGo
47
+ DISGORD = :DisGord
48
+ JDA = :JDA
49
+ DISCORD4J = :Discord4J
50
+ JAVACORD = :Javacord
51
+ AEGIS_CPP = :'aegis.cpp'
52
+ NYXX = :nyxx
53
+ RESTCORD = :RestCord
54
+ DISCORD_PY = :'discord.py'
55
+ DISCO = :disco
56
+ DISCORDRB = :discordrb
57
+ DISCORDRS = :'discord-rs'
58
+ SERENITY = :serenity
59
+ INNA = :inna
60
+ end
61
+ # Card style
62
+ module CardStyle
63
+ GREEN = :green
64
+ ORANGE = :orange
65
+ PINK = :pink
66
+ BLUE = :blue
39
67
  end
40
68
  end
@@ -16,7 +16,9 @@ module DBLista
16
16
  # @return [Hash] raw data from DBLista
17
17
  def self.bot(id)
18
18
  DBLista._validate_id id
19
- DBLista._get("/bots/#{id}")
19
+ DBLista._cache(id.to_s.to_sym) do
20
+ DBLista._get("/bots/#{id}")
21
+ end
20
22
  end
21
23
 
22
24
  # Fetches DBLista server information
@@ -25,7 +27,9 @@ module DBLista
25
27
  # @return [Hash] raw data from DBLista
26
28
  def self.server(id)
27
29
  DBLista._validate_id id
28
- DBLista._get("/servers/#{id}")
30
+ DBLista._cache(id.to_s.to_sym) do
31
+ DBLista._get("/servers/#{id}")
32
+ end
29
33
  end
30
34
 
31
35
  # Fetches DBLista user information
@@ -34,7 +38,9 @@ module DBLista
34
38
  # @return [Hash] raw data from DBLista
35
39
  def self.user(id)
36
40
  DBLista._validate_id id
37
- DBLista._get("/users/#{id}")
41
+ DBLista._cache(id.to_s.to_sym) do
42
+ DBLista._get("/users/#{id}")
43
+ end
38
44
  end
39
45
  end
40
46
  end
@@ -20,7 +20,9 @@ module DBLista::List
20
20
  def self.top(page = 0, limit = 10)
21
21
  DBLista._page_integer page
22
22
  DBLista._limit_integer limit
23
- DBLista._get("/bots/list/top/#{page}?limit=#{limit}")
23
+ DBLista._cache("botstop#{page}-#{limit}") do
24
+ DBLista._get("/bots/list/top/#{page}?limit=#{limit}")
25
+ end
24
26
  end
25
27
 
26
28
  # Fetches premium bots
@@ -31,28 +33,36 @@ module DBLista::List
31
33
  def self.premium(page = 0, limit = 10)
32
34
  DBLista._page_integer page
33
35
  DBLista._limit_integer limit
34
- DBLista._get("/bots/list/premium/#{page}?limit=#{limit}")
36
+ DBLista._cache("botspremium#{page}-#{limit}") do
37
+ DBLista._get("/bots/list/premium/#{page}?limit=#{limit}")
38
+ end
35
39
  end
36
40
 
37
41
  # Fetches unverified bots
38
42
  #
39
43
  # @return [Hash] raw data from DBLista
40
44
  def self.unverified
41
- DBLista._get('/bots/list/unverified')
45
+ DBLista._cache(:botsunverified) do
46
+ DBLista._get('/bots/list/unverified')
47
+ end
42
48
  end
43
49
 
44
50
  # Fetches rejected bots
45
51
  #
46
52
  # @return [Hash] raw data from DBLista
47
53
  def self.rejected
48
- DBLista._get('/bots/list/rejected')
54
+ DBLista._cache(:botsrejected) do
55
+ DBLista._get('/bots/list/rejected')
56
+ end
49
57
  end
50
58
 
51
59
  # Fetches all bots
52
60
  #
53
61
  # @return [Array] array of raw bot data from DBLista
54
62
  def self.all
55
- DBLista::List::Bot.top(0, 100_000_000)
63
+ DBLista._cache(:botsall) do
64
+ DBLista::List::Bot.top(0, 100_000_000)
65
+ end
56
66
  end
57
67
 
58
68
  # Bot search
@@ -62,7 +72,9 @@ module DBLista::List
62
72
  def self.search(query)
63
73
  raise DBLista::Error, DBLista::Errors::QUERY_NOT_PROVIDED unless query
64
74
 
65
- DBLista._get("/bots/search/#{CGI.escape query.to_s}")
75
+ DBLista._cache("botsearch#{query}") do
76
+ DBLista._get("/bots/search/#{CGI.escape query.to_s}")
77
+ end
66
78
  end
67
79
  end
68
80
  end
@@ -13,7 +13,9 @@ module DBLista::List
13
13
  def self.top(page = 0, limit = 10)
14
14
  DBLista._page_integer page
15
15
  DBLista._limit_integer limit
16
- DBLista._get("/servers/list/top/#{page}?limit=#{limit}")
16
+ DBLista._cache("serverstop#{page}-#{limit}") do
17
+ DBLista._get("/servers/list/top/#{page}?limit=#{limit}")
18
+ end
17
19
  end
18
20
 
19
21
  # Fetches premium servers
@@ -24,14 +26,18 @@ module DBLista::List
24
26
  def self.premium(page = 0, limit = 10)
25
27
  DBLista._page_integer page
26
28
  DBLista._limit_integer limit
27
- DBLista._get("/servers/list/premium/#{page}?limit=#{limit}")
29
+ DBLista._cache("serverspremium#{page}-#{limit}") do
30
+ DBLista._get("/servers/list/premium/#{page}?limit=#{limit}")
31
+ end
28
32
  end
29
33
 
30
34
  # Fetches all servers
31
35
  #
32
36
  # @return [Array] array of raw server data from DBLista
33
37
  def self.all
34
- DBLista::List::Server.top(0, 100_000_000)
38
+ DBLista._cache(:serversall) do
39
+ DBLista::List::Server.top(0, 100_000_000)
40
+ end
35
41
  end
36
42
 
37
43
  # Server search
@@ -41,7 +47,9 @@ module DBLista::List
41
47
  def self.search(query)
42
48
  raise DBLista::Error, DBLista::Errors::QUERY_NOT_PROVIDED unless query
43
49
 
44
- DBLista._get("/servers/search/#{CGI.escape query.to_s}")
50
+ DBLista._cache("serversearch#{query}") do
51
+ DBLista._get("/servers/search/#{CGI.escape query.to_s}")
52
+ end
45
53
  end
46
54
  end
47
55
  end
@@ -42,12 +42,13 @@ module DBLista
42
42
  #
43
43
  # @param members [Integer] member count
44
44
  # @param servers [Integer] server count
45
- # @return [Hash] raw data from DBLista
45
+ # @return [Boolean] true if operation succeded
46
46
  def update_stats(members, servers)
47
47
  DBLista._post('/bots/stats', {
48
48
  'servers' => servers,
49
49
  'members' => members
50
50
  }, @token)
51
+ true
51
52
  end
52
53
  end
53
54
  end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'zache'
4
+
3
5
  require_relative './actions'
4
6
  require_relative './boosting'
5
7
  require_relative './rating'
@@ -35,6 +37,7 @@ module DBLista::User
35
37
  raise DBLista::Error, DBLista::Errors::TOKEN_NOT_PROVIDED unless token
36
38
 
37
39
  @token = token
40
+ @cache = Zache.new
38
41
 
39
42
  me
40
43
  end
@@ -43,14 +46,18 @@ module DBLista::User
43
46
  #
44
47
  # @return [Hash] raw data from DBLista
45
48
  def me
46
- DBLista._get('/users/me', @token)
49
+ @cache.get(:guilds, lifetime: DBLista::CACHE_LIFETIME) do
50
+ DBLista._get('/users/me', @token)
51
+ end
47
52
  end
48
53
 
49
54
  # Fetches current user guilds
50
55
  #
51
56
  # @return [Hash] raw data from DBLista
52
57
  def guilds
53
- DBLista._get('/users/me/guilds', @token)
58
+ @cache.get(:guilds, lifetime: DBLista::CACHE_LIFETIME) do
59
+ DBLista._get('/users/me/guilds', @token)
60
+ end
54
61
  end
55
62
  end
56
63
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module DBLista
4
4
  # Wrapper version
5
- VERSION = '0.3.2'
5
+ VERSION = '0.4.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.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - deepivin
@@ -10,6 +10,20 @@ bindir: exe
10
10
  cert_chain: []
11
11
  date: 2020-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: zache
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
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
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -68,7 +82,12 @@ files:
68
82
  - bin/console
69
83
  - bin/setup
70
84
  - dblista.gemspec
71
- - example/info.rb
85
+ - examples/auto_stats.rb
86
+ - examples/bot_add.rb
87
+ - examples/full_bot_name_list.rb
88
+ - examples/notifications.rb
89
+ - examples/tag_search.rb
90
+ - examples/user_avatar.rb
72
91
  - lib/dblista.rb
73
92
  - lib/dblista/constants.rb
74
93
  - lib/dblista/errors.rb
@@ -1,3 +0,0 @@
1
- require 'dblista'
2
-
3
- puts DBLista::Information.bot('594589970740543490')