add more debug tools, and email me on error

This commit is contained in:
Tyler Renelle
2013-02-06 02:42:48 -05:00
parent a0c4480c53
commit 0e6d08e16b
5 changed files with 53 additions and 15 deletions

View File

@@ -1,6 +1,38 @@
/*process.on('uncaughtException', function (error) { process.on('uncaughtException', function (error) {
function sendEmail(mailData) {
var nodemailer = require("derby-auth/node_modules/nodemailer");
// create reusable transport method (opens pool of SMTP connections)
// TODO derby-auth isn't currently configurable here, if you need customizations please send pull request
var smtpTransport = nodemailer.createTransport("SMTP",{
service: process.env.SMTP_SERVICE,
auth: {
user: process.env.SMTP_USER,
pass: process.env.SMTP_PASS
}
});
// send mail with defined transport object
smtpTransport.sendMail(mailData, function(error, response){
if(error){
console.log(error);
}else{
console.log("Message sent: " + response.message);
}
smtpTransport.close(); // shut down the connection pool, no more messages
});
}
sendEmail({
from: "HabitRPG <admin@habitrpg.com>",
to: "tylerrenelle@gmail.com",
subject: "HabitRPG Error",
text: error.stack
});
console.log(error.stack); console.log(error.stack);
});*/ });
require('coffee-script') // remove intermediate compilation requirement require('coffee-script') // remove intermediate compilation requirement
require('./src/server').listen(process.env.PORT || 3000); require('./src/server').listen(process.env.PORT || 3000);

13
src/app/debug.coffee Normal file
View File

@@ -0,0 +1,13 @@
moment = require 'moment'
module.exports.app = (appExports, model) ->
user = model.at('_user')
appExports.emulateNextDay = ->
yesterday = +moment().subtract('days', 1).toDate()
user.set 'lastCron', yesterday
window.location.reload()
appExports.cheat = ->
user.incr 'stats.exp', 20
user.incr 'stats.gp', 1000

View File

@@ -105,6 +105,8 @@ ready (model) ->
require('../server/private').app(exports, model) require('../server/private').app(exports, model)
require('./debug').app(exports, model)
user.on 'set', 'tasks.*.completed', (i, completed, previous, isLocal, passed) -> user.on 'set', 'tasks.*.completed', (i, completed, previous, isLocal, passed) ->
return if passed? && passed.cron # Don't do this stuff on cron return if passed? && passed.cron # Don't do this stuff on cron
direction = () -> direction = () ->
@@ -295,10 +297,3 @@ ready (model) ->
exports.setFemale = -> user.set('preferences.gender', 'f') exports.setFemale = -> user.set('preferences.gender', 'f')
exports.setArmorsetV1 = -> user.set('preferences.armorSet', 'v1') exports.setArmorsetV1 = -> user.set('preferences.armorSet', 'v1')
exports.setArmorsetV2 = -> user.set('preferences.armorSet', 'v2') exports.setArmorsetV2 = -> user.set('preferences.armorSet', 'v2')
exports.emulateNextDay = ->
yesterday = +moment().subtract('days', 1).toDate()
user.set 'lastCron', yesterday
window.location.reload()

View File

@@ -7,10 +7,7 @@ derby = require 'derby'
userSchema = userSchema =
# _id # _id
stats: { gp: 0, exp: 0, lvl: 1, hp: 50 } stats: { gp: 0, exp: 0, lvl: 1, hp: 50 }
party: { party: { current: null, invitation: null }
current: null
invitation: null
}
items: { armor: 0, weapon: 0 } items: { armor: 0, weapon: 0 }
preferences: { gender: 'm', armorSet: 'v1' } preferences: { gender: 'm', armorSet: 'v1' }
idLists: idLists:

View File

@@ -349,9 +349,10 @@
<!-- Footer --> <!-- Footer -->
<footer class=footer> <footer class=footer>
<div class=container> <div class=container>
<!--<div class='pull-right'> <div class='pull-right'>
<button class='btn' x-bind="click:emulateNextDay">Emulate Next Day</button> <button class='btn' x-bind="click:emulateNextDay">Emulate Next Day</button>
</div>--> <button class='btn' x-bind="click:cheat">Add GP & Exp</button>
</div>
<div> <div>
<ul> <ul>
<li>Copyright &copy; 2012 OCDevel LLC</li> <li>Copyright &copy; 2012 OCDevel LLC</li>