overlook-csgo 0.2.4 → 0.2.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
  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