gamespy_query 0.2.0pre17 → 0.2.0pre18

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.
@@ -34,8 +34,8 @@ module GamespyQuery
34
34
  # Initializes the instance
35
35
  # @param [String] geo Geo string
36
36
  # @param [String] game Game string
37
- def initialize(geo = nil, game = "arma2oapc", geoip_path = nil)
38
- @geo, @game, @geoip_path = geo, game, geoip_path
37
+ def initialize(geo = nil, game = "arma2oapc", geoip_path = nil, filter = nil)
38
+ @geo, @game, @geoip_path, @filter = geo, game, geoip_path, filter
39
39
  end
40
40
 
41
41
  # Convert the master browser data to hash
@@ -45,16 +45,16 @@ module GamespyQuery
45
45
 
46
46
  # Gets list of PARAMS, delimited by {DELIMIT}
47
47
  def get_params
48
- PARAMS.map{|e| "#{DELIMIT}#{e}"}.join("")
48
+ PARAMS.clone.map{|e| "#{DELIMIT}#{e}"}.join("")
49
49
  end
50
50
 
51
51
  # Gets list of server addressses and optionally data
52
52
  # @param [String] list Specify list or nil to fetch the list
53
53
  # @param [Boolean] include_data Should server info data from the master browser be included
54
54
  # @param [String] geo Geo String
55
- def get_server_list list = nil, include_data = false, geo = nil
55
+ def get_server_list list = nil, include_data = false, geo = nil, filter = nil
56
56
  addrs = []
57
- list = %x[gslist -C -p "#{geoip_path}"#{" #{geo}-X #{get_params}" if include_data} -n #{@game}] if list.nil?
57
+ list = %x[gslist -C -p "#{geoip_path}"#{" #{geo}-X #{get_params}" if include_data} -n #{@game}#{" -f \"#{filter}\"" if filter}] if list.nil?
58
58
  if include_data
59
59
  addrs = handle_data(list, geo)
60
60
  else
@@ -72,7 +72,7 @@ module GamespyQuery
72
72
  Tools.logger.warn "Warning: GeoIP.dat database missing. Can't parse countries. #{geoip_path}"
73
73
  geo = nil
74
74
  end
75
- get_server_list(nil, true, geo)
75
+ get_server_list(nil, true, geo, @filter)
76
76
  end
77
77
 
78
78
  # Handle reply data from gamespy master browser
@@ -86,6 +86,7 @@ module GamespyQuery
86
86
 
87
87
  option :g, :game, 'Specify game', :argument => :required
88
88
  option nil, :geo, 'Specify geo', :argument => :required
89
+ option :f, :filter, 'Specify filter', :argument => :required
89
90
 
90
91
  subcommand Cri::Command.new_basic_help
91
92
 
@@ -128,7 +129,7 @@ module GamespyQuery
128
129
 
129
130
  run do |opts, args, cmd|
130
131
  opts = GamespyQuery::Options.setup_master_opts opts
131
- process = GamespyQuery::SocketMaster.process_master(opts[:game], opts[:geo], nil, false, true, true)
132
+ process = GamespyQuery::SocketMaster.process_master(opts[:game], opts[:geo], nil, false, true, true, opts[:filter])
132
133
  puts process.size
133
134
  #puts process
134
135
  end
@@ -111,7 +111,7 @@ module GamespyQuery
111
111
  # @param [String] game Game to fetch info from
112
112
  # @param [String] geo Geo location enabled?
113
113
  # @param [Array] remote Hostname and path+filename strings if the list needs to be fetched from http server
114
- def process_master(game = "arma2oapc", geo = nil, remote = nil, dedicated_only = false, sm_dedicated_only = true, info = false)
114
+ def process_master(game = "arma2oapc", geo = nil, remote = nil, dedicated_only = false, sm_dedicated_only = true, info = false, filter = nil)
115
115
  master = GamespyQuery::Master.new(geo, game)
116
116
  list = if remote
117
117
  Net::HTTP.start(remote[0]) do |http|
@@ -119,7 +119,7 @@ module GamespyQuery
119
119
  resp.body.split("\n")
120
120
  end
121
121
  else
122
- master.get_server_list(nil, true, geo)
122
+ master.get_server_list(nil, true, geo, filter)
123
123
  end
124
124
 
125
125
  dat = master.process list
@@ -1,4 +1,4 @@
1
1
  module GamespyQuery
2
2
  # Version of the library
3
- VERSION = "0.2.0pre17"
3
+ VERSION = "0.2.0pre18"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gamespy_query
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0pre17
4
+ version: 0.2.0pre18
5
5
  prerelease: 5
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-18 00:00:00.000000000 Z
12
+ date: 2012-09-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cri