Create your own datasets in plain text for your own league(s) from scratch and read it all into your SQL database of choice (e.g. SQLite, PostgreSQL, etc.) with a single command e.g.:
$ sportdb build
Let's get started. Follow along these steps:
- Step 1: Add all match fixtures and results
- Let's build. That's it. Done.
Using a file structure like:
mauritius
└── 2014-15 # 2014-15 season folder
├── 1-league-i.txt # match fixtures / results - matchdays 1-18
└── 1-league-ii.txt # - matchdays 19-36
Example - 2014-15/1-league-i.txt
:
= Mauritius Premier League 2014/15 =
Matchday 1
[Wed Nov/5]
Curepipe Starlight 1-3 Petite Rivière Noire
AS Quatre Bornes 1-0 La Cure Sylvester
Pamplemousses 0-1 Rivière du Rempart
AS Port-Louis 2000 5-1 Entente Boulet Rouge
Chamarel SC 2-3 Cercle de Joachim
Matchday 2
[Sun Nov/9]
Curepipe Starlight 2-1 AS Quatre Bornes
Entente Boulet Rouge 1-2 Chamarel SC
Rivière du Rempart 1-1 AS Port-Louis 2000
La Cure Sylvester 1-2 Pamplemousses
Petite Rivière Noire 2-0 Cercle de Joachim
Matchday 3
[Wed Nov/12]
Chamarel SC 1-1 Rivière du Rempart
AS Port-Louis 2000 1-0 La Cure Sylvester
Cercle de Joachim 2-2 Entente Boulet Rouge
Pamplemousses 0-4 Curepipe Starlight
AS Quatre Bornes 1-2 Petite Rivière Noire
Matchday 4
[Sun Nov/16]
Petite Rivière Noire 4-1 Entente Boulet Rouge
Rivière du Rempart 1-1 Cercle de Joachim
La Cure Sylvester 0-0 Chamarel SC
Curepipe Starlight 0-0 AS Port-Louis 2000
AS Quatre Bornes 1-0 Pamplemousses
...
Now try in your working folder:
$ sportdb build
This will run the build script and
- setup a new single-file SQLite database e.g.
./sport.db
from scratch (zero) - read in all datasets in plain text
That's it. Try:
$ sqlite3 sport.db
SQLite version 3.7.16
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
alltime_standing_entries events_grounds names
alltime_standings events_teams parts
assocs games persons
assocs_assocs goals places
badges grounds props
cities group_standing_entries rosters
continents group_standings rounds
counties groups seasons
countries groups_teams states
country_codes langs taggings
districts leagues tags
event_standing_entries logs teams
event_standings metros usages
events munis zones
sqlite> select * from countries;
1|mu|Mauritius|MRI|...
sqlite> select * from leagues;
1|mu_premierleague|Premier League|...
2|mu_cup|Cup|...
sqlite> select * from teams;
1|Curepipe Starlight|...
2|Petite Rivière Noire|...
3|AS Quatre Bornes|..
4|La Cure Sylvester|...
5|Pamplemousses|...
6|Rivière du Rempart|...
7|AS Port-Louis 2000|...
8|Entente Boulet Rouge|...
9|Chamarel SC|...
10|Cercle de Joachim|...
11|Pointe-aux-Sables Mates|...
12|Savanne SC|...
sqlite> select * from events;
1|mu_premierleague.2014/15|...
2|mu_cup.2015|...
sqlite> select * from matches;
...
And so on.
Note - The latest sportdb update / machinery comes pre-configured with many built-in football leagues (& cups)
from around the world, see /leagues
.
If you want to add more football league(s), you are more than welcome to open a ticket/issue.
You can use the fbtok
command-line tool shipping with the sportdb machinery to check-up on the Football.TXT tokenizer / tokens.
Let's try the Mauritus Republic Cup 2024 (see 2024/republic-cup.txt):
$ fbtok 2024/republic-cup.txt
Resulting in:
line >Round 1<
[[:round, "Round 1"]]
line >[Apr 28]<
[[:date, "Apr 28", {:m=>4, :d=>28}]]
line >Cercle de Joachim 3-2 EBRRMR<
[[:team, "Cercle de Joachim"], [:score, "3-2", {:ft=>[3, 2]}], [:team, "EBRRMR"]]
line >Chebel Citizens 2-0 ASPL 2000<
[[:team, "Chebel Citizens"], [:score, "2-0", {:ft=>[2, 0]}], [:team, "ASPL 2000"]]
line >Quarterfinals<
[[:round, "Quarterfinals"]]
line >[May 8]<
[[:date, "May 8", {:m=>5, :d=>8}]]
line >Savanne 2-1 Chebel Citizens<
[[:team, "Savanne"], [:score, "2-1", {:ft=>[2, 1]}], [:team, "Chebel Citizens"]]
...
line >Final<
[[:round, "Final"]]
line >[Jul 27]<
[[:date, "Jul 27", {:m=>7, :d=>27}]]
line >Cercle de Joachim 1-0 AS Rivière du Rempart<
[[:team, "Cercle de Joachim"], [:score, "1-0", {:ft=>[1, 0]}], [:team, "AS Rivière du Rempart"]]
OK no parse errors found
You can use the fbtxt2json
command-line tool to convert any file in the Football.TXT format to JSON.
Let's try to convert the Mauritus Premier League 2014/15
in the Football.TXT format (see 2014-15/1-league-i.txt
and
2014-15/1-league-ii.txt
) to JSON:
$ fbtxt2json 2014-15/1-league-i.txt 2014-15/1-league-ii.txt -o mu.1.json
Resulting in:
{
"name": "Mauritius Premier League 2014/15",
"matches": [
{
"round": "Matchday 1",
"date": "2014-11-05",
"team1": "Curepipe Starlight",
"team2": "Petite Rivière Noire",
"score": { "ft": [1,3] }
},
{
"round": "Matchday 1",
"date": "2014-11-05",
"team1": "AS Quatre Bornes",
"team2": "La Cure Sylvester",
"score": { "ft": [1,0] }
},
// ...
]
}
Yes, you can. More than welcome. See Help & Support »