2015-12-07 11:37:30 -08:00
require ( 'coffee-script/register' ) ;
2015-12-04 10:27:13 -08:00
fs = require ( 'fs' ) ;
path = require ( 'path' ) ;
2015-12-07 11:37:30 -08:00
GLOBAL . _ = require ( 'lodash' ) ;
_ . str = require ( 'underscore.string' ) ;
_ . mixin ( _ . str . exports ( ) ) ;
GLOBAL . tv4 = require ( 'tv4' ) . tv4 ;
var database = require ( '../server/commons/database' ) ;
var mongoose = require ( 'mongoose' ) ;
database . connect ( ) ;
2016-04-06 10:56:06 -07:00
var Achievement = require ( '../server/models/Achievement' ) ;
2015-12-04 10:27:13 -08:00
var tierNames = {
2015-12-07 11:37:30 -08:00
"Wood" : 1 ,
"Stone" : 2 ,
"Silver" : 3 ,
"Gold" : 4 ,
"Diamond" : 5
} ;
2015-12-04 10:27:13 -08:00
file = fs . readFileSync ( 'Code Combat New Achievements - Sheet1.csv' , 'utf-8' ) ;
csvSplit = file . split ( "," ) ;
var tLine = [ ] ;
var lines = [ ] ;
for ( var cell in csvSplit ) {
2015-12-07 11:37:30 -08:00
tLine . push ( csvSplit [ cell ] ) ;
if ( csvSplit [ cell ] . indexOf ( '\n' ) != - 1 ) {
lines . push ( tLine ) ;
tLine = [ ] ;
}
2015-12-04 10:27:13 -08:00
}
var achievements = [ ] ;
for ( var i = 0 ; i < lines . length ; i ++ ) {
2015-12-07 11:37:30 -08:00
// 0 is Category
// 5 is Title
if ( lines [ i ] [ 0 ] == "Concept Mastery" ) {
var a _name = "Completed " + lines [ i ] [ 4 ] + " " + lines [ i ] [ 1 ] + " Levels" ;
if ( /Basic Syntax/ . test ( a _name ) ) continue ; // Already did these by hand
var a _description = lines [ i - ( ( i - 3 ) % 5 ) ] [ 7 ] . replace ( /""/g , '"' ) . replace ( /\|/g , "," ) ;
var a _difficulty = parseInt ( tierNames [ lines [ i ] [ 2 ] ] ) ;
var a _worth = parseInt ( lines [ i ] [ 10 ] ) ;
var a _gems = parseInt ( lines [ i ] [ 11 ] ) ;
var a _queryName = "stats.concepts." + lines [ i ] [ 1 ] . toLowerCase ( ) . replace ( / /g , "_" ) ;
var a _queryCount = parseInt ( lines [ i ] [ 4 ] ) ;
var a _query = { } ;
a _query [ a _queryName ] = { $gte : a _queryCount } ;
var a _rewards = { gems : a _gems } ;
var achievement = new Achievement ( { } ) ;
achievement . set ( 'name' , a _name ) ;
achievement . set ( 'i18n' , { '-' : { '-' : '_' } } ) ;
achievement . set ( 'i18nCoverage' , [ ] ) ;
achievement . set ( 'watchers' , [ ] ) ;
achievement . set ( 'collection' , 'users' ) ;
achievement . set ( 'userField' , '_id' ) ;
achievement . set ( 'description' , a _description ) ;
achievement . set ( 'worth' , a _worth ) ;
achievement . set ( 'query' , a _query ) ;
achievement . set ( 'difficulty' , a _difficulty ) ;
achievement . set ( 'rewards' , a _rewards ) ;
achievement . set ( 'icon' , 'db/achievement/53ed2e2bbbcf5c0000f8b6af/trophy.png' ) ;
achievements . push ( achievement ) ;
achievement . save ( function ( err ) { } ) ;
2015-12-04 10:27:13 -08:00
}
2015-12-07 11:37:30 -08:00
// Now you have access to an array (achievements) of Achievement objects
//console.log(JSON.stringify(achievements, null, 2));