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 +4 -4
- data/VERSION +1 -1
- data/lib/pug.rb +13 -2
- data/lib/qwtf_discord_bot/qwtf_discord_bot_pug.rb +37 -7
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f51fa8d63ad6a2e6e0e08e3e83c851930694ba6208a70469d95f3322f3a5215
|
4
|
+
data.tar.gz: f0d9139fab06e85aae6fe4d563cff3a13acd7ae88e0ba680c2add202a7c541e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ac22beba9007bc30f809e3ab82ad382e078ba8036c71f91474ccad8b301b0b850a0b04dfa0529bfc4755aaa84bf82769846c72706dca4dcd7ca1c301f271457
|
7
|
+
data.tar.gz: 341a554d68f4680b09d22dcdc08f16c711c6d86271811e66810d61f6660d628a1cac7a656ba23724e593d1ec638dd7512484cc5af2007ce6d1897b58cba30e64
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
5.5.
|
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
|
359
|
+
unless ["1", "2"].any?(args.first)
|
352
360
|
return send_embedded_message(
|
353
|
-
description: "
|
361
|
+
description: "Invalid team number",
|
354
362
|
channel: e.channel
|
355
363
|
)
|
356
364
|
end
|
357
365
|
|
358
|
-
|
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: "
|
361
|
-
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 =
|
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 =
|
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
|