grinch 1.0.0 → 1.0.1

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: 42bdf33a559d3d5eb8554340981ca88fc329085886c870db0af86eb651d21ccb
4
- data.tar.gz: 7b793e554505585038fb85cc83a3d0a0b42381898bf0935af4d44ba2c4369ff0
3
+ metadata.gz: 599ce33b0690279ec66619db60107d39af1085244c24488e99e8b7463a9bf997
4
+ data.tar.gz: '097b6c4e200d0bc3ec0c953d39c55c9ff99a948e9ff57c34a95c04be776ddae5'
5
5
  SHA512:
6
- metadata.gz: d82d81004649adea9f10e9996f24e4fca7411718d2877125e5ff66f49533a1f9b3867926072913198e336cab28829b8238712cf8b9d6df874aae6f0a3610c10b
7
- data.tar.gz: ee26329f1ae9592b2f68beb3c463f86fef9fd76af4d3982ed68008dc5efff364e4f701c4960d6676325fcf35ee3b1edd44fb4a32ec37320c2966be7d3932d672
6
+ metadata.gz: 7f58e236d6481c75f145f0792c0629822d173b6780b7ed050c24d997b15816d9360ffe989fc4b10ceb49fff95a255aeb81b4ad128017c046def8e06889f92f40
7
+ data.tar.gz: 1c1f1b6d39f4d25f9a9ed0a88725d325dd6690e87f446c41a68833d168243144852d1bbd7ae2995089e671157781de3b55d19b528f5fc05a9de2cab6d50363fe
@@ -119,7 +119,7 @@ module Cinch
119
119
  # @return [String] The filtered string
120
120
  # @since 2.2.0
121
121
  def self.unformat(string)
122
- string.gsub(/[\x02\x0f\x16\x1f\x12]|\x03(\d{1,2}(,\d{1,2})?)?/, '')
122
+ string.gsub(/[\x02\x0f\x16\x1d\x1f\x12]|\x03(\d{1,2}(,\d{1,2})?)?/, '')
123
123
  end
124
124
  end
125
125
  end
@@ -1,4 +1,5 @@
1
- # -*- coding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  require "time"
3
4
  require "cinch/formatting"
4
5
 
@@ -21,7 +22,7 @@ module Cinch
21
22
 
22
23
  # @return [Array<String>]
23
24
  attr_reader :params
24
-
25
+
25
26
  # @return [Hash]
26
27
  attr_reader :tags
27
28
 
@@ -87,7 +88,7 @@ module Cinch
87
88
  def initialize(msg, bot)
88
89
  @raw = msg
89
90
  @bot = bot
90
- @matches = {:ctcp => {}, :action => {}, :other => {}}
91
+ @matches = { ctcp: {}, action: {}, other: {} }
91
92
  @events = []
92
93
  @time = Time.now
93
94
  @statusmsg_mode = nil
@@ -97,13 +98,11 @@ module Cinch
97
98
  # @api private
98
99
  # @return [void]
99
100
  def parse
100
- match = @raw.match(/(?:^@([^:]+))?(?::?(\S+) )?(\S+)(.*)/)
101
+ match = @raw.match(/\A(?:@([^ ]+) )?(?::(\S+) )?(\S+)(.*)/)
101
102
  tags, @prefix, @command, raw_params = match.captures
102
103
 
103
104
  if @bot.irc.network.ngametv?
104
- if @prefix != "ngame"
105
- @prefix = "%s!%s@%s" % [@prefix, @prefix, @prefix]
106
- end
105
+ @prefix = "%s!%s@%s" % [@prefix, @prefix, @prefix] if @prefix != "ngame"
107
106
  end
108
107
 
109
108
  @params = parse_params(raw_params)
@@ -168,9 +167,7 @@ module Cinch
168
167
  type = :other
169
168
  end
170
169
 
171
- if strip_colors
172
- text = Cinch::Formatting.unformat(text)
173
- end
170
+ text = Cinch::Formatting.unformat(text) if strip_colors
174
171
 
175
172
  @matches[type][regexp] ||= text.match(regexp)
176
173
  end
@@ -192,9 +189,7 @@ module Cinch
192
189
  # @return [void]
193
190
  def reply(text, prefix = false)
194
191
  text = text.to_s
195
- if @channel && prefix
196
- text = text.split("\n").map {|l| "#{user.nick}: #{l}"}.join("\n")
197
- end
192
+ text = text.split("\n").map { |l| "#{user.nick}: #{l}" }.join("\n") if @channel && prefix
198
193
 
199
194
  reply_target.send(text)
200
195
  end
@@ -205,9 +200,7 @@ module Cinch
205
200
  # @return (see #reply)
206
201
  def safe_reply(text, prefix = false)
207
202
  text = text.to_s
208
- if channel && prefix
209
- text = "#{@user.nick}: #{text}"
210
- end
203
+ text = "#{@user.nick}: #{text}" if channel && prefix
211
204
  reply_target.safe_send(text)
212
205
  end
213
206
 
@@ -236,6 +229,7 @@ module Cinch
236
229
  # @return [void]
237
230
  def ctcp_reply(answer)
238
231
  return unless ctcp?
232
+
239
233
  @user.notice "\001#{@ctcp_command} #{answer}\001"
240
234
  end
