avoid crash when url is invalid
This commit is contained in:
@@ -12,12 +12,13 @@ RUN apk add --no-cache \
|
|||||||
COPY package.json package-lock.json ./
|
COPY package.json package-lock.json ./
|
||||||
RUN npm ci
|
RUN npm ci
|
||||||
|
|
||||||
|
# Delete dev deps
|
||||||
|
RUN apk del python3 g++ make cairo-dev pango-dev
|
||||||
|
|
||||||
# Copy required files for server
|
# Copy required files for server
|
||||||
|
COPY ./js ./js
|
||||||
COPY ./src ./src
|
COPY ./src ./src
|
||||||
COPY ./api ./api
|
COPY ./api ./api
|
||||||
COPY ./js ./js
|
|
||||||
|
|
||||||
RUN apk del python3 g++ make cairo-dev pango-dev
|
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
CMD [ "node", "api/index.js" ]
|
CMD [ "node", "api/index.js" ]
|
||||||
|
|||||||
@@ -20,7 +20,9 @@ const server = http.createServer(async (req, res) => {
|
|||||||
const url = Buffer.concat(buffers).toString();
|
const url = Buffer.concat(buffers).toString();
|
||||||
|
|
||||||
const data = signer.sign(url);
|
const data = signer.sign(url);
|
||||||
console.log("Sent data from request with url: " + url);
|
if (data !== null) {
|
||||||
|
console.log("Sending data from request with url: " + url);
|
||||||
|
}
|
||||||
res.write(Utils.makePayload(data, signer.navigator()));
|
res.write(Utils.makePayload(data, signer.navigator()));
|
||||||
} else {
|
} else {
|
||||||
res.write(
|
res.write(
|
||||||
|
|||||||
@@ -90,21 +90,27 @@ class Signer {
|
|||||||
/**
|
/**
|
||||||
* Sign a TikTok URL
|
* Sign a TikTok URL
|
||||||
* @param {string} url_str Unsigned URL
|
* @param {string} url_str Unsigned URL
|
||||||
* @returns Object with signed data
|
* @returns Object with signed data or null if error
|
||||||
*/
|
*/
|
||||||
sign(url_str) {
|
sign(url_str) {
|
||||||
const url = new URL(url_str);
|
try {
|
||||||
const signature = this.signature(url.toString());
|
const url = new URL(url_str);
|
||||||
url.searchParams.append('_signature', signature);
|
const signature = this.signature(url.toString());
|
||||||
const bogus = this.bogus(url.searchParams.toString());
|
url.searchParams.append('_signature', signature);
|
||||||
url.searchParams.append('X-Bogus', bogus);
|
const bogus = this.bogus(url.searchParams.toString());
|
||||||
const xttparams = this.xttparams(url.searchParams.toString());
|
url.searchParams.append('X-Bogus', bogus);
|
||||||
return {
|
const xttparams = this.xttparams(url.searchParams.toString());
|
||||||
signature: signature,
|
return {
|
||||||
signed_url: url.toString(),
|
signature: signature,
|
||||||
"x-tt-params": xttparams,
|
signed_url: url.toString(),
|
||||||
"X-Bogus": bogus
|
"x-tt-params": xttparams,
|
||||||
};
|
"X-Bogus": bogus
|
||||||
|
};
|
||||||
|
} catch (_e) {
|
||||||
|
return null;
|
||||||
|
} finally {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
class Utils {
|
class Utils {
|
||||||
static makePayload(data, navigator) {
|
static makePayload(data, navigator) {
|
||||||
|
if (data === null) {
|
||||||
|
return JSON.stringify({
|
||||||
|
status: "error",
|
||||||
|
data: "There was an error processing your request! Is your URL valid?"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
return JSON.stringify({
|
return JSON.stringify({
|
||||||
status: "ok",
|
status: "ok",
|
||||||
data: {
|
data: {
|
||||||
|
|||||||
Reference in New Issue
Block a user