#!/usr/bin/env coffee

Mod              = require '../src/coffee/models/mod'
ModParser        = require '../src/coffee/models/mod_parser'
ModVersionParser = require '../src/coffee/models/mod_version_parser'
_                = require 'underscore'
fs               = require 'fs'
{DefaultMods}    = require '../src/coffee/constants'
{Logger}         = require 'crafting-guide-common'

require '../src/coffee/underscore_mixins'

########################################################################################################################

global.logger = new Logger level:Logger.FATAL

modSlugs = {}
itemSlugs = {}
tutorialSlugs = []

base = 'http://crafting-guide.com'

urls = [
    "#{base}/"
    "#{base}/configure/"
    "#{base}/browse/"
    "#{base}/craft/"
]

for modSlug, modData of DefaultMods
    modSlugs[modSlug] = modSlug

    mod = new Mod slug:modSlug
    modParser = new ModParser model:mod
    modParser.parse fs.readFileSync "../crafting-guide-data/data/#{modSlug}/mod.cg", 'utf-8'

    mod.eachModVersion (modVersion)->
        modVersionDataFile = "../crafting-guide-data/data/#{modSlug}/versions/#{modVersion.version}/mod-version.cg"
        modVersionParser = new ModVersionParser model:modVersion
        modVersionParser.parse fs.readFileSync modVersionDataFile, 'utf-8'

        modVersion.eachItem (item)->
            itemSlugs[item.slug] = item.slug

    for tutorial in mod.tutorials
        tutorialSlugs.push mod:mod.slug, tutorial:tutorial.slug

for modSlug in _.values(modSlugs).sort()
    urls.push base + "/browse/#{modSlug}/"

for tutorialSlug in tutorialSlugs
    urls.push base + "/browse/#{tutorialSlug.mod}/tutorials/#{tutorialSlug.tutorial}/"

for key in _.keys(itemSlugs).sort()
    itemSlug = itemSlugs[key]
    urls.push base + "/browse/#{itemSlug.mod}/#{itemSlug.item}/"

for url in urls
    console.log url
