overlook-csgo 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +20 -0
- data/README.md +2 -2
- data/Rakefile +4 -39
- data/lib/overlook.rb +2 -2
- data/lib/overlook/csgo/demo.rb +0 -1
- data/lib/overlook/csgo/demo/command.rb +9 -1
- data/lib/overlook/csgo/demo/header.rb +9 -7
- data/lib/overlook/csgo/demo/parser.rb +1 -1
- data/lib/overlook/csgo/match_info_decoder.rb +0 -1
- data/lib/overlook/version.rb +1 -1
- data/lib/proto/compiled/netmessages.pb.rb +9 -0
- data/lib/tasks/proto.rake +27 -0
- data/lib/tasks/spec.rake +11 -0
- metadata +6 -5
- data/.ruby-version +0 -1
- data/lib/overlook/csgo/demo/command_factory.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 657c4187f2479e74f779d4b27fe5a9d5ea1e655b
|
4
|
+
data.tar.gz: 68afc5c4f2b6bf19c78d577e00638046bc4ec35f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 39075a1b4d4aa8f615d2f3774131714827d64d7775eb9e2115832175ef3dcc3dbc7e74770ecfda175d45ecaf525cc42c434333ab5a93a8cfc48b52b3a117b7a7
|
7
|
+
data.tar.gz: f5cde04548a0131510274749bd4a814568a8b51d5c2da7678781b6ad2054b601114d966aa3be1d2990446787b92f85bd9464b8a047f5d56f0455347f86df8f24
|
data/.travis.yml
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 2.2.3
|
4
|
+
- 2.3.0
|
5
|
+
before_install:
|
6
|
+
- ls -a
|
7
|
+
- pwd
|
8
|
+
- git clone https://github.com/github/git-lfs.git
|
9
|
+
- cd git-lfs
|
10
|
+
- git checkout 05666983c2e19664b8fc47c30b767ec160e3fea5
|
11
|
+
- script/bootstrap
|
12
|
+
- cd ..
|
13
|
+
- ls -a
|
14
|
+
- pwd
|
15
|
+
- git-lfs/bin/git-lfs init
|
16
|
+
- git-lfs/bin/git-lfs env
|
17
|
+
- git-lfs/bin/git-lfs pull
|
18
|
+
install:
|
19
|
+
- bundle
|
20
|
+
script: rake spec:all
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@ Ruby access to CS:GO demo files.
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
8
|
|
9
9
|
```ruby
|
10
|
-
gem 'overlook'
|
10
|
+
gem 'overlook-csgo'
|
11
11
|
```
|
12
12
|
|
13
13
|
And then execute:
|
@@ -16,7 +16,7 @@ And then execute:
|
|
16
16
|
|
17
17
|
Or install it yourself as:
|
18
18
|
|
19
|
-
$ gem install overlook
|
19
|
+
$ gem install overlook-csgo
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
data/Rakefile
CHANGED
@@ -1,44 +1,9 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
2
|
require 'rspec/core/rake_task'
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
task default: :spec
|
7
|
-
|
8
|
-
namespace :proto do
|
9
|
-
desc 'Update the generated proto'
|
10
|
-
task :update do
|
11
|
-
proto_version = '2.6.0'
|
12
|
-
|
13
|
-
FileUtils.mkdir_p('./lib/proto/proto')
|
14
|
-
FileUtils.mkdir_p('./lib/proto/compiled')
|
15
|
-
|
16
|
-
base_url = "https://raw.githubusercontent.com/SteamRE/SteamKit/master/Resources/Protobufs/csgo/"
|
17
|
-
protos = %w(cstrike15_gcmessages.proto cstrike15_usermessages.proto netmessages.proto steammessages.proto)
|
18
|
-
|
19
|
-
Dir.chdir('./lib/proto/proto') do
|
20
|
-
protos.each do |file|
|
21
|
-
`curl -O #{base_url}/#{file}`
|
22
|
-
end
|
23
|
-
|
24
|
-
`curl -L https://github.com/google/protobuf/archive/v#{proto_version}.tar.gz -o protobuf.tar.gz`
|
25
|
-
`rm -f protobuf.tar`
|
26
|
-
`gunzip protobuf.tar.gz`
|
27
|
-
`tar -xvzf protobuf.tar`
|
28
|
-
|
29
|
-
protos.each do |file|
|
30
|
-
`protoc --beefcake_out ../compiled -I . -I protobuf-#{proto_version}/src #{file}`
|
31
|
-
|
32
|
-
%w(key_t class_t sendprop_t descriptor_t sounddata_t).each do |broken|
|
33
|
-
fixed = broken
|
34
|
-
fixed[0] = fixed[0].capitalize
|
35
|
-
|
36
|
-
`sed 's/#{broken}/#{fixed}/g' #{file}`
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
4
|
+
load './lib/tasks/proto.rake'
|
5
|
+
load './lib/tasks/spec.rake'
|
40
6
|
|
7
|
+
RSpec::Core::RakeTask.new(:spec)
|
41
8
|
|
42
|
-
|
43
|
-
end
|
44
|
-
end
|
9
|
+
task default: 'spec:fast'
|
data/lib/overlook.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'steamidlib'
|
2
|
+
|
1
3
|
require 'overlook/version'
|
2
4
|
require 'overlook/csgo'
|
3
5
|
|
@@ -10,8 +12,6 @@ require 'proto/compiled/netmessages.pb'
|
|
10
12
|
require 'proto/compiled/cstrike15_gcmessages.pb'
|
11
13
|
require 'proto/compiled/cstrike15_usermessages.pb'
|
12
14
|
|
13
|
-
require 'steamidlib'
|
14
|
-
|
15
15
|
module Overlook
|
16
16
|
def self.decode_share_code(code)
|
17
17
|
decoder = Csgo::SharecodeDecoder.new(code)
|
data/lib/overlook/csgo/demo.rb
CHANGED
@@ -15,7 +15,6 @@ require 'overlook/csgo/demo/game_event_list_message_handler'
|
|
15
15
|
require 'overlook/csgo/demo/game_event_message_handler'
|
16
16
|
require 'overlook/csgo/demo/encrypted_data_handler'
|
17
17
|
|
18
|
-
require 'overlook/csgo/demo/command_factory'
|
19
18
|
require 'overlook/csgo/demo/packet_factory'
|
20
19
|
|
21
20
|
module Overlook
|
@@ -27,6 +27,14 @@ module Overlook
|
|
27
27
|
@tick = 0 unless packet?
|
28
28
|
end
|
29
29
|
|
30
|
+
def self.from_io(reader)
|
31
|
+
cmd = reader.byte
|
32
|
+
tick = reader.signed_int32
|
33
|
+
slot = reader.byte
|
34
|
+
|
35
|
+
new(cmd, tick, slot)
|
36
|
+
end
|
37
|
+
|
30
38
|
def type
|
31
39
|
case @type
|
32
40
|
when Command::TYPE::PACKET, Command::TYPE::SIGNON
|
@@ -43,7 +51,7 @@ module Overlook
|
|
43
51
|
end
|
44
52
|
|
45
53
|
def unknown?
|
46
|
-
type == :
|
54
|
+
type == :unknown
|
47
55
|
end
|
48
56
|
|
49
57
|
def stop?
|
@@ -3,14 +3,16 @@ module Overlook
|
|
3
3
|
module Csgo
|
4
4
|
module Demo
|
5
5
|
class Header
|
6
|
+
InvalidHeader = Class.new(StandardError)
|
7
|
+
|
6
8
|
MAX_STRING_LENGTH = 260.freeze
|
7
9
|
|
8
|
-
|
10
|
+
attr_reader :map_name, :ticks
|
9
11
|
|
10
|
-
def initialize(map_name)
|
12
|
+
def initialize(map_name, ticks)
|
11
13
|
raise ArgumentError 'map_name can\'t be nil' if map_name.nil?
|
12
|
-
|
13
|
-
@
|
14
|
+
@map_name = map_name
|
15
|
+
@ticks = ticks
|
14
16
|
end
|
15
17
|
|
16
18
|
def to_hash
|
@@ -34,10 +36,10 @@ module Overlook
|
|
34
36
|
frames = reader.signed_int32
|
35
37
|
signon_length = reader.signed_int32
|
36
38
|
|
37
|
-
raise
|
38
|
-
raise
|
39
|
+
raise InvalidHeader, "#{self.class.name} only supports HL2DEMO, got #{stamp}" if stamp !~ /hl2demo/i
|
40
|
+
raise InvalidHeader, "#{self.class.name} only supports Valve demo files." if server_name !~ /valve/i
|
39
41
|
|
40
|
-
new(map_name)
|
42
|
+
new(map_name, ticks)
|
41
43
|
end
|
42
44
|
end
|
43
45
|
end
|
data/lib/overlook/version.rb
CHANGED
@@ -69,6 +69,7 @@ module SVC_Messages
|
|
69
69
|
svc_CmdKeyValues = 34
|
70
70
|
svc_EncryptedData = 35
|
71
71
|
svc_HltvReplay = 36
|
72
|
+
svc_Broadcast_Command = 38
|
72
73
|
end
|
73
74
|
|
74
75
|
module ReplayEventType_t
|
@@ -318,6 +319,10 @@ class CCLCMsg_HltvReplay
|
|
318
319
|
include Beefcake::Message
|
319
320
|
end
|
320
321
|
|
322
|
+
class CSVCMsg_Broadcast_Command
|
323
|
+
include Beefcake::Message
|
324
|
+
end
|
325
|
+
|
321
326
|
class CMsgVector
|
322
327
|
optional :x, :float, 1
|
323
328
|
optional :y, :float, 2
|
@@ -723,3 +728,7 @@ class CCLCMsg_HltvReplay
|
|
723
728
|
optional :primary_target_ent_index, :int32, 4
|
724
729
|
optional :event_time, :float, 5
|
725
730
|
end
|
731
|
+
|
732
|
+
class CSVCMsg_Broadcast_Command
|
733
|
+
optional :cmd, :string, 1
|
734
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
namespace :proto do
|
2
|
+
desc 'Update the generated proto'
|
3
|
+
task :update do
|
4
|
+
proto_version = '2.6.0'
|
5
|
+
|
6
|
+
FileUtils.mkdir_p('./lib/proto/proto')
|
7
|
+
FileUtils.mkdir_p('./lib/proto/compiled')
|
8
|
+
|
9
|
+
base_url = "https://raw.githubusercontent.com/SteamRE/SteamKit/master/Resources/Protobufs/csgo/"
|
10
|
+
protos = %w(cstrike15_gcmessages.proto cstrike15_usermessages.proto netmessages.proto steammessages.proto)
|
11
|
+
|
12
|
+
Dir.chdir('./lib/proto/proto') do
|
13
|
+
protos.each do |file|
|
14
|
+
`curl -O #{base_url}/#{file}`
|
15
|
+
end
|
16
|
+
|
17
|
+
`curl -L https://github.com/google/protobuf/archive/v#{proto_version}.tar.gz -o protobuf.tar.gz`
|
18
|
+
`rm -f protobuf.tar`
|
19
|
+
`gunzip protobuf.tar.gz`
|
20
|
+
`tar -xvzf protobuf.tar`
|
21
|
+
|
22
|
+
protos.each do |file|
|
23
|
+
`protoc --beefcake_out ../compiled -I . -I protobuf-#{proto_version}/src #{file}`
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/tasks/spec.rake
ADDED
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
|
+
version: 0.2.2
|
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-
|
11
|
+
date: 2016-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: beefcake
|
@@ -146,7 +146,7 @@ files:
|
|
146
146
|
- ".gitattributes"
|
147
147
|
- ".gitignore"
|
148
148
|
- ".rspec"
|
149
|
-
- ".
|
149
|
+
- ".travis.yml"
|
150
150
|
- Gemfile
|
151
151
|
- Gemfile.lock
|
152
152
|
- README.md
|
@@ -161,7 +161,6 @@ files:
|
|
161
161
|
- lib/overlook/csgo/demo.rb
|
162
162
|
- lib/overlook/csgo/demo/base.rb
|
163
163
|
- lib/overlook/csgo/demo/command.rb
|
164
|
-
- lib/overlook/csgo/demo/command_factory.rb
|
165
164
|
- lib/overlook/csgo/demo/encrypted_data_handler.rb
|
166
165
|
- lib/overlook/csgo/demo/game_event_list_message_handler.rb
|
167
166
|
- lib/overlook/csgo/demo/game_event_message_handler.rb
|
@@ -181,6 +180,8 @@ files:
|
|
181
180
|
- lib/proto/compiled/descriptor.pb.rb
|
182
181
|
- lib/proto/compiled/netmessages.pb.rb
|
183
182
|
- lib/proto/compiled/steammessages.pb.rb
|
183
|
+
- lib/tasks/proto.rake
|
184
|
+
- lib/tasks/spec.rake
|
184
185
|
- overlook-csgo.gemspec
|
185
186
|
homepage: http://github.com/taylorfinnell/overlook
|
186
187
|
licenses: []
|
@@ -201,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
201
202
|
version: '0'
|
202
203
|
requirements: []
|
203
204
|
rubyforge_project:
|
204
|
-
rubygems_version: 2.
|
205
|
+
rubygems_version: 2.5.1
|
205
206
|
signing_key:
|
206
207
|
specification_version: 4
|
207
208
|
summary: Ruby access to CS:GO demo files.
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2.2.3
|