|
|
@@ -1,7 +1,8 @@
|
|
|
package extract
|
|
|
|
|
|
import balldontlie._
|
|
|
-import game.PlayerGameStats
|
|
|
+import game.{Team, PlayerGameStats}
|
|
|
+import upickle.default._
|
|
|
|
|
|
object Extract {
|
|
|
val selectedTeams = List(
|
|
|
@@ -11,6 +12,30 @@ object Extract {
|
|
|
"Milwaukee Bucks"
|
|
|
).take(1)
|
|
|
|
|
|
+ def writeOrReadBack[T: ReadWriter](
|
|
|
+ file: os.Path,
|
|
|
+ getRemoteData: () => T
|
|
|
+ ): T = {
|
|
|
+ if (!os.exists(file)) {
|
|
|
+ val data = getRemoteData()
|
|
|
+ Utils.writeToFile[T](data, file)
|
|
|
+
|
|
|
+ data
|
|
|
+ } else {
|
|
|
+ Utils.readFromFile[T](file)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ def getTeams(output: os.Path, filterTeams: Team => Boolean) = {
|
|
|
+ def getData() = {
|
|
|
+ EndpointResponse
|
|
|
+ .getTeams()
|
|
|
+ .filter(filterTeams)
|
|
|
+ }
|
|
|
+
|
|
|
+ writeOrReadBack(output, getData)
|
|
|
+ }
|
|
|
+
|
|
|
def getStats(stats_output: os.Path, games_output: os.Path) = {
|
|
|
if (!os.exists(stats_output) || !os.exists(games_output)) {
|
|
|
val teamIds = EndpointResponse
|