2016-03-08 21:52:21 +00:00
|
|
|
var express = require('express'), path = require('path'), http = require('http'),
|
|
|
|
fx = require('./lib/fx'), btc = require('./lib/btc'), train = require('./lib/train'),
|
|
|
|
password = require('./lib/password') , clean = require('./lib/clean'), events = require('./lib/events'),
|
|
|
|
today = require('./lib/today'),
|
|
|
|
morgan = require('morgan'), cookieParser = require('cookie-parser'),session = require('express-session')
|
|
|
|
methodoverride = require('method-override'), bodyparser = require('body-parser'), errorhandler = require('errorhandler');
|
2016-04-01 09:39:53 +00:00
|
|
|
|
2016-04-11 13:46:07 +00:00
|
|
|
var jsonfile = require('jsonfile');
|
2016-04-01 09:39:53 +00:00
|
|
|
|
2016-03-08 21:52:21 +00:00
|
|
|
//train = require('lib/train')
|
|
|
|
/* ,submit = require('./routes/mongo/submit') */
|
|
|
|
;
|
2016-03-10 20:15:35 +00:00
|
|
|
|
2016-04-11 13:46:07 +00:00
|
|
|
var fs = require('fs');
|
|
|
|
var config = require('./config/config.json');
|
|
|
|
var Fitbit = require('fitbit-oauth2');
|
|
|
|
|
2016-04-01 09:39:53 +00:00
|
|
|
var polys = require('./lib/poly.js');
|
|
|
|
|
2016-03-10 20:15:35 +00:00
|
|
|
var logger = require('log4js').getLogger();
|
2016-03-08 21:52:21 +00:00
|
|
|
var app = express();
|
|
|
|
GLOBAL.lastcheck = 0;
|
|
|
|
var btcCache = {}, fxCache = {} , trainCache = {};
|
|
|
|
|
|
|
|
//app.configure(function () {
|
|
|
|
app.set('port', process.env.PORT || 9000);
|
|
|
|
app.set('view engine', 'ejs');
|
|
|
|
app.use(morgan('dev'));
|
|
|
|
app.use(cookieParser('your secret here'));
|
|
|
|
app.use(session({
|
|
|
|
secret: '1234567890QWERTY', resave: false,
|
|
|
|
saveUninitialized: false
|
|
|
|
}));
|
|
|
|
/* 'default', 'short', 'tiny', 'dev' */
|
|
|
|
app.use(methodoverride());
|
|
|
|
|
|
|
|
app.use(bodyparser.urlencoded({extended: false}));
|
|
|
|
|
|
|
|
// parse application/json
|
|
|
|
app.use(bodyparser.json());
|
|
|
|
|
|
|
|
app.use(function (req, res, next) {
|
|
|
|
res.header("Access-Control-Allow-Origin", "*");
|
|
|
|
res.header("Access-Control-Allow-Headers", "X-Requested-With");
|
|
|
|
next();
|
|
|
|
});
|
|
|
|
// app.use(app.router);
|
|
|
|
app.use(express.static(path.join(__dirname, 'app')));
|
|
|
|
|
|
|
|
app.use(errorhandler({dumpExceptions: true, showStack: true}));
|
|
|
|
|
|
|
|
app.use('/btc', btc.doBTC);
|
|
|
|
|
|
|
|
app.use('/fx', fx.doFx);
|
|
|
|
|
|
|
|
app.use('/dbeglq', train.dbe_glq);
|
|
|
|
app.use('/glqdbe', train.glq_dbe);
|
|
|
|
app.use('/gettrains', train.getTrainTimes);
|
|
|
|
app.use('/getnexttraintimes', train.getNextTrainTimes);
|
|
|
|
app.use('/getroute', train.getRoute);
|
|
|
|
|
|
|
|
app.use('/generate', password.generate);
|
|
|
|
|
|
|
|
app.use('/cleanit', clean.cleanit);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app.use('/events', events.getEvents);
|
|
|
|
app.get('/cinema/:id', events.getCinema);
|
|
|
|
|
|
|
|
app.get('/today', today.getToday);
|
|
|
|
app.get('/today/data', today.getData);
|
|
|
|
|
|
|
|
app.route('/clock')
|
|
|
|
.get(today.getClock);
|
|
|
|
|
2016-04-01 09:39:53 +00:00
|
|
|
app.route('/poly').get(polys);
|
|
|
|
|
2016-03-08 21:52:21 +00:00
|
|
|
|
|
|
|
app.use('/lot', function (req, res) {
|
|
|
|
var pg = require('pg');
|
|
|
|
|
|
|
|
var conString = "postgres://pguser:1V3D4m526i@localhost/silver";
|
|
|
|
console.log(conString);
|
|
|
|
|
|
|
|
|
|
|
|
var client = new pg.Client(conString);
|
|
|
|
var q = 'select * from lot order by d desc';
|
|
|
|
client.connect(function(err) {
|
|
|
|
if(err) {
|
|
|
|
return console.error('could not connect to postgres', err);
|
|
|
|
}
|
|
|
|
client.query(q, function(err, result) {
|
|
|
|
if(err) {
|
|
|
|
return console.error('error running query', err);
|
|
|
|
}
|
|
|
|
console.log(result.rows[0].theTime);
|
|
|
|
//output: Tue Jan 15 2013 19:12:47 GMT-600 (CST)
|
|
|
|
client.end();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
app.get('/slack', function (req, res) {
|
|
|
|
res.render('pages/slack');
|
|
|
|
});
|
|
|
|
|
|
|
|
app.get('/temp', function (req, res) {
|
|
|
|
res.render('pages/temp');
|
|
|
|
});
|
|
|
|
|
2016-04-11 13:46:07 +00:00
|
|
|
|
|
|
|
|
|
|
|
var tfile = 'fb-token.json';
|
|
|
|
var persist = {
|
|
|
|
read: function( filename, cb ) {
|
|
|
|
fs.readFile( filename, { encoding: 'utf8', flag: 'r' }, function( err, data ) {
|
|
|
|
if ( err ) return cb( err );
|
|
|
|
try {
|
|
|
|
var token = JSON.parse( data );
|
|
|
|
cb( null, token );
|
|
|
|
} catch( err ) {
|
|
|
|
cb( err );
|
|
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
write: function( filename, token, cb ) {
|
|
|
|
console.log( 'persisting new token:', JSON.stringify( token ) );
|
|
|
|
fs.writeFile( filename, JSON.stringify( token ), cb );
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
// Instanciate a fitbit client. See example config below.
|
|
|
|
//
|
|
|
|
var fitbit = new Fitbit( config.fitbit );
|
|
|
|
|
|
|
|
// In a browser, http://localhost:4000/fitbit to authorize a user for the first time.
|
|
|
|
//
|
|
|
|
app.get('/fitbit', function (req, res) {
|
|
|
|
res.redirect( fitbit.authorizeURL() );
|
|
|
|
});
|
|
|
|
|
|
|
|
// Callback service parsing the authorization token and asking for the access token. This
|
|
|
|
// endpoint is refered to in config.fitbit.authorization_uri.redirect_uri. See example
|
|
|
|
// config below.
|
|
|
|
//
|
|
|
|
app.get('/fitbit_auth_callback', function (req, res, next) {
|
|
|
|
var code = req.query.code;
|
|
|
|
fitbit.fetchToken( code, function( err, token ) {
|
|
|
|
if ( err ) return next( err );
|
|
|
|
|
|
|
|
// persist the token
|
|
|
|
jsonfile.writeFile( tfile, token, function( err ) {
|
|
|
|
if ( err ) return next( err );
|
|
|
|
res.redirect( '/fb-profile' );
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
jsonfile.readFile('./fb-token.json', function(err, obj) {
|
|
|
|
if (err) {
|
2016-04-11 14:09:22 +00:00
|
|
|
logger.error(err);
|
2016-04-11 13:46:07 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
fitbit.setToken(obj);
|
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
|
2016-03-08 21:52:21 +00:00
|
|
|
//});
|
|
|
|
|
|
|
|
/**
|
|
|
|
* create the server
|
|
|
|
*/
|
|
|
|
http.createServer(app).listen(app.get('port'), function () {
|
2016-03-23 15:09:25 +00:00
|
|
|
logger.warn("Express server listening on port " + app.get('port'));
|
2016-03-10 20:15:35 +00:00
|
|
|
//console.log("Express server listening on port " + app.get('port'));
|
2016-03-08 21:52:21 +00:00
|
|
|
});
|