mij-discord 1.0.3 → 1.0.5

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
  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