From 6cd0561014c0e9ea376bdd5016439cfaa6bac503 Mon Sep 17 00:00:00 2001 From: abalabahaha Date: Fri, 3 Jun 2016 18:36:17 -0700 Subject: [PATCH] Possibly fix #404, #405, #409 --- lib/Client/InternalClient.js | 15 ++++++++++++--- lib/Util/TokenCacher.js | 2 +- src/Client/InternalClient.js | 18 +++++++++++++----- src/Util/TokenCacher.js | 5 +++-- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/lib/Client/InternalClient.js b/lib/Client/InternalClient.js index cbf0e263c..7dcbd00c7 100644 --- a/lib/Client/InternalClient.js +++ b/lib/Client/InternalClient.js @@ -657,7 +657,7 @@ var InternalClient = (function () { return Promise.reject(new Error("Client is not logged in!")); } - return this.apiRequest("post", _Constants.Endpoints.LOGOUT, true).then(function () { + var disconnect = function disconnect() { if (_this12.websocket) { _this12.websocket.close(1000); _this12.websocket = null; @@ -666,7 +666,14 @@ var InternalClient = (function () { _this12.email = null; _this12.password = null; _this12.state = _ConnectionState2["default"].DISCONNECTED; - }); + return Promise.resolve(); + }; + + if (!this.user.bot) { + return this.apiRequest("post", _Constants.Endpoints.LOGOUT, true).then(disconnect); + } else { + disconnect(); + } }; // def startPM @@ -1591,7 +1598,9 @@ var InternalClient = (function () { return Promise.reject(new Error("Bitrate must be between 8-96kbps")); } - data.bitrate *= 1000; // convert to bits before sending + if (data.bitrate) { + data.bitrate *= 1000; // convert to bits before sending + } return _this35.apiRequest("patch", _Constants.Endpoints.CHANNEL(channel.id), true, data).then(function (res) { channel.name = data.name; diff --git a/lib/Util/TokenCacher.js b/lib/Util/TokenCacher.js index 5e177104b..7e75b72a3 100644 --- a/lib/Util/TokenCacher.js +++ b/lib/Util/TokenCacher.js @@ -21,7 +21,7 @@ var _crypto = require("crypto"); var _crypto2 = _interopRequireDefault(_crypto); -var savePaths = [process.env.APPDATA || (process.platform == "darwin" ? process.env.HOME + "Library/Preference" : "/var/local"), process.env[process.platform == "win32" ? "USERPROFILE" : "HOME"], process.cwd()]; +var savePaths = [process.env.APPDATA || (process.platform == "darwin" ? process.env.HOME + "Library/Preferences" : "/var/local"), process.env[process.platform == "win32" ? "USERPROFILE" : "HOME"], process.cwd(), "/tmp"]; var algo = "aes-256-ctr"; diff --git a/src/Client/InternalClient.js b/src/Client/InternalClient.js index 7a9590ba6..e694193de 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -555,8 +555,7 @@ export default class InternalClient { return Promise.reject(new Error("Client is not logged in!")); } - return this.apiRequest("post", Endpoints.LOGOUT, true) - .then(() => { + var disconnect = () => { if (this.websocket) { this.websocket.close(1000); this.websocket = null; @@ -565,7 +564,15 @@ export default class InternalClient { this.email = null; this.password = null; this.state = ConnectionState.DISCONNECTED; - }); + return Promise.resolve(); + }; + + if(!this.user.bot) { + return this.apiRequest("post", Endpoints.LOGOUT, true) + .then(disconnect); + } else { + disconnect(); + } } // def startPM @@ -1371,8 +1378,9 @@ export default class InternalClient { return Promise.reject(new Error("Bitrate must be between 8-96kbps")); } - - data.bitrate *= 1000; // convert to bits before sending + if (data.bitrate) { + data.bitrate *= 1000; // convert to bits before sending + } return this.apiRequest("patch", Endpoints.CHANNEL(channel.id), true, data) .then(res => { diff --git a/src/Util/TokenCacher.js b/src/Util/TokenCacher.js index c13af4f4a..90cce8994 100644 --- a/src/Util/TokenCacher.js +++ b/src/Util/TokenCacher.js @@ -6,9 +6,10 @@ import EventEmitter from "events"; import crypto from "crypto"; var savePaths = [ - process.env.APPDATA || (process.platform == "darwin" ? process.env.HOME + "Library/Preference" : "/var/local"), + process.env.APPDATA || (process.platform == "darwin" ? process.env.HOME + "Library/Preferences" : "/var/local"), process.env[(process.platform == "win32") ? "USERPROFILE" : "HOME"], - process.cwd() + process.cwd(), + "/tmp" ]; var algo = "aes-256-ctr";