mij-discord 1.0.3 → 1.0.5

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: 449da084c2286a702480a67f637280e78d730503
4
- data.tar.gz: c63653fb126dd72671f1d80194896b2f8b5714dc
3
+ metadata.gz: b5fcf947865936bee821151da5e83bef481fd163
4
+ data.tar.gz: 97545b505d78aae0d38a65efe7d6608d41f2cb30
5
5
  SHA512:
6
- metadata.gz: 0ebd2ca1f55781f917f14c95f3acd3cb16939d6add73cfe6dbc0939f64c7b7c3db3f8a8f5a68bf27195f2858b244e5216df5487c14164d51956e5a0da1b6ba29
7
- data.tar.gz: 9b1322411c9080ff065a342e2bf3d274ef73da71fb3225ccb3a975fcf5020dc28ebd7b40d9907776f177f4dfb203d80cacd2768afba2b5a1f8d7715d0bae13cd
6
+ metadata.gz: 684a85c5f4d1aea724672abe6d343eea34cc67dfca1e8cbaaa65ee6c4debb2fd9a83febfe5c98cc6586480070aed222ae9d08ce1b9ba1e287a46fd4ca07e3c2f
7
+ data.tar.gz: cda5fe4edf5ee6021610c4cf637b1ca598ebe8710dd3b88c3cce9b1ea2de7783e386642b6d81ba597b4bbe741f03500d2de117f2cd35bd94d6ca83827f353d75
@@ -12,40 +12,40 @@ require 'zlib'
12
12
  require 'websocket-client-simple'
13
13
  require 'rest-client'
14
14
 
15
- require 'mij-discord/version'
16
- require 'mij-discord/logger'
17
- require 'mij-discord/cache'
18
- require 'mij-discord/events'
19
-
20
- require 'mij-discord/core/gateway'
21
- require 'mij-discord/core/errors'
22
- require 'mij-discord/core/api'
23
- require 'mij-discord/core/api/channel'
24
- require 'mij-discord/core/api/invite'
25
- require 'mij-discord/core/api/server'
26
- require 'mij-discord/core/api/user'
27
-
28
- require 'mij-discord/data'
29
- require 'mij-discord/data/invite'
30
- require 'mij-discord/data/voice'
31
- require 'mij-discord/data/permissions'
32
- require 'mij-discord/data/application'
33
- require 'mij-discord/data/user'
34
- require 'mij-discord/data/member'
35
- require 'mij-discord/data/role'
36
- require 'mij-discord/data/channel'
37
- require 'mij-discord/data/server'
38
- require 'mij-discord/data/embed'
39
- require 'mij-discord/data/emoji'
40
- require 'mij-discord/data/message'
41
-
42
- require 'mij-discord/events/basic'
43
- require 'mij-discord/events/server'
44
- require 'mij-discord/events/member'
45
- require 'mij-discord/events/channel'
46
- require 'mij-discord/events/message'
47
-
48
- require 'mij-discord/bot'
15
+ require_relative 'mij-discord/version'
16
+ require_relative 'mij-discord/logger'
17
+ require_relative 'mij-discord/cache'
18
+ require_relative 'mij-discord/events'
19
+
20
+ require_relative 'mij-discord/core/gateway'
21
+ require_relative 'mij-discord/core/errors'
22
+ require_relative 'mij-discord/core/api'
23
+ require_relative 'mij-discord/core/api/channel'
24
+ require_relative 'mij-discord/core/api/invite'
25
+ require_relative 'mij-discord/core/api/server'
26
+ require_relative 'mij-discord/core/api/user'
27
+
28
+ require_relative 'mij-discord/data'
29
+ require_relative 'mij-discord/data/invite'
30
+ require_relative 'mij-discord/data/voice'
31
+ require_relative 'mij-discord/data/permissions'
32
+ require_relative 'mij-discord/data/application'
33
+ require_relative 'mij-discord/data/user'
34
+ require_relative 'mij-discord/data/member'
35
+ require_relative 'mij-discord/data/role'
36
+ require_relative 'mij-discord/data/channel'
37
+ require_relative 'mij-discord/data/server'
38
+ require_relative 'mij-discord/data/embed'
39
+ require_relative 'mij-discord/data/emoji'
40
+ require_relative 'mij-discord/data/message'
41
+
42
+ require_relative 'mij-discord/events/basic'
43
+ require_relative 'mij-discord/events/server'
44
+ require_relative 'mij-discord/events/member'
45
+ require_relative 'mij-discord/events/channel'
46
+ require_relative 'mij-discord/events/message'
47
+
48
+ require_relative 'mij-discord/bot'
49
49
 
50
50
  class Integer
51
51
  alias_method :to_id, :itself
@@ -195,13 +195,13 @@ module MijDiscord
195
195
 
196
196
  def invite(invite)
197
197
  code = parse_invite_code(invite)
198
- response = MijDiscord::Core::API::Invite.resolve(token, code)
198
+ response = MijDiscord::Core::API::Invite.resolve(@token, code)
199
199
  MijDiscord::Data::Invite.new(JSON.parse(response), self)
200
200
  end
201
201
 
202
202
  def accept_invite(invite)
203
203
  code = parse_invite_code(invite)
204
- API::Invite.accept(token, code)
204
+ MijDiscord::Core::API::Invite.accept(@token, code)
205
205
  nil
206
206
  end
207
207
 
@@ -226,9 +226,9 @@ module MijDiscord
226
226
 
227
227
  def parse_invite_code(invite)
