em-betfair 0.2

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.
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