diff --git a/src/server/index.coffee b/src/server/index.coffee
deleted file mode 100644
index 558775b9bd..0000000000
--- a/src/server/index.coffee
+++ /dev/null
@@ -1,96 +0,0 @@
-http = require 'http'
-path = require 'path'
-express = require 'express'
-gzippo = require 'gzippo'
-derby = require 'derby'
-racer = require 'racer'
-auth = require 'derby-auth'
-app = require '../app'
-serverError = require './serverError'
-MongoStore = require('connect-mongo')(express)
-priv = require './private'
-habitrpgStore = require './store'
-middleware = require './middleware'
-
-## RACER CONFIGURATION ##
-
-#racer.io.set('transports', ['xhr-polling'])
-racer.ioClient.set('reconnection limit', 300000) # max reconect timeout to 5 minutes
-racer.set('bundleTimeout', 40000)
-#unless process.env.NODE_ENV == 'production'
-# racer.use(racer.logPlugin)
-# derby.use(derby.logPlugin)
-
-# Infinite stack trace
-Error.stackTraceLimit = Infinity if process.env.NODE_ENV is 'development'
-
-## SERVER CONFIGURATION ##
-
-expressApp = express()
-server = http.createServer expressApp
-module.exports = server
-
-derby.use require('racer-db-mongo')
-module.exports.habitStore = store = derby.createStore
- db: {type: 'Mongo', uri: process.env.NODE_DB_URI, safe:true}
- listen: server
-
-ONE_YEAR = 1000 * 60 * 60 * 24 * 365
-TWO_WEEKS = 1000 * 60 * 60 * 24 * 14
-root = path.dirname path.dirname __dirname
-publicPath = path.join root, 'public'
-
-# Authentication setup
-strategies =
- facebook:
- strategy: require("passport-facebook").Strategy
- conf:
- clientID: process.env.FACEBOOK_KEY
- clientSecret: process.env.FACEBOOK_SECRET
-options =
- domain: process.env.BASE_URL || 'http://localhost:3000'
- allowPurl: true
- schema: require('../app/character').newUserObject()
-
-# This has to happen before our middleware stuff
-auth.store(store, habitrpgStore.customAccessControl)
-
-mongo_store = new MongoStore {url: process.env.NODE_DB_URI}, ->
- expressApp
- .use(middleware.allowCrossDomain)
- .use(express.favicon("#{publicPath}/favicon.ico"))
- # Gzip static files and serve from memory
- .use(gzippo.staticGzip(publicPath, maxAge: ONE_YEAR))
- # Gzip dynamically rendered content
- .use(express.compress())
- .use(express.bodyParser())
- .use(express.methodOverride())
- # Uncomment and supply secret to add Derby session handling
- # Derby session middleware creates req.session and socket.io sessions
- .use(express.cookieParser())
- .use(store.sessionMiddleware
- secret: process.env.SESSION_SECRET || 'YOUR SECRET HERE'
- cookie: { maxAge: TWO_WEEKS } # defaults to 2 weeks? aka, can delete this line?
- store: mongo_store
- )
- # Adds req.getModel method
- .use(store.modelMiddleware())
- # API should be hit before all other routes
- .use('/api/v1', require('./api').middleware)
- .use(require('./deprecated').middleware)
- # Show splash page for newcomers
- .use(middleware.splash)
- .use(priv.middleware)
- .use(middleware.view)
- .use(auth.middleware(strategies, options))
- # Creates an express middleware from the app's routes
- .use(app.router())
- .use(require('./static').middleware)
- .use(expressApp.router)
- .use(serverError(root))
-
- priv.routes(expressApp)
-
- # Errors
- expressApp.all '*', (req) ->
- throw "404: #{req.url}"
diff --git a/src/server/middleware.coffee b/src/server/middleware.coffee
deleted file mode 100644
index 09d83783f4..0000000000
--- a/src/server/middleware.coffee
+++ /dev/null
@@ -1,27 +0,0 @@
-splash = (req, res, next) ->
- isStatic = req.url.split('/')[1] is 'static'
- unless req.query?.play? or req.getModel().get('_userId') or isStatic
- res.redirect('/static/front')
- else
- next()
-
-view = (req, res, next) ->
- model = req.getModel()
- ## Set _mobileDevice to true or false so view can exclude portions from mobile device
- model.set '_mobileDevice', /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(req.header 'User-Agent')
- model.set '_nodeEnv', model.flags.nodeEnv
- next()
-
-#CORS middleware
-allowCrossDomain = (req, res, next) ->
- res.header "Access-Control-Allow-Origin", (req.headers.origin || "*")
- res.header "Access-Control-Allow-Methods", "OPTIONS,GET,POST,PUT,HEAD,DELETE"
- res.header "Access-Control-Allow-Headers", "Content-Type,Accept,Content-Encoding,X-Requested-With,x-api-user,x-api-key"
-
- # wtf is this for?
- if req.method is 'OPTIONS'
- res.send(200);
- else
- next()
-
-module.exports = { splash, view, allowCrossDomain }
diff --git a/views/app/avatar.html b/views/app/avatar.html
deleted file mode 100644
index d5b6a07d47..0000000000
--- a/views/app/avatar.html
+++ /dev/null
@@ -1,263 +0,0 @@
- {itemText('weapon',_user.items.weapon)}: {itemStat('weapon',_user.items.weapon)}% Exp gain {itemText('armor',_user.items.armor)}: {itemStat('armor',_user.items.armor)}% Defense {itemText('head',_user.items.head)}: {itemStat('head',_user.items.head)}% Defense {itemText('shield',_user.items.shield)}: {itemStat('shield',_user.items.shield)}% Defense HP: {floor(_user.stats.hp)} / 50 GP: {floor(_user.stats.gp)} Lvl: {_user.stats.lvl} Exp: {floor(_user.stats.exp)} / {tnl(_user.stats.lvl)} {{t("strength")}}: {userStr(_user.stats.lvl)} {{t("defense")}}: {userDef(_user.stats.lvl)} {{t("petsFound")}}: {count(_user.items.pets)} {{t("totalStrength")}}: {totalStr(_user.stats.lvl, _user.items.weapon)} % {{t("totalDefense")}}: {totalDef(_user.stats.lvl, _user.items.armor, _user.items.head, _user.items.shield)} % {{@profile.profile.blurb}} {{t("rerollNotes")}} {{t("rerollModelText1")}} ({{t("rerollModelText2")}}). {{t("rerollModelText3")}} {{t("petsOutOfGems")}} {{t("whyAdsContent1")}} {{t("whyAdsContent2")}} {{t("whyAdsContent3")}}. {{t("noPartyText")}} {{t("dropsEnabledText1")}} {_user.items.eggs.0.text} {{t("dropsEnabledText2")}}! {_user.items.eggs.0.notes} {_drop.dialog}
- {{t("items")}}
- {{t("stats")}}
-
-
-
{{username(@profile.auth, @profile.profile.name)}}
- {{#if @profile.profile.imageUrl}}
-
- {{/}}
- {{#if @profile.profile.blurb}}
-
- {{#each @profile.profile.websites as :website}}
-
- {{/}}
- {{t("achievments")}}
- {{@profile.backer.npc}} NPC
- {{t("npcText")}}
-
- {{#if @profile.backer.contributor}}
- {{@profile.backer.contributor}}
- {{else}}
- {{t("contribName")}}
- {{/}}
-
- {{t("contribText")}} :)
- {{t("kickstartName1")}} ${{@profile.backer.tier}} {{t("kickstartName2")}}
- {{t("kickstartText")}}
- {#if @profile.achievements.streak}{@profile.achievements.streak}{else}0{/} {{t("streakName")}}
- {{t("streakText1")}} {#if @profile.achievements.streak}{@profile.achievements.streak}{else}0{/} {{t("streakText2")}}
- {{t("origUserName")}}
- {{t("origUserText")}}
- {{t("ultimGearName")}}
- {{t("ultimGearText")}}
- {{t("beastMastName")}}
- {{t("beastMastName")}}
-
- {else if @unlockable}
- {{#if equal(_user.id,@profile.id)}}
-
- {@content}
-
-
- {{/}}
- {/}
-
-
-{{t("inventory")}}
- {{t("market")}}
-
- Daniel Johansson
- {{t("resources")}}
-
- {{t("tavernTalkTitle")}}
-
-
- {#each _tavern.chat.messages as :message}
-
-
- Alexander Augustin
- {{t("eggs")}}
- {#with _items.pets as :egg}
-
-
- {/}
-
- {#with :egg[0]}
-
- {#with :egg[4]}
-
- {#with :egg[8]}
- {{t("hatchingPotions")}}
- {#with _items.hatchingPotions as :hatchingPotion}
-
-
- {/}
-
- {#with :hatchingPotion[0]}
-
- {#with :hatchingPotion[4]}
-
- {#with :hatchingPotion[8]}
-
-
-
- {unescaped @header}
- {{_party.name}}
-
- {{#each _partyMembers as :member}}
-
-
- {{t("leave")}}
-
- {{/}}
- {{username(:member.auth, :member.profile.name)}} ({{:member.id}}) {{t("chat")}}
-
-
- {#each _party.chat as :message}
-
- {{t("invitedTo")}} {_party.name}
- {{t("accept")}}
- {{t("reject")}}
-
- {else}
- {{t("createAParty")}}
-
- {_user.id}
-
-
- {/}
-
-
-
{{t("noEggs")}}
- {/if} - {#each _user.items.eggs as :egg} -{:egg.text}
-{{t("noHatchingPotions")}}
- {/if} - {#each _user.items.hatchingPotions as :hatchingPotion} -{:hatchingPotion}
-{{t("noHatchingPotions")}}
- {else} -{{t("whichHatchingPotion1")}} {_hatchEgg.text} {{t("whichHatchingPotion2")}}
- - {/if} -|
- |
- {{/}}
-
-
{{t("ultimGearUnlocked")}} - - <@footer> - - @footer> -{@item.text}
-{_user.id}
-
- {_user.apiToken}
- {{t("resetText1")}}
-{{t("resetText2")}}
- <@footer> - - - @footer> -{{t("restoreText1")}}
- - {#with _user} - - {/} - - <@footer> - - @footer> -{{t("deleteText1")}}{{t("deleteText2")}} {{t("deleteText3")}}
- - <@footer> - - - @footer> -
-