em-betfair 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. data/.gitignore +3 -0
  2. data/Gemfile +8 -0
  3. data/README.md +47 -0
  4. data/Rakefile +1 -0
  5. data/em-betfair.gemspec +25 -0
  6. data/examples/scrape_betfair.rb +88 -0
  7. data/lib/em-betfair/betfair_client.rb +126 -0
  8. data/lib/em-betfair/response.rb +41 -0
  9. data/lib/em-betfair/response_parser.rb +135 -0
  10. data/lib/em-betfair/soap_renderer.rb +29 -0
  11. data/lib/em-betfair/views/exchange/get_all_markets.haml +23 -0
  12. data/lib/em-betfair/views/exchange/get_market.haml +12 -0
  13. data/lib/em-betfair/views/exchange/get_market_prices_compressed.haml +12 -0
  14. data/lib/em-betfair/views/exchange/get_market_traded_volume_compressed.haml +12 -0
  15. data/lib/em-betfair/views/global/get_all_event_types.haml +12 -0
  16. data/lib/em-betfair/views/global/login.haml +11 -0
  17. data/lib/em-betfair/views/global/retrieve_limb_message.haml +9 -0
  18. data/lib/em-betfair/views/global/submit_limb_message.haml +14 -0
  19. data/lib/em-betfair.rb +4 -0
  20. data/spec/functional/betfair_client_spec.rb +149 -0
  21. data/spec/remote/betfair_client_spec.rb +69 -0
  22. data/spec/spec_helper.rb +17 -0
  23. data/spec/support/canned_responses/get_all_markets.xml +18 -0
  24. data/spec/support/canned_responses/get_all_markets_no_session.xml +18 -0
  25. data/spec/support/canned_responses/get_market.xml +3 -0
  26. data/spec/support/canned_responses/get_market_prices_compressed.xml +18 -0
  27. data/spec/support/canned_responses/get_market_traded_volume_compressed.xml +20 -0
  28. data/spec/support/canned_responses/login_failed.xml +19 -0
  29. data/spec/support/canned_responses/login_ok.xml +19 -0
  30. data/spec/support/canned_responses/soap_fault.xml +9 -0
  31. data/spec/unit/response_parser_spec.rb +45 -0
  32. metadata +143 -0
