소스 검색

Add Extract.getGames and Extract.getStats

theenglishway (time) 2 년 전
부모
커밋
c4f9812bc1
2개의 변경된 파일18개의 추가작업 그리고 14개의 파일을 삭제
  1. 13 13
      src/main/scala/Extract.scala
  2. 5 1
      src/main/scala/Main.scala

+ 13 - 13
src/main/scala/Extract.scala

@@ -10,7 +10,7 @@ object Extract {
     "Atlanta Hawks",
     "Los Angeles Lakers",
     "Milwaukee Bucks"
-  ).take(1)
+  ).take(4)
 
   def writeOrReadBack[T: ReadWriter](
       file: os.Path,
@@ -22,6 +22,7 @@ object Extract {
 
       data
     } else {
+      println(s"file $file already exists, reading back from it")
       Utils.readFromFile[T](file)
     }
   }
@@ -36,20 +37,19 @@ object Extract {
     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
-        .getTeams()
-        .filter(team => selectedTeams.contains(team.full_name))
-        .map(_.id)
-      val gameList = EndpointResponse.getGames(2021, teamIds)
+  def getGames(output: os.Path, season: Int, teamIds: List[Int]) = {
+    def getData() = {
+      EndpointResponse.getGames(2021, teamIds)
+    }
 
-      val stats = EndpointResponse.getStats(gameList.map(_.id))
+    writeOrReadBack(output, getData)
+  }
 
-      Utils.writeToFile(PlayerGameStats.as_json_value(stats), stats_output)
-      Utils.writeToFile(gameList, games_output)
-    } else {
-      println(s"output files $stats_output and $games_output already exist")
+  def getStats(output: os.Path, gameIds: List[Int]) = {
+    def getData() = {
+      EndpointResponse.getStats(gameIds)
     }
+
+    writeOrReadBack(output, getData)
   }
 }

+ 5 - 1
src/main/scala/Main.scala

@@ -19,4 +19,8 @@ object Main extends App {
   val teamFilter = (team: Team) => selectedTeams.contains(team.full_name)
 
   val teams = Extract.getTeams(teams_output, teamFilter)
-  Extract.getStats(stats_output, games_output)
+  println(teams)
+  val games = Extract.getGames(games_output, 2021, teams.map(_.id))
+  println(games.size)
+  val stats = Extract.getStats(stats_output, games.map(_.id))
+  println(stats.size)