overlook-csgo 0.2.4 → 0.2.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ce9a9a7159a86d8004724a809bff2716dbb532d0
4
- data.tar.gz: a3fb2f8166cf86ab2bbc939fc1214e598e445fd6
3
+ metadata.gz: 6fcf0c06e00145105279413006bd1728d158ee37
4
+ data.tar.gz: c792ba22590c13d5d7bd01f30a76978a3e51d8d2
5
5
  SHA512:
6
- metadata.gz: 7348362b91c4a21a691d36d393f5a1478621951c598fe35e5b623e6a9fb2c473647ec7732a095155e657d6d74492e79e8c1e5580ad31fa2ffc61b310032eda62
7
- data.tar.gz: 4ac7dc8daab3b3394de485f21fb926cc6113595ca2cd7124306cb4c0f8edef7b54eeb60b44f15cdcf2b6439a432a197a16abe2f062134d290afc203397e89585
6
+ metadata.gz: b361e37e063e360e9bdc1289eeb2383db1baf565062dd163b816a3856595e99b9d1a84427a38a5c39442bd3812d494429d53871af5c9e6a0a7724f20aac535b7
7
+ data.tar.gz: d013a62ffe753dd0fd956fbaa9ca25af2b72eb1396a5b1e2e86996245e88620c2e37a870cd262a35b2075c96eee5459607ceef809c98726cb7dd74ff059d2c62
@@ -4,6 +4,7 @@ require 'overlook/csgo/demo/packet'
4
4
  require 'overlook/csgo/demo/command'
5
5
  require 'overlook/csgo/demo/header'
6
6
 
7
+ require 'overlook/csgo/demo/parser_config'
7
8
  require 'overlook/csgo/demo/parser'
8
9
 
9
10
  require 'overlook/csgo/demo/key_reader'
@@ -3,8 +3,8 @@ module Overlook
3
3
  module Csgo
4
4
  module Demo
5
5
  class Base
6
- def initialize(io)
7
- @parser = Parser.new(io)
6
+ def initialize(io, parser_config = ParserConfig.new)
7
+ @parser = Parser.new(io, parser_config)
8
8
  end
9
9
 
10
10
  def subscribe(subscriber)
@@ -13,8 +13,9 @@ module Overlook
13
13
 
14
14
  attr_reader :parser
15
15
 
16
- def initialize(_parser)
16
+ def initialize(_parser, parser_config)
17
17
  @parser = _parser
18
+ @parser_config = parser_config
18
19
  end
19
20
 
20
21
  def handle(packet)
@@ -24,7 +25,8 @@ module Overlook
24
25
  message_type = reader.var_int32
25
26
  message_size = reader.var_int32
26
27
 
27
- if handler = handlers[message_type]
28
+ handler = handlers[message_type]
29
+ if handler && handle?(handler)
28
30
  handler.handle(reader.bytes(message_size))
29
31
  else
30
32
  reader.skip(message_size)
@@ -38,12 +40,25 @@ module Overlook
38
40
 
39
41
  def handlers
40
42
  {
41
- MessageTypes::USER_MESSAGE_MESSAGE_ID => UserMessageMessageHandler.new(parser),
43
+ MessageTypes::USER_MESSAGE_MESSAGE_ID => UserMessageMessageHandler.new(parser),
42
44
  MessageTypes::GAME_EVENT_LIST_MESSAGE_ID => GameEventListMessageHandler.new(parser),
43
- MessageTypes::GAME_EVENT_MESSAGE_ID => GameEventMessageHandler.new(parser),
44
- MessageTypes::ENCRYPTED_DATA_ID => EncryptedDataHandler.new(parser),
45
+ MessageTypes::GAME_EVENT_MESSAGE_ID => GameEventMessageHandler.new(parser),
46
+ MessageTypes::ENCRYPTED_DATA_ID => EncryptedDataHandler.new(parser),
45
47
  }
46
48
  end
49
+
50
+ def handle?(handler)
51
+ case handler
52
+ when GameEventListMessageHandler, GameEventMessageHandler
53
+ @parser_config.parse_game_events?
54
+ when UserMessageMessageHandler
55
+ @parser_config.parse_user_messages?
56
+ when EncryptedDataHandler
57
+ @parser_config.parse_encrypted_data?
58
+ else
59
+ true
60
+ end
61
+ end
47
62
  end
48
63
  end
49
64
  end
@@ -10,9 +10,11 @@ module Overlook
10
10
  InvalidDemo = Class.new(Exception)
11
11
 
12
12
  attr_reader :reader
13
+ attr_reader :parser_config
13
14
  attr_accessor :descriptors
14
15
 
15
- def initialize(io)
16
+ def initialize(io, parser_config = ParserConfig.new)
17
+ @parser_config = parser_config
16
18
  @reader = ByteReader.new(io)
17
19
  @header = nil
18
20
  @descriptors = {}
@@ -41,7 +43,7 @@ module Overlook
41
43
  end
42
44
 
43
45
  def packets
44
- packet_handler = PacketHandler.new(self)
46
+ packet_handler = PacketHandler.new(self, @parser_config)
45
47
 
46
48
  loop do
47
49
  command = Command.from_io(reader)
@@ -0,0 +1,29 @@
1
+ module Overlook
2
+ module Csgo
3
+ module Demo
4
+ class ParserConfig
5
+ attr_reader :parse_game_events,
6
+ :parse_user_messages,
7
+ :parse_encrypted_data
8
+
9
+ def initialize(options = {})
10
+ @parse_game_events = options.fetch(:parse_game_events, true)
11
+ @parse_user_messages = options.fetch(:parse_user_messages, true)
12
+ @parse_encrypted_data = options.fetch(:parse_encrypted_data, true)
13
+ end
14
+
15
+ def parse_encrypted_data?
16
+ @parse_encrypted_data
17
+ end
18
+
19
+ def parse_user_messages?
20
+ @parse_user_messages
21
+ end
22
+
23
+ def parse_game_events?
24
+ @parse_game_events
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module Overlook
2
- VERSION = '0.2.4'.freeze
2
+ VERSION = '0.2.5'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: overlook-csgo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taylor Finnell
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-31 00:00:00.000000000 Z
11
+ date: 2016-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -170,6 +170,7 @@ files:
170
170
  - lib/overlook/csgo/demo/packet_factory.rb
171
171
  - lib/overlook/csgo/demo/packet_handler.rb
172
172
  - lib/overlook/csgo/demo/parser.rb
173
+ - lib/overlook/csgo/demo/parser_config.rb
173
174
  - lib/overlook/csgo/demo/user_message_message_handler.rb
174
175
  - lib/overlook/csgo/match_info_decoder.rb
175
176
  - lib/overlook/csgo/sharecode_decoder.rb