| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package extract
- import balldontlie._
- import game.{Team, PlayerGameStats}
- import upickle.default._
- object Extract {
- def writeOrReadBack[T: ReadWriter](
- localCopy: os.Path,
- getRemoteData: () => T
- ): T = {
- if (!os.exists(localCopy)) {
- val data = getRemoteData()
- Utils.writeToFile[T](data, localCopy)
- data
- } else {
- println(s"file $localCopy already exists, reading back from it")
- Utils.readFromFile[T](localCopy)
- }
- }
- def getTeams(local: os.Path, filterTeams: Team => Boolean) = {
- def getData() = {
- EndpointResponse
- .getTeams()
- .filter(filterTeams)
- }
- writeOrReadBack(local, getData)
- }
- def getGames(local: os.Path, season: Int, teamIds: List[Int]) = {
- def getData() = {
- EndpointResponse.getGames(2021, teamIds)
- }
- writeOrReadBack(local, getData)
- }
- def getStats(local: os.Path, gameIds: List[Int]) = {
- if (!os.exists(local)) {
- val data = EndpointResponse.getStats(gameIds)
- Utils.writeToFile(PlayerGameStats.as_json_value(data), local)
- data
- } else {
- println(s"file $local already exists, reading back from it")
- Utils.readFromFile[List[PlayerGameStats]](local)
- }
- }
- }
|