228
228
  case invite
229
- when %r[(\w+)] then $1
230
- when %r[(?:https?://)?discord\.gg/(\w+)]i then $1
231
- when %r[https?://discordapp\.com/invite/(\w+)]i then $1
229
+ when %r[^(?:https?://)?discord\.gg/(\w+)$]i then $1
230
+ when %r[^https?://discordapp\.com/invite/(\w+)$]i then $1
231
+ when %r[^([a-zA-Z0-9]+)$] then $1
232
232
  when MijDiscord::Data::Invite then invite.code
233
233
  else raise ArgumentError, 'Invalid invite format'
234
234
  end
@@ -238,9 +238,9 @@ module MijDiscord
238
238
  gateway_check
239
239
 
240
240
  case mention
241
- when /<@!?(\d+)>/
241
+ when /^<@!?(\d+)>$/
242
242
  server_id ? member(server_id, $1) : user($1)
243
- when /<@&(\d+)>/
243
+ when /^<@&(\d+)>$/
244
244
  role = role(server_id, $1)
245
245
  return role if role
246
246
 
@@ -248,7 +248,7 @@ module MijDiscord
248
248
  role = sv.role($1)
249
249
  return role if role
250
250
  end
251
- when /<:\w+:(\d+)>/
251
+ when /^<:\w+:(\d+)>$/
252
252
  emoji = emoji(server_id, $1)
253
253
  return emoji if emoji
254
254
 
@@ -446,7 +446,7 @@ module MijDiscord
446
446
 
447
447
  when :GUILD_ROLE_DELETE
448
448
  server = @cache.get_server(data['guild_id'])
449
- role = server.cache.remove_role(data['role']['id'])
449
+ role = server.cache.remove_role(data['role_id'])
450
450
  trigger_event(:delete_role, self, server, role)
451
451
 
452
452
  when :GUILD_EMOJIS_UPDATE
@@ -8,11 +8,24 @@ module MijDiscord::Core::API
8
8
  class << self
9
9
  attr_accessor :bot_name
10
10
 
11
- def user_agent
12
- bot_name = @bot_name || 'generic'
13
- ua_base = "DiscordBot (https://github.com/Mijyuoon/mij-discord, v#{MijDiscord::VERSION})"
11
+ def user_agent(kind)
12
+ case kind
13
+ when :bot
14
+ bot_name = @bot_name || 'generic'
15
+ ua_base = "DiscordBot (https://github.com/Mijyuoon/mij-discord, v#{MijDiscord::VERSION})"
16
+ "#{ua_base} mij-discord/#{MijDiscord::VERSION} #{bot_name}"
17
+
18
+ when :user
19
+ 'Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0'
20
+ end
21
+ end
14
22
 
15
- "#{ua_base} mij-discord/#{MijDiscord::VERSION} #{bot_name}"
23
+ def token_type(token)
24
+ case token
25
+ when /^Bot (.+)$/ then :bot
26
+ when /^mfa\.(.+)$/ then :user
27
+ else :user
28
+ end
16
29
  end
17
30
 
18
31
  # Make an icon URL from server and icon IDs
@@ -164,7 +177,8 @@ module MijDiscord::Core::API
164
177
  ratelimit_delta, response = nil, nil
165
178
 
166
179
  if (params = attributes.last).is_a?(Hash)
167
- params[:user_agent] = user_agent
180
+ ua_type = token_type(params[:Authorization])
181
+ params[:user_agent] = user_agent(ua_type)
168
182
  ratelimit_delta = params.delete(:header_bypass_delay)
169
183
  end
170
184
 
@@ -9,7 +9,7 @@ module MijDiscord::Core::API::Invite
9
9
  :invite_code,
10
10
  nil,
11
11
  :get,
12
- "#{MijDiscord::Core::API::APIBASE_URL}/invite/#{invite_code}",
12
+ "#{MijDiscord::Core::API::APIBASE_URL}/invites/#{invite_code}",
13
13
  Authorization: token
14
14
  )
15
15
  end
@@ -34,7 +34,7 @@ module MijDiscord::Core::API::Invite
34
34
  :invite_code,
35
35
  nil,
36
36
  :post,
37
- "#{MijDiscord::Core::API::APIBASE_URL}/invite/#{invite_code}",
37
+ "#{MijDiscord::Core::API::APIBASE_URL}/invites/#{invite_code}",
38
38
  nil,
39
39
  Authorization: token
40
40
  )
@@ -220,9 +220,13 @@ module MijDiscord::Data
220
220
 
221
221
  attr_reader :recipients
222
222
 
223
+ attr_reader :last_message_id
224
+
223
225
  def initialize(data, bot, server)
224
226
  super(data, bot, server)
225
227
 
228
+ @last_message_id = data['last_message_id']
229
+
226
230
  if private?
227
231
  @recipients = []
228
232
  if data['recipients']
@@ -272,6 +276,10 @@ module MijDiscord::Data
272
276
  @owner_id ? @bot.cache.get_user(@owner_id) : nil
273
277
  end
274
278
 
279
+ def last_message
280
+ @last_message_id ? @cache.get_message(@last_message_id) : nil
281
+ end
282
+
275
283
  def set_topic(topic, reason = nil)
276
284
  return unless text?
277
285
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MijDiscord
4
- VERSION = '1.0.3'
4
+ VERSION = '1.0.5'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mij-discord
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mijyuoon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-02 00:00:00.000000000 Z
11
+ date: 2017-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client