This is a simple backend for a scraper that grabs current world cup results and outputs them as JSON.
-
Clone the repo
-
rake db:setup setup:generate_teams
to initialize the database and generate the teams -
Run the following two tasks as cron jobs, to pull in data with whatever time frame you want (every 5 minutes for example):
rake fifa:get_group_results
(This pulls in the standings of the group stages)rake fifa:get_all_matches
(This pulls in all matches and updates any that need updating)
- Static landing page
- Add CSS class to determine knocked out teams
[url]/teams/
for a list of teams with group ID and FIFA code
[url]/group_results/
for current results (wins, losses, draws, goals for, goals against, knock out status)
[url]/matches/
for all matches (Example JSON object at the bottom of this README)
[url]/matches/today/
[url]/matches/tomorrow/
(what it says on the tin)
You can also retrieve the matches for any team if you know their FIFA code by passing it in as a param.
Example: [url]/matches/country?fifa_code=USA
You can append ?by_date=desc
to any query tosort the matches by furthest in the future to furthest in the past. ?by_date=asc
does past to future.
Example:[url]/matches/today/?by_date=DESC
Gives you today's matches in reverse order from latest to earliest.
MATCH API
{
match_number: 1,
location: "Arena Corinthians",
datetime: "2014-06-12T17:00:00.000-05:00",
status: "completed",
home_team: {
country: "Brazil",
code: "BRA",
goals: 3
},
away_team: {
country: "Croatia",
code: "CRO",
goals: 1
},
winner: "Brazil"
},
GROUP RESULTS API
{
country: "Brazil",
alternate_name: null,
fifa_code: "BRA",
group_id: 1,
wins: 1,
draws: 0,
losses: 0,
goals_for: 3,
goals_against: 0,
knocked_out: false,
updated_at: "2014-06-14T01:06:52.484-05:00"
},
http://worldcup.sfg.io/matches
http://worldcup.sfg.io/matches/today
http://worldcup.sfg.io/group_results
You can read a blog post about building the API here: http://softwareforgood.com/soccer-good/