xml_soccer 0.0.1.pre1

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.
data/.gitignore ADDED
@@ -0,0 +1,19 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ .vagrant
7
+ Gemfile.lock
8
+ InstalledFiles
9
+ _yardoc
10
+ coverage
11
+ doc/
12
+ lib/bundler/man
13
+ pkg
14
+ rdoc
15
+ spec/reports
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
19
+ Vagrantfile
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in xmlsoccer.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Kavinder Dhaliwal
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,76 @@
1
+
2
+ # XmlSoccer
3
+
4
+ This is a Ruby wrapper for the excellent soccer data Api that can be found at www.xmlsoccer.com
5
+
6
+ This particular gem is a rewrite/refactoring of the xmlsoccer gem (https://github.com/kavinderd/xmlsoccer)
7
+
8
+ Please note that this gem is currently in pre-release, and is subject to change.
9
+
10
+ ## Installation
11
+
12
+ This gem requires Ruby 2.0 or greater, due to the use of keyword arguments in methods.
13
+
14
+ Add this line to your application's Gemfile:
15
+
16
+ gem 'xml_soccer'
17
+
18
+ And then execute:
19
+
20
+ $ bundle
21
+
22
+ Or install it yourself as:
23
+
24
+ $ gem install xml_soccer
25
+
26
+ ## Usage
27
+
28
+ The xmlsoccer.com API is a SOAP service, so this gem uses the 'Savon' gem to interface.
29
+
30
+ I would recommend everyone interested in using this gem to first read the documentation for the xmlsoccer.com API at http://xmlsoccer.wikia.com/wiki/Main_Page
31
+
32
+ Additionally, the author of the xmlsoccer.com API has put a rate limit on all requests: http://xmlsoccer.wikia.com/wiki/Time_interval_limits
33
+
34
+ This gem checks when the last request was made, and currently requires you to wait between calls. I will be making a more robust request
35
+ time check that will be more in line with the xmlsoccer.com limitations.
36
+
37
+ You must have an xmlsoccer.com API Key and know which API type to use. Currently there are two types: XmlSoccer::DEMO and XmlSoccer::FULL.
38
+ Demo is the default if you do not explicitly provide a type.
39
+
40
+ Example Use:
41
+
42
+ xmlsoccer.com API GetAllLeagues
43
+
44
+ xmlsoccer = XmlSoccer.new(api_key: 'Api_key', api_type:'Api_Type')
45
+
46
+ leagues = xmlsoccer.leagues
47
+
48
+ leagues.each do |league|
49
+ put league[:name]
50
+ end
51
+
52
+ The following methods are currently implemented:
53
+
54
+ xml_soccer method | xmlsoccer.com API call
55
+ --- | ---
56
+ `leagues` | GetAllLeagues
57
+ `teams` | GetAllTeams
58
+ `teams_in_league_by_season(league: 'league', season: 'season')` | GetAllTeamsByLeagueAndSeason
59
+ `fixtures_by_date(start_date: Date, end_date: Date)` | GetFixturesByDateInterval
60
+ `fixtures_by_date_and_league(league: 'league', start_date: Date, end_date: Date)` | GetFixturesByDateIntervalAndLeague
61
+ `fixtures_by_date_and_team(team: 'team', start_date: Date, end_date: Date)` | GetFixturesByDateIntervalAndTeam
62
+ `historic_match_by_fixture(fixture_id: 'fixture_id')` | GetHistoricMatchesByFixtureMatchID
63
+ `historic_match(match_id: 'match_id')` | GetHistoricMatchesByID
64
+ `historic_matches_by_league_and_date(league: 'league', start_date: Date, end_date: Date)` | GetHistoricMatchesByLeagueAndDateInterval
65
+ `historic_matches_by_league_and_season(league: 'league', season: 'season')` | GetHistoricMatchesByLeagueAndSeason
66
+ `historic_matches_by_team_and_date(team: 'team', start_date: Date, end_date: Date)` | GetHistoricMatchesByTeamAndDateInterval
67
+ `historic_matches_by_teams_and_date(team_1: 'team_1', team_2: 'team_2', start_date: Date, end_date: Date)` | GetHistoricMatchesByTeamsAndDateInterval
68
+
69
+
70
+ ## Contributing
71
+
72
+ 1. Fork it ( https://github.com/nosenseworrying/xmlsoccer/fork )
73
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
74
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
75
+ 4. Push to the branch (`git push origin my-new-feature`)
76
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+ task default: :spec
@@ -0,0 +1,3 @@
1
+ #class XmlSoccer
2
+ # VERSION = "0.0.1"
3
+ #end
data/lib/xml_soccer.rb ADDED
@@ -0,0 +1,179 @@
1
+ #require "xml_soccer/version"
2
+ require 'savon'
3
+ require 'active_support/time'
4
+
5
+ class XmlSoccer
6
+ DEMO = "Demo"
7
+ FULL = "Full"
8
+ DEMO_URL = "http://www.xmlsoccer.com/FootballDataDemo.asmx?WSDL"
9
+ FULL_URL = "http://www.xmlsoccer.com/FootballData.asmx?WSDL"
10
+ WAIT = 'Wait 5 minutes between calls'
11
+
12
+ private
13
+ attr_reader :api_key, :client
14
+ attr_accessor :last_call
15
+
16
+ public
17
+ def initialize(options={})
18
+ @api_key = options[:api_key]
19
+
20
+ case options.fetch(:api_type, XmlSoccer::DEMO)
21
+ when DEMO then base_url = DEMO_URL
22
+ when FULL then base_url = FULL_URL
23
+ end
24
+
25
+ @client = Savon.client(wsdl: base_url)
26
+ self.last_call = 1.day.ago
27
+ end
28
+
29
+ def leagues
30
+ if last_call > 60.minutes.ago
31
+ return WAIT
32
+ else
33
+ response = client.call(:get_all_leagues, message:{"ApiKey" => api_key})
34
+ self.last_call = Time.now
35
+ return response.hash[:envelope][:body][:get_all_leagues_response][:get_all_leagues_result][:xmlsoccer_com][:league]
36
+ end
37
+ end
38
+
39
+ def teams
40
+ if last_call > 60.minutes.ago
41
+ return WAIT
42
+ else
43
+ response = client.call(:get_all_teams, message:{"ApiKey" => api_key})
44
+ self.last_call = Time.now
45
+ return response.hash[:envelope][:body][:get_all_teams_response][:get_all_teams_result][:xmlsoccer_com][:team]
46
+ end
47
+ end
48
+
49
+ def teams_in_league_by_season(league: nil, season: nil)
50
+ if last_call > 5.minutes.ago
51
+ return WAIT
52
+ else
53
+ response = client.call(:get_all_teams_by_league_and_season, message: {"ApiKey" => api_key, "league" => league, "seasonDateString" => season})
54
+ self.last_call = Time.now
55
+ return response.hash[:envelope][:body][:get_all_teams_by_league_and_season_response][:get_all_teams_by_league_and_season_result][:xmlsoccer_com][:team]
56
+ end
57
+ end
58
+
59
+ def fixtures_by_date(start_date: nil, end_date: nil)
60
+ if last_call > 5.minutes.ago
61
+ return WAIT
62
+ else
63
+ response = client.call(:get_fixtures_by_date_interval,
64
+ message: {"ApiKey" => api_key,
65
+ "startDateString" => start_date.strftime("%Y-%m-%d"),
66
+ "endDateString" => end_date.strftime("%Y-%m-%d")})
67
+ self.last_call = Time.now
68
+ return response.hash[:envelope][:body][:get_fixtures_by_date_interval_response][:get_fixtures_by_date_interval_result][:xmlsoccer_com][:match]
69
+ end
70
+ end
71
+
72
+ def fixtures_by_date_and_league(league: nil, start_date: nil, end_date: nil)
73
+ if last_call > 5.minutes.ago
74
+ return WAIT
75
+ else
76
+ response = client.call(:get_fixtures_by_date_interval_and_league,
77
+ message: {"ApiKey" => api_key,
78
+ "league" => league,
79
+ "startDateString" => start_date.strftime("%Y-%m-%d"),
80
+ "endDateString" => end_date.strftime("%Y-%m-%d")})
81
+ self.last_call = Time.now
82
+ return response.hash[:envelope][:body][:get_fixtures_by_date_interval_and_league_response][:get_fixtures_by_date_interval_and_league_result][:xmlsoccer_com][:match]
83
+ end
84
+ end
85
+
86
+ def fixtures_by_date_and_team(team: nil, start_date: nil, end_date: nil)
87
+ if last_call > 5.minutes.ago
88
+ return WAIT
89
+ else
90
+ response = client.call(:get_fixtures_by_date_interval_and_team,
91
+ message: {"ApiKey" => api_key,
92
+ "teamId" => team,
93
+ "startDateString" => start_date.strftime("%Y-%m-%d"),
94
+ "endDateString" => end_date.strftime("%Y-%m-%d")})
95
+ self.last_call = Time.now
96
+ return response.hash[:envelope][:body][:get_fixtures_by_date_interval_and_team_response][:get_fixtures_by_date_interval_and_team_result][:xmlsoccer_com][:match]
97
+ end
98
+ end
99
+
100
+ def historic_match_by_fixture(fixture_id: nil)
101
+ if last_call > 5.minutes.ago
102
+ return WAIT
103
+ else
104
+ response = client.call(:get_historic_matches_by_fixture_match_id,
105
+ message: {"ApiKey" => api_key,
106
+ "Id" => fixture_id})
107
+ self.last_call = Time.now
108
+ return response.hash[:envelope][:body][:get_historic_matches_by_fixture_match_id_response][:get_historic_matches_by_fixture_match_id_result][:xmlsoccer_com][:match]
109
+ end
110
+ end
111
+
112
+ def historic_match(match_id: nil)
113
+ if last_call > 5.minutes.ago
114
+ return WAIT
115
+ else
116
+ response = client.call(:get_historic_matches_by_id,
117
+ message: {"ApiKey" => api_key,
118
+ "Id" => match_id})
119
+ self.last_call = Time.now
120
+ return response.hash[:envelope][:body][:get_historic_matches_by_id_response][:get_historic_matches_by_id_result][:xmlsoccer_com][:match]
121
+ end
122
+ end
123
+
124
+ def historic_matches_by_league_and_date(league: nil, start_date: nil, end_date: nil)
125
+ if last_call > 5.minutes.ago
126
+ return WAIT
127
+ else
128
+ response = client.call(:get_historic_matches_by_league_and_date_interval,
129
+ message: {"ApiKey" => api_key,
130
+ "league" => league,
131
+ "startDateString" => start_date.strftime("%Y-%m-%d"),
132
+ "endDateString" => end_date.strftime("%Y-%m-%d")})
133
+ self.last_call = Time.now
134
+ return response.hash[:envelope][:body][:get_historic_matches_by_league_and_date_interval_response][:get_historic_matches_by_league_and_date_interval_result][:xmlsoccer_com][:match]
135
+ end
136
+ end
137
+
138
+ def historic_matches_by_league_and_season(league: nil, season: nil)
139
+ if last_call > 5.minutes.ago
140
+ return WAIT
141
+ else
142
+ response = client.call(:get_historic_matches_by_league_and_season,
143
+ message: {"ApiKey" => api_key,
144
+ "league" => league, "seasonDateString" => season})
145
+ self.last_call = Time.now
146
+ return response.hash[:envelope][:body][:get_historic_matches_by_league_and_season_response][:get_historic_matches_by_league_and_season_result][:xmlsoccer_com][:match]
147
+ end
148
+ end
149
+
150
+ def historic_matches_by_team_and_date(team: nil, start_date: nil, end_date: nil)
151
+ if last_call > 5.minutes.ago
152
+ return WAIT
153
+ else
154
+ response = client.call(:get_historic_matches_by_team_and_date_interval,
155
+ message: {"ApiKey" => api_key,
156
+ "teamId" => team,
157
+ "startDateString" => start_date.strftime("%Y-%m-%d"),
158
+ "endDateString" => end_date.strftime("%Y-%m-%d")})
159
+ self.last_call = Time.now
160
+ return response.hash[:envelope][:body][:get_historic_matches_by_team_and_date_interval_response][:get_historic_matches_by_team_and_date_interval_result][:xmlsoccer_com][:match]
161
+ end
162
+ end
163
+
164
+ def historic_matches_by_teams_and_date(team_1: nil, team_2: nil, start_date: nil, end_date: nil)
165
+ if last_call > 5.minutes.ago
166
+ return WAIT
167
+ else
168
+ response = client.call(:get_historic_matches_by_teams_and_date_interval,
169
+ message: {"ApiKey" => api_key,
170
+ "team1Id" => team_1,
171
+ "team2Id" => team_2,
172
+ "startDateString" => start_date.strftime("%Y-%m-%d"),
173
+ "endDateString" => end_date.strftime("%Y-%m-%d")})
174
+ self.last_call = Time.now
175
+ return response.hash[:envelope][:body][:get_historic_matches_by_teams_and_date_interval_response][:get_historic_matches_by_teams_and_date_interval_result][:xmlsoccer_com][:match]
176
+ end
177
+ end
178
+
179
+ end
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Envelope>
3
+ <Body>
4
+ <GetAllLeaguesResponse>
5
+ <GetAllLeaguesResult>
6
+ <XMLSOCCER.COM>
7
+ <League>
8
+ <Id>1</Id>
9
+ <Name>English Premier League</Name>
10
+ <Country>England</Country>
11
+ <Historical_Data>Yes</Historical_Data>
12
+ <Fixtures>Yes</Fixtures>
13
+ <Livescore>Yes</Livescore>
14
+ <NumberOfMatches>2557</NumberOfMatches>
15
+ <LatestMatch>2013-03-02T16:00:00+01:00</LatestMatch>
16
+ </League>
17
+ <League>
18
+ <Id>2</Id>
19
+ <Name>English League Championship</Name>
20
+ <Country>England</Country>
21
+ <Historical_Data>Yes</Historical_Data>
22
+ <Fixtures>Yes</Fixtures>
23
+ <Livescore>Yes</Livescore>
24
+ <NumberOfMatches>3267</NumberOfMatches>
25
+ <LatestMatch>2013-03-02T16:00:00+01:00</LatestMatch>
26
+ </League>
27
+ <AccountInformation>Data requested at 02-03-2013 21:02:09 from XX.XX.XX.XX, Username: Espectro. Your current supscription runs out on XX-XX-XXXX 11:01:25.</AccountInformation>
28
+ </XMLSOCCER.COM>
29
+ </GetAllLeaguesResult>
30
+ </GetAllLeaguesResponse>
31
+ </Body>
32
+ </Envelope>
@@ -0,0 +1,27 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Envelope>
3
+ <Body>
4
+ <GetAllTeamsResponse>
5
+ <GetAllTeamsResult>
6
+ <XMLSOCCER.COM>
7
+ <Team>
8
+ <Team_Id>4</Team_Id>
9
+ <Name>Fulham</Name>
10
+ <Country>England</Country>
11
+ <Stadium>Craven Cottage</Stadium>
12
+ <HomePageURL>http://www.fulhamfc.com/</HomePageURL>
13
+ <WIKILink>http://en.wikipedia.org/wiki/Fulham_F.C.</WIKILink>
14
+ </Team>
15
+ <Team>
16
+ <Team_Id>5</Team_Id>
17
+ <Name>Aston Villa</Name>
18
+ <Country>England</Country>
19
+ <Stadium>Villa Park</Stadium>
20
+ <HomePageURL>http://www.avfc.co.uk/9laI7Jw</HomePageURL>
21
+ <WIKILink>http://en.wikipedia.org/wiki/Aston_Villa_F.C.</WIKILink>
22
+ </Team>
23
+ </XMLSOCCER.COM>
24
+ </GetAllTeamsResult>
25
+ </GetAllTeamsResponse>
26
+ </Body>
27
+ </Envelope>
@@ -0,0 +1,27 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Envelope>
3
+ <Body>
4
+ <GetAllTeamsByLeagueAndSeasonResponse>
5
+ <GetAllTeamsByLeagueAndSeasonResult>
6
+ <XMLSOCCER.COM>
7
+ <Team>
8
+ <Team_Id>4</Team_Id>
9
+ <Name>Fulham</Name>
10
+ <Country>England</Country>
11
+ <Stadium>Craven Cottage</Stadium>
12
+ <HomePageURL>http://www.fulhamfc.com/</HomePageURL>
13
+ <WIKILink>http://en.wikipedia.org/wiki/Fulham_F.C.</WIKILink>
14
+ </Team>
15
+ <Team>
16
+ <Team_Id>5</Team_Id>
17
+ <Name>Aston Villa</Name>
18
+ <Country>England</Country>
19
+ <Stadium>Villa Park</Stadium>
20
+ <HomePageURL>http://www.avfc.co.uk/9laI7Jw</HomePageURL>
21
+ <WIKILink>http://en.wikipedia.org/wiki/Aston_Villa_F.C.</WIKILink>
22
+ </Team>
23
+ </XMLSOCCER.COM>
24
+ </GetAllTeamsByLeagueAndSeasonResult>
25
+ </GetAllTeamsByLeagueAndSeasonResponse>
26
+ </Body>
27
+ </Envelope>
@@ -0,0 +1,59 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Envelope>
3
+ <Body>
4
+ <GetFixturesByDateIntervalResponse>
5
+ <GetFixturesByDateIntervalResult>
6
+ <XMLSOCCER.COM>
7
+ <Match>
8
+ <Id>287180</Id>
9
+ <Date>2013-02-22T21:30:00+01:00</Date>
10
+ <League>La Liga</League>
11
+ <Round>25</Round>
12
+ <HomeTeam>Ath Bilbao</HomeTeam>
13
+ <HomeTeam_Id>143</HomeTeam_Id>
14
+ <HomeGoals>1</HomeGoals>
15
+ <AwayTeam>Sociedad</AwayTeam>
16
+ <AwayTeam_Id>140</AwayTeam_Id>
17
+ <AwayGoals>3</AwayGoals>
18
+ <Time>Finished</Time>
19
+ <Location>San Mam?s</Location>
20
+ <BetAtHome>2,20</BetAtHome>
21
+ <BetAtDraw>3,35</BetAtDraw>
22
+ <BetAtAway>3,15</BetAtAway>
23
+ <BetAtHomeLink>http://affiliates.bet-at-home.com/processing/clickthrgh.asp?btag=a_62598b_303</BetAtHomeLink>
24
+ <InterwettenHome>2,10</InterwettenHome>
25
+ <InterwettenDraw>3,30</InterwettenDraw>
26
+ <InterwettenAway>3,30</InterwettenAway>
27
+ <InterwettenLink>https://www.interwetten.com/en/sportsbook/e/9752883/</InterwettenLink>
28
+ <HomeTeamYellowCardDetails>84': Iker Muniain;45': Ander Iturraspe;38': Aymeric Laporte;</HomeTeamYellowCardDetails>
29
+ <AwayTeamYellowCardDetails>49': Asier Illarramendi;</AwayTeamYellowCardDetails>
30
+ <HomeTeamRedCardDetails/>
31
+ <AwayTeamRedCardDetails/>
32
+ </Match>
33
+ <Match>
34
+ <Id>286593</Id>
35
+ <Date>2013-02-22T21:00:00+01:00</Date>
36
+ <League>Serie B</League>
37
+ <Round>27</Round>
38
+ <HomeTeam>Spezia</HomeTeam>
39
+ <HomeTeam_Id>295</HomeTeam_Id>
40
+ <HomeGoals>0</HomeGoals>
41
+ <AwayTeam>Novara</AwayTeam>
42
+ <AwayTeam_Id>82</AwayTeam_Id>
43
+ <AwayGoals>6</AwayGoals>
44
+ <Time>Finished</Time>
45
+ <Location>Stadio Alberto Picco</Location>
46
+ <BetAtHome>2,10</BetAtHome>
47
+ <BetAtDraw>2,85</BetAtDraw>
48
+ <BetAtAway>3,50</BetAtAway>
49
+ <BetAtHomeLink>http://affiliates.bet-at-home.com/processing/clickthrgh.asp?btag=a_62598b_303</BetAtHomeLink>
50
+ <HomeTeamYellowCardDetails/>
51
+ <AwayTeamYellowCardDetails/>
52
+ <HomeTeamRedCardDetails/>
53
+ <AwayTeamRedCardDetails/>
54
+ </Match>
55
+ </XMLSOCCER.COM>
56
+ </GetFixturesByDateIntervalResult>
57
+ </GetFixturesByDateIntervalResponse>
58
+ </Body>
59
+ </Envelope>
@@ -0,0 +1,47 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Envelope>
3
+ <Body>
4
+ <GetFixturesByDateIntervalAndLeagueResponse>
5
+ <GetFixturesByDateIntervalAndLeagueResult>
6
+ <XMLSOCCER.COM>
7
+ <Match>
8
+ <Id>324725</Id>
9
+ <Date>2014-01-04T07:00:00-08:00</Date>
10
+ <League>Scottish Premier League</League>
11
+ <Round>21</Round>
12
+ <HomeTeam>Ross County</HomeTeam>
13
+ <HomeTeam_Id>360</HomeTeam_Id>
14
+ <HomeGoals>1</HomeGoals>
15
+ <AwayTeam>St Johnstone</AwayTeam>
16
+ <AwayTeam_Id>46</AwayTeam_Id>
17
+ <AwayGoals>0</AwayGoals>
18
+ <Time>Finished</Time>
19
+ <Location>Victoria Park</Location>
20
+ <HomeTeamYellowCardDetails>89': Scott Boyd;</HomeTeamYellowCardDetails>
21
+ <AwayTeamYellowCardDetails>61': David Mackay;</AwayTeamYellowCardDetails>
22
+ <HomeTeamRedCardDetails />
23
+ <AwayTeamRedCardDetails />
24
+ </Match>
25
+ <Match>
26
+ <Id>324726</Id>
27
+ <Date>2014-01-05T04:45:00-08:00</Date>
28
+ <League>Scottish Premier League</League>
29
+ <Round>21</Round>
30
+ <HomeTeam>St Mirren</HomeTeam>
31
+ <HomeTeam_Id>56</HomeTeam_Id>
32
+ <HomeGoals>0</HomeGoals>
33
+ <AwayTeam>Celtic</AwayTeam>
34
+ <AwayTeam_Id>54</AwayTeam_Id>
35
+ <AwayGoals>4</AwayGoals>
36
+ <Time>Finished</Time>
37
+ <Location>St. Mirren Park</Location>
38
+ <HomeTeamYellowCardDetails>78': Lee Mair;</HomeTeamYellowCardDetails>
39
+ <AwayTeamYellowCardDetails>90': Efe Ambrose;89': Emilio Izaguirre;33': Scott Brown;</AwayTeamYellowCardDetails>
40
+ <HomeTeamRedCardDetails />
41
+ <AwayTeamRedCardDetails />
42
+ </Match>
43
+ </XMLSOCCER.COM>
44
+ </GetFixturesByDateIntervalAndLeagueResult>
45
+ </GetFixturesByDateIntervalAndLeagueResponse>
46
+ </Body>
47
+ </Envelope>
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Envelope>
3
+ <Body>
4
+ <GetFixturesByDateIntervalAndTeamResponse>
5
+ <GetFixturesByDateIntervalAndTeamResult>
6
+ <XMLSOCCER.COM>
7
+ <Match>
8
+ <Id>324725</Id>
9
+ <Date>2014-01-04T07:00:00-08:00</Date>
10
+ <League>Scottish Premier League</League>
11
+ <Round>21</Round>
12
+ <HomeTeam>Ross County</HomeTeam>
13
+ <HomeTeam_Id>360</HomeTeam_Id>
14
+ <HomeGoals>1</HomeGoals>
15
+ <AwayTeam>St Johnstone</AwayTeam>
16
+ <AwayTeam_Id>46</AwayTeam_Id>
17
+ <AwayGoals>0</AwayGoals>
18
+ <Time>Finished</Time>
19
+ <Location>Victoria Park</Location>
20
+ <HomeTeamYellowCardDetails>89': Scott Boyd;</HomeTeamYellowCardDetails>
21
+ <AwayTeamYellowCardDetails>61': David Mackay;</AwayTeamYellowCardDetails>
22
+ <HomeTeamRedCardDetails />
23
+ <AwayTeamRedCardDetails />
24
+ </Match>
25
+ </XMLSOCCER.COM>
26
+ </GetFixturesByDateIntervalAndTeamResult>
27
+ </GetFixturesByDateIntervalAndTeamResponse>
28
+ </Body>
29
+ </Envelope>
@@ -0,0 +1,57 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Envelope>
3
+ <Body>
4
+ <GetHistoricMatchesByFixtureMatchIdResponse>
5
+ <GetHistoricMatchesByFixtureMatchIdResult>
6
+ <XMLSOCCER.COM>
7
+ <Match>
8
+ <Id>65805</Id>
9
+ <FixtureMatch_Id>324725</FixtureMatch_Id>
10
+ <Date>2014-01-04T07:00:00-08:00</Date>
11
+ <Round>21</Round>
12
+ <Spectators>3212</Spectators>
13
+ <League>Scottish Premier League</League>
14
+ <HomeTeam>Ross County</HomeTeam>
15
+ <HomeTeam_Id>360</HomeTeam_Id>
16
+ <HomeCorners>5</HomeCorners>
17
+ <HomeGoals>1</HomeGoals>
18
+ <HalfTimeHomeGoals>0</HalfTimeHomeGoals>
19
+ <HomeShots>10</HomeShots>
20
+ <HomeShotsOnTarget>2</HomeShotsOnTarget>
21
+ <HomeFouls>13</HomeFouls>
22
+ <HomeGoalDetails>88': Graham Carey;</HomeGoalDetails>
23
+ <HomeLineupGoalkeeper> Michael Fraser</HomeLineupGoalkeeper>
24
+ <HomeLineupDefense> Scott Boyd; Brian McLean; Ben Gordon; Evangelos Ikonomou;</HomeLineupDefense>
25
+ <HomeLineupMidfield> Stuart Kettlewell; Alex Cooper; Richard Brittain; Graham Carey;</HomeLineupMidfield>
26
+ <HomeLineupForward> Jordan Slew; Gary Glen;</HomeLineupForward>
27
+ <HomeYellowCards>1</HomeYellowCards>
28
+ <HomeRedCards>0</HomeRedCards>
29
+ <HomeTeamFormation>4-4-2</HomeTeamFormation>
30
+ <AwayTeam>St Johnstone</AwayTeam>
31
+ <AwayTeam_Id>46</AwayTeam_Id>
32
+ <AwayCorners>0</AwayCorners>
33
+ <AwayGoals>0</AwayGoals>
34
+ <HalfTimeAwayGoals>0</HalfTimeAwayGoals>
35
+ <AwayShots>9</AwayShots>
36
+ <AwayShotsOnTarget>3</AwayShotsOnTarget>
37
+ <AwayFouls>14</AwayFouls>
38
+ <AwayGoalDetails />
39
+ <AwayLineupGoalkeeper> Alan Mannus</AwayLineupGoalkeeper>
40
+ <AwayLineupDefense> Frazer Wright; Steven Anderson; Thomas Scobbie; David Mackay;</AwayLineupDefense>
41
+ <AwayLineupMidfield> David Wotherspoon; Murray Davidson; Chris Millar; Gary McDonald;</AwayLineupMidfield>
42
+ <AwayLineupForward> Nigel Hasselbaink; Steve May;</AwayLineupForward>
43
+ <AwayYellowCards>1</AwayYellowCards>
44
+ <AwayRedCards>0</AwayRedCards>
45
+ <AwayTeamFormation>4-4-2</AwayTeamFormation>
46
+ <HomeTeamYellowCardDetails>89': Scott Boyd;</HomeTeamYellowCardDetails>
47
+ <AwayTeamYellowCardDetails>61': David Mackay;</AwayTeamYellowCardDetails>
48
+ <HomeTeamRedCardDetails />
49
+ <AwayTeamRedCardDetails />
50
+ <HomeSubDetails>84': in Michael Tidser;84': out Jordan Slew;66': out Gary Glen;66': in Melvin de Leeuw;</HomeSubDetails>
51
+ <AwaySubDetails>90': in Rory Fallon;90': in Lee Croft;90': out Chris Millar;90': out David Wotherspoon;69': out Nigel Hasselbaink;69': in Michael O'Halloran;</AwaySubDetails>
52
+ </Match>
53
+ </XMLSOCCER.COM>
54
+ </GetHistoricMatchesByFixtureMatchIdResult>
55
+ </GetHistoricMatchesByFixtureMatchIdResponse>
56
+ </Body>
57
+ </Envelope>
@@ -0,0 +1,57 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Envelope>
3
+ <Body>
4
+ <GetHistoricMatchesByIdResponse>
5
+ <GetHistoricMatchesByIdResult>
6
+ <XMLSOCCER.COM>
7
+ <Match>
8
+ <Id>65805</Id>
9
+ <FixtureMatch_Id>324725</FixtureMatch_Id>
10
+ <Date>2014-01-04T07:00:00-08:00</Date>
11
+ <Round>21</Round>
12
+ <Spectators>3212</Spectators>
13
+ <League>Scottish Premier League</League>
14
+ <HomeTeam>Ross County</HomeTeam>
15
+ <HomeTeam_Id>360</HomeTeam_Id>
16
+ <HomeCorners>5</HomeCorners>
17
+ <HomeGoals>1</HomeGoals>
18
+ <HalfTimeHomeGoals>0</HalfTimeHomeGoals>
19
+ <HomeShots>10</HomeShots>
20
+ <HomeShotsOnTarget>2</HomeShotsOnTarget>
21
+ <HomeFouls>13</HomeFouls>
22
+ <HomeGoalDetails>88': Graham Carey;</HomeGoalDetails>
23
+ <HomeLineupGoalkeeper> Michael Fraser</HomeLineupGoalkeeper>
24
+ <HomeLineupDefense> Scott Boyd; Brian McLean; Ben Gordon; Evangelos Ikonomou;</HomeLineupDefense>
25
+ <HomeLineupMidfield> Stuart Kettlewell; Alex Cooper; Richard Brittain; Graham Carey;</HomeLineupMidfield>
26
+ <HomeLineupForward> Jordan Slew; Gary Glen;</HomeLineupForward>
27
+ <HomeYellowCards>1</HomeYellowCards>
28
+ <HomeRedCards>0</HomeRedCards>
29
+ <HomeTeamFormation>4-4-2</HomeTeamFormation>
30
+ <AwayTeam>St Johnstone</AwayTeam>
31
+ <AwayTeam_Id>46</AwayTeam_Id>
32
+ <AwayCorners>0</AwayCorners>
33
+ <AwayGoals>0</AwayGoals>
34
+ <HalfTimeAwayGoals>0</HalfTimeAwayGoals>
35
+ <AwayShots>9</AwayShots>
36
+ <AwayShotsOnTarget>3</AwayShotsOnTarget>
37
+ <AwayFouls>14</AwayFouls>
38
+ <AwayGoalDetails />
39
+ <AwayLineupGoalkeeper> Alan Mannus</AwayLineupGoalkeeper>
40
+ <AwayLineupDefense> Frazer Wright; Steven Anderson; Thomas Scobbie; David Mackay;</AwayLineupDefense>
41
+ <AwayLineupMidfield> David Wotherspoon; Murray Davidson; Chris Millar; Gary McDonald;</AwayLineupMidfield>
42
+ <AwayLineupForward> Nigel Hasselbaink; Steve May;</AwayLineupForward>
43
+ <AwayYellowCards>1</AwayYellowCards>
44
+ <AwayRedCards>0</AwayRedCards>
45
+ <AwayTeamFormation>4-4-2</AwayTeamFormation>
46
+ <HomeTeamYellowCardDetails>89': Scott Boyd;</HomeTeamYellowCardDetails>
47
+ <AwayTeamYellowCardDetails>61': David Mackay;</AwayTeamYellowCardDetails>
48
+ <HomeTeamRedCardDetails />
49
+ <AwayTeamRedCardDetails />
50
+ <HomeSubDetails>84': in Michael Tidser;84': out Jordan Slew;66': out Gary Glen;66': in Melvin de Leeuw;</HomeSubDetails>
51
+ <AwaySubDetails>90': in Rory Fallon;90': in Lee Croft;90': out Chris Millar;90': out David Wotherspoon;69': out Nigel Hasselbaink;69': in Michael O'Halloran;</AwaySubDetails>
52
+ </Match>
53
+ </XMLSOCCER.COM>
54
+ </GetHistoricMatchesByIdResult>
55
+ </GetHistoricMatchesByIdResponse>
56
+ </Body>
57
+ </Envelope>