From 435ec1b6aa8b4ea085839e6b8073a41eebdfb43e Mon Sep 17 00:00:00 2001
From: Michael Schmatz <michaelschmatz@gmail.com>
Date: Thu, 5 Jun 2014 16:48:31 -0700
Subject: [PATCH] Various improvements to transpire script

---
 scripts/transpile.coffee | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/scripts/transpile.coffee b/scripts/transpile.coffee
index 2c60a1c91..fdb3c65bf 100644
--- a/scripts/transpile.coffee
+++ b/scripts/transpile.coffee
@@ -11,25 +11,28 @@ LevelSession = require '../server/levels/sessions/LevelSession.coffee'
 
 Aether.addGlobal 'Vector', require '../app/lib/world/vector'
 Aether.addGlobal '_', _
-
+i = 0
 transpileLevelSession = (sessionID, cb) ->
-  query = LevelSession.findOne("_id": sessionID).select("submittedCode submittedCodeLanguage").lean()
+  query = LevelSession.findOne("_id": sessionID).select("team teamSpells submittedCode submittedCodeLanguage").lean()
   query.exec (err, session) ->
     if err then return cb err
     submittedCode = session.submittedCode
     unless session.submittedCodeLanguage
       throw "SUBMITTED CODE LANGUAGE DOESN'T EXIST"
     else
-      console.log "Transpiling code for session #{session._id} in language #{session.submittedCodeLanguage}"
+      console.log "Transpiling code for session #{i++} #{session._id} in language #{session.submittedCodeLanguage}"
     transpiledCode = {}
     #console.log "Updating session #{sessionID}"
     for thang, spells of submittedCode
       transpiledCode[thang] = {}
       for spellID, spell of spells
+        spellName = thang + "/" + spellID
 
+        if session.teamSpells and not (spellName in session.teamSpells[session.team]) then continue
+        #console.log "Transpiling spell #{spellName}"
         aetherOptions =
           problems: {}
-          language: session.submittedCodeLanguage 
+          language: session.submittedCodeLanguage
           functionName: spellID
           functionParameters: []
           yieldConditionally: spellID is "plan"
@@ -62,7 +65,7 @@ findLadderLevelSessions = (levelID, cb) ->
     levelSessionIDs = _.pluck levelSessions, "_id"
     async.eachSeries levelSessionIDs, transpileLevelSession, (err) ->
       if err then return cb err
-      cb null
+      return cb null
 
 
 transpileLadderSessions = ->
@@ -80,4 +83,4 @@ transpileLadderSessions = ->
       throw err if err
 
 serverSetup.connectToDatabase()
-transpileLadderSessions()
+transpileLadderSessions()
\ No newline at end of file