@@ -0,0 +1,149 @@
1
+ require 'spec_helper'
2
+ require 'webmock/rspec'
3
+
4
+ config = {
5
+ "username" => "some_username",
6
+ "password" => "some_password",
7
+ "product_id" => 22,
8
+ "exchange_endpoint" => "http://exchange.betfair.com", #"https://api.betfair.com/exchange/v5/BFExchangeService",
9
+ "global_endpoint" => "http://global.betfair.com" #"https://api.betfair.com/global/v3/BFGlobalService"
10
+ }
11
+
12
+ describe Betfair::Client do
13
+
14
+ before :all do
15
+ @bf_client = Betfair::Client.new(config)
16
+ end
17
+
18
+ describe "SOAP faults" do
19
+
20
+ it "should handle SOAP faults" do
21
+ stub_request(:post, "http://global.betfair.com").to_return(:body => load_response("login_ok.xml"), :status => 200)
22
+ stub_request(:post, "http://exchange.betfair.com").to_return(:body => load_response("soap_fault.xml"), :status => 500)
23
+ EM::run {
24
+ @bf_client.get_all_markets do |rsp|
25
+ rsp.successfull.should eq false
26
+ rsp.hash_response.should be_nil
27
+ rsp.error.should eq "INTERNAL_ERROR"
28
+ EM::stop
29
+ end
30
+ }
31
+ end
32
+ end
33
+
34
+ describe "with no session token" do
35
+
36
+ it "shouldn't be successfull" do
37
+ stub_request(:post, "http://global.betfair.com").to_return(:body => load_response("login_failed.xml"), :status => 200)
38
+ stub_request(:post, "http://exchange.betfair.com").to_return(:body => load_response("get_all_markets_no_session.xml"), :status => 200)
39
+ EM::run {
40
+ @bf_client.get_all_markets do |rsp|
41
+ rsp.successfull.should eq false
42
+ rsp.error.should eq "NO_SESSION"
43
+ EM::stop
44
+ end
45
+ }
46
+ end
47
+
48
+ end
49
+
50
+ describe "login" do
51
+
52
+ it "should handle an OK response" do
53
+ stub_request(:post, "http://global.betfair.com").to_return(:body => load_response("login_ok.xml"), :status => 200)
54
+ EM::run {
55
+ @bf_client.login do |rsp|
56
+ rsp.successfull.should eq true
57
+ rsp.hash_response.should be_an_instance_of Hash
58
+ rsp.error.should eq ""
59
+ EM::stop
60
+ end
61
+ }
62
+ end
63
+
64
+ it "should handle invalid username/password" do
65
+ stub_request(:post, "http://global.betfair.com").to_return(:body => load_response("login_failed.xml"), :status => 200)
66
+ EM::run {
67
+ @bf_client.login do |rsp|
68
+ rsp.successfull.should eq false
69
+ rsp.error.should eq "INVALID_USERNAME_OR_PASSWORD"
70
+ EM::stop
71
+ end
72
+ }
73
+ end
74
+
75
+ end
76
+
77
+ describe "get_all_markets" do
78
+
79
+ it "should handle an OK response" do
80
+ stub_request(:post, "http://global.betfair.com").to_return(:body => load_response("login_ok.xml"), :status => 200)
81
+ stub_request(:post, "http://exchange.betfair.com").to_return(:body => load_response("get_all_markets.xml"), :status => 200)
82
+ EM::run {
83
+ @bf_client.get_all_markets do |rsp|
84
+ rsp.successfull.should eq true
85
+ rsp.error.should eq ""
86
+ rsp.hash_response.should be_an_instance_of Hash
87
+ rsp.parsed_response.xpath("//marketData").text.should_not eq ""
88
+ EM::stop
89
+ end
90
+ }
91
+ end
92
+
93
+ end
94
+
95
+ describe "get_market" do
96
+
97
+ it "should handle an OK response" do
98
+ stub_request(:post, "http://global.betfair.com").to_return(:body => load_response("login_ok.xml"), :status => 200)
99
+ stub_request(:post, "http://exchange.betfair.com").to_return(:body => load_response("get_market.xml"), :status => 200)
100
+ EM::run {
101
+ @bf_client.get_market "104968439" do |rsp|
102
+ rsp.successfull.should eq true
103
+ rsp.error.should eq ""
104
+ rsp.hash_response.should be_an_instance_of Hash
105
+ rsp.parsed_response.xpath("//runners").children.should_not be_empty
106
+ EM::stop
107
+ end
108
+ }
109
+ end
110
+
111
+ end
112
+
113
+ describe "get_market_prices_compressed" do
114
+
115
+ it "should handle an OK response" do
116
+ stub_request(:post, "http://global.betfair.com").to_return(:body => load_response("login_ok.xml"), :status => 200)
117
+ stub_request(:post, "http://exchange.betfair.com").to_return(:body => load_response("get_market_prices_compressed.xml"), :status => 200)
118
+ EM::run {
119
+ @bf_client.get_market_prices_compressed "104968512" do |rsp|
120
+ rsp.successfull.should eq true
121
+ rsp.error.should eq ""
122
+ rsp.hash_response.should be_an_instance_of Hash
123
+ rsp.parsed_response.xpath("//marketPrices").first.should_not be_nil
124
+ EM::stop
125
+ end
126
+ }
127
+ end
128
+
129
+ end
130
+
131
+ describe "get_market_traded_volume_compressed" do
132
+
133
+ it "should handle an OK response" do
134
+ stub_request(:post, "http://global.betfair.com").to_return(:body => load_response("login_ok.xml"), :status => 200)
135
+ stub_request(:post, "http://exchange.betfair.com").to_return(:body => load_response("get_market_traded_volume_compressed.xml"), :status => 200)
136
+ EM::run {
137
+ @bf_client.get_market_prices_compressed "104968512" do |rsp|
138
+ rsp.successfull.should eq true
139
+ rsp.error.should eq ""
140
+ rsp.hash_response.should be_an_instance_of Hash
141
+ rsp.parsed_response.xpath("//tradedVolume").first.should_not be_nil
142
+ EM::stop
143
+ end
144
+ }
145
+ end
146
+
147
+ end
148
+
149
+ end
@@ -0,0 +1,69 @@
1
+ require 'spec_helper'
2
+
3
+ config = {
4
+ "username" => "<YOUR BETFAIR USERNAME>",
5
+ "password" => "<YOUR BETFAIR PASSWORD>",
6
+ "product_id" => "<YOUR BETFAIR PRODUCTID>",
7
+ "exchange_endpoint" => "https://api.betfair.com/exchange/v5/BFExchangeService",
8
+ "global_endpoint" => "https://api.betfair.com/global/v3/BFGlobalService"
9
+ }
10
+
11
+ describe Betfair::Client do
12
+
13
+ before :all do
14
+ @bf_client = Betfair::Client.new(config)
15
+ end
16
+
17
+ describe "get_all_markets" do
18
+
19
+ it "should work against a remote API" do
20
+ # EM::run {
21
+ # @bf_client.get_all_markets ["GBR"],[7] do |response|
22
+ # puts response.raw_response
23
+ # EM::stop
24
+ # end
25
+ # }
26
+ end
27
+
28
+ end
29
+
30
+ describe "get_market" do
31
+
32
+ it "should work against a remote API" do
33
+ # EM::run {
34
+ # @bf_client.get_market "104968439" do |response|
35
+ # puts response.raw_response
36
+ # EM::stop
37
+ # end
38
+ # }
39
+ end
40
+
41
+ end
42
+
43
+ describe "get_market_prices_compressed" do
44
+
45
+ it "should work against a remote API" do
46
+ # EM::run {
47
+ # @bf_client.get_market_prices_compressed "104968512" do |response|
48
+ # puts response.raw_response
49
+ # EM::stop
50
+ # end
51
+ # }
52
+ end
53
+
54
+ end
55
+
56
+ describe "get_market_traded_volume_compressed" do
57
+
58
+ it "should work against a remote API" do
59
+ # EM::run {
60
+ # @bf_client.get_market_traded_volume_compressed "104968512" do |response|
61
+ # puts response.raw_response
62
+ # EM::stop
63
+ # end
64
+ # }
65
+ end
66
+
67
+ end
68
+
69
+ end
@@ -0,0 +1,17 @@
1
+ require 'pathname'
2
+ require Pathname.new(__FILE__).realpath.parent.parent + 'lib' + 'em-betfair'
3
+ require 'eventmachine'
4
+
5
+ RSpec.configure do |config|
6
+ config.color_enabled = true
7
+ end
8
+
9
+ CANNED_RSP_DIR = Pathname.new(__FILE__).realpath.parent + "support" + "canned_responses"
10
+
11
+ def load_response response_file
12
+ File.open(CANNED_RSP_DIR+response_file).read
13
+ end
14
+
15
+ def load_xml_response response_file
16
+ Nokogiri::XML File.open(CANNED_RSP_DIR+response_file).read
17
+ end
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n2="http://www.betfair.com/publicapi/types/exchange/v5/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <soap:Body>
4
+ <n:getAllMarketsResponse xmlns:n="http://www.betfair.com/publicapi/v5/BFExchangeService/">
5
+ <n:Result xsi:type="n2:GetAllMarketsResp">
6
+ <header xsi:type="n2:APIResponseHeader">
7
+ <errorCode xsi:type="n2:APIErrorEnum">OK</errorCode>
8
+ <minorErrorCode xsi:nil="1"/>
9
+ <sessionToken xsi:type="xsd:string">z27P3pqsn2P9+9I8TYGrZSme0VNdrGn2RzE7IhNXwlM=</sessionToken>
10
+ <timestamp xsi:type="xsd:dateTime">2012-02-25T13:56:17.316Z</timestamp>
11
+ </header>
12
+ <errorCode xsi:type="n2:GetAllMarketsErrorEnum">OK</errorCode>
13
+ <marketData xsi:type="xsd:string">:102426090~Champion Hrd~O~ACTIVE~1331121600000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/102426090~0~1~GBR~1330178010840~72~1~653619.68~N~N:102426091~World Hrd~O~ACTIVE~1331294400000~Horse RacingANTEPOSTGBChelt 15th Mar~/7/10394282/10394283/26790775/102426091~0~1~GBR~1330178010840~70~1~274298.52~N~N:102426092~Champion Chs~O~ACTIVE~1331208000000~Horse RacingANTEPOSTGBChelt 14th Mar~/7/10394282/10394283/26790769/102426092~0~1~GBR~1330178010840~39~1~150794.56~N~N:102426093~Gold Cup~O~ACTIVE~1331380800000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/102426093~0~1~GBR~1330178010840~101~1~700393.34~N~N:102463405~Arkle Chs~O~ACTIVE~1331121600000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/102463405~0~1~GBR~1330178010840~15~1~376484.44~N~N:102463408~Supreme Nov Hrd~O~ACTIVE~1331121600000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/102463408~0~1~GBR~1330178010840~60~1~206911.02~N~N:102463411~RSA Chs~O~ACTIVE~1331208000000~Horse RacingANTEPOSTGBChelt 14th Mar~/7/10394282/10394283/26790769/102463411~0~1~GBR~1330178010840~25~1~153848.5~N~N:102582544~Grand National~O~ACTIVE~1330430400000~Horse RacingANTEPOSTGBAint 14th Apr~/7/10394282/10394283/26790784/102582544~0~1~GBR~1330178010840~81~1~349036.74~N~N:102756478~Grand National TBP~O~ACTIVE~1330430400000~Horse RacingANTEPOSTGBAint 14th Apr~/7/10394282/10394283/26790784/102756478~0~1~GBR~1330178010840~81~4~33683.64~N~N:102756589~Arkle Chs TBP~O~ACTIVE~1331121600000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/102756589~0~1~GBR~1330178010840~15~3~19243.12~N~N:102756595~Champion Chs TBP~O~ACTIVE~1331208000000~Horse RacingANTEPOSTGBChelt 14th Mar~/7/10394282/10394283/26790769/102756595~0~1~GBR~1330178010840~39~3~10756.02~N~N:102756665~Champion Hrd TBP~O~ACTIVE~1331121600000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/102756665~0~1~GBR~1330178010840~72~3~43262.06~N~N:102756697~Gold Cup TBP~O~ACTIVE~1331380800000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/102756697~0~1~GBR~1330178010840~101~3~62500.18~N~N:102756812~RSA Chs TBP~O~ACTIVE~1331208000000~Horse RacingANTEPOSTGBChelt 14th Mar~/7/10394282/10394283/26790769/102756812~0~1~GBR~1330178010840~25~3~12441.84~N~N:102756814~Supreme Nov Hrd TBP~O~ACTIVE~1331121600000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/102756814~0~1~GBR~1330178010840~60~3~18841.1~N~N:102756857~World Hrd TBP~O~ACTIVE~1331294400000~Horse RacingANTEPOSTGBChelt 15th Mar~/7/10394282/10394283/26790775/102756857~0~1~GBR~1330178010840~70~3~19783.0~N~N:102934130~1000 Guineas~O~ACTIVE~1331035200000~Horse RacingANTEPOSTGBNewm 6th May~/7/10394282/10394283/26719089/102934130~0~1~GBR~1330178010840~57~1~40054.8~N~N:102934131~2000 Guineas~O~ACTIVE~1331035200000~Horse RacingANTEPOSTGBNewm 5th May~/7/10394282/10394283/26790788/102934131~0~1~GBR~1330178010840~79~1~58483.56~N~N:102934133~1000 Guineas TBP~O~ACTIVE~1331035200000~Horse RacingANTEPOSTGBNewm 6th May~/7/10394282/10394283/26719089/102934133~0~1~GBR~1330178010840~57~3~1771.08~N~N:102934134~2000 Guineas TBP~O~ACTIVE~1331035200000~Horse RacingANTEPOSTGBNewm 5th May~/7/10394282/10394283/26790788/102934134~0~1~GBR~1330178010840~79~3~3160.72~N~N:103357091~Ryanair Chs~O~ACTIVE~1331294400000~Horse RacingANTEPOSTGBChelt 15th Mar~/7/10394282/10394283/26790775/103357091~0~1~GBR~1330178010840~69~1~124199.64~N~N:103357114~Ryanair Chs TBP~O~ACTIVE~1331294400000~Horse RacingANTEPOSTGBChelt 15th Mar~/7/10394282/10394283/26790775/103357114~0~1~GBR~1330178010840~69~3~10750.54~N~N:103357119~The Derby~O~ACTIVE~1331035200000~Horse RacingANTEPOSTGBEpsm 2nd Jun~/7/10394282/10394283/26735694/103357119~0~1~GBR~1330178010840~70~1~46258.84~N~N:103357120~The Derby TBP~O~ACTIVE~1331035200000~Horse RacingANTEPOSTGBEpsm 2nd Jun~/7/10394282/10394283/26735694/103357120~0~1~GBR~1330178010840~70~3~1627.4~N~N:103928723~Top NH Trainer 2011-12~O~ACTIVE~1335610800000~Horse RacingGBSpecial BetsJump Specials~/7/298251/467121/1777333/103928723~0~1~GBR~1330178010840~10~1~62519.68~N~N:103930398~The Oaks~O~ACTIVE~1331640000000~Horse RacingANTEPOSTGBEpsm 1st Jun~/7/10394282/10394283/26790786/103930398~0~1~GBR~1330178010840~23~1~4033.68~N~N:103930410~The Oaks TBP~O~ACTIVE~1331640000000~Horse RacingANTEPOSTGBEpsm 1st Jun~/7/10394282/10394283/26790786/103930410~0~1~GBR~1330178010840~23~3~136.0~N~N:103961414~Triumph Hrd~O~ACTIVE~1331380800000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/103961414~0~1~GBR~1330178010840~64~1~210472.28~N~N:103961610~Albert Bartlett Nov Hrd~O~ACTIVE~1331380800000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/103961610~0~1~GBR~1330178010840~74~1~51678.64~N~N:103961611~Albert Bartlett Nov Hrd TBP~O~ACTIVE~1331380800000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/103961611~0~1~GBR~1330178010840~74~3~4029.02~N~N:103963844~Neptune Nov Hrd~O~ACTIVE~1331208000000~Horse RacingANTEPOSTGBChelt 14th Mar~/7/10394282/10394283/26790769/103963844~0~1~GBR~1330178010840~77~1~74165.58~N~N:103963869~Neptune Nov Hrd TBP~O~ACTIVE~1331208000000~Horse RacingANTEPOSTGBChelt 14th Mar~/7/10394282/10394283/26790769/103963869~0~1~GBR~1330178010840~77~3~5761.36~N~N:103963888~Triumph Hrd TBP~O~ACTIVE~1331380800000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/103963888~0~1~GBR~1330178010840~64~3~12137.86~N~N:104287555~AW Top Jockey 2011/12~O~ACTIVE~1320843600000~Horse RacingGBSpecial BetsAW Specials~/7/298251/467121/10610489/104287555~0~1~GBR~1330178010840~26~1~3132.28~N~N:104397626~Jewson Nov Chs~O~ACTIVE~1331294400000~Horse RacingANTEPOSTGBChelt 15th Mar~/7/10394282/10394283/26790775/104397626~0~1~GBR~1330178010840~34~1~30094.76~N~N:104397627~Jewson Nov Chs TBP~O~ACTIVE~1331294400000~Horse RacingANTEPOSTGBChelt 15th Mar~/7/10394282/10394283/26790775/104397627~0~1~GBR~1330178010840~34~3~2270.24~N~N:104397628~DN Mares Hrd~O~ACTIVE~1330430400000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/104397628~0~1~GBR~1330178010840~21~1~47522.7~N~N:104397629~DN Mares Hrd TBP~O~ACTIVE~1330430400000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/104397629~0~1~GBR~1330178010840~21~3~2799.8~N~N:104436147~Keep The Race?~O~SUSPENDED~1253021017000~Horse RacingGBStewards Enquiry~/7/298251/3453086/104436147~0~1~GBR~1330178010840~2~1~0.0~N~N:104559734~Champion Bumper~O~ACTIVE~1330430400000~Horse RacingANTEPOSTGBChelt 14th Mar~/7/10394282/10394283/26790769/104559734~0~1~GBR~1330178010840~43~1~51138.82~N~N:104559781~Champion Bumper TBP~O~ACTIVE~1330430400000~Horse RacingANTEPOSTGBChelt 14th Mar~/7/10394282/10394283/26790769/104559781~0~1~GBR~1330178010840~43~3~4423.82~N~N:104592808~Championship Acca~O~ACTIVE~1331121600000~Horse RacingANTEPOSTGBChelt AP Specials~/7/10394282/10394283/26790824/104592808~0~1~GBR~1330178010840~18~0~25966.44~N~N:104592980~Win A Festival Race?~O~ACTIVE~1331640000000~Horse RacingANTEPOSTGBChelt AP Specials~/7/10394282/10394283/26790824/104592980~0~1~GBR~1330178010840~12~0~459.04~N~N:104612388~County Hurdle~O~ACTIVE~1331380800000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/104612388~0~1~GBR~1330178010840~109~1~6441.46~N~N:104612389~Foxhunter Chs~O~ACTIVE~1330430400000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/104612389~0~1~GBR~1330178010840~33~1~25092.76~N~N:104612503~Festival Hcap Chs~O~ACTIVE~1331121600000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/104612503~0~1~GBR~1330178010840~84~1~7017.0~N~N:104612504~Martin Pipe Hcap Hrd~O~ACTIVE~1331380800000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/104612504~0~1~GBR~1330178010840~192~1~2528.24~N~N:104612533~Grand Annual Chs~O~ACTIVE~1331380800000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/104612533~0~1~GBR~1330178010840~49~1~4227.58~N~N:104612550~Byrne Group Plate~O~ACTIVE~1331294400000~Horse RacingANTEPOSTGBChelt 15th Mar~/7/10394282/10394283/26790775/104612550~0~1~GBR~1330178010840~78~1~2416.92~N~N:104612552~Pertemps Hcap Hrd~O~ACTIVE~1331294400000~Horse RacingANTEPOSTGBChelt 15th Mar~/7/10394282/10394283/26790775/104612552~0~1~GBR~1330178010840~92~1~7720.46~N~N:104612553~Centenary Hcap Chs~O~ACTIVE~1331121600000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/104612553~0~1~GBR~1330178010840~71~1~3681.9~N~N:104612555~Kim Muir Hcap Chs~O~ACTIVE~1331294400000~Horse RacingANTEPOSTGBChelt 15th Mar~/7/10394282/10394283/26790775/104612555~0~1~GBR~1330178010840~103~1~1790.16~N~N:104612581~XC Hcap Chs~O~ACTIVE~1331121600000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/104612581~0~1~GBR~1330178010840~41~1~14312.26~N~N:104612720~NH Chs~O~ACTIVE~1331208000000~Horse RacingANTEPOSTGBChelt 14th Mar~/7/10394282/10394283/26790769/104612720~0~1~GBR~1330178010840~57~1~12571.36~N~N:104612950~Coral Cup~O~ACTIVE~1331208000000~Horse RacingANTEPOSTGBChelt 14th Mar~/7/10394282/10394283/26790769/104612950~0~1~GBR~1330178010840~148~1~5174.92~N~N:104612952~Fred Winter Hcap Hrd~O~ACTIVE~1331208000000~Horse RacingANTEPOSTGBChelt 14th Mar~/7/10394282/10394283/26790769/104612952~0~1~GBR~1330178010840~81~1~9165.18~N~N:104615627~Top Flat Jockey 2012~O~ACTIVE~1333191600000~Horse RacingGBSpecial BetsFlat Specials~/7/298251/467121/4391229/104615627~0~1~GBR~1330178010840~19~1~1106.88~N~N:104679513~Gold Cup W/O Long/Kauto~O~ACTIVE~1331380800000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/104679513~0~1~GBR~1330178010840~99~1~13752.34~N~N:104687200~Champion Hrd W/O HFly~O~ACTIVE~1331121600000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/104687200~0~1~GBR~1330178010840~71~1~10418.84~N~N:104692521~World Hrd W/O B Bucks~O~ACTIVE~1331294400000~Horse RacingANTEPOSTGBChelt 15th Mar~/7/10394282/10394283/26790775/104692521~0~1~GBR~1330178010840~69~1~9338.96~N~N:104697154~Top Jockey~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104697154~0~1~GBR~1330178010840~19~1~3264.78~N~Y:104697601~Official Going~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104697601~0~1~GBR~1330178010840~5~1~354.22~N~N:104698201~Winning Distance (Odds)~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104698201~0~1~GBR~1330178010840~3~1~602.4~N~Y:104698774~Top Trainer~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104698774~0~1~GBR~1330178010840~13~1~4187.68~N~Y:104745810~NH Chs TBP~O~ACTIVE~1331208000000~Horse RacingANTEPOSTGBChelt 14th Mar~/7/10394282/10394283/26790769/104745810~0~1~GBR~1330178010840~57~3~1793.7~N~N:104779772~Racing Plus Chs~O~SUSPENDED~1329991200000~Horse RacingANTEPOSTGBKemp 25th Feb~/7/10394282/10394283/26803346/104779772~0~1~GBR~1330178010840~10~1~7150.32~N~N:104816329~Winning Distance (Line)~L~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104816329~0~1~GBR~1330178010840~1~0~0.0~N~Y:104816358~AP McCoy Winners~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104816358~0~1~GBR~1330178010840~3~1~85.34~N~Y:104816361~B Geraghty Winners~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104816361~0~1~GBR~1330178010840~3~1~4.0~N~Y:104816362~R Walsh Winners~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104816362~0~1~GBR~1330178010840~3~1~11.38~N~Y:104816367~Irish Trained Winners~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104816367~0~1~GBR~1330178010840~5~1~74.88~N~Y:104816410~Jockey/Trainer Double~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104816410~0~1~GBR~1330178010840~9~1~20.0~N~Y:104816425~Longest SP Winner~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104816425~0~1~GBR~1330178010840~3~1~417.46~N~Y:104816427~NJ Henderson Winners~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104816427~0~1~GBR~1330178010840~3~1~150.0~N~Y:104816434~PF Nicholls Winners~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104816434~0~1~GBR~1330178010840~3~1~144.0~N~Y:104816439~WP Mullins Winners~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104816439~0~1~GBR~1330178010840~3~1~6.0~N~Y:104816446~Odd v Even~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104816446~0~1~GBR~1330178010840~3~1~362.46~N~Y:104816451~PF Nicholls v WP Mullins~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104816451~0~1~GBR~1330178010840~2~1~140.0~N~Y:104816455~R Walsh v B Geraghty~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104816455~0~1~GBR~1330178010840~2~1~10.0~N~Y:104816483~Biggest Win Dist~O~ACTIVE~1331645400000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104816483~0~1~GBR~1330178010840~3~1~46.44~N~Y:104831311~Lincoln Hcap~O~ACTIVE~1331035200000~Horse RacingANTEPOSTGBDonc 31st Mar~/7/10394282/10394283/26806029/104831311~0~1~GBR~1330178010840~97~1~1839.02~N~N:104861388~Repeat Big 4 Champions?~O~ACTIVE~1331651700000~Horse RacingGBCheltenham Festival Specials~/7/298251/26798515/104861388~0~1~GBR~1330178010840~5~1~606.0~N~Y:104922244~Favourites Acca~O~ACTIVE~1330430400000~Horse RacingANTEPOSTGBChelt AP Specials~/7/10394282/10394283/26790824/104922244~0~1~GBR~1330178010840~31~0~1322.16~N~N:104942241~Winter Derby~O~ACTIVE~1331035200000~Horse RacingANTEPOSTGBLing 24th Mar~/7/10394282/10394283/26812183/104942241~0~1~GBR~1330178010840~32~1~0.0~N~N:104951259~3m Hcap Chs~O~ACTIVE~1330182300000~Horse RacingGBKemp 25th Feb~/7/298251/26813087/104951259~0~1~GBR~1330178010840~10~1~329948.84~Y~Y:104951260~To Be Placed~O~ACTIVE~1330182300000~Horse RacingGBKemp 25th Feb~/7/298251/26813087/104951260~0~1~GBR~1330178010840~10~3~40818.24~Y~Y:104961790~Grand Annual Chs TBP~O~ACTIVE~1331380800000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/104961790~0~1~GBR~1330178010840~49~4~129.44~N~N:104961791~XC Hcap Chs TBP~O~ACTIVE~1331121600000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/104961791~0~1~GBR~1330178010840~41~4~111.52~N~N:104961859~Coral Cup TBP~O~ACTIVE~1331208000000~Horse RacingANTEPOSTGBChelt 14th Mar~/7/10394282/10394283/26790769/104961859~0~1~GBR~1330178010840~148~4~164.6~N~N:104961861~Fred Winter Hcap Hrd TBP~O~ACTIVE~1331208000000~Horse RacingANTEPOSTGBChelt 14th Mar~/7/10394282/10394283/26790769/104961861~0~1~GBR~1330178010840~81~4~123.98~N~N:104961969~Centenary Hcap Chs TBP~O~ACTIVE~1331121600000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/104961969~0~1~GBR~1330178010840~71~4~108.54~N~N:104961970~County Hurdle TBP~O~ACTIVE~1331380800000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/104961970~0~1~GBR~1330178010840~109~4~237.52~N~N:104962523~Festival Hcap Chs TBP~O~ACTIVE~1331121600000~Horse RacingANTEPOSTGBChelt 13th Mar~/7/10394282/10394283/26790766/104962523~0~1~GBR~1330178010840~84~4~184.12~N~N:104962712~Martin Pipe Hcap Hrd TBP~O~ACTIVE~1331380800000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/104962712~0~1~GBR~1330178010840~192~4~53.6~N~N:104962723~Byrne Group Plate TBP~O~ACTIVE~1331294400000~Horse RacingANTEPOSTGBChelt 15th Mar~/7/10394282/10394283/26790775/104962723~0~1~GBR~1330178010840~78~4~20.0~N~N:104963687~1m4f Mdn Stks~O~ACTIVE~1330177500000~Horse RacingGBLing 25th Feb~/7/298251/26812906/104963687~1~1~GBR~1330178010840~6~1~1335164.01~Y~Y:104963688~To Be Placed~O~ACTIVE~1330177500000~Horse RacingGBLing 25th Feb~/7/298251/26812906/104963688~1~1~GBR~1330178010840~6~2~146574.26~Y~Y:104963689~6f Hcap~O~ACTIVE~1330179300000~Horse RacingGBLing 25th Feb~/7/298251/26812906/104963689~0~1~GBR~1330178010840~12~1~121225.62~Y~Y:104963690~To Be Placed~O~ACTIVE~1330179300000~Horse RacingGBLing 25th Feb~/7/298251/26812906/104963690~0~1~GBR~1330178010840~12~3~18753.48~Y~Y:104963691~6f Listed~O~ACTIVE~1330181400000~Horse RacingGBLing 25th Feb~/7/298251/26812906/104963691~0~1~GBR~1330178010840~11~1~81967.68~Y~Y:104963692~To Be Placed~O~ACTIVE~1330181400000~Horse RacingGBLing 25th Feb~/7/298251/26812906/104963692~0~1~GBR~1330178010840~11~3~9216.36~Y~Y:104963693~1m2f Listed~O~ACTIVE~1330183200000~Horse RacingGBLing 25th Feb~/7/298251/26812906/104963693~0~1~GBR~1330178010840~11~1~41356.8~Y~Y:104963694~To Be Placed~O~ACTIVE~1330183200000~Horse RacingGBLing 25th Feb~/7/298251/26812906/104963694~0~1~GBR~1330178010840~11~3~12655.18~Y~Y:104963695~7f Hcap~O~ACTIVE~1330185300000~Horse RacingGBLing 25th Feb~/7/298251/26812906/104963695~0~1~GBR~1330178010840~8~1~24032.84~Y~Y:104963696~To Be Placed~O~ACTIVE~1330185300000~Horse RacingGBLing 25th Feb~/7/298251/26812906/104963696~0~1~GBR~1330178010840~8~3~5948.04~Y~Y:104963697~1m5f Hcap~O~ACTIVE~1330187400000~Horse RacingGBLing 25th Feb~/7/298251/26812906/104963697~0~1~GBR~1330178010840~7~1~12096.62~Y~Y:104963698~To Be Placed~O~ACTIVE~1330187400000~Horse RacingGBLing 25th Feb~/7/298251/26812906/104963698~0~1~GBR~1330178010840~7~3~2570.58~Y~Y:104963699~5f Hcap~O~ACTIVE~1330189500000~Horse RacingGBLing 25th Feb~/7/298251/26812906/104963699~0~1~GBR~1330178010840~8~1~26191.58~Y~Y:104963700~To Be Placed~O~ACTIVE~1330189500000~Horse RacingGBLing 25th Feb~/7/298251/26812906/104963700~0~1~GBR~1330178010840~8~3~5288.0~Y~Y:104967997~Ctappers v Rapid~O~SUSPENDED~1330177500000~Horse RacingGBMatch BetsLing (AvB) 25th Feb~/7/298251/463814/26813000/104967997~0~1~GBR~1330178010840~2~1~2438.59~N~N:104967998~SulisM v Aldermoor~O~ACTIVE~1330179300000~Horse RacingGBMatch BetsLing (AvB) 25th Feb~/7/298251/463814/26813000/104967998~0~1~GBR~1330178010840~2~1~377.32~N~N:104967999~Oasis v Palace~O~ACTIVE~1330181400000~Horse RacingGBMatch BetsLing (AvB) 25th Feb~/7/298251/463814/26813000/104967999~0~1~GBR~1330178010840~2~1~211.3~N~N:104968001~Loyalty v Emmas~O~ACTIVE~1330183200000~Horse RacingGBMatch BetsLing (AvB) 25th Feb~/7/298251/463814/26813000/104968001~0~1~GBR~1330178010840~2~1~0.0~N~N:104968002~CutAnd v Showboat~O~ACTIVE~1330185300000~Horse RacingGBMatch BetsLing (AvB) 25th Feb~/7/298251/463814/26813000/104968002~0~1~GBR~1330178010840~2~1~0.0~N~N:104968003~Quinsm v TheHoly~O~ACTIVE~1330187400000~Horse RacingGBMatch BetsLing (AvB) 25th Feb~/7/298251/463814/26813000/104968003~0~1~GBR~1330178010840~2~1~6.34~N~N:104968004~Taajub v Diamond~O~ACTIVE~1330189500000~Horse RacingGBMatch BetsLing (AvB) 25th Feb~/7/298251/463814/26813000/104968004~0~1~GBR~1330178010840~2~1~0.0~N~N:104968007~Lingfield~L~ACTIVE~1330177500000~Horse RacingGBDaily Win Dist Line~/7/298251/75873/104968007~0~1~GBR~1330178010840~1~0~178.0~N~N:104968011~Lingfield~O~ACTIVE~1330177500000~Horse RacingGBDaily Win Dist Odds~/7/298251/12713050/104968011~1~1~GBR~1330178010840~3~1~1396.12~N~Y:104968015~Forecast~O~SUSPENDED~1330177500000~Horse RacingGBForecast BettingLing (F/C) 25th Feb~/7/298251/518212/26813001/104968015~0~1~GBR~1330178010840~30~1~10371.72~N~N:104968017~Reverse FC~O~ACTIVE~1330185300000~Horse RacingGBReverse ForecastLing (RFC) 25th Feb~/7/298251/14479933/26813002/104968017~0~1~GBR~1330178010840~28~1~10.0~N~N:104968020~Reverse FC~O~ACTIVE~1330187400000~Horse RacingGBReverse ForecastLing (RFC) 25th Feb~/7/298251/14479933/26813002/104968020~0~1~GBR~1330178010840~21~1~10.0~N~N:104968021~Reverse FC~O~ACTIVE~1330189500000~Horse RacingGBReverse ForecastLing (RFC) 25th Feb~/7/298251/14479933/26813002/104968021~0~1~GBR~1330178010840~28~1~4.0~N~N:104968433~2m4f Mdn Hrd~O~ACTIVE~1330178700000~Horse RacingGBChep 25th Feb~/7/298251/26813086/104968433~0~1~GBR~1330178010840~11~1~33677.9~Y~Y:104968434~To Be Placed~O~ACTIVE~1330178700000~Horse RacingGBChep 25th Feb~/7/298251/26813086/104968434~0~1~GBR~1330178010840~11~3~8694.8~Y~Y:104968435~3m Nov Chs~O~ACTIVE~1330180800000~Horse RacingGBChep 25th Feb~/7/298251/26813086/104968435~0~1~GBR~1330178010840~3~1~62772.34~Y~Y:104968436~To Be Placed~O~ACTIVE~1330180800000~Horse RacingGBChep 25th Feb~/7/298251/26813086/104968436~0~1~GBR~1330178010840~3~2~8726.78~Y~Y:104968437~2m Hcap Hrd~O~ACTIVE~1330182600000~Horse RacingGBChep 25th Feb~/7/298251/26813086/104968437~0~1~GBR~1330178010840~8~1~29975.24~Y~Y:104968438~To Be Placed~O~ACTIVE~1330182600000~Horse RacingGBChep 25th Feb~/7/298251/26813086/104968438~0~1~GBR~1330178010840~8~3~5511.46~Y~Y:104968439~2m Hcap Chs~O~ACTIVE~1330184700000~Horse RacingGBChep 25th Feb~/7/298251/26813086/104968439~0~1~GBR~1330178010840~9~1~35022.38~Y~Y:104968440~To Be Placed~O~ACTIVE~1330184700000~Horse RacingGBChep 25th Feb~/7/298251/26813086/104968440~0~1~GBR~1330178010840~9~3~7181.96~Y~Y:104968441~2m Hcap Hrd~O~ACTIVE~1330186800000~Horse RacingGBChep 25th Feb~/7/298251/26813086/104968441~0~1~GBR~1330178010840~9~1~34142.26~Y~Y:104968442~To Be Placed~O~ACTIVE~1330186800000~Horse RacingGBChep 25th Feb~/7/298251/26813086/104968442~0~1~GBR~1330178010840~9~3~4877.1~Y~Y:104968443~2m Hcap Chs~O~ACTIVE~1330188900000~Horse RacingGBChep 25th Feb~/7/298251/26813086/104968443~0~1~GBR~1330178010840~8~1~9515.1~Y~Y:104968444~To Be Placed~O~ACTIVE~1330188900000~Horse RacingGBChep 25th Feb~/7/298251/26813086/104968444~0~1~GBR~1330178010840~8~3~2787.14~Y~Y:104968445~2m NHF~O~ACTIVE~1330191000000~Horse RacingGBChep 25th Feb~/7/298251/26813086/104968445~0~1~GBR~1330178010840~13~1~5194.12~Y~Y:104968446~To Be Placed~O~ACTIVE~1330191000000~Horse RacingGBChep 25th Feb~/7/298251/26813086/104968446~0~1~GBR~1330178010840~13~3~878.06~Y~Y:104968447~2m Juv Hrd~O~ACTIVE~1330178400000~Horse RacingGBKemp 25th Feb~/7/298251/26813087/104968447~0~1~GBR~1330178010840~8~1~230888.04~Y~Y:104968448~To Be Placed~O~ACTIVE~1330178400000~Horse RacingGBKemp 25th Feb~/7/298251/26813087/104968448~0~1~GBR~1330178010840~8~3~33339.18~Y~Y:104968449~2m4f Hcap Chs~O~ACTIVE~1330180200000~Horse RacingGBKemp 25th Feb~/7/298251/26813087/104968449~0~1~GBR~1330178010840~8~1~80485.72~Y~Y:104968450~To Be Placed~O~ACTIVE~1330180200000~Horse RacingGBKemp 25th Feb~/7/298251/26813087/104968450~0~1~GBR~1330178010840~8~3~13208.06~Y~Y:104968453~2m Nov Hrd~O~ACTIVE~1330184400000~Horse RacingGBKemp 25th Feb~/7/298251/26813087/104968453~0~1~GBR~1330178010840~6~1~89884.96~Y~Y:104968454~To Be Placed~O~ACTIVE~1330184400000~Horse RacingGBKemp 25th Feb~/7/298251/26813087/104968454~0~1~GBR~1330178010840~6~2~5579.62~Y~Y:104968455~2m4f Nov Chs~O~ACTIVE~1330186200000~Horse RacingGBKemp 25th Feb~/7/298251/26813087/104968455~0~1~GBR~1330178010840~6~1~53650.08~Y~Y:104968456~To Be Placed~O~ACTIVE~1330186200000~Horse RacingGBKemp 25th Feb~/7/298251/26813087/104968456~0~1~GBR~1330178010840~6~2~3507.46~Y~Y:104968457~2m5f Hcap Hrd~O~ACTIVE~1330188300000~Horse RacingGBKemp 25th Feb~/7/298251/26813087/104968457~0~1~GBR~1330178010840~15~1~52068.5~Y~Y:104968458~To Be Placed~O~ACTIVE~1330188300000~Horse RacingGBKemp 25th Feb~/7/298251/26813087/104968458~0~1~GBR~1330178010840~15~3~10915.8~Y~Y:104968459~2m NHF~O~ACTIVE~1330190100000~Horse RacingGBKemp 25th Feb~/7/298251/26813087/104968459~0~1~GBR~1330178010840~4~1~17324.56~Y~Y:104968460~To Be Placed~O~ACTIVE~1330190100000~Horse RacingGBKemp 25th Feb~/7/298251/26813087/104968460~0~1~GBR~1330178010840~4~2~637.6~Y~Y:104968478~2m6f Nov Hrd~O~ACTIVE~1330177800000~Horse RacingGBNewc 25th Feb~/7/298251/26813089/104968478~0~1~GBR~1330178010840~9~1~205947.44~Y~Y:104968479~To Be Placed~O~ACTIVE~1330177800000~Horse RacingGBNewc 25th Feb~/7/298251/26813089/104968479~0~1~GBR~1330178010840~9~3~43322.48~Y~Y:104968480~2m4f Hcap Chs~O~ACTIVE~1330179600000~Horse RacingGBNewc 25th Feb~/7/298251/26813089/104968480~0~1~GBR~1330178010840~8~1~29801.22~Y~Y:104968481~To Be Placed~O~ACTIVE~1330179600000~Horse RacingGBNewc 25th Feb~/7/298251/26813089/104968481~0~1~GBR~1330178010840~8~3~7813.08~Y~Y:104968482~2m Hcap Hrd~O~ACTIVE~1330181700000~Horse RacingGBNewc 25th Feb~/7/298251/26813089/104968482~0~1~GBR~1330178010840~11~1~58355.5~Y~Y:104968483~To Be Placed~O~ACTIVE~1330181700000~Horse RacingGBNewc 25th Feb~/7/298251/26813089/104968483~0~1~GBR~1330178010840~11~3~9540.9~Y~Y:104968484~4m1f Hcap Chs~O~ACTIVE~1330183500000~Horse RacingGBNewc 25th Feb~/7/298251/26813089/104968484~0~1~GBR~1330178010840~11~1~272816.82~Y~Y:104968485~To Be Placed~O~ACTIVE~1330183500000~Horse RacingGBNewc 25th Feb~/7/298251/26813089/104968485~0~1~GBR~1330178010840~11~3~23510.46~Y~Y:104968486~2m Nov Hrd~O~ACTIVE~1330185600000~Horse RacingGBNewc 25th Feb~/7/298251/26813089/104968486~0~1~GBR~1330178010840~15~1~20730.72~Y~Y:104968487~To Be Placed~O~ACTIVE~1330185600000~Horse RacingGBNewc 25th Feb~/7/298251/26813089/104968487~0~1~GBR~1330178010840~15~3~5860.96~Y~Y:104968488~3m Nov Chs~O~ACTIVE~1330187700000~Horse RacingGBNewc 25th Feb~/7/298251/26813089/104968488~0~1~GBR~1330178010840~6~1~21839.26~Y~Y:104968489~To Be Placed~O~ACTIVE~1330187700000~Horse RacingGBNewc 25th Feb~/7/298251/26813089/104968489~0~1~GBR~1330178010840~6~2~1913.32~Y~Y:104968490~2m NHF~O~ACTIVE~1330189800000~Horse RacingGBNewc 25th Feb~/7/298251/26813089/104968490~0~1~GBR~1330178010840~11~1~10793.6~Y~Y:104968491~To Be Placed~O~ACTIVE~1330189800000~Horse RacingGBNewc 25th Feb~/7/298251/26813089/104968491~0~1~GBR~1330178010840~11~3~3529.16~Y~Y:104968512~2m6f Nov Hrd~O~ACTIVE~1330265100000~Horse RacingGBFont 26th Feb~/7/298251/26813091/104968512~0~1~GBR~1330178010840~9~1~0.0~Y~Y:104968513~To Be Placed~O~ACTIVE~1330265100000~Horse RacingGBFont 26th Feb~/7/298251/26813091/104968513~0~1~GBR~1330178010840~9~3~0.0~Y~Y:104968514~2m6f Nov Chs~O~ACTIVE~1330266900000~Horse RacingGBFont 26th Feb~/7/298251/26813091/104968514~0~1~GBR~1330178010840~5~1~0.0~Y~Y:104968515~To Be Placed~O~ACTIVE~1330266900000~Horse RacingGBFont 26th Feb~/7/298251/26813091/104968515~0~1~GBR~1330178010840~5~2~0.0~Y~Y:104968516~2m6f Hcap Chs~O~ACTIVE~1330269000000~Horse RacingGBFont 26th Feb~/7/298251/26813091/104968516~0~1~GBR~1330178010840~9~1~18.0~Y~Y:104968517~To Be Placed~O~ACTIVE~1330269000000~Horse RacingGBFont 26th Feb~/7/298251/26813091/104968517~0~1~GBR~1330178010840~9~3~0.0~Y~Y:104968518~2m4f Grd2 Hrd~O~ACTIVE~1330270800000~Horse RacingGBFont 26th Feb~/7/298251/26813091/104968518~0~1~GBR~1330178010840~8~1~0.0~Y~Y:104968519~To Be Placed~O~ACTIVE~1330270800000~Horse RacingGBFont 26th Feb~/7/298251/26813091/104968519~0~1~GBR~1330178010840~8~3~0.0~Y~Y:104968520~3m2f Hunt Chs~O~ACTIVE~1330272900000~Horse RacingGBFont 26th Feb~/7/298251/26813091/104968520~0~1~GBR~1330178010840~7~1~26.0~Y~Y:104968521~To Be Placed~O~ACTIVE~1330272900000~Horse RacingGBFont 26th Feb~/7/298251/26813091/104968521~0~1~GBR~1330178010840~7~2~0.0~Y~Y:104968522~2m2f Hcap Hrd~O~ACTIVE~1330274700000~Horse RacingGBFont 26th Feb~/7/298251/26813091/104968522~0~1~GBR~1330178010840~9~1~3.4~Y~Y:104968523~To Be Placed~O~ACTIVE~1330274700000~Horse RacingGBFont 26th Feb~/7/298251/26813091/104968523~0~1~GBR~1330178010840~9~3~0.0~Y~Y:104968524~2m2f NHF~O~ACTIVE~1330276500000~Horse RacingGBFont 26th Feb~/7/298251/26813091/104968524~0~1~GBR~1330178010840~12~1~0.0~Y~Y:104968525~To Be Placed~O~ACTIVE~1330276500000~Horse RacingGBFont 26th Feb~/7/298251/26813091/104968525~0~1~GBR~1330178010840~12~3~0.0~Y~Y:104968526~2m Nov Hrd~O~ACTIVE~1330266000000~Horse RacingGBTowc 26th Feb~/7/298251/26813092/104968526~0~1~GBR~1330178010840~13~1~8.0~Y~Y:104968527~To Be Placed~O~ACTIVE~1330266000000~Horse RacingGBTowc 26th Feb~/7/298251/26813092/104968527~0~1~GBR~1330178010840~13~3~0.0~Y~Y:104968528~2m Nov Hrd~O~ACTIVE~1330267800000~Horse RacingGBTowc 26th Feb~/7/298251/26813092/104968528~0~1~GBR~1330178010840~13~1~4.0~Y~Y:104968529~To Be Placed~O~ACTIVE~1330267800000~Horse RacingGBTowc 26th Feb~/7/298251/26813092/104968529~0~1~GBR~1330178010840~13~3~0.0~Y~Y:104968530~2m Hcap Hrd~O~ACTIVE~1330269600000~Horse RacingGBTowc 26th Feb~/7/298251/26813092/104968530~0~1~GBR~1330178010840~15~1~0.0~Y~Y:104968531~To Be Placed~O~ACTIVE~1330269600000~Horse RacingGBTowc 26th Feb~/7/298251/26813092/104968531~0~1~GBR~1330178010840~15~3~0.0~Y~Y:104968532~2m3f Hcap Chs~O~ACTIVE~1330271400000~Horse RacingGBTowc 26th Feb~/7/298251/26813092/104968532~0~1~GBR~1330178010840~10~1~0.0~Y~Y:104968533~To Be Placed~O~ACTIVE~1330271400000~Horse RacingGBTowc 26th Feb~/7/298251/26813092/104968533~0~1~GBR~1330178010840~10~3~0.0~Y~Y:104968534~3m Hcap Hrd~O~ACTIVE~1330273500000~Horse RacingGBTowc 26th Feb~/7/298251/26813092/104968534~0~1~GBR~1330178010840~18~1~0.0~Y~Y:104968535~To Be Placed~O~ACTIVE~1330273500000~Horse RacingGBTowc 26th Feb~/7/298251/26813092/104968535~0~1~GBR~1330178010840~18~4~0.0~Y~Y:104968536~2m6f Hcap Chs~O~ACTIVE~1330275300000~Horse RacingGBTowc 26th Feb~/7/298251/26813092/104968536~0~1~GBR~1330178010840~12~1~0.0~Y~Y:104968537~To Be Placed~O~ACTIVE~1330275300000~Horse RacingGBTowc 26th Feb~/7/298251/26813092/104968537~0~1~GBR~1330178010840~12~3~0.0~Y~Y:104968538~2m NHF~O~ACTIVE~1330277100000~Horse RacingGBTowc 26th Feb~/7/298251/26813092/104968538~0~1~GBR~1330178010840~13~1~8.0~Y~Y:104968539~To Be Placed~O~ACTIVE~1330277100000~Horse RacingGBTowc 26th Feb~/7/298251/26813092/104968539~0~1~GBR~1330178010840~13~3~0.0~Y~Y:104968557~Forecast~O~ACTIVE~1330180800000~Horse RacingGBForecast BettingChep (F/C) 25th Feb~/7/298251/518212/26813099/104968557~0~1~GBR~1330178010840~6~1~110.74~N~N:104968558~Reverse FC~O~ACTIVE~1330182600000~Horse RacingGBReverse ForecastChep (RFC) 25th Feb~/7/298251/14479933/26813100/104968558~0~1~GBR~1330178010840~28~1~40.24~N~N:104968559~Reverse FC~O~ACTIVE~1330184700000~Horse RacingGBReverse ForecastChep (RFC) 25th Feb~/7/298251/14479933/26813100/104968559~0~1~GBR~1330178010840~36~1~36.0~N~N:104968560~Reverse FC~O~ACTIVE~1330186800000~Horse RacingGBReverse ForecastChep (RFC) 25th Feb~/7/298251/14479933/26813100/104968560~0~1~GBR~1330178010840~36~1~8.0~N~N:104968561~Reverse FC~O~ACTIVE~1330188900000~Horse RacingGBReverse ForecastChep (RFC) 25th Feb~/7/298251/14479933/26813100/104968561~0~1~GBR~1330178010840~28~1~14.0~N~N:104968800~Ardkilly v Western~O~SUSPENDED~1330176600000~Horse RacingGBMatch BetsChep (AvB) 25th Feb~/7/298251/463814/26813107/104968800~0~1~GBR~1330178010840~2~1~2626.51~N~N:104968801~WingsOf v Special~O~ACTIVE~1330178700000~Horse RacingGBMatch BetsChep (AvB) 25th Feb~/7/298251/463814/26813107/104968801~0~1~GBR~1330178010840~2~1~396.03~N~N:104968802~Roalco v Golden~O~ACTIVE~1330180800000~Horse RacingGBMatch BetsChep (AvB) 25th Feb~/7/298251/463814/26813107/104968802~0~1~GBR~1330178010840~2~1~0.0~N~N:104968803~Bendant v Shallow~O~ACTIVE~1330182600000~Horse RacingGBMatch BetsChep (AvB) 25th Feb~/7/298251/463814/26813107/104968803~0~1~GBR~1330178010840~2~1~200.0~N~N:104968804~Arctic v Educated~O~ACTIVE~1330184700000~Horse RacingGBMatch BetsChep (AvB) 25th Feb~/7/298251/463814/26813107/104968804~0~1~GBR~1330178010840~2~1~0.0~N~N:104968805~CharmS v DreamE~O~ACTIVE~1330186800000~Horse RacingGBMatch BetsChep (AvB) 25th Feb~/7/298251/463814/26813107/104968805~0~1~GBR~1330178010840~2~1~0.0~N~N:104968807~LadyW v Paddy~O~ACTIVE~1330188900000~Horse RacingGBMatch BetsChep (AvB) 25th Feb~/7/298251/463814/26813107/104968807~0~1~GBR~1330178010840~2~1~0.0~N~N:104968808~TheMad v Workbench~O~ACTIVE~1330191000000~Horse RacingGBMatch BetsChep (AvB) 25th Feb~/7/298251/463814/26813107/104968808~0~1~GBR~1330178010840~2~1~0.0~N~N:104968871~Reverse FC~O~ACTIVE~1330178400000~Horse RacingGBReverse ForecastKemp (RFC) 25th Feb~/7/298251/14479933/26813108/104968871~0~1~GBR~1330178010840~28~1~375.36~N~N:104968872~Reverse FC~O~ACTIVE~1330180200000~Horse RacingGBReverse ForecastKemp (RFC) 25th Feb~/7/298251/14479933/26813108/104968872~0~1~GBR~1330178010840~28~1~62.0~N~N:104968873~Reverse FC~O~ACTIVE~1330182300000~Horse RacingGBReverse ForecastKemp (RFC) 25th Feb~/7/298251/14479933/26813108/104968873~0~1~GBR~1330178010840~45~1~438.34~N~N:104968874~Reverse FC~O~ACTIVE~1330184400000~Horse RacingGBReverse ForecastKemp (RFC) 25th Feb~/7/298251/14479933/26813108/104968874~0~1~GBR~1330178010840~15~1~58.34~N~N:104968876~Forecast~O~ACTIVE~1330186200000~Horse RacingGBForecast BettingKemp (F/C) 25th Feb~/7/298251/518212/26813111/104968876~0~1~GBR~1330178010840~30~1~14.0~N~N:104968939~Forecast~O~ACTIVE~1330190100000~Horse RacingGBForecast BettingKemp (F/C) 25th Feb~/7/298251/518212/26813111/104968939~0~1~GBR~1330178010840~12~1~40.0~N~N:104969064~Sadlers v Dildar~O~ACTIVE~1330178400000~Horse RacingGBMatch BetsKemp (AvB) 25th Feb~/7/298251/463814/26813114/104969064~0~1~GBR~1330178010840~2~1~350.39~N~N:104969127~HuntB v NotSoSure~O~ACTIVE~1330180200000~Horse RacingGBMatch BetsKemp (AvB) 25th Feb~/7/298251/463814/26813114/104969127~0~1~GBR~1330178010840~2~1~0.0~N~N:104969128~Planet v Nacarat~O~ACTIVE~1330182300000~Horse RacingGBMatch BetsKemp (AvB) 25th Feb~/7/298251/463814/26813114/104969128~0~1~GBR~1330178010840~2~1~200.0~N~N:104969130~Cristal v Minella~O~ACTIVE~1330186200000~Horse RacingGBMatch BetsKemp (AvB) 25th Feb~/7/298251/463814/26813114/104969130~0~1~GBR~1330178010840~2~1~0.0~N~N:104969131~Ashbri v SemiC~O~ACTIVE~1330188300000~Horse RacingGBMatch BetsKemp (AvB) 25th Feb~/7/298251/463814/26813114/104969131~0~1~GBR~1330178010840~2~1~0.0~N~N:104969132~Virginia v OffThe~O~ACTIVE~1330190100000~Horse RacingGBMatch BetsKemp (AvB) 25th Feb~/7/298251/463814/26813114/104969132~0~1~GBR~1330178010840~2~1~0.0~N~N:104969133~Reverse FC~O~ACTIVE~1330177800000~Horse RacingGBReverse ForecastNewc (RFC) 25th Feb~/7/298251/14479933/26813119/104969133~0~1~GBR~1330178010840~36~1~597.32~N~N:104969134~Reverse FC~O~ACTIVE~1330179600000~Horse RacingGBReverse ForecastNewc (RFC) 25th Feb~/7/298251/14479933/26813119/104969134~0~1~GBR~1330178010840~28~1~14.0~N~N:104969383~Forecast~O~ACTIVE~1330187700000~Horse RacingGBForecast BettingNewc (F/C) 25th Feb~/7/298251/518212/26813124/104969383~0~1~GBR~1330178010840~30~1~32.0~N~N:104969384~BarDeL v Netminder~O~ACTIVE~1330177800000~Horse RacingGBMatch BetsNewc (AvB) 25th Feb~/7/298251/463814/26813126/104969384~0~1~GBR~1330178010840~2~1~508.69~N~N:104969385~MrSyntax v Gansey~O~ACTIVE~1330179600000~Horse RacingGBMatch BetsNewc (AvB) 25th Feb~/7/298251/463814/26813126/104969385~0~1~GBR~1330178010840~2~1~200.0~N~N:104969386~Spieke v Stormy~O~ACTIVE~1330181700000~Horse RacingGBMatch BetsNewc (AvB) 25th Feb~/7/298251/463814/26813126/104969386~0~1~GBR~1330178010840~2~1~200.0~N~N:104969387~Portrait v EyreS~O~ACTIVE~1330183500000~Horse RacingGBMatch BetsNewc (AvB) 25th Feb~/7/298251/463814/26813126/104969387~0~1~GBR~1330178010840~2~1~0.0~N~N:104969389~Frascati v Helpston~O~ACTIVE~1330187700000~Horse RacingGBMatch BetsNewc (AvB) 25th Feb~/7/298251/463814/26813126/104969389~0~1~GBR~1330178010840~2~1~0.0~N~N:104969390~BigWater v KingOf~O~ACTIVE~1330189800000~Horse RacingGBMatch BetsNewc (AvB) 25th Feb~/7/298251/463814/26813126/104969390~0~1~GBR~1330178010840~2~1~0.0~N~N:104969827~Chepstow~O~ACTIVE~1330178700000~Horse RacingGBDaily Win Dist Odds~/7/298251/12713050/104969827~1~1~GBR~1330178010840~3~1~1464.1~N~Y:104969828~Kempton~O~ACTIVE~1330178400000~Horse RacingGBDaily Win Dist Odds~/7/298251/12713050/104969828~0~1~GBR~1330178010840~3~1~1247.8~N~Y:104969829~Newcastle~O~ACTIVE~1330177800000~Horse RacingGBDaily Win Dist Odds~/7/298251/12713050/104969829~0~1~GBR~1330178010840~3~1~883.5~N~Y:104969831~Chepstow~L~ACTIVE~1330178700000~Horse RacingGBDaily Win Dist Line~/7/298251/75873/104969831~0~1~GBR~1330178010840~1~0~788.0~N~N:104969832~Kempton~L~ACTIVE~1330178400000~Horse RacingGBDaily Win Dist Line~/7/298251/75873/104969832~0~1~GBR~1330178010840~1~0~0.0~N~N:104969833~Newcastle~L~ACTIVE~1330177800000~Horse RacingGBDaily Win Dist Line~/7/298251/75873/104969833~0~1~GBR~1330178010840~1~0~623.06~N~N:104977200~Pertemps Hcap Hrd TBP~O~ACTIVE~1331294400000~Horse RacingANTEPOSTGBChelt 15th Mar~/7/10394282/10394283/26790775/104977200~0~1~GBR~1330178010840~92~4~0.0~N~N:104977201~Kim Muir Hcap Chs TBP~O~ACTIVE~1331294400000~Horse RacingANTEPOSTGBChelt 15th Mar~/7/10394282/10394283/26790775/104977201~0~1~GBR~1330178010840~103~4~0.0~N~N:104977203~Foxhunter Chs TBP~O~ACTIVE~1330430400000~Horse RacingANTEPOSTGBChelt 16th Mar~/7/10394282/10394283/26790778/104977203~0~1~GBR~1330178010840~33~3~0.0~N~N:104978686~Forecast~O~ACTIVE~1330266900000~Horse RacingGBForecast BettingFont (F/C) 26th Feb~/7/298251/518212/26813442/104978686~0~1~GBR~1330178010840~20~1~0.0~N~N:104978699~Reverse FC~O~ACTIVE~1330265100000~Horse RacingGBReverse ForecastFont (RFC) 26th Feb~/7/298251/14479933/26813444/104978699~0~1~GBR~1330178010840~36~1~0.0~N~N:104978700~Reverse FC~O~ACTIVE~1330269000000~Horse RacingGBReverse ForecastFont (RFC) 26th Feb~/7/298251/14479933/26813444/104978700~0~1~GBR~1330178010840~36~1~0.0~N~N:104978705~Reverse FC~O~ACTIVE~1330270800000~Horse RacingGBReverse ForecastFont (RFC) 26th Feb~/7/298251/14479933/26813444/104978705~0~1~GBR~1330178010840~28~1~0.0~N~N:104978706~Reverse FC~O~ACTIVE~1330272900000~Horse RacingGBReverse ForecastFont (RFC) 26th Feb~/7/298251/14479933/26813444/104978706~0~1~GBR~1330178010840~21~1~0.0~N~N:104978707~Reverse FC~O~ACTIVE~1330274700000~Horse RacingGBReverse ForecastFont (RFC) 26th Feb~/7/298251/14479933/26813444/104978707~0~1~GBR~1330178010840~36~1~0.0~N~N:104978739~Reverse FC~O~ACTIVE~1330271400000~Horse RacingGBReverse ForecastTowc (RFC) 26th Feb~/7/298251/14479933/26813455/104978739~0~1~GBR~1330178010840~45~1~0.0~N~N:104978814~Michel v DeepP~O~ACTIVE~1330182300000~Horse RacingGBMatch BetsKemp (AvB) 25th Feb~/7/298251/463814/26813114/104978814~0~1~GBR~1330178010840~2~1~110.0~N~N:104978902~Beaumo v Master~O~ACTIVE~1330185600000~Horse RacingGBMatch BetsNewc (AvB) 25th Feb~/7/298251/463814/26813126/104978902~0~1~GBR~1330178010840~2~1~0.0~N~N:104978903~Without Fav(s)~O~SUSPENDED~1330177500000~Horse RacingGBWithout Horse(s)Ling (W/O) 25th Feb~/7/298251/11959133/26813506/104978903~0~1~GBR~1330178010840~5~1~5657.7~N~N:104978906~Without Fav(s)~O~ACTIVE~1330185600000~Horse RacingGBWithout Horse(s)Newc (W/O) 25th Feb~/7/298251/11959133/26813507/104978906~0~1~GBR~1330178010840~14~1~0.0~N~N:104978909~Without Fav(s)~O~ACTIVE~1330184400000~Horse RacingGBWithout Horse(s)Kemp (W/O) 25th Feb~/7/298251/11959133/26813509/104978909~0~1~GBR~1330178010840~5~1~0.0~N~N:104978940~Dodgin v TerreD~O~ACTIVE~1330184400000~Horse RacingGBMatch BetsKemp (AvB) 25th Feb~/7/298251/463814/26813114/104978940~0~1~GBR~1330178010840~2~1~0.0~N~N</marketData>
14
+ <minorErrorCode xsi:nil="1"/>
15
+ </n:Result>
16
+ </n:getAllMarketsResponse>
17
+ </soap:Body>
18
+ </soap:Envelope>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n2="http://www.betfair.com/publicapi/types/exchange/v5/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <soap:Body>
4
+ <n:getAllMarketsResponse xmlns:n="http://www.betfair.com/publicapi/v5/BFExchangeService/">
5
+ <n:Result xsi:type="n2:GetAllMarketsResp">
6
+ <header xsi:type="n2:APIResponseHeader">
7
+ <errorCode xsi:type="n2:APIErrorEnum">NO_SESSION</errorCode>
8
+ <minorErrorCode xsi:nil="1"/>
9
+ <sessionToken xsi:nil="1"/>
10
+ <timestamp xsi:type="xsd:dateTime">2012-02-25T13:48:41.169Z</timestamp>
11
+ </header>
12
+ <errorCode xsi:type="n2:GetAllMarketsErrorEnum">API_ERROR</errorCode>
13
+ <marketData xsi:nil="1"/>
14
+ <minorErrorCode xsi:nil="1"/>
15
+ </n:Result>
16
+ </n:getAllMarketsResponse>
17
+ </soap:Body>
18
+ </soap:Envelope>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n2="http://www.betfair.com/publicapi/types/exchange/v5/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><n:getMarketResponse xmlns:n="http://www.betfair.com/publicapi/v5/BFExchangeService/"><n:Result xsi:type="n2:GetMarketResp"><header xsi:type="n2:APIResponseHeader"><errorCode xsi:type="n2:APIErrorEnum">OK</errorCode><minorErrorCode xsi:nil="1"></minorErrorCode><sessionToken xsi:type="xsd:string">10MDBCK7Mk4Gqh3asbYenOPB49RQf6Mbg2N+EpCO2ow=</sessionToken><timestamp xsi:type="xsd:dateTime">2012-02-25T15:20:02.090Z</timestamp></header><errorCode xsi:type="n2:GetMarketErrorEnum">OK</errorCode><market xsi:type="n2:Market"><countryISO3 xsi:type="xsd:string">GBR</countryISO3><discountAllowed xsi:type="xsd:boolean">true</discountAllowed><eventTypeId xsi:type="xsd:int">7</eventTypeId><lastRefresh xsi:type="xsd:long">1330183199725</lastRefresh><marketBaseRate xsi:type="xsd:float">5.0</marketBaseRate><marketDescription xsi:type="xsd:string">&lt;table cellborder=&quot;0&quot; width=&quot;100%&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://content-cache.betfair.com/images/en_GB/homepage/ATRlogo.gif&quot; border=&quot;0&quot;&gt;&lt;/td&gt;&lt;td width=&quot;5&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&quot;marketInfo_GreyText&quot;&gt;This meeting is on Attheraces&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;&lt;a href=&quot;http://radio.betfair.com&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot; http://content-cache.betfair.com/images/en_GB/mr_tr.gif&quot; title=&quot;Timeform Radio&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a href=&quot;http://form.horseracing.betfair.com&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot; http://content-cache.betfair.com/images/en_GB/mr_fr.gif&quot; title=”Form/ Results” border=&quot;0&quot;&gt;&lt;/a&gt;
3
+ &lt;br&gt;&lt;br&gt;&lt;b&gt;MARKET INFORMATION&lt;/b&gt;&lt;br&gt;&lt;br&gt;For further information please see &lt;a href=http://content.betfair.com/aboutus/content.asp?sWhichKey=Rules%20and%20Regulations#undefined.do style=color:0163ad; text-decoration: underline; target=_blank&gt;Rules &amp; Regs.&lt;/a&gt;&lt;br&gt;&lt;br&gt;Who will win this race? Betfair Non-Runner Rule applies. This market will turn IN PLAY at the off with unmatched bets (with the exception of bets for which the &quot;keep&quot; option has been selected) cancelled once the Betfair SP reconciliation process has been completed. Betting will be suspended at the end of the race. Should a Photo, Stewards Enquiry or Objection be called the market may be re-opened with unmatched bets (again with the exception of bets for which the &quot;keep&quot; option has been selected) cancelled. The market will then be suspended when this result is announced. This market will initially be settled on a First Past the Post basis. However we will re-settle all bets should the official result at the time of the &quot;weigh-in&quot; announcement differ from any initial settlement. BETS ARE PLACED ON A NAMED HORSE. Dead Heat rules apply.&lt;br&gt;&lt;br&gt;Customers should be aware that:&lt;b&gt;&lt;ol&gt;&lt;li&gt;transmissions described as &quot;live&quot; by some broadcasters may actually be delayed;&lt;/li&gt;&lt;li&gt;the extent of any such delay may vary, depending on the set-up through which they are receiving pictures or data;&lt;/b&gt; and &lt;/li&gt;&lt;li&gt;information (such as jockey silks, saddlecloth numbers etc) is provided &quot;as is&quot; and is for guidance only. Betfair does not guarantee the accuracy of this information and use of it to place bets is entirely at your own risk.&lt;/li&gt;&lt;/ol&gt;&lt;br&gt;</marketDescription><marketDescriptionHasDate xsi:type="xsd:boolean">true</marketDescriptionHasDate><marketDisplayTime xsi:type="xsd:dateTime">2012-02-25T15:45:00.000Z</marketDisplayTime><marketId xsi:type="xsd:int">104968439</marketId><marketStatus xsi:type="n2:MarketStatusEnum">ACTIVE</marketStatus><marketSuspendTime xsi:type="xsd:dateTime">2012-02-25T15:45:00.000Z</marketSuspendTime><marketTime xsi:type="xsd:dateTime">2012-02-25T15:45:00.000Z</marketTime><marketType xsi:type="n2:MarketTypeEnum">O</marketType><marketTypeVariant xsi:type="n2:MarketTypeVariantEnum">D</marketTypeVariant><menuPath xsi:type="xsd:string">GBChep 25th Feb</menuPath><eventHierarchy xsi:type="n2:ArrayOfEventId"><n2:EventId xsi:type="xsd:int">7</n2:EventId><n2:EventId xsi:type="xsd:int">298251</n2:EventId><n2:EventId xsi:type="xsd:int">26813086</n2:EventId></eventHierarchy><name xsi:type="xsd:string">2m Hcap Chs</name><numberOfWinners xsi:type="xsd:int">1</numberOfWinners><parentEventId xsi:type="xsd:int">26813086</parentEventId><runners xsi:type="n2:ArrayOfRunner"><n2:Runner xsi:type="n2:Runner"><asianLineId xsi:type="xsd:int">0</asianLineId><handicap xsi:type="xsd:double">0.0</handicap><name xsi:type="xsd:string">Arctic Ben</name><selectionId xsi:type="xsd:int">3043342</selectionId></n2:Runner><n2:Runner xsi:type="n2:Runner"><asianLineId xsi:type="xsd:int">0</asianLineId><handicap xsi:type="xsd:double">0.0</handicap><name xsi:type="xsd:string">Educated Evans</name><selectionId xsi:type="xsd:int">4493849</selectionId></n2:Runner><n2:Runner xsi:type="n2:Runner"><asianLineId xsi:type="xsd:int">0</asianLineId><handicap xsi:type="xsd:double">0.0</handicap><name xsi:type="xsd:string">Buffalo Bob</name><selectionId xsi:type="xsd:int">2795387</selectionId></n2:Runner><n2:Runner xsi:type="n2:Runner"><asianLineId xsi:type="xsd:int">0</asianLineId><handicap xsi:type="xsd:double">0.0</handicap><name xsi:type="xsd:string">Rileyev</name><selectionId xsi:type="xsd:int">3687553</selectionId></n2:Runner><n2:Runner xsi:type="n2:Runner"><asianLineId xsi:type="xsd:int">0</asianLineId><handicap xsi:type="xsd:double">0.0</handicap><name xsi:type="xsd:string">Oh Crick</name><selectionId xsi:type="xsd:int">2610448</selectionId></n2:Runner><n2:Runner xsi:type="n2:Runner"><asianLineId xsi:type="xsd:int">0</asianLineId><handicap xsi:type="xsd:double">0.0</handicap><name xsi:type="xsd:string">Oscar Gogo</name><selectionId xsi:type="xsd:int">2406110</selectionId></n2:Runner><n2:Runner xsi:type="n2:Runner"><asianLineId xsi:type="xsd:int">0</asianLineId><handicap xsi:type="xsd:double">0.0</handicap><name xsi:type="xsd:string">Dinarius</name><selectionId xsi:type="xsd:int">2446696</selectionId></n2:Runner><n2:Runner xsi:type="n2:Runner"><asianLineId xsi:type="xsd:int">0</asianLineId><handicap xsi:type="xsd:double">0.0</handicap><name xsi:type="xsd:string">Moon Over Miami</name><selectionId xsi:type="xsd:int">1381307</selectionId></n2:Runner><n2:Runner xsi:type="n2:Runner"><asianLineId xsi:type="xsd:int">0</asianLineId><handicap xsi:type="xsd:double">0.0</handicap><name xsi:type="xsd:string">Super Formen</name><selectionId xsi:type="xsd:int">2810086</selectionId></n2:Runner></runners><unit xsi:nil="1"></unit><maxUnitValue xsi:type="xsd:double">0.0</maxUnitValue><minUnitValue xsi:type="xsd:double">0.0</minUnitValue><interval xsi:type="xsd:double">0.0</interval><runnersMayBeAdded xsi:type="xsd:boolean">false</runnersMayBeAdded><timezone xsi:type="xsd:string">UKT</timezone><licenceId xsi:type="xsd:int">1</licenceId><couponLinks xsi:nil="1"></couponLinks><bspMarket xsi:type="xsd:boolean">true</bspMarket></market><minorErrorCode xsi:nil="1"></minorErrorCode></n:Result></n:getMarketResponse></soap:Body></soap:Envelope>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n2="http://www.betfair.com/publicapi/types/exchange/v5/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <soap:Body>
4
+ <n:getMarketPricesCompressedResponse xmlns:n="http://www.betfair.com/publicapi/v5/BFExchangeService/">
5
+ <n:Result xsi:type="n2:GetMarketPricesCompressedResp">
6
+ <header xsi:type="n2:APIResponseHeader">
7
+ <errorCode xsi:type="n2:APIErrorEnum">OK</errorCode>
8
+ <minorErrorCode xsi:nil="1"/>
9
+ <sessionToken xsi:type="xsd:string">w+47XCesvhcNOuwNpgiSDNsJav/eZH7li7FX/dukRO8=</sessionToken>
10
+ <timestamp xsi:type="xsd:dateTime">2012-02-26T11:20:16.812Z</timestamp>
11
+ </header>
12
+ <errorCode xsi:type="n2:GetMarketPricesErrorEnum">OK</errorCode>
13
+ <marketPrices xsi:type="xsd:string">104968512~GBP~ACTIVE~0~1~NR\: (UKT) &lt;br&gt; 7. Philadelphus(0%,10\:46)~true~5.0~1330255216701~Philadelphus,10.46,2.3;~Y:5898478~0~9402.08~2.96~~34.0~false~2.0~2.92~~|2.96~29.73~L~1~2.94~78.25~L~2~2.92~77.76~L~3~|2.98~36.69~B~1~3.0~971.78~B~2~3.05~57.0~B~3~:5191694~1~4768.0~4.2~~19.9~false~1.24~4.03~~|4.1~90.02~L~1~4.0~187.18~L~2~3.95~10.0~L~3~|4.2~80.89~B~1~4.3~153.9~B~2~4.4~181.81~B~3~:5678817~2~2631.92~5.4~~19.6~false~2.96~5.3~~|5.3~33.08~L~1~5.2~5.96~L~2~5.1~20.46~L~3~|5.4~16.51~B~1~5.5~16.24~B~2~5.6~2.0~B~3~:5921135~3~1855.28~8.4~~11.8~false~1.6~7.8~~|8.2~3.39~L~1~8.0~44.03~L~2~7.8~6.0~L~3~|8.6~28.78~B~1~8.8~24.0~B~2~9.0~2.0~B~3~:4509182~4~664.54~18.0~~6.9~false~1.86~13.75~~|17.5~9.36~L~1~15.5~7.97~L~2~14.0~15.19~L~3~|18.0~3.52~B~1~18.5~22.0~B~2~19.0~8.0~B~3~:4801791~5~587.64~23.0~~5.2~false~1.82~17.1~~|22.0~7.44~L~1~21.0~7.6~L~2~18.5~5.08~L~3~|23.0~3.17~B~1~24.0~4.53~B~2~25.0~6.0~B~3~:2803150~6~334.38~55.0~~2.3~false~8.12~46.41~~|46.0~10.46~L~1~44.0~53.83~L~2~42.0~6.5~L~3~|55.0~8.13~B~1~100.0~3.08~B~2~660.0~5.0~B~3~:6084518~7~14.48~410.0~~0.5~false~29.74~332.98~~|320.0~5.93~L~1~310.0~21.0~L~2~300.0~37.01~L~3~|790.0~6.0~B~1~900.0~13.0~B~2~990.0~2.0~B~3~</marketPrices>
14
+ <minorErrorCode xsi:nil="1"/>
15
+ </n:Result>
16
+ </n:getMarketPricesCompressedResponse>
17
+ </soap:Body>
18
+ </soap:Envelope>
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n2="http://www.betfair.com/publicapi/types/exchange/v5/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <soap:Body>
4
+ <n:getMarketTradedVolumeCompressedResponse xmlns:n="http://www.betfair.com/publicapi/v5/BFExchangeService/">
5
+ <n:Result xsi:type="n2:GetMarketTradedVolumeCompressedResp">
6
+ <header xsi:type="n2:APIResponseHeader">
7
+ <errorCode xsi:type="n2:APIErrorEnum">OK</errorCode>
8
+ <minorErrorCode xsi:nil="1"/>
9
+ <sessionToken xsi:type="xsd:string">w+47XCesvhcNOuwNpgiSDNsJav/eZH7li7FX/dukRO8=</sessionToken>
10
+ <timestamp xsi:type="xsd:dateTime">2012-02-26T11:20:26.774Z</timestamp>
11
+ </header>
12
+ <errorCode xsi:type="n2:GetMarketTradedVolumeCompressedErrorEnum">OK</errorCode>
13
+ <tradedVolume xsi:type="xsd:string">:2803150~0~0.0~0.0~0.0|25.0~2.08|26.0~3.92|28.0~4.6|29.0~3.7|34.0~18.16|36.0~0.08|38.0~58.06|40.0~27.74|42.0~12.38|44.0~63.26|46.0~55.7|48.0~29.38|50.0~37.2|55.0~17.92|130.0~0.18:4801791~0~0.0~0.0~0.0|14.5~10.0|15.0~14.0|15.5~33.52|16.0~23.4|16.5~47.32|17.0~42.54|17.5~18.68|18.0~31.92|18.5~30.9|19.0~45.8|19.5~59.76|20.0~137.54|21.0~10.44|22.0~31.64|23.0~30.4|24.0~4.48|25.0~15.26:5921135~0~0.0~0.0~0.0|7.8~152.1|8.0~116.08|8.2~183.2|8.4~262.64|8.6~267.02|8.8~276.68|9.0~248.56|9.2~172.56|9.4~67.08|9.6~109.36:5191694~0~0.0~0.0~0.0|3.95~44.0|4.0~94.58|4.1~633.6|4.2~820.24|4.3~115.88|4.4~317.12|4.5~108.34|4.6~102.42|4.7~197.98|4.8~197.06|4.9~166.64|5.0~417.08|5.1~339.68|5.2~596.3|5.3~259.34|5.4~251.12|5.5~75.04|5.6~4.52|5.7~15.8|5.8~11.28:5898478~0~0.0~0.0~0.0|2.4~0.24|2.42~3.76|2.68~2.24|2.7~3.76|2.72~7.1|2.74~59.84|2.78~8.74|2.8~3.76|2.82~0.9|2.84~30.24|2.86~149.84|2.88~739.78|2.9~936.66|2.92~988.0|2.94~1422.04|2.96~1116.78|2.98~1292.38|3.0~748.78|3.05~290.82|3.1~227.16|3.15~379.42|3.2~226.4|3.25~228.26|3.3~155.94|3.35~183.44|3.4~81.18|3.5~80.0|3.55~18.4|3.6~12.16|3.65~3.98:6084518~0~0.0~0.0~0.0|250.0~0.02|280.0~3.4|290.0~0.6|300.0~7.64|310.0~0.84|370.0~1.0|410.0~0.94|490.0~0.02|530.0~0.04:5678817~0~0.0~0.0~0.0|3.35~4.0|4.2~18.38|4.3~78.84|4.4~26.2|4.5~192.0|4.6~232.42|4.7~217.52|4.8~277.98|4.9~496.04|5.0~361.86|5.1~377.16|5.2~234.08|5.3~62.48|5.4~52.98:4509182~0~0.0~0.0~0.0|13.5~11.2|14.0~11.32|14.5~38.04|15.0~143.94|15.5~157.56|16.0~68.22|16.5~56.04|17.0~64.54|17.5~59.76|18.0~40.6|19.5~3.34|20.0~6.24|21.0~3.76</tradedVolume>
14
+ <currencyCode xsi:type="xsd:string">GBP</currencyCode>
15
+ <marketId xsi:type="xsd:int">104968512</marketId>
16
+ <minorErrorCode xsi:nil="1"/>
17
+ </n:Result>
18
+ </n:getMarketTradedVolumeCompressedResponse>
19
+ </soap:Body>
20
+ </soap:Envelope>
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n2="http://www.betfair.com/publicapi/types/global/v3/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <soap:Body>
4
+ <n:loginResponse xmlns:n="http://www.betfair.com/publicapi/v3/BFGlobalService/">
5
+ <n:Result xsi:type="n2:LoginResp">
6
+ <header xsi:type="n2:APIResponseHeader">
7
+ <errorCode xsi:type="n2:APIErrorEnum">OK</errorCode>
8
+ <minorErrorCode xsi:nil="1"/>
9
+ <sessionToken xsi:nil="1"/>
10
+ <timestamp xsi:type="xsd:dateTime">2012-02-25T12:38:56.107Z</timestamp>
11
+ </header>
12
+ <currency xsi:nil="1"/>
13
+ <errorCode xsi:type="n2:LoginErrorEnum">INVALID_USERNAME_OR_PASSWORD</errorCode>
14
+ <minorErrorCode xsi:nil="1"/>
15
+ <validUntil xsi:type="xsd:dateTime">0001-01-01T00:00:00.000Z</validUntil>
16
+ </n:Result>
17
+ </n:loginResponse>
18
+ </soap:Body>
19
+ </soap:Envelope>
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n2="http://www.betfair.com/publicapi/types/global/v3/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <soap:Body>
4
+ <n:loginResponse xmlns:n="http://www.betfair.com/publicapi/v3/BFGlobalService/">
5
+ <n:Result xsi:type="n2:LoginResp">
6
+ <header xsi:type="n2:APIResponseHeader">
7
+ <errorCode xsi:type="n2:APIErrorEnum">OK</errorCode>
8
+ <minorErrorCode xsi:nil="1"/>
9
+ <sessionToken xsi:type="xsd:string">nVhCnN1fCaNMTAHMYUs8Wv8NsU+zSC3GUpcQjoldT1c=</sessionToken>
10
+ <timestamp xsi:type="xsd:dateTime">2012-02-25T12:37:36.897Z</timestamp>
11
+ </header>
12
+ <currency xsi:type="xsd:string">GBP</currency>
13
+ <errorCode xsi:type="n2:LoginErrorEnum">OK</errorCode>
14
+ <minorErrorCode xsi:nil="1"/>
15
+ <validUntil xsi:type="xsd:dateTime">2012-02-05T00:00:00.000Z</validUntil>
16
+ </n:Result>
17
+ </n:loginResponse>
18
+ </soap:Body>
19
+ </soap:Envelope>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
3
+ <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
4
+ <soap:Fault>
5
+ <faultcode>soap:Server</faultcode>
6
+ <faultstring>INTERNAL_ERROR</faultstring>
7
+ </soap:Fault>
8
+ </soap:Body>
9
+ </soap:Envelope>
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ describe Betfair::ResponseParser do
4
+
5
+ # Dummy class to test module
6
+ module Betfair
7
+ class Foo; include ResponseParser; end
8
+ end
9
+
10
+ before do
11
+ @parser = Betfair::Foo.new
12
+ end
13
+
14
+ it "should parse login response" do
15
+ login_xml = load_xml_response("login_ok.xml")
16
+ parsed = @parser.login login_xml
17
+ parsed.should == {"currency" => "GBP"}
18
+ end
19
+
20
+ it "should parse get_all_markets response" do
21
+ get_all_markets_xml = load_xml_response("get_all_markets.xml")
22
+ parsed = @parser.get_all_markets get_all_markets_xml
23
+ parsed["market_data"].keys.size.should eq 246
24
+ parsed["market_data"]["104968448"].should == {"id"=>"104968448", "name"=>"To Be Placed", "type"=>"O", "status"=>"ACTIVE", "date"=> Time.parse("2012-02-25 14:00:00 UTC"), "menu_path"=>"Horse RacingGBKemp 25th Feb", "event_hierarchy"=>"/7/298251/26813087/104968448", "bet_delay"=>"0", "exchange_id"=>"1", "country_code"=>"GBR", "last_refresh"=> Time.parse("2012-02-25 13:53:30 UTC"), "num_runners"=>"8", "num_winners"=>"3", "total_amount_matched"=>"33339.18", "bsp_market"=>true, "turning_in_play"=>true}
25
+ end
26
+
27
+ it "should parse get_market response" do
28
+ get_market_xml = load_xml_response("get_market.xml")
29
+ parsed = @parser.get_market get_market_xml
30
+ parsed.should == {"id"=>"104968439", "parent_id"=>"26813086", "country_code"=>"GBR", "event_type"=>"7", "base_rate"=>"5.0", "market_name"=>"2m Hcap Chs", "num_winners"=>"1", "runners"=>[{"selection_id"=>"3043342", "name"=>"Arctic Ben"}, {"selection_id"=>"4493849", "name"=>"Educated Evans"}, {"selection_id"=>"2795387", "name"=>"Buffalo Bob"}, {"selection_id"=>"3687553", "name"=>"Rileyev"}, {"selection_id"=>"2610448", "name"=>"Oh Crick"}, {"selection_id"=>"2406110", "name"=>"Oscar Gogo"}, {"selection_id"=>"2446696", "name"=>"Dinarius"}, {"selection_id"=>"1381307", "name"=>"Moon Over Miami"}, {"selection_id"=>"2810086", "name"=>"Super Formen"}]}
31
+ end
32
+
33
+ it "should parse get_market_prices_compressed response" do
34
+ compressed_prices_xml = load_xml_response("get_market_prices_compressed.xml")
35
+ parsed = @parser.get_market_prices_compressed compressed_prices_xml
36
+ parsed.should == {"market_id"=>"04968512", "currency"=>"GBP", "status"=>"ACTIVE", "in_play_delay"=>"0", "num_winners"=>"1", "market_info"=>"NR: (UKT) <br> 7. Philadelphus(0%,10:46)", "discount_allowed"=>"true", "market_base_rate"=>"5.0", "refresh_time"=>"1330255216701", "removed_runners"=>"Philadelphus,10.46,2.3;", "bsp_market"=>"Y", "5898478"=>{"selection_id"=>"5898478", "order_index"=>"0", "total_matched"=>"9402.08", "last_price_matched"=>"2.96", "handicap"=>"", "reduction_factor"=>"34.0", "vacant"=>"false", "asian_line_id"=>"2.0", "far_sp_price"=>"2.92", "near_sp_price"=>nil, "actual_sp_price"=>nil, "lay_prices"=>[{"odds"=>"2.96", "amount"=>"29.73", "type"=>"L", "depth"=>"1"}, {"odds"=>"2.94", "amount"=>"78.25", "type"=>"L", "depth"=>"2"}, {"odds"=>"2.92", "amount"=>"77.76", "type"=>"L", "depth"=>"3"}], "back_prices"=>[{"odds"=>"2.98", "amount"=>"36.69", "type"=>"B", "depth"=>"1"}, {"odds"=>"3.0", "amount"=>"971.78", "type"=>"B", "depth"=>"2"}, {"odds"=>"3.05", "amount"=>"57.0", "type"=>"B", "depth"=>"3"}]}, "5191694"=>{"selection_id"=>"5191694", "order_index"=>"1", "total_matched"=>"4768.0", "last_price_matched"=>"4.2", "handicap"=>"", "reduction_factor"=>"19.9", "vacant"=>"false", "asian_line_id"=>"1.24", "far_sp_price"=>"4.03", "near_sp_price"=>nil, "actual_sp_price"=>nil, "lay_prices"=>[{"odds"=>"4.1", "amount"=>"90.02", "type"=>"L", "depth"=>"1"}, {"odds"=>"4.0", "amount"=>"187.18", "type"=>"L", "depth"=>"2"}, {"odds"=>"3.95", "amount"=>"10.0", "type"=>"L", "depth"=>"3"}], "back_prices"=>[{"odds"=>"4.2", "amount"=>"80.89", "type"=>"B", "depth"=>"1"}, {"odds"=>"4.3", "amount"=>"153.9", "type"=>"B", "depth"=>"2"}, {"odds"=>"4.4", "amount"=>"181.81", "type"=>"B", "depth"=>"3"}]}, "5678817"=>{"selection_id"=>"5678817", "order_index"=>"2", "total_matched"=>"2631.92", "last_price_matched"=>"5.4", "handicap"=>"", "reduction_factor"=>"19.6", "vacant"=>"false", "asian_line_id"=>"2.96", "far_sp_price"=>"5.3", "near_sp_price"=>nil, "actual_sp_price"=>nil, "lay_prices"=>[{"odds"=>"5.3", "amount"=>"33.08", "type"=>"L", "depth"=>"1"}, {"odds"=>"5.2", "amount"=>"5.96", "type"=>"L", "depth"=>"2"}, {"odds"=>"5.1", "amount"=>"20.46", "type"=>"L", "depth"=>"3"}], "back_prices"=>[{"odds"=>"5.4", "amount"=>"16.51", "type"=>"B", "depth"=>"1"}, {"odds"=>"5.5", "amount"=>"16.24", "type"=>"B", "depth"=>"2"}, {"odds"=>"5.6", "amount"=>"2.0", "type"=>"B", "depth"=>"3"}]}, "5921135"=>{"selection_id"=>"5921135", "order_index"=>"3", "total_matched"=>"1855.28", "last_price_matched"=>"8.4", "handicap"=>"", "reduction_factor"=>"11.8", "vacant"=>"false", "asian_line_id"=>"1.6", "far_sp_price"=>"7.8", "near_sp_price"=>nil, "actual_sp_price"=>nil, "lay_prices"=>[{"odds"=>"8.2", "amount"=>"3.39", "type"=>"L", "depth"=>"1"}, {"odds"=>"8.0", "amount"=>"44.03", "type"=>"L", "depth"=>"2"}, {"odds"=>"7.8", "amount"=>"6.0", "type"=>"L", "depth"=>"3"}], "back_prices"=>[{"odds"=>"8.6", "amount"=>"28.78", "type"=>"B", "depth"=>"1"}, {"odds"=>"8.8", "amount"=>"24.0", "type"=>"B", "depth"=>"2"}, {"odds"=>"9.0", "amount"=>"2.0", "type"=>"B", "depth"=>"3"}]}, "4509182"=>{"selection_id"=>"4509182", "order_index"=>"4", "total_matched"=>"664.54", "last_price_matched"=>"18.0", "handicap"=>"", "reduction_factor"=>"6.9", "vacant"=>"false", "asian_line_id"=>"1.86", "far_sp_price"=>"13.75", "near_sp_price"=>nil, "actual_sp_price"=>nil, "lay_prices"=>[{"odds"=>"17.5", "amount"=>"9.36", "type"=>"L", "depth"=>"1"}, {"odds"=>"15.5", "amount"=>"7.97", "type"=>"L", "depth"=>"2"}, {"odds"=>"14.0", "amount"=>"15.19", "type"=>"L", "depth"=>"3"}], "back_prices"=>[{"odds"=>"18.0", "amount"=>"3.52", "type"=>"B", "depth"=>"1"}, {"odds"=>"18.5", "amount"=>"22.0", "type"=>"B", "depth"=>"2"}, {"odds"=>"19.0", "amount"=>"8.0", "type"=>"B", "depth"=>"3"}]}, "4801791"=>{"selection_id"=>"4801791", "order_index"=>"5", "total_matched"=>"587.64", "last_price_matched"=>"23.0", "handicap"=>"", "reduction_factor"=>"5.2", "vacant"=>"false", "asian_line_id"=>"1.82", "far_sp_price"=>"17.1", "near_sp_price"=>nil, "actual_sp_price"=>nil, "lay_prices"=>[{"odds"=>"22.0", "amount"=>"7.44", "type"=>"L", "depth"=>"1"}, {"odds"=>"21.0", "amount"=>"7.6", "type"=>"L", "depth"=>"2"}, {"odds"=>"18.5", "amount"=>"5.08", "type"=>"L", "depth"=>"3"}], "back_prices"=>[{"odds"=>"23.0", "amount"=>"3.17", "type"=>"B", "depth"=>"1"}, {"odds"=>"24.0", "amount"=>"4.53", "type"=>"B", "depth"=>"2"}, {"odds"=>"25.0", "amount"=>"6.0", "type"=>"B", "depth"=>"3"}]}, "2803150"=>{"selection_id"=>"2803150", "order_index"=>"6", "total_matched"=>"334.38", "last_price_matched"=>"55.0", "handicap"=>"", "reduction_factor"=>"2.3", "vacant"=>"false", "asian_line_id"=>"8.12", "far_sp_price"=>"46.41", "near_sp_price"=>nil, "actual_sp_price"=>nil, "lay_prices"=>[{"odds"=>"46.0", "amount"=>"10.46", "type"=>"L", "depth"=>"1"}, {"odds"=>"44.0", "amount"=>"53.83", "type"=>"L", "depth"=>"2"}, {"odds"=>"42.0", "amount"=>"6.5", "type"=>"L", "depth"=>"3"}], "back_prices"=>[{"odds"=>"55.0", "amount"=>"8.13", "type"=>"B", "depth"=>"1"}, {"odds"=>"100.0", "amount"=>"3.08", "type"=>"B", "depth"=>"2"}, {"odds"=>"660.0", "amount"=>"5.0", "type"=>"B", "depth"=>"3"}]}, "6084518"=>{"selection_id"=>"6084518", "order_index"=>"7", "total_matched"=>"14.48", "last_price_matched"=>"410.0", "handicap"=>"", "reduction_factor"=>"0.5", "vacant"=>"false", "asian_line_id"=>"29.74", "far_sp_price"=>"332.98", "near_sp_price"=>nil, "actual_sp_price"=>nil, "lay_prices"=>[{"odds"=>"320.0", "amount"=>"5.93", "type"=>"L", "depth"=>"1"}, {"odds"=>"310.0", "amount"=>"21.0", "type"=>"L", "depth"=>"2"}, {"odds"=>"300.0", "amount"=>"37.01", "type"=>"L", "depth"=>"3"}], "back_prices"=>[{"odds"=>"790.0", "amount"=>"6.0", "type"=>"B", "depth"=>"1"}, {"odds"=>"900.0", "amount"=>"13.0", "type"=>"B", "depth"=>"2"}, {"odds"=>"990.0", "amount"=>"2.0", "type"=>"B", "depth"=>"3"}]}}
37
+ end
38
+
39
+ it "should parse get_market_traded_volume_compressed response" do
40
+ compressed_traded_volumes_xml = load_xml_response("get_market_traded_volume_compressed.xml")
41
+ parsed = @parser.get_market_traded_volume_compressed compressed_traded_volumes_xml
42
+ parsed.should == {"2803150"=>{"traded_amounts"=>[{"odds"=>"25.0", "total_matched"=>"2.08"}, {"odds"=>"26.0", "total_matched"=>"3.92"}, {"odds"=>"28.0", "total_matched"=>"4.6"}, {"odds"=>"29.0", "total_matched"=>"3.7"}, {"odds"=>"34.0", "total_matched"=>"18.16"}, {"odds"=>"36.0", "total_matched"=>"0.08"}, {"odds"=>"38.0", "total_matched"=>"58.06"}, {"odds"=>"40.0", "total_matched"=>"27.74"}, {"odds"=>"42.0", "total_matched"=>"12.38"}, {"odds"=>"44.0", "total_matched"=>"63.26"}, {"odds"=>"46.0", "total_matched"=>"55.7"}, {"odds"=>"48.0", "total_matched"=>"29.38"}, {"odds"=>"50.0", "total_matched"=>"37.2"}, {"odds"=>"55.0", "total_matched"=>"17.92"}, {"odds"=>"130.0", "total_matched"=>"0.18"}], "selection_id"=>"2803150", "asian_line_id"=>"0", "bsp"=>"0.0", "total_bsp_back_matched"=>"0.0", "total_bsp_liability_matched"=>"0.0"}, "4801791"=>{"traded_amounts"=>[{"odds"=>"14.5", "total_matched"=>"10.0"}, {"odds"=>"15.0", "total_matched"=>"14.0"}, {"odds"=>"15.5", "total_matched"=>"33.52"}, {"odds"=>"16.0", "total_matched"=>"23.4"}, {"odds"=>"16.5", "total_matched"=>"47.32"}, {"odds"=>"17.0", "total_matched"=>"42.54"}, {"odds"=>"17.5", "total_matched"=>"18.68"}, {"odds"=>"18.0", "total_matched"=>"31.92"}, {"odds"=>"18.5", "total_matched"=>"30.9"}, {"odds"=>"19.0", "total_matched"=>"45.8"}, {"odds"=>"19.5", "total_matched"=>"59.76"}, {"odds"=>"20.0", "total_matched"=>"137.54"}, {"odds"=>"21.0", "total_matched"=>"10.44"}, {"odds"=>"22.0", "total_matched"=>"31.64"}, {"odds"=>"23.0", "total_matched"=>"30.4"}, {"odds"=>"24.0", "total_matched"=>"4.48"}, {"odds"=>"25.0", "total_matched"=>"15.26"}], "selection_id"=>"4801791", "asian_line_id"=>"0", "bsp"=>"0.0", "total_bsp_back_matched"=>"0.0", "total_bsp_liability_matched"=>"0.0"}, "5921135"=>{"traded_amounts"=>[{"odds"=>"7.8", "total_matched"=>"152.1"}, {"odds"=>"8.0", "total_matched"=>"116.08"}, {"odds"=>"8.2", "total_matched"=>"183.2"}, {"odds"=>"8.4", "total_matched"=>"262.64"}, {"odds"=>"8.6", "total_matched"=>"267.02"}, {"odds"=>"8.8", "total_matched"=>"276.68"}, {"odds"=>"9.0", "total_matched"=>"248.56"}, {"odds"=>"9.2", "total_matched"=>"172.56"}, {"odds"=>"9.4", "total_matched"=>"67.08"}, {"odds"=>"9.6", "total_matched"=>"109.36"}], "selection_id"=>"5921135", "asian_line_id"=>"0", "bsp"=>"0.0", "total_bsp_back_matched"=>"0.0", "total_bsp_liability_matched"=>"0.0"}, "5191694"=>{"traded_amounts"=>[{"odds"=>"3.95", "total_matched"=>"44.0"}, {"odds"=>"4.0", "total_matched"=>"94.58"}, {"odds"=>"4.1", "total_matched"=>"633.6"}, {"odds"=>"4.2", "total_matched"=>"820.24"}, {"odds"=>"4.3", "total_matched"=>"115.88"}, {"odds"=>"4.4", "total_matched"=>"317.12"}, {"odds"=>"4.5", "total_matched"=>"108.34"}, {"odds"=>"4.6", "total_matched"=>"102.42"}, {"odds"=>"4.7", "total_matched"=>"197.98"}, {"odds"=>"4.8", "total_matched"=>"197.06"}, {"odds"=>"4.9", "total_matched"=>"166.64"}, {"odds"=>"5.0", "total_matched"=>"417.08"}, {"odds"=>"5.1", "total_matched"=>"339.68"}, {"odds"=>"5.2", "total_matched"=>"596.3"}, {"odds"=>"5.3", "total_matched"=>"259.34"}, {"odds"=>"5.4", "total_matched"=>"251.12"}, {"odds"=>"5.5", "total_matched"=>"75.04"}, {"odds"=>"5.6", "total_matched"=>"4.52"}, {"odds"=>"5.7", "total_matched"=>"15.8"}, {"odds"=>"5.8", "total_matched"=>"11.28"}], "selection_id"=>"5191694", "asian_line_id"=>"0", "bsp"=>"0.0", "total_bsp_back_matched"=>"0.0", "total_bsp_liability_matched"=>"0.0"}, "5898478"=>{"traded_amounts"=>[{"odds"=>"2.4", "total_matched"=>"0.24"}, {"odds"=>"2.42", "total_matched"=>"3.76"}, {"odds"=>"2.68", "total_matched"=>"2.24"}, {"odds"=>"2.7", "total_matched"=>"3.76"}, {"odds"=>"2.72", "total_matched"=>"7.1"}, {"odds"=>"2.74", "total_matched"=>"59.84"}, {"odds"=>"2.78", "total_matched"=>"8.74"}, {"odds"=>"2.8", "total_matched"=>"3.76"}, {"odds"=>"2.82", "total_matched"=>"0.9"}, {"odds"=>"2.84", "total_matched"=>"30.24"}, {"odds"=>"2.86", "total_matched"=>"149.84"}, {"odds"=>"2.88", "total_matched"=>"739.78"}, {"odds"=>"2.9", "total_matched"=>"936.66"}, {"odds"=>"2.92", "total_matched"=>"988.0"}, {"odds"=>"2.94", "total_matched"=>"1422.04"}, {"odds"=>"2.96", "total_matched"=>"1116.78"}, {"odds"=>"2.98", "total_matched"=>"1292.38"}, {"odds"=>"3.0", "total_matched"=>"748.78"}, {"odds"=>"3.05", "total_matched"=>"290.82"}, {"odds"=>"3.1", "total_matched"=>"227.16"}, {"odds"=>"3.15", "total_matched"=>"379.42"}, {"odds"=>"3.2", "total_matched"=>"226.4"}, {"odds"=>"3.25", "total_matched"=>"228.26"}, {"odds"=>"3.3", "total_matched"=>"155.94"}, {"odds"=>"3.35", "total_matched"=>"183.44"}, {"odds"=>"3.4", "total_matched"=>"81.18"}, {"odds"=>"3.5", "total_matched"=>"80.0"}, {"odds"=>"3.55", "total_matched"=>"18.4"}, {"odds"=>"3.6", "total_matched"=>"12.16"}, {"odds"=>"3.65", "total_matched"=>"3.98"}], "selection_id"=>"5898478", "asian_line_id"=>"0", "bsp"=>"0.0", "total_bsp_back_matched"=>"0.0", "total_bsp_liability_matched"=>"0.0"}, "6084518"=>{"traded_amounts"=>[{"odds"=>"250.0", "total_matched"=>"0.02"}, {"odds"=>"280.0", "total_matched"=>"3.4"}, {"odds"=>"290.0", "total_matched"=>"0.6"}, {"odds"=>"300.0", "total_matched"=>"7.64"}, {"odds"=>"310.0", "total_matched"=>"0.84"}, {"odds"=>"370.0", "total_matched"=>"1.0"}, {"odds"=>"410.0", "total_matched"=>"0.94"}, {"odds"=>"490.0", "total_matched"=>"0.02"}, {"odds"=>"530.0", "total_matched"=>"0.04"}], "selection_id"=>"6084518", "asian_line_id"=>"0", "bsp"=>"0.0", "total_bsp_back_matched"=>"0.0", "total_bsp_liability_matched"=>"0.0"}, "5678817"=>{"traded_amounts"=>[{"odds"=>"3.35", "total_matched"=>"4.0"}, {"odds"=>"4.2", "total_matched"=>"18.38"}, {"odds"=>"4.3", "total_matched"=>"78.84"}, {"odds"=>"4.4", "total_matched"=>"26.2"}, {"odds"=>"4.5", "total_matched"=>"192.0"}, {"odds"=>"4.6", "total_matched"=>"232.42"}, {"odds"=>"4.7", "total_matched"=>"217.52"}, {"odds"=>"4.8", "total_matched"=>"277.98"}, {"odds"=>"4.9", "total_matched"=>"496.04"}, {"odds"=>"5.0", "total_matched"=>"361.86"}, {"odds"=>"5.1", "total_matched"=>"377.16"}, {"odds"=>"5.2", "total_matched"=>"234.08"}, {"odds"=>"5.3", "total_matched"=>"62.48"}, {"odds"=>"5.4", "total_matched"=>"52.98"}], "selection_id"=>"5678817", "asian_line_id"=>"0", "bsp"=>"0.0", "total_bsp_back_matched"=>"0.0", "total_bsp_liability_matched"=>"0.0"}, "4509182"=>{"traded_amounts"=>[{"odds"=>"13.5", "total_matched"=>"11.2"}, {"odds"=>"14.0", "total_matched"=>"11.32"}, {"odds"=>"14.5", "total_matched"=>"38.04"}, {"odds"=>"15.0", "total_matched"=>"143.94"}, {"odds"=>"15.5", "total_matched"=>"157.56"}, {"odds"=>"16.0", "total_matched"=>"68.22"}, {"odds"=>"16.5", "total_matched"=>"56.04"}, {"odds"=>"17.0", "total_matched"=>"64.54"}, {"odds"=>"17.5", "total_matched"=>"59.76"}, {"odds"=>"18.0", "total_matched"=>"40.6"}, {"odds"=>"19.5", "total_matched"=>"3.34"}, {"odds"=>"20.0", "total_matched"=>"6.24"}, {"odds"=>"21.0", "total_matched"=>"3.76"}], "selection_id"=>"4509182", "asian_line_id"=>"0", "bsp"=>"0.0", "total_bsp_back_matched"=>"0.0", "total_bsp_liability_matched"=>"0.0"}}
43
+ end
44
+
45
+ end