Skip to content

Commit

Permalink
Patch Room Info Fetch Fail - Update webcastConfig.js (#246)
Browse files Browse the repository at this point in the history
* Update webcastConfig.js

* bump version, apply prettier formatting

---------

Co-authored-by: David <[email protected]>
  • Loading branch information
isaackogan and zerodytrash authored Dec 13, 2024
1 parent 3277f07 commit a34188e
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 41 deletions.
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "tiktok-live-connector",
"version": "1.2.0",
"version": "1.2.1",
"description": "Node.js module to receive live stream chat events like comments and gifts from TikTok LIVE",
"main": "index.js",
"types": "./dist/index.d.ts",
Expand Down
21 changes: 11 additions & 10 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,14 @@ const { deserializeMessage, deserializeWebsocketMessage } = require('./lib/webca

const Config = require('./lib/webcastConfig.js');
const {
AlreadyConnectingError, AlreadyConnectedError, UserOfflineError, NoWSUpgradeError,
InvalidSessionIdError, InvalidResponseError, ExtractRoomIdError, InitialFetchError
AlreadyConnectingError,
AlreadyConnectedError,
UserOfflineError,
NoWSUpgradeError,
InvalidSessionIdError,
InvalidResponseError,
ExtractRoomIdError,
InitialFetchError,
} = require('./lib/tiktokErrors');

const ControlEvents = {
Expand Down Expand Up @@ -92,7 +98,7 @@ class WebcastPushConnection extends EventEmitter {

this.#clientParams = {
...Config.DEFAULT_CLIENT_PARAMS,
...this.#options.clientParams
...this.#options.clientParams,
};

this.#setUnconnected();
Expand All @@ -114,7 +120,7 @@ class WebcastPushConnection extends EventEmitter {
websocketHeaders: Config.DEFAULT_REQUEST_HEADERS,
requestOptions: {},
websocketOptions: {},
signProviderOptions: {}
signProviderOptions: {},
},
providedOptions
);
Expand Down Expand Up @@ -173,7 +179,6 @@ class WebcastPushConnection extends EventEmitter {
await this.#fetchAvailableGifts();
}


try {
await this.#fetchRoomData(true);
} catch (ex) {
Expand All @@ -182,18 +187,14 @@ class WebcastPushConnection extends EventEmitter {

try {
jsonError = JSON.parse(ex.response.data.toString());
retryAfter = (
ex.response.headers?.['retry-after'] ? parseInt(ex.response.headers['retry-after']) : null
)
retryAfter = ex.response.headers?.['retry-after'] ? parseInt(ex.response.headers['retry-after']) : null;
} catch (parseErr) {
throw ex;
}

if (!jsonError) throw ex;
const errorMessage = jsonError?.error || 'Failed to retrieve the initial room data.';
throw new InitialFetchError(errorMessage, retryAfter);


}

// Sometimes no upgrade to WebSocket is offered by TikTok
Expand Down
35 changes: 8 additions & 27 deletions src/lib/tiktokErrors.js
Original file line number Diff line number Diff line change
@@ -1,63 +1,44 @@
class ConnectError extends Error {

constructor(message) {
super(message);
}
}

class InvalidUniqueIdError extends Error {}

class InvalidUniqueIdError extends Error {
}

class InvalidSessionIdError extends Error {
}

class ExtractRoomIdError extends Error {
}
class InvalidSessionIdError extends Error {}

class ExtractRoomIdError extends Error {}

class InvalidResponseError extends Error {

constructor(message, requestErr = undefined) {
super(message);
this.name = 'InvalidResponseError';
this.requestErr = requestErr;
}

}

class SignatureError extends InvalidResponseError {

constructor(message, requestErr = undefined) {
super(message, requestErr);
this.name = 'SignatureError';
}

}


class InitialFetchError extends ConnectError {

constructor(message, retryAfter) {
super(message);
this.retryAfter = retryAfter;
}

}

class AlreadyConnectingError extends ConnectError {}

class AlreadyConnectingError extends ConnectError {
}
class AlreadyConnectedError extends ConnectError {}

class AlreadyConnectedError extends ConnectError {
}

class UserOfflineError extends ConnectError {
}

class NoWSUpgradeError extends ConnectError {
}
class UserOfflineError extends ConnectError {}

class NoWSUpgradeError extends ConnectError {}

module.exports = {
InitialFetchError,
Expand All @@ -69,5 +50,5 @@ module.exports = {
InvalidSessionIdError,
InvalidResponseError,
ExtractRoomIdError,
SignatureError
SignatureError,
};
1 change: 0 additions & 1 deletion src/lib/webcastConfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ module.exports = {
referer: 'https://www.tiktok.com/',
root_referer: 'https://www.tiktok.com/',
host: 'https://webcast.tiktok.com',
version_code: 270000,
webcast_sdk_version: '1.3.0',
update_version_code: '1.3.0',
},
Expand Down

0 comments on commit a34188e

Please sign in to comment.