241
235
 
@@ -248,19 +242,20 @@ module Cinch
248
242
  end
249
243
 
250
244
  private
245
+
251
246
  def reply_target
252
- if @channel.nil? || @statusmsg_mode.nil?
253
- return @target
254
- end
247
+ return @target if @channel.nil? || @statusmsg_mode.nil?
248
+
255
249
  prefix = @bot.irc.isupport["PREFIX"][@statusmsg_mode]
256
- return Target.new(prefix + @channel.name, @bot)
250
+ Target.new(prefix + @channel.name, @bot)
257
251
  end
252
+
258
253
  def regular_command?
259
254
  !numeric_reply? # a command can only be numeric or "regular"…
260
255
  end
261
256
 
262
257
  def parse_params(raw_params)
263
- params = []
258
+ params = []
264
259
  if match = raw_params.match(/(?:^:| :)(.*)$/)
265
260
  params = match.pre_match.split(" ")
266
261
  params << match[1]
@@ -268,44 +263,46 @@ module Cinch
268
263
  params = raw_params.split(" ")
269
264
  end
270
265
 
271
- return params
266
+ params
272
267
  end
273
-
268
+
274
269
  def parse_tags(raw_tags)
275
270
  return {} if raw_tags.nil?
276
-
271
+
277
272
  def to_symbol(string)
278
- return string.gsub(/-/, "_").downcase.to_sym
273
+ string.tr("-", "_").downcase.to_sym
279
274
  end
280
-
275
+
281
276
  tags = {}
282
277
  raw_tags.split(";").each do |tag|
283
278
  tag_name, tag_value = tag.split("=")
284
- if tag_value =~ /,/
285
- tag_value = tag_value.split(',')
279
+ if /,/.match?(tag_value)
280
+ tag_value = tag_value.split(",")
286
281
  elsif tag_value.nil?
287
282
  tag_value = tag_name
288
283
  end
289
- if tag_name =~ /\//
290
- vendor, tag_name = tag_name.split('/')
284
+ if %r{/}.match?(tag_name)
285
+ vendor, tag_name = tag_name.split("/")
291
286
  tags[to_symbol(vendor)] = {
292
- to_symbol(tag_name) => tag_value
287
+ to_symbol(tag_name) => tag_value,
293
288
  }
294
289
  else
295
290
  tags[to_symbol(tag_name)] = tag_value
296
291
  end
297
292
  end
298
- return tags
293
+ tags
299
294
  end
300
295
 
301
296
  def parse_user
302
297
  return unless @prefix
298
+
303
299
  nick = @prefix[/^(\S+)!/, 1]
304
300
  user = @prefix[/^\S+!(\S+)@/, 1]
305
301
  host = @prefix[/@(\S+)$/, 1]
306
302
 
307
303
  return nil if nick.nil?
308
- return @bot.user_list.find_ensured(user, nick, host)
304
+
305
+ @bot.user_list.find_ensured(user, nick, host)
309
306
  end
310
307
 
311
308
  def parse_channel
@@ -327,9 +324,7 @@ module Cinch
327
324
  if ch.nil? && numeric_reply? && @params.size > 1
328
325
  ch, status = privmsg_channel_name(@params[1])
329
326
  end
330
- if ch
331
- return @bot.channel_list.find_ensured(ch), status
332
- end
327
+ return @bot.channel_list.find_ensured(ch), status if ch
333
328
  end
334
329
  end
335
330
 
@@ -346,8 +341,9 @@ module Cinch
346
341
 
347
342
  def parse_server
348
343
  return unless @prefix
349
- return if @prefix.match(/[@!]/)
350
- return @prefix[/^(\S+)/, 1]
344
+ return if @prefix =~ /[@!]/
345
+
346
+ @prefix[/^(\S+)/, 1]
351
347
  end
352
348
 
353
349
  def parse_error
@@ -366,27 +362,30 @@ module Cinch
366
362
  def parse_ctcp_message
367
363
  # has to be called after parse_params
368
364
  return unless ctcp?
365
+
369
366
  @params.last =~ /\001(.+)\001/
370
- $1
367
+ Regexp.last_match(1)
371
368
  end
372
369
 
373
370
  def parse_ctcp_command
374
371
  # has to be called after parse_ctcp_message
375
372
  return unless ctcp?
373
+
376
374
  @ctcp_message.split(" ").first
377
375
  end
378
376
 
379
377
  def parse_ctcp_args
380
378
  # has to be called after parse_ctcp_message
381
379
  return unless ctcp?
380
+
382
381
  @ctcp_message.split(" ")[1..-1]
383
382
  end
384
383
 
385
384
  def parse_action_message
386
385
  # has to be called after parse_ctcp_message
387
386
  return nil unless action?
387
+
388
388
  @ctcp_message.split(" ", 2).last
389
389
  end
390
-
391
390
  end
392
391
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grinch
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Woodruff
@@ -114,7 +114,7 @@ files:
114
114
  - lib/cinch/utilities/encoding.rb
115
115
  - lib/cinch/utilities/kernel.rb
116
116
  - lib/cinch/version.rb
117
- homepage:
117
+ homepage: https://github.com/woodruffw/grinch
118
118
  licenses:
119
119
  - MIT
120
120
  metadata: {}