qwtf_discord_bot 5.5.4 → 5.5.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
  SHA256:
3
- metadata.gz: 5f9b7c8e269139913d517709124256e56fef428f17382c6c58d6e7e5f76887fb
4
- data.tar.gz: 92d1b89d60184d7dfa68de5419db9c59dc338298ef4092819e4bc34a27f99021
3
+ metadata.gz: 1f51fa8d63ad6a2e6e0e08e3e83c851930694ba6208a70469d95f3322f3a5215
4
+ data.tar.gz: f0d9139fab06e85aae6fe4d563cff3a13acd7ae88e0ba680c2add202a7c541e7
5
5
  SHA512:
6
- metadata.gz: 90aead5b21fa970eac664c9be433eabfa584e3c2335b2fa0508308c11ac83fb3e765ac353b10ed52896078f3f560c7cb9ac2aaa6b054d9c9d43f53615213d97f
7
- data.tar.gz: '0589136e79e9f98db93c1b069d5551cef7f2588fb252e9ddb00c0b99fbe4e992442d7a192bc4129a7da584dcfd7d649f19d19b9a8df036058f610659be1bfcd7'
6
+ metadata.gz: 0ac22beba9007bc30f809e3ab82ad382e078ba8036c71f91474ccad8b301b0b850a0b04dfa0529bfc4755aaa84bf82769846c72706dca4dcd7ca1c301f271457
7
+ data.tar.gz: 341a554d68f4680b09d22dcdc08f16c711c6d86271811e66810d61f6660d628a1cac7a656ba23724e593d1ec638dd7512484cc5af2007ce6d1897b58cba30e64
data/VERSION CHANGED
@@ -1 +1 @@
1
- 5.5.4
1
+ 5.5.5
data/lib/pug.rb CHANGED
@@ -11,8 +11,7 @@ class Pug
11
11
  end
12
12
 
13
13
  def join(player_id)
14
- redis.setnx(pug_key, Time.now)
15
-
14
+ redis.setnx(pug_key, Time.now.to_i)
16
15
  redis.sadd(team_key(0), player_id)
17
16
  end
18
17
 
@@ -139,6 +138,14 @@ class Pug
139
138
  end
140
139
  end
141
140
 
141
+ def update_last_result_time
142
+ redis.set(last_result_time_key, Time.now.to_i)
143
+ end
144
+
145
+ def last_result_time
146
+ redis.get(last_result_time_key).to_i
147
+ end
148
+
142
149
  private
143
150
 
144
151
  def leave_teams(player_id)
@@ -155,6 +162,10 @@ class Pug
155
162
  [pug_key, 'teams', team_no].join(':')
156
163
  end
157
164
 
165
+ def last_result_time_key
166
+ [channel_key, 'last_result_time'].join(':')
167
+ end
168
+
158
169
  def pug_key
159
170
  [channel_key, 'pug'].join(':')
160
171
  end
@@ -8,6 +8,7 @@ class QwtfDiscordBotPug # :nodoc:
8
8
 
9
9
  MSG_SNIPPET_DELIMITER = ' · '
10
10
  TEAM_NAMES = { 1 => "Blue", 2 => "Red" }
11
+ ONE_MINUTE = 60
11
12
 
12
13
  def run
13
14
  bot = Discordrb::Commands::CommandBot.new(
@@ -334,6 +335,13 @@ class QwtfDiscordBotPug # :nodoc:
334
335
 
335
336
  bot.command :win do |event, *args|
336
337
  setup_pug(event) do |e, pug|
338
+ unless args.any?
339
+ return send_embedded_message(
340
+ description: "Specify winning team; e.g. `!win 1`",
341
+ channel: e.channel
342
+ )
343
+ end
344
+
337
345
  unless pug.active?
338
346
  return send_embedded_message(
339
347
  description: no_active_pug_message,
@@ -348,17 +356,19 @@ class QwtfDiscordBotPug # :nodoc:
348
356
  )
349
357
  end
350
358
 
351
- unless args.any?
359
+ unless ["1", "2"].any?(args.first)
352
360
  return send_embedded_message(
353
- description: "Specify winning team; e.g. `!win 1`",
361
+ description: "Invalid team number",
354
362
  channel: e.channel
355
363
  )
356
364
  end
357
365
 
358
- unless ["1", "2"].any?(args.first)
366
+ if pug.last_result_time && pug.last_result_time > one_minute_ago
367
+ time_ago = Time.now.to_i - pug.last_result_time
368
+
359
369
  return send_embedded_message(
360
- description: "Invalid team number",
361
- channel: e.channel
370
+ description: "Please wait #{ONE_MINUTE - time_ago} more seconds before reporting",
371
+ channel: event.channel
362
372
  )
363
373
  end
364
374
 
@@ -380,7 +390,8 @@ class QwtfDiscordBotPug # :nodoc:
380
390
  teams.merge({ name => { players: players, result: result } })
381
391
  end
382
392
 
383
- id = post_results(
393
+ id = report(
394
+ pug,
384
395
  {
385
396
  match: {
386
397
  map: pug.game_map,
@@ -425,6 +436,15 @@ class QwtfDiscordBotPug # :nodoc:
425
436
  )
426
437
  end
427
438
 
439
+ if pug.last_result_time && pug.last_result_time > one_minute_ago
440
+ time_ago = Time.now.to_i - pug.last_result_time
441
+
442
+ return send_embedded_message(
443
+ description: "Please wait #{ONE_MINUTE - time_ago} more seconds before reporting",
444
+ channel: event.channel
445
+ )
446
+ end
447
+
428
448
  team_results = pug.actual_teams.inject({}) do |teams, (name, player_ids)|
429
449
  players = player_ids.inject({}) do |memo, id|
430
450
  memo.merge({ id => e.display_name_for(id) })
@@ -433,7 +453,8 @@ class QwtfDiscordBotPug # :nodoc:
433
453
  teams.merge({ name => { players: players, result: 0 } })
434
454
  end
435
455
 
436
- id = post_results(
456
+ id = report(
457
+ pug,
437
458
  {
438
459
  match: {
439
460
  map: pug.game_map,
@@ -767,6 +788,11 @@ class QwtfDiscordBotPug # :nodoc:
767
788
  end
768
789
  end
769
790
 
791
+ def report(pug, json)
792
+ pug.update_last_result_time
793
+ post_results(json)
794
+ end
795
+
770
796
  def post_results(json)
771
797
  uri = URI("#{ENV['RATINGS_API_URL']}matches/")
772
798
  req = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json')
@@ -789,4 +815,8 @@ class QwtfDiscordBotPug # :nodoc:
789
815
 
790
816
  JSON.parse(res.body).map(&:to_h)
791
817
  end
818
+
819
+ def one_minute_ago
820
+ Time.now.to_i - ONE_MINUTE
821
+ end
792
822
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qwtf_discord_bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.5.4
4
+ version: 5.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sheldon Johnson