football-butler 1.0.1 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/football/butler/api.rb +14 -17
- data/lib/football/butler/api_football/base_api_football.rb +17 -0
- data/lib/football/butler/api_football/coachs.rb +46 -0
- data/lib/football/butler/api_football/countries.rb +39 -0
- data/lib/football/butler/api_football/fixtures.rb +80 -0
- data/lib/football/butler/api_football/head_to_head.rb +56 -0
- data/lib/football/butler/api_football/injuries.rb +62 -0
- data/lib/football/butler/api_football/leagues.rb +101 -0
- data/lib/football/butler/api_football/lineups.rb +39 -0
- data/lib/football/butler/api_football/odds.rb +55 -0
- data/lib/football/butler/api_football/players.rb +47 -0
- data/lib/football/butler/api_football/predictions.rb +27 -0
- data/lib/football/butler/api_football/sidelineds.rb +37 -0
- data/lib/football/butler/api_football/standings.rb +35 -0
- data/lib/football/butler/api_football/statistics.rb +22 -0
- data/lib/football/butler/api_football/teams.rb +66 -0
- data/lib/football/butler/api_football/timezones.rb +21 -0
- data/lib/football/butler/api_football/top_scorers.rb +22 -0
- data/lib/football/butler/api_football/transfers.rb +36 -0
- data/lib/football/butler/api_football/trophies.rb +37 -0
- data/lib/football/butler/api_football/venues.rb +66 -0
- data/lib/football/butler/apifootball/base_apifootball.rb +17 -0
- data/lib/football/butler/apifootball/competitions.rb +30 -0
- data/lib/football/butler/apifootball/countries.rb +20 -0
- data/lib/football/butler/apifootball/events.rb +61 -0
- data/lib/football/butler/apifootball/head_to_head.rb +30 -0
- data/lib/football/butler/apifootball/lineups.rb +22 -0
- data/lib/football/butler/apifootball/odds.rb +25 -0
- data/lib/football/butler/apifootball/players.rb +27 -0
- data/lib/football/butler/apifootball/predictions.rb +28 -0
- data/lib/football/butler/apifootball/standings.rb +23 -0
- data/lib/football/butler/apifootball/statistics.rb +22 -0
- data/lib/football/butler/apifootball/teams.rb +29 -0
- data/lib/football/butler/apifootball/top_scorers.rb +22 -0
- data/lib/football/butler/areas.rb +23 -23
- data/lib/football/butler/base.rb +45 -18
- data/lib/football/butler/coachs.rb +26 -0
- data/lib/football/butler/competitions.rb +53 -44
- data/lib/football/butler/configuration.rb +275 -14
- data/lib/football/butler/countries.rb +11 -0
- data/lib/football/butler/events.rb +11 -0
- data/lib/football/butler/fixtures.rb +11 -0
- data/lib/football/butler/football_data/areas.rb +40 -0
- data/lib/football/butler/football_data/competitions.rb +72 -0
- data/lib/football/butler/football_data/head_to_head.rb +27 -0
- data/lib/football/butler/football_data/lineups.rb +32 -0
- data/lib/football/butler/football_data/matches.rb +110 -0
- data/lib/football/butler/football_data/odds.rb +27 -0
- data/lib/football/butler/football_data/players.rb +20 -0
- data/lib/football/butler/football_data/scorers.rb +23 -0
- data/lib/football/butler/football_data/standings.rb +47 -0
- data/lib/football/butler/football_data/teams.rb +39 -0
- data/lib/football/butler/head_to_head.rb +28 -0
- data/lib/football/butler/injuries.rb +31 -0
- data/lib/football/butler/leagues.rb +11 -0
- data/lib/football/butler/lineups.rb +18 -0
- data/lib/football/butler/matches.rb +48 -83
- data/lib/football/butler/odds.rb +18 -0
- data/lib/football/butler/players.rb +26 -0
- data/lib/football/butler/predictions.rb +17 -0
- data/lib/football/butler/scorers.rb +22 -0
- data/lib/football/butler/sidelineds.rb +20 -0
- data/lib/football/butler/standings.rb +30 -0
- data/lib/football/butler/statistics.rb +17 -0
- data/lib/football/butler/teams.rb +23 -23
- data/lib/football/butler/tier.rb +26 -11
- data/lib/football/butler/timezones.rb +16 -0
- data/lib/football/butler/top_scorers.rb +11 -0
- data/lib/football/butler/transfers.rb +21 -0
- data/lib/football/butler/trophies.rb +21 -0
- data/lib/football/butler/venues.rb +34 -0
- data/lib/football/butler/version.rb +8 -2
- data/lib/football/butler.rb +20 -0
- metadata +71 -7
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Football
|
4
|
+
module Butler
|
5
|
+
module FootballData
|
6
|
+
class Teams < Base
|
7
|
+
PATH = :teams
|
8
|
+
|
9
|
+
class << self
|
10
|
+
## TEAM
|
11
|
+
# v2/teams/{id}
|
12
|
+
# returns team object directly as a hash
|
13
|
+
def by_id(id:)
|
14
|
+
path = "#{PATH}/#{id}"
|
15
|
+
Api.get(path: path)
|
16
|
+
end
|
17
|
+
|
18
|
+
## TEAMS
|
19
|
+
#
|
20
|
+
# season={YEAR}
|
21
|
+
# stage={STAGE}
|
22
|
+
#
|
23
|
+
# v2/competitions/{id}/teams
|
24
|
+
def by_competition(id:, result:, filters:)
|
25
|
+
path = "#{Competitions::PATH}/#{id}/#{PATH}"
|
26
|
+
Api.get(path: path, result: result, filters: filters)
|
27
|
+
end
|
28
|
+
|
29
|
+
# v2/competitions/{id}/teams?year={year}
|
30
|
+
def by_competition_and_year(id:, year:, result:, filters:)
|
31
|
+
path = "#{Competitions::PATH}/#{id}/#{PATH}"
|
32
|
+
filters.merge!({ year: year })
|
33
|
+
Api.get(path: path, result: result, filters: filters)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'football/butler/football_data/head_to_head'
|
3
|
+
require 'football/butler/apifootball/head_to_head'
|
4
|
+
require 'football/butler/api_football/head_to_head'
|
5
|
+
|
6
|
+
module Football
|
7
|
+
module Butler
|
8
|
+
class HeadToHead < Base
|
9
|
+
|
10
|
+
class << self
|
11
|
+
## HEAD TO HEAD
|
12
|
+
def by_match(id:)
|
13
|
+
api_switch_method(__method__, { id: id })
|
14
|
+
end
|
15
|
+
|
16
|
+
def by_teams(team_id:, second_team_id:, filters: {}, result: api_switch_result)
|
17
|
+
api_switch_method(__method__, {
|
18
|
+
team_id: team_id,
|
19
|
+
second_team_id: second_team_id,
|
20
|
+
filters: filters,
|
21
|
+
result: result
|
22
|
+
}
|
23
|
+
)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'football/butler/api_football/injuries'
|
3
|
+
|
4
|
+
module Football
|
5
|
+
module Butler
|
6
|
+
class Injuries < Base
|
7
|
+
|
8
|
+
class << self
|
9
|
+
## INJURIES
|
10
|
+
#
|
11
|
+
def by_competition_and_season(competition:, season:, result: api_switch_result, filters: {})
|
12
|
+
api_switch_method(__method__, {
|
13
|
+
competition: competition, season: season, result: result, filters: filters
|
14
|
+
})
|
15
|
+
end
|
16
|
+
|
17
|
+
def by_match(match:, result: api_switch_result, filters: {})
|
18
|
+
api_switch_method(__method__, {
|
19
|
+
match: match, result: result, filters: filters
|
20
|
+
})
|
21
|
+
end
|
22
|
+
|
23
|
+
def by_team_and_season(team:, season:, result: api_switch_result, filters: {})
|
24
|
+
api_switch_method(__method__, {
|
25
|
+
team: team, season: season, result: result, filters: filters
|
26
|
+
})
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'football/butler/apifootball/competitions'
|
3
|
+
require 'football/butler/football_data/competitions'
|
4
|
+
require 'football/butler/api_football/leagues'
|
5
|
+
|
6
|
+
module Football
|
7
|
+
module Butler
|
8
|
+
class Leagues < Competitions
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'football/butler/football_data/lineups'
|
3
|
+
require 'football/butler/apifootball/lineups'
|
4
|
+
require 'football/butler/api_football/lineups'
|
5
|
+
|
6
|
+
module Football
|
7
|
+
module Butler
|
8
|
+
class Lineups < Base
|
9
|
+
|
10
|
+
class << self
|
11
|
+
## LINEUPS
|
12
|
+
def by_match(id:)
|
13
|
+
api_switch_method(__method__, { id: id })
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,91 +1,56 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
require 'football/butler/apifootball/events'
|
3
|
+
require 'football/butler/football_data/matches'
|
4
|
+
require 'football/butler/api_football/fixtures'
|
2
5
|
|
3
6
|
module Football
|
4
7
|
module Butler
|
5
8
|
class Matches < Base
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
# v2/competitions/{id}/matches?matchday={match_day}
|
54
|
-
def self.by_competition_and_match_day(id:, match_day:, result: PATH, filters: {})
|
55
|
-
path = "#{Competitions::PATH}/#{id}/#{PATH}"
|
56
|
-
filters.merge!({ matchday: match_day })
|
57
|
-
Api.get(path: path, filters: filters, result: result)
|
58
|
-
end
|
59
|
-
|
60
|
-
## by TEAM
|
61
|
-
#
|
62
|
-
# dateFrom={DATE}
|
63
|
-
# dateTo={DATE}
|
64
|
-
# status={STATUS}
|
65
|
-
# venue={VENUE}
|
66
|
-
# limit={LIMIT}
|
67
|
-
#
|
68
|
-
# v2/teams/{id}/matches
|
69
|
-
def self.by_team(id:, result: PATH, filters: {})
|
70
|
-
path = "#{Teams::PATH}/#{id}/#{PATH}"
|
71
|
-
Api.get(path: path, result: result, filters: filters)
|
72
|
-
end
|
73
|
-
|
74
|
-
# v2/teams/{id}/matches?status={status}
|
75
|
-
def self.by_team_and_status(id:, status:, result: PATH, filters: {})
|
76
|
-
path = "#{Teams::PATH}/#{id}/#{PATH}"
|
77
|
-
filters.merge!({ status: status })
|
78
|
-
Api.get(path: path, result: result, filters: filters)
|
79
|
-
end
|
80
|
-
|
81
|
-
# v2/teams/{team}/matches?status=FINISHED
|
82
|
-
def self.by_team_finished(id:, result: PATH, filters: {})
|
83
|
-
by_team_and_status(id: id, status: STATUS_FINISHED, result: result, filters: filters)
|
84
|
-
end
|
85
|
-
|
86
|
-
# v2/teams/{team}/matches?status=SCHEDULED
|
87
|
-
def self.by_team_scheduled(id:, result: PATH, filters: {})
|
88
|
-
by_team_and_status(id: id, status: STATUS_SCHEDULED, result: result, filters: filters)
|
9
|
+
class << self
|
10
|
+
## MATCH
|
11
|
+
def by_id(id:)
|
12
|
+
api_switch_method(__method__, { id: id })
|
13
|
+
end
|
14
|
+
|
15
|
+
## MATCHES
|
16
|
+
def all(result: api_switch_result, filters: {})
|
17
|
+
api_switch_method(__method__, { result: result, filters: filters })
|
18
|
+
end
|
19
|
+
|
20
|
+
## by COMPETITION
|
21
|
+
def by_competition(id:, result: api_switch_result, filters: {})
|
22
|
+
api_switch_method(__method__, { id: id, result: result, filters: filters })
|
23
|
+
end
|
24
|
+
|
25
|
+
def by_competition_and_year(id:, year:, result: api_switch_result, filters: {})
|
26
|
+
api_switch_method(__method__, { id: id, year: year, result: result, filters: filters })
|
27
|
+
end
|
28
|
+
|
29
|
+
def by_competition_and_match_day(id:, match_day:, result: api_switch_result, filters: {})
|
30
|
+
api_switch_method(__method__, { id: id, match_day: match_day, result: result, filters: filters })
|
31
|
+
end
|
32
|
+
|
33
|
+
## by TEAM
|
34
|
+
def by_team(id:, result: api_switch_result, filters: {})
|
35
|
+
api_switch_method(__method__, { id: id, result: result, filters: filters })
|
36
|
+
end
|
37
|
+
|
38
|
+
def by_team_and_status(id:, status:, result: api_switch_result, filters: {})
|
39
|
+
api_switch_method(__method__, { id: id, status: status, result: result, filters: filters })
|
40
|
+
end
|
41
|
+
|
42
|
+
def by_team_finished(id:, result: api_switch_result, filters: {})
|
43
|
+
api_switch_method(__method__, { id: id, result: result, filters: filters })
|
44
|
+
end
|
45
|
+
|
46
|
+
def by_team_scheduled(id:, result: api_switch_result, filters: {})
|
47
|
+
api_switch_method(__method__, { id: id, result: result, filters: filters })
|
48
|
+
end
|
49
|
+
|
50
|
+
## by PLAYER
|
51
|
+
def by_player(id:, result: api_switch_result, filters: {})
|
52
|
+
api_switch_method(__method__, { id: id, result: result, filters: filters })
|
53
|
+
end
|
89
54
|
end
|
90
55
|
end
|
91
56
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'football/butler/football_data/odds'
|
3
|
+
require 'football/butler/apifootball/odds'
|
4
|
+
require 'football/butler/api_football/odds'
|
5
|
+
|
6
|
+
module Football
|
7
|
+
module Butler
|
8
|
+
class Odds < Base
|
9
|
+
|
10
|
+
class << self
|
11
|
+
## ODDS
|
12
|
+
def by_match(id:, from: nil, to: nil, result: api_switch_result)
|
13
|
+
api_switch_method(__method__, { id: id, from: from, to: to, result: result })
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'football/butler/apifootball/players'
|
3
|
+
require 'football/butler/football_data/players'
|
4
|
+
require 'football/butler/api_football/players'
|
5
|
+
|
6
|
+
module Football
|
7
|
+
module Butler
|
8
|
+
class Players < Base
|
9
|
+
|
10
|
+
class << self
|
11
|
+
## PLAYER
|
12
|
+
def by_id(id:)
|
13
|
+
api_switch_method(__method__, { id: id })
|
14
|
+
end
|
15
|
+
|
16
|
+
def by_name(name:, result: api_switch_result)
|
17
|
+
api_switch_method(__method__, { name: name, result: result })
|
18
|
+
end
|
19
|
+
|
20
|
+
def by_id_and_season(id:, season:, result: api_switch_result, filters: {})
|
21
|
+
api_switch_method(__method__, { id: id, season: season, result: result, filters: filters })
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'football/butler/apifootball/predictions'
|
3
|
+
require 'football/butler/api_football/predictions'
|
4
|
+
|
5
|
+
module Football
|
6
|
+
module Butler
|
7
|
+
class Predictions < Base
|
8
|
+
|
9
|
+
class << self
|
10
|
+
## PREDICTIONS
|
11
|
+
def by_match(id:, filters: {}, result: api_switch_result)
|
12
|
+
api_switch_method(__method__, { id: id, filters: filters, result: result })
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'football/butler/football_data/scorers'
|
3
|
+
require 'football/butler/apifootball/top_scorers'
|
4
|
+
require 'football/butler/api_football/top_scorers'
|
5
|
+
|
6
|
+
module Football
|
7
|
+
module Butler
|
8
|
+
class Scorers < Base
|
9
|
+
|
10
|
+
class << self
|
11
|
+
## SCORER
|
12
|
+
def by_competition(id:, result: api_switch_result, filters: {})
|
13
|
+
api_switch_method(__method__, { id: id, result: result, filters: filters })
|
14
|
+
end
|
15
|
+
|
16
|
+
def by_competition_and_year(id:, year:, result: api_switch_result, filters: {})
|
17
|
+
api_switch_method(__method__, { id: id, year: year, result: result, filters: filters })
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'football/butler/api_football/sidelineds'
|
3
|
+
|
4
|
+
module Football
|
5
|
+
module Butler
|
6
|
+
class Sidelineds < Base
|
7
|
+
|
8
|
+
class << self
|
9
|
+
## SIDELINEDS
|
10
|
+
def by_player(player:, result: api_switch_result, filters: {})
|
11
|
+
api_switch_method(__method__, { player: player, result: result, filters: filters })
|
12
|
+
end
|
13
|
+
|
14
|
+
def by_coach(coach:, result: api_switch_result, filters: {})
|
15
|
+
api_switch_method(__method__, { coach: coach, result: result, filters: filters })
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'football/butler/apifootball/standings'
|
3
|
+
require 'football/butler/football_data/standings'
|
4
|
+
require 'football/butler/api_football/standings'
|
5
|
+
|
6
|
+
module Football
|
7
|
+
module Butler
|
8
|
+
class Standings < Base
|
9
|
+
|
10
|
+
class << self
|
11
|
+
def by_competition(id:, result: api_switch_result, filters: {})
|
12
|
+
api_switch_method(__method__, { id: id, result: result, filters: filters })
|
13
|
+
end
|
14
|
+
|
15
|
+
def home_by_competition(id:, result: api_switch_result, filters: {})
|
16
|
+
api_switch_method(__method__, { id: id, result: result, filters: filters })
|
17
|
+
end
|
18
|
+
|
19
|
+
def away_by_competition(id:, result: api_switch_result, filters: {})
|
20
|
+
api_switch_method(__method__, { id: id, result: result, filters: filters })
|
21
|
+
end
|
22
|
+
|
23
|
+
def by_competition_and_year(id:, year:, result: api_switch_result, filters: {})
|
24
|
+
api_switch_method(__method__, { id: id, year: year, result: result, filters: filters })
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'football/butler/apifootball/statistics'
|
3
|
+
require 'football/butler/api_football/statistics'
|
4
|
+
|
5
|
+
module Football
|
6
|
+
module Butler
|
7
|
+
class Statistics < Base
|
8
|
+
|
9
|
+
class << self
|
10
|
+
## STATISTICS
|
11
|
+
def by_match(id:, result: api_switch_result)
|
12
|
+
api_switch_method(__method__, { id: id, result: result })
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -1,34 +1,34 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
require 'football/butler/apifootball/teams'
|
3
|
+
require 'football/butler/football_data/teams'
|
4
|
+
require 'football/butler/api_football/teams'
|
2
5
|
|
3
6
|
module Football
|
4
7
|
module Butler
|
5
8
|
class Teams < Base
|
6
|
-
PATH = :teams
|
7
9
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
Api.get(path: path)
|
14
|
-
end
|
10
|
+
class << self
|
11
|
+
## TEAM
|
12
|
+
def by_id(id:)
|
13
|
+
api_switch_method(__method__, { id: id })
|
14
|
+
end
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
16
|
+
def by_name(name:)
|
17
|
+
api_switch_method(__method__, { name: name })
|
18
|
+
end
|
19
|
+
|
20
|
+
def by_country_name(name:)
|
21
|
+
api_switch_method(__method__, { name: name })
|
22
|
+
end
|
23
|
+
|
24
|
+
## COMPETITION
|
25
|
+
def by_competition(id:, result: api_switch_result, filters: {})
|
26
|
+
api_switch_method(__method__, { id: id, result: result, filters: filters })
|
27
|
+
end
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
filters.merge!({ year: year })
|
31
|
-
Api.get(path: path, result: result, filters: filters)
|
29
|
+
def by_competition_and_year(id:, year:, result: api_switch_result, filters: {})
|
30
|
+
api_switch_method(__method__, { id: id, year: year, result: result, filters: filters })
|
31
|
+
end
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|