aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2014-08-17 07:58:23 -0700
committerAdam Soltys <[email protected]>2014-08-17 07:58:23 -0700
commit21d3d8bcc8832184bb5de62f506e9fdae668840f (patch)
treec7a280f70bb54eba465df5d8ed2a8d4e7f0e1f69
parent0fd4b44c1bd756307d43d9bf59016beac7aa810a (diff)
downloadcoinos-server-21d3d8bcc8832184bb5de62f506e9fdae668840f.tar.gz
coinos-server-21d3d8bcc8832184bb5de62f506e9fdae668840f.zip
Fetch rates with node
-rw-r--r--app.js19
-rwxr-xr-xfetch_rates.sh3
-rw-r--r--socket_test.js64
-rw-r--r--src/app.coffee14
4 files changed, 32 insertions, 68 deletions
diff --git a/app.js b/app.js
index 8a16f8ff..69880b39 100644
--- a/app.js
+++ b/app.js
@@ -1,5 +1,7 @@
(function() {
- var RedisStore, app, authorize, bodyParser, cache, calculator, config, cookieParser, express, passport, path, session, sessionStore, sessions, transactions, users;
+ var RedisStore, app, authorize, bodyParser, cache, calculator, config, cookieParser, express, fs, passport, path, request, session, sessionStore, sessions, transactions, users;
+
+ request = require('request');
express = require('express');
@@ -13,6 +15,8 @@
config = require('./config');
+ fs = require('fs');
+
calculator = require("./routes/calculator");
sessions = require("./routes/sessions")(passport);
@@ -81,6 +85,19 @@
return next();
};
+ setInterval(function() {
+ var file;
+ file = 'public/js/rates.json';
+ return fs.truncate(file, 0, function() {
+ var r, stream;
+ stream = fs.createWriteStream(file);
+ r = request("https://api.bitcoinaverage.com/exchanges/all");
+ return r.on('data', function(chunk) {
+ return stream.write(chunk);
+ });
+ });
+ }, 120000);
+
app.get('/', cache, sessions["new"]);
app.get('/register', cache, users["new"]);
diff --git a/fetch_rates.sh b/fetch_rates.sh
deleted file mode 100755
index 0248c025..00000000
--- a/fetch_rates.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-curl -k https://api.bitcoinaverage.com/exchanges/all > $DIR/rates.tmp && mv $DIR/rates.tmp $DIR/public/js/rates.json
diff --git a/socket_test.js b/socket_test.js
deleted file mode 100644
index a029c016..00000000
--- a/socket_test.js
+++ /dev/null
@@ -1,64 +0,0 @@
-(function() {
- var socket, transaction;
-
- transaction = {
- "hash": {},
- "version": 1,
- "lock_time": 0,
- "ins": [
- {
- "s": {},
- "q": 4294967295,
- "o": {}
- }
- ],
- "outs": [
- {
- "v": {},
- "s": {}
- }, {
- "v": {},
- "s": {}
- }
- ],
- "_buffer": {},
- "txid": "8500a0893a2d83a17819673884ade21bbef07d8c92bfe51682e45873cc2d3720",
- "vin": [
- {
- "n": 0,
- "txid": "1549415465c84fb519ffb92339ef80461427502c90d5d3ac5d01f27d824feabd",
- "vout": 1
- }
- ],
- "vout": [
- {
- "valueSat": 10000,
- "scriptPubKey": {
- "addresses": ["1VAnbtCAnYccECnjaMCPnWwt81EHCVgNr"]
- },
- "n": 0
- }, {
- "valueSat": 3966838180,
- "scriptPubKey": {
- "addresses": ["1Ao8Swc6vSosrjednQkNZeXEXVu1ZcxYZE"]
- },
- "n": 1
- }
- ],
- "time": 1405573125
- };
-
- $('body').append(transaction.vout[0].valueSat);
-
- socket = io('ws://insight.bitpay.com');
-
- socket.on('connect', function() {
- $('body').append('connected');
- return this.emit('subscribe', '1VAnbtCAnYccECnjaMCPnWwt81EHCVgNr');
- });
-
- socket.on('1VAnbtCAnYccECnjaMCPnWwt81EHCVgNr', function(data) {
- return $('body').append(JSON.stringify(data));
- });
-
-}).call(this);
diff --git a/src/app.coffee b/src/app.coffee
index 36d47658..86d6bd03 100644
--- a/src/app.coffee
+++ b/src/app.coffee
@@ -1,9 +1,11 @@
+request = require('request')
express = require('express')
bodyParser = require('body-parser')
cookieParser = require('cookie-parser')
path = require('path')
passport = require('./passport')
config = require('./config')
+fs = require('fs')
calculator = require("./routes/calculator")
sessions = require("./routes/sessions")(passport)
@@ -39,6 +41,18 @@ cache = (req, res, next) ->
res.setHeader "Cache-Control", "public, max-age=900"
next()
+setInterval(->
+ file = 'public/js/rates.json'
+ fs.truncate(file, 0, ->
+ stream = fs.createWriteStream(file)
+
+ r = request("https://api.bitcoinaverage.com/exchanges/all")
+ r.on('data', (chunk) ->
+ stream.write(chunk)
+ )
+ )
+, 120000)
+
app.get('/', cache, sessions.new)
app.get('/register', cache, users.new)
app.get('/ticker', cache, calculator.ticker)