Advertisement
Guest User

Untitled

a guest
May 5th, 2015
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. var util = require('util');
  2. var EventEmitter = require('events').EventEmitter;
  3.  
  4. var _ = require('underscore');
  5. var colors = require('colors');
  6. var request = require('request');
  7.  
  8. var CryptoMath = require('./cryptoMath');
  9.  
  10. var BleutradeAPI = require('bleutrade-api');
  11.  
  12. var BleuChatBot = function(opts) {
  13. this.opts = opts || {};
  14.  
  15. this.opts.cookieJar = request.jar();
  16.  
  17. this.bleutrade = new BleutradeAPI(this.opts.key, this.opts.secret);
  18. }
  19.  
  20. util.inherits(BleuChatBot, EventEmitter);
  21.  
  22. BleuChatBot.prototype.login = function(callback) {
  23. var self = this;
  24. var options = {
  25. uri : "https://bleutrade.com/api/v1/user_login",
  26. agent : false,
  27. method : 'POST',
  28. jar : self.opts.cookieJar,
  29. headers : {
  30. "User-Agent": "Mozilla/4.0 (compatible; Bleutrade chatterBot)",
  31. "Content-type": "application/x-www-form-urlencoded"
  32. },
  33. form: {user:self.opts.username,
  34. password:self.opts.password,
  35. google_auth_number:"",
  36. login_timezone:5
  37. }
  38. };
  39.  
  40. request(options, function(err, res, body) {
  41. if(!body || !res || res.statusCode != 200) {
  42. console.error(err);
  43. callback.call(err);
  44. } else {
  45. callback(err, body.substr(0,2) == 'OK');
  46. }
  47. });
  48. }
  49.  
  50. BleuChatBot.prototype.fetchBalances = function(callback) {
  51. var self = this;
  52. callback = callback || function () {};
  53.  
  54. self.bleutrade.getbalances(null, function(err, data) {
  55. if(err || !data || !data.success) {
  56. console.error("Failed to update balances...");
  57. return callback(err);
  58. };
  59.  
  60. return callback(err, _.chain(data.result)
  61. .reduce(function(all, fund) {
  62. all.push({currency: fund.Currency, available: CryptoMath.round(parseFloat(fund.Available))});
  63. return all;
  64. }, [])
  65. .filter(function(fund) { return fund.available > 0.0000001;})
  66. .value()
  67. );
  68. })
  69. };
  70.  
  71. BleuChatBot.prototype.chat = function(msg, lang, callback) {
  72. callback = callback || function () {};
  73.  
  74. //console.log(msg);
  75. //return callback();
  76.  
  77. var self = this;
  78.  
  79. var options = {
  80. uri : "https://bleutrade.com/functions/chat_send",
  81. agent : false,
  82. method : 'POST',
  83. jar : self.opts.cookieJar,
  84. headers : {
  85. "User-Agent": "Mozilla/4.0 (compatible; Bleutrade chatterBot)",
  86. "Content-type": "application/x-www-form-urlencoded"
  87. },
  88. form: {chat_text: msg,
  89. chat_lang: lang
  90. }
  91. };
  92.  
  93. request(options, function(err, res, body) {
  94. if(!body || !res || res.statusCode != 200) {
  95. console.error(err);
  96. callback.call(err);
  97. } else {
  98. callback(err, JSON.parse(body));
  99. }
  100. });
  101. }
  102.  
  103. module.exports = BleuChatBot;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement