tf2_line_parser 0.2.2 → 0.3.0
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 +4 -4
- data/Gemfile.lock +60 -51
- data/lib/tf2_line_parser/events/airshot.rb +24 -5
- data/lib/tf2_line_parser/events/assist.rb +4 -0
- data/lib/tf2_line_parser/events/capture_block.rb +3 -3
- data/lib/tf2_line_parser/events/charge_deployed.rb +3 -3
- data/lib/tf2_line_parser/events/chat.rb +14 -3
- data/lib/tf2_line_parser/events/connect.rb +3 -3
- data/lib/tf2_line_parser/events/damage.rb +23 -5
- data/lib/tf2_line_parser/events/disconnect.rb +3 -3
- data/lib/tf2_line_parser/events/domination.rb +4 -0
- data/lib/tf2_line_parser/events/event.rb +112 -5
- data/lib/tf2_line_parser/events/headshot_damage.rb +4 -5
- data/lib/tf2_line_parser/events/heal.rb +4 -5
- data/lib/tf2_line_parser/events/kill.rb +4 -5
- data/lib/tf2_line_parser/events/medic_death.rb +4 -5
- data/lib/tf2_line_parser/events/pickup_item.rb +4 -0
- data/lib/tf2_line_parser/events/player_action_event.rb +3 -3
- data/lib/tf2_line_parser/events/pvp_event.rb +4 -5
- data/lib/tf2_line_parser/events/rcon_command.rb +24 -0
- data/lib/tf2_line_parser/events/revenge.rb +4 -0
- data/lib/tf2_line_parser/events/role_change.rb +4 -0
- data/lib/tf2_line_parser/events/spawn.rb +4 -0
- data/lib/tf2_line_parser/events/suicide.rb +4 -0
- data/lib/tf2_line_parser/player.rb +3 -2
- data/lib/tf2_line_parser/version.rb +1 -1
- data/spec/fixtures/logs/broder_vs_epsilon.log +1 -0
- data/spec/lib/tf2_line_parser/parser_spec.rb +102 -47
- data/spec/lib/tf2_line_parser/player_spec.rb +2 -2
- data/spec/spec_helper.rb +2 -3
- data/tf2_line_parser.gemspec +4 -3
- metadata +28 -13
@@ -2,10 +2,11 @@
|
|
2
2
|
|
3
3
|
module TF2LineParser
|
4
4
|
class Player
|
5
|
-
attr_accessor :name, :steam_id, :team
|
5
|
+
attr_accessor :name, :uid, :steam_id, :team
|
6
6
|
|
7
|
-
def initialize(name, steam_id, team)
|
7
|
+
def initialize(name, uid, steam_id, team)
|
8
8
|
@name = name
|
9
|
+
@uid = uid
|
9
10
|
@steam_id = steam_id
|
10
11
|
@team = team
|
11
12
|
end
|
@@ -4541,4 +4541,5 @@ L 07/01/2013 - 15:22:46: "INF Scorpion's new acc<120><STEAM_0:0:42468138><Blue>"
|
|
4541
4541
|
L 07/01/2013 - 15:22:46: "snaaw<123><STEAM_0:1:59955670><Red>" spawned as "Medic"
|
4542
4542
|
L 07/01/2013 - 15:22:46: "candyyou # Infinity Gaming<124><STEAM_0:0:50979748><Red>" spawned as "Soldier"
|
4543
4543
|
L 10/04/2012 - 21:25:53: "cc//TviQ<8><STEAM_0:0:8520477><Blue>" disconnected (reason "Disconnect by user.")
|
4544
|
+
L 07/03/2017 - 21:26:18: rcon from "0.0.0.0:41432": command "status"
|
4544
4545
|
L 02/07/2013 - 21:56:13: Log file closed
|
@@ -34,42 +34,47 @@ module TF2LineParser
|
|
34
34
|
it 'recognizes damage' do
|
35
35
|
line = log_lines[1001]
|
36
36
|
player_name = 'Epsilon numlocked'
|
37
|
+
player_uid = '4'
|
37
38
|
player_steam_id = 'STEAM_0:1:16347045'
|
38
39
|
player_team = 'Red'
|
39
40
|
value = '69'
|
40
41
|
weapon = nil
|
41
|
-
expect(Events::Damage).to receive(:new).with(anything, player_name, player_steam_id, player_team, nil, nil,
|
42
|
-
nil, value, weapon)
|
42
|
+
expect(Events::Damage).to receive(:new).with(anything, player_name, player_uid, player_steam_id, player_team, nil, nil,
|
43
|
+
nil, nil, value, weapon)
|
43
44
|
parse(line)
|
44
45
|
end
|
45
46
|
|
46
47
|
it 'recognizes new steam id log lines with detailed damage' do
|
47
48
|
line = new_log_lines[0]
|
48
49
|
player_name = 'iM yUKi intel @i52'
|
50
|
+
player_uid = '6'
|
49
51
|
player_steam_id = '[U:1:3825470]'
|
50
52
|
player_team = 'Blue'
|
51
|
-
target_team = 'Red'
|
52
53
|
target_name = 'mix^ enigma @ i52'
|
54
|
+
target_uid = '8'
|
53
55
|
target_steam_id = '[U:1:33652944]'
|
56
|
+
target_team = 'Red'
|
54
57
|
value = '78'
|
55
58
|
weapon = 'tf_projectile_rocket'
|
56
|
-
expect(Events::Damage).to receive(:new).with(anything, player_name, player_steam_id, player_team, target_name,
|
57
|
-
target_steam_id, target_team, value, weapon)
|
59
|
+
expect(Events::Damage).to receive(:new).with(anything, player_name, player_uid, player_steam_id, player_team, target_name,
|
60
|
+
target_uid, target_steam_id, target_team, value, weapon)
|
58
61
|
parse(line)
|
59
62
|
end
|
60
63
|
|
61
64
|
it 'recognizes detailed damage' do
|
62
65
|
line = detailed_log_lines[61]
|
63
66
|
player_name = 'LittleLies'
|
67
|
+
player_uid = '16'
|
64
68
|
player_steam_id = 'STEAM_0:0:55031498'
|
65
69
|
player_team = 'Blue'
|
66
70
|
target_name = 'Aquila'
|
71
|
+
target_uid = '15'
|
67
72
|
target_steam_id = 'STEAM_0:0:43087158'
|
68
73
|
target_team = 'Red'
|
69
74
|
value = '102'
|
70
75
|
weapon = 'tf_projectile_pipe'
|
71
|
-
expect(Events::Damage).to receive(:new).with(anything, player_name, player_steam_id, player_team, target_name,
|
72
|
-
target_steam_id, target_team, value, weapon)
|
76
|
+
expect(Events::Damage).to receive(:new).with(anything, player_name, player_uid, player_steam_id, player_team, target_name,
|
77
|
+
target_uid, target_steam_id, target_team, value, weapon)
|
73
78
|
parse(line)
|
74
79
|
end
|
75
80
|
|
@@ -77,31 +82,33 @@ module TF2LineParser
|
|
77
82
|
line = airshot_log_lines[0]
|
78
83
|
weapon = 'tf_projectile_rocket'
|
79
84
|
airshot = '1'
|
80
|
-
expect(Events::Airshot).to receive(:new).with(anything, anything, anything, anything, anything, anything,
|
81
|
-
anything, anything, weapon, airshot)
|
85
|
+
expect(Events::Airshot).to receive(:new).with(anything, anything, anything, anything, anything, anything, anything,
|
86
|
+
anything, anything, anything, weapon, airshot)
|
82
87
|
parse(line).inspect
|
83
88
|
end
|
84
89
|
|
85
90
|
it 'recognizes sniper headshot damage' do
|
86
91
|
line = detailed_log_lines[3645]
|
87
92
|
weapon = 'sniperrifle'
|
88
|
-
expect(Events::HeadshotDamage).to receive(:new).with(anything, anything, anything, anything, anything,
|
89
|
-
anything, anything, anything, weapon)
|
93
|
+
expect(Events::HeadshotDamage).to receive(:new).with(anything, anything, anything, anything, anything, anything,
|
94
|
+
anything, anything, anything, anything, weapon)
|
90
95
|
parse(line).inspect
|
91
96
|
end
|
92
97
|
|
93
98
|
it 'ignores realdamage' do
|
94
99
|
line = detailed_log_lines[65]
|
95
100
|
player_name = 'LittleLies'
|
101
|
+
player_uid = '16'
|
96
102
|
player_steam_id = 'STEAM_0:0:55031498'
|
97
103
|
player_team = 'Blue'
|
98
104
|
target_name = 'Aquila'
|
105
|
+
target_uid = '15'
|
99
106
|
target_steam_id = 'STEAM_0:0:43087158'
|
100
107
|
target_team = 'Red'
|
101
108
|
value = '98'
|
102
109
|
weapon = 'tf_projectile_pipe'
|
103
|
-
expect(Events::Damage).to receive(:new).with(anything, player_name, player_steam_id, player_team, target_name,
|
104
|
-
target_steam_id, target_team, value, weapon)
|
110
|
+
expect(Events::Damage).to receive(:new).with(anything, player_name, player_uid, player_steam_id, player_team, target_name,
|
111
|
+
target_uid, target_steam_id, target_team, value, weapon)
|
105
112
|
parse(line)
|
106
113
|
end
|
107
114
|
|
@@ -143,29 +150,33 @@ module TF2LineParser
|
|
143
150
|
it 'recognizes a heal' do
|
144
151
|
line = log_lines[1433]
|
145
152
|
player_name = 'Epsilon KnOxXx'
|
153
|
+
player_uid = '5'
|
146
154
|
player_steam_id = 'STEAM_0:1:12124893'
|
147
155
|
player_team = 'Red'
|
148
156
|
target_name = 'Epsilon numlocked'
|
157
|
+
target_uid = '4'
|
149
158
|
target_steam_id = 'STEAM_0:1:16347045'
|
150
159
|
target_team = 'Red'
|
151
160
|
value = '1'
|
152
|
-
expect(Events::Heal).to receive(:new).with(anything, player_name, player_steam_id, player_team, target_name,
|
153
|
-
target_steam_id, target_team, value)
|
161
|
+
expect(Events::Heal).to receive(:new).with(anything, player_name, player_uid, player_steam_id, player_team, target_name,
|
162
|
+
target_uid, target_steam_id, target_team, value)
|
154
163
|
parse(line)
|
155
164
|
end
|
156
165
|
|
157
166
|
it 'recognizes a kill' do
|
158
167
|
line = log_lines[1761]
|
159
168
|
player_name = 'Epsilon basH.'
|
169
|
+
player_uid = '7'
|
160
170
|
player_steam_id = 'STEAM_0:1:15829615'
|
161
171
|
player_team = 'Red'
|
162
172
|
target_name = 'broder jukebox'
|
173
|
+
target_uid = '11'
|
163
174
|
target_steam_id = 'STEAM_0:1:13978585'
|
164
175
|
target_team = 'Blue'
|
165
176
|
weapon = 'pistol_scout'
|
166
177
|
customkill = nil
|
167
|
-
expect(Events::Kill).to receive(:new).with(anything, player_name, player_steam_id, player_team, target_name,
|
168
|
-
target_steam_id, target_team, weapon, customkill)
|
178
|
+
expect(Events::Kill).to receive(:new).with(anything, player_name, player_uid, player_steam_id, player_team, target_name,
|
179
|
+
target_uid, target_steam_id, target_team, weapon, customkill)
|
169
180
|
parse(line)
|
170
181
|
end
|
171
182
|
|
@@ -173,73 +184,81 @@ module TF2LineParser
|
|
173
184
|
line = log_lines[1951]
|
174
185
|
weapon = 'sniperrifle'
|
175
186
|
customkill = 'headshot'
|
176
|
-
expect(Events::Kill).to receive(:new).with(anything, anything, anything, anything, anything, anything,
|
177
|
-
anything, weapon, customkill)
|
187
|
+
expect(Events::Kill).to receive(:new).with(anything, anything, anything, anything, anything, anything, anything,
|
188
|
+
anything, anything, weapon, customkill)
|
178
189
|
parse(line)
|
179
190
|
end
|
180
191
|
|
181
192
|
it 'recognizes an assist' do
|
182
193
|
line = log_lines[1451]
|
183
194
|
player_name = 'broder jukebox'
|
195
|
+
player_uid = '11'
|
184
196
|
player_steam_id = 'STEAM_0:1:13978585'
|
185
197
|
player_team = 'Blue'
|
186
198
|
target_name = 'Epsilon Mitsy'
|
199
|
+
target_uid = '12'
|
187
200
|
target_steam_id = 'STEAM_0:0:16858056'
|
188
201
|
target_team = 'Red'
|
189
|
-
expect(Events::Assist).to receive(:new).with(anything, player_name, player_steam_id, player_team, target_name,
|
190
|
-
target_steam_id, target_team)
|
202
|
+
expect(Events::Assist).to receive(:new).with(anything, player_name, player_uid, player_steam_id, player_team, target_name,
|
203
|
+
target_uid, target_steam_id, target_team)
|
191
204
|
parse(line)
|
192
205
|
end
|
193
206
|
|
194
207
|
it 'recognizes connect' do
|
195
208
|
line = log_lines[9]
|
196
209
|
name = 'Epsilon numlocked'
|
210
|
+
uid = '4'
|
197
211
|
steam_id = 'STEAM_0:1:16347045'
|
198
212
|
team = ''
|
199
213
|
message = '0.0.0.0:27005'
|
200
|
-
expect(Events::Connect).to receive(:new).with(anything, name, steam_id, team, message)
|
214
|
+
expect(Events::Connect).to receive(:new).with(anything, name, uid, steam_id, team, message)
|
201
215
|
parse(line)
|
202
216
|
end
|
203
217
|
|
204
218
|
it 'recognizes disconnect' do
|
205
219
|
line = log_lines[4542]
|
206
220
|
name = 'cc//TviQ'
|
221
|
+
uid = '8'
|
207
222
|
steam_id = 'STEAM_0:0:8520477'
|
208
223
|
team = 'Blue'
|
209
224
|
message = 'Disconnect by user.'
|
210
|
-
expect(Events::Disconnect).to receive(:new).with(anything, name, steam_id, team, message)
|
225
|
+
expect(Events::Disconnect).to receive(:new).with(anything, name, uid, steam_id, team, message)
|
211
226
|
parse(line)
|
212
227
|
end
|
213
228
|
|
214
229
|
it 'recognizes chat' do
|
215
230
|
line = log_lines[89]
|
216
231
|
name = 'Epsilon KnOxXx'
|
232
|
+
uid = '5'
|
217
233
|
steam_id = 'STEAM_0:1:12124893'
|
218
234
|
team = 'Red'
|
219
235
|
message = "it's right for the ping"
|
220
|
-
expect(Events::Say).to receive(:new).with(anything, name, steam_id, team, message)
|
236
|
+
expect(Events::Say).to receive(:new).with(anything, name, uid, steam_id, team, message)
|
221
237
|
parse(line)
|
222
238
|
end
|
223
239
|
|
224
240
|
it 'recognizes team chat' do
|
225
241
|
line = log_lines[303]
|
226
242
|
name = 'broder mirelin'
|
243
|
+
uid = '16'
|
227
244
|
steam_id = 'STEAM_0:1:18504112'
|
228
245
|
team = 'Blue'
|
229
246
|
message = '>>> USING UBER <<<[info] '
|
230
|
-
expect(Events::TeamSay).to receive(:new).with(anything, name, steam_id, team, message)
|
247
|
+
expect(Events::TeamSay).to receive(:new).with(anything, name, uid, steam_id, team, message)
|
231
248
|
parse(line)
|
232
249
|
end
|
233
250
|
|
234
251
|
it 'recognizes dominations' do
|
235
252
|
line = log_lines[1948]
|
236
253
|
name = 'Epsilon basH.'
|
254
|
+
uid = '7'
|
237
255
|
steam_id = 'STEAM_0:1:15829615'
|
238
256
|
team = 'Red'
|
239
257
|
target_name = 'broder jukebox'
|
258
|
+
target_uid = '11'
|
240
259
|
target_steam_id = 'STEAM_0:1:13978585'
|
241
260
|
target_team = 'Blue'
|
242
|
-
expect(Events::Domination).to receive(:new).with(anything, name, steam_id, team, target_name, target_steam_id,
|
261
|
+
expect(Events::Domination).to receive(:new).with(anything, name, uid, steam_id, team, target_name, target_uid, target_steam_id,
|
243
262
|
target_team)
|
244
263
|
parse(line)
|
245
264
|
end
|
@@ -247,12 +266,14 @@ module TF2LineParser
|
|
247
266
|
it 'recognizes revenges' do
|
248
267
|
line = log_lines[2354]
|
249
268
|
name = 'broder jukebox'
|
269
|
+
uid = '11'
|
250
270
|
steam_id = 'STEAM_0:1:13978585'
|
251
271
|
team = 'Blue'
|
252
272
|
target_name = 'Epsilon basH.'
|
273
|
+
target_uid = '7'
|
253
274
|
target_steam_id = 'STEAM_0:1:15829615'
|
254
275
|
target_team = 'Red'
|
255
|
-
expect(Events::Revenge).to receive(:new).with(anything, name, steam_id, team, target_name, target_steam_id,
|
276
|
+
expect(Events::Revenge).to receive(:new).with(anything, name, uid, steam_id, team, target_name, target_uid, target_steam_id,
|
256
277
|
target_team)
|
257
278
|
parse(line)
|
258
279
|
end
|
@@ -276,10 +297,11 @@ module TF2LineParser
|
|
276
297
|
it 'recognizes item pickup' do
|
277
298
|
line = log_lines[51]
|
278
299
|
name = 'Epsilon Mike'
|
300
|
+
uid = '6'
|
279
301
|
steam_id = 'STEAM_0:1:1895232'
|
280
302
|
team = 'Blue'
|
281
303
|
item = 'medkit_medium'
|
282
|
-
expect(Events::PickupItem).to receive(:new).with(anything, name, steam_id, team, item)
|
304
|
+
expect(Events::PickupItem).to receive(:new).with(anything, name, uid, steam_id, team, item)
|
283
305
|
parse(line)
|
284
306
|
end
|
285
307
|
|
@@ -292,54 +314,59 @@ module TF2LineParser
|
|
292
314
|
it 'recognizes ubercharges' do
|
293
315
|
line = log_lines[1416]
|
294
316
|
name = 'broder mirelin'
|
317
|
+
uid = '17'
|
295
318
|
steam_id = 'STEAM_0:1:18504112'
|
296
319
|
team = 'Blue'
|
297
|
-
expect(Events::ChargeDeployed).to receive(:new).with(anything, name, steam_id, team)
|
320
|
+
expect(Events::ChargeDeployed).to receive(:new).with(anything, name, uid, steam_id, team)
|
298
321
|
parse(line)
|
299
322
|
|
300
323
|
line = detailed_log_lines[782]
|
301
324
|
name = 'flo ❤'
|
325
|
+
uid = '24'
|
302
326
|
steam_id = 'STEAM_0:1:53945481'
|
303
327
|
team = 'Blue'
|
304
|
-
expect(Events::ChargeDeployed).to receive(:new).with(anything, name, steam_id, team)
|
328
|
+
expect(Events::ChargeDeployed).to receive(:new).with(anything, name, uid, steam_id, team)
|
305
329
|
parse(line)
|
306
330
|
end
|
307
331
|
|
308
332
|
it 'recognizes medic deaths' do
|
309
333
|
line = log_lines[1700]
|
310
334
|
medic_name = 'broder mirelin'
|
335
|
+
medic_uid = '17'
|
311
336
|
medic_steam_id = 'STEAM_0:1:18504112'
|
312
337
|
medic_team = 'Blue'
|
313
338
|
killer_name = 'Epsilon numlocked'
|
339
|
+
killer_uid = '4'
|
314
340
|
killer_steam_id = 'STEAM_0:1:16347045'
|
315
341
|
killer_team = 'Red'
|
316
342
|
healing = '1975'
|
317
|
-
expect(Events::MedicDeath).to receive(:new).with(anything, killer_name, killer_steam_id, killer_team,
|
318
|
-
medic_name, medic_steam_id, medic_team, healing, '0')
|
343
|
+
expect(Events::MedicDeath).to receive(:new).with(anything, killer_name, killer_uid, killer_steam_id, killer_team,
|
344
|
+
medic_name, medic_uid, medic_steam_id, medic_team, healing, '0')
|
319
345
|
parse(line)
|
320
346
|
end
|
321
347
|
|
322
348
|
it 'recognizes medic uberdrops' do
|
323
349
|
uberdrop = 'L 10/04/2012 - 21:43:06: "TLR Traxantic<28><STEAM_0:1:1328042><Red>" triggered "medic_death" against "cc//Admirable<3><STEAM_0:0:154182><Blue>" (healing "6478") (ubercharge "1")'
|
324
|
-
expect(Events::MedicDeath).to receive(:new).with(anything, anything, anything, anything, anything, anything,
|
325
|
-
anything, anything, '1')
|
350
|
+
expect(Events::MedicDeath).to receive(:new).with(anything, anything, anything, anything, anything, anything, anything,
|
351
|
+
anything, anything, anything, '1')
|
326
352
|
parse(uberdrop)
|
327
353
|
end
|
328
354
|
|
329
355
|
it 'recognizes medic healing on death' do
|
330
356
|
line = 'L 10/04/2012 - 21:43:06: "TLR Traxantic<28><STEAM_0:1:1328042><Red>" triggered "medic_death" against "cc//Admirable<3><STEAM_0:0:154182><Blue>" (healing "6478") (ubercharge "1")'
|
331
|
-
expect(Events::MedicDeath).to receive(:new).with(anything, anything, anything, anything, anything, anything,
|
332
|
-
anything, '6478', anything)
|
357
|
+
expect(Events::MedicDeath).to receive(:new).with(anything, anything, anything, anything, anything, anything, anything,
|
358
|
+
anything, anything, '6478', anything)
|
333
359
|
parse(line)
|
334
360
|
end
|
335
361
|
|
336
362
|
it 'recognizes role changes' do
|
337
363
|
line = log_lines[1712]
|
338
364
|
player_name = 'broder bybben'
|
365
|
+
player_uid = '10'
|
339
366
|
player_steam_id = 'STEAM_0:1:159631'
|
340
367
|
player_team = 'Blue'
|
341
368
|
role = 'scout'
|
342
|
-
expect(Events::RoleChange).to receive(:new).with(anything, player_name, player_steam_id, player_team, role)
|
369
|
+
expect(Events::RoleChange).to receive(:new).with(anything, player_name, player_uid, player_steam_id, player_team, role)
|
343
370
|
parse(line)
|
344
371
|
end
|
345
372
|
|
@@ -353,31 +380,41 @@ module TF2LineParser
|
|
353
380
|
it 'recognizes capture block' do
|
354
381
|
line = log_lines[3070]
|
355
382
|
name = 'Epsilon basH.'
|
383
|
+
uid = '7'
|
356
384
|
steam_id = 'STEAM_0:1:15829615'
|
357
385
|
team = 'Red'
|
358
386
|
cap_number = '2'
|
359
387
|
cap_name = '#Badlands_cap_cp3'
|
360
|
-
expect(Events::CaptureBlock).to receive(:new).with(anything, name, steam_id, team, cap_number, cap_name)
|
388
|
+
expect(Events::CaptureBlock).to receive(:new).with(anything, name, uid, steam_id, team, cap_number, cap_name)
|
361
389
|
parse(line)
|
362
390
|
end
|
363
391
|
|
364
392
|
it 'recognizes suicides' do
|
365
393
|
line = log_lines[76]
|
366
394
|
name = '.schocky'
|
395
|
+
uid = '15'
|
367
396
|
steam_id = 'STEAM_0:0:2829363'
|
368
397
|
team = 'Red'
|
369
398
|
suicide_method = 'world'
|
370
|
-
expect(Events::Suicide).to receive(:new).with(anything, name, steam_id, team, suicide_method)
|
399
|
+
expect(Events::Suicide).to receive(:new).with(anything, name, uid, steam_id, team, suicide_method)
|
371
400
|
parse(line)
|
372
401
|
end
|
373
402
|
|
374
403
|
it 'recognizes spawns' do
|
375
404
|
line = log_lines[4541]
|
376
405
|
name = 'candyyou # Infinity Gaming'
|
406
|
+
uid = '124'
|
377
407
|
steam_id = 'STEAM_0:0:50979748'
|
378
408
|
team = 'Red'
|
379
409
|
klass = 'Soldier'
|
380
|
-
expect(Events::Spawn).to receive(:new).with(anything, name, steam_id, team, klass)
|
410
|
+
expect(Events::Spawn).to receive(:new).with(anything, name, uid, steam_id, team, klass)
|
411
|
+
parse(line)
|
412
|
+
end
|
413
|
+
|
414
|
+
it 'recognizes rcon commands' do
|
415
|
+
line = log_lines[4543]
|
416
|
+
message = '"0.0.0.0:41432": command "status"'
|
417
|
+
expect(Events::RconCommand).to receive(:new).with(anything, message)
|
381
418
|
parse(line)
|
382
419
|
end
|
383
420
|
|
@@ -410,25 +447,43 @@ module TF2LineParser
|
|
410
447
|
it 'recognizes cs:go chat' do
|
411
448
|
line = csgo_log_lines[299]
|
412
449
|
name = '• Ben •'
|
450
|
+
uid = '3'
|
413
451
|
steam_id = 'STEAM_1:0:160621749'
|
414
452
|
team = 'TERRORIST'
|
415
453
|
message = '!rcon changelevel de_dust2'
|
416
|
-
expect(Events::Say).to receive(:new).with(anything, name, steam_id, team, message)
|
454
|
+
expect(Events::Say).to receive(:new).with(anything, name, uid, steam_id, team, message)
|
417
455
|
parse(line)
|
418
456
|
end
|
419
457
|
|
420
458
|
it "doesn't fall for twiikuu's cheeky name" do
|
421
|
-
|
422
|
-
line = %(L 02/07/2013 - 21:22:08: "#{player_name}<5><[U:1:1337]><Red>" say "!who")
|
459
|
+
line = 'L 02/07/2013 - 21:22:08: "t<1><[U:1:123456]><Red>" say "!who"<5><[U:1:1337]><Red>" say "hello world"'
|
423
460
|
|
424
|
-
name = 't
|
425
|
-
|
461
|
+
name = 't'
|
462
|
+
uid = '1'
|
463
|
+
steam_id = '[U:1:123456]'
|
426
464
|
team = 'Red'
|
427
|
-
message = '!who'
|
428
|
-
expect(Events::Say).to receive(:new).with(anything, name, steam_id, team, message)
|
465
|
+
message = '!who"<5><[U:1:1337]><Red>" say "hello world'
|
466
|
+
expect(Events::Say).to receive(:new).with(anything, name, uid, steam_id, team, message)
|
429
467
|
|
430
468
|
parse(line)
|
431
469
|
end
|
470
|
+
|
471
|
+
it 'matches damage lines with trailing newline using \A and \z' do
|
472
|
+
line = "L 02/15/2013 - 00:21:47: \"Aka Game<4><STEAM_0:0:5253998><Red>\" triggered \"damage\" (damage \"28\")\n"
|
473
|
+
expect(Events::Damage.regex.match(line)).not_to be_nil
|
474
|
+
end
|
475
|
+
|
476
|
+
it 'parses a log line with a cheeky player name containing <uid><steamid><team> and log syntax' do
|
477
|
+
line = 'L 02/15/2013 - 00:21:47: "t<1><[U:1:123456]><Red>\" say \"!who\"<5><[U:1:1337]><Red>" say "hello world"'
|
478
|
+
parser = TF2LineParser::Parser.new(line)
|
479
|
+
event = parser.parse
|
480
|
+
expect(event).to be_a(TF2LineParser::Events::Say)
|
481
|
+
expect(event.player.name).to eq('t<1><[U:1:123456]><Red>\\" say \\"!who\\"')
|
482
|
+
expect(event.player.uid).to eq('5')
|
483
|
+
expect(event.player.steam_id).to eq('[U:1:1337]')
|
484
|
+
expect(event.player.team).to eq('Red')
|
485
|
+
expect(event.message).to eq('hello world')
|
486
|
+
end
|
432
487
|
end
|
433
488
|
end
|
434
489
|
end
|
@@ -5,8 +5,8 @@ require 'spec_helper'
|
|
5
5
|
module TF2LineParser
|
6
6
|
describe Player do
|
7
7
|
it 'compares based on steam_id' do
|
8
|
-
p1 = Player.new('Arie', '12345', 'Red')
|
9
|
-
p2 = Player.new('Arie fakenicking', '12345', 'Red')
|
8
|
+
p1 = Player.new('Arie', '5', '12345', 'Red')
|
9
|
+
p2 = Player.new('Arie fakenicking', '6', '12345', 'Red')
|
10
10
|
expect(p1).to eq p2
|
11
11
|
end
|
12
12
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -3,11 +3,10 @@
|
|
3
3
|
require 'simplecov'
|
4
4
|
require 'coveralls'
|
5
5
|
|
6
|
-
SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter[
|
6
|
+
SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new([
|
7
7
|
SimpleCov::Formatter::HTMLFormatter,
|
8
8
|
Coveralls::SimpleCov::Formatter
|
9
|
-
]
|
9
|
+
])
|
10
10
|
SimpleCov.start
|
11
11
|
|
12
|
-
require 'pry-nav'
|
13
12
|
require 'tf2_line_parser'
|
data/tf2_line_parser.gemspec
CHANGED
@@ -16,7 +16,8 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.homepage = 'http://github.com/Arie/tf2_line_parser'
|
17
17
|
|
18
18
|
gem.add_dependency 'activesupport'
|
19
|
-
gem.add_development_dependency '
|
20
|
-
gem.add_development_dependency '
|
21
|
-
gem.add_development_dependency '
|
19
|
+
gem.add_development_dependency 'coveralls_reborn'
|
20
|
+
gem.add_development_dependency 'rspec'
|
21
|
+
gem.add_development_dependency 'simplecov'
|
22
|
+
gem.add_development_dependency 'json'
|
22
23
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tf2_line_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arie
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: coveralls_reborn
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -53,19 +53,33 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: simplecov
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: json
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: A gem to parse log lines from TF2 servers
|
70
84
|
email: rubygems@ariekanarie.nl
|
71
85
|
executables: []
|
@@ -102,6 +116,7 @@ files:
|
|
102
116
|
- lib/tf2_line_parser/events/player_action_event.rb
|
103
117
|
- lib/tf2_line_parser/events/point_capture.rb
|
104
118
|
- lib/tf2_line_parser/events/pvp_event.rb
|
119
|
+
- lib/tf2_line_parser/events/rcon_command.rb
|
105
120
|
- lib/tf2_line_parser/events/revenge.rb
|
106
121
|
- lib/tf2_line_parser/events/role_change.rb
|
107
122
|
- lib/tf2_line_parser/events/round_event_with_variables.rb
|
@@ -135,7 +150,7 @@ files:
|
|
135
150
|
homepage: http://github.com/Arie/tf2_line_parser
|
136
151
|
licenses: []
|
137
152
|
metadata: {}
|
138
|
-
post_install_message:
|
153
|
+
post_install_message:
|
139
154
|
rdoc_options: []
|
140
155
|
require_paths:
|
141
156
|
- lib
|
@@ -150,8 +165,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
165
|
- !ruby/object:Gem::Version
|
151
166
|
version: '0'
|
152
167
|
requirements: []
|
153
|
-
rubygems_version: 3.
|
154
|
-
signing_key:
|
168
|
+
rubygems_version: 3.5.11
|
169
|
+
signing_key:
|
155
170
|
specification_version: 4
|
156
171
|
summary: TF2 log line parser
|
157
172
|
test_files:
|