avoid crash when url is invalid

This commit is contained in:
Pablo Ferreiro
2024-06-30 16:16:39 +02:00
parent 32bc4c90d5
commit 040625f34e
4 changed files with 33 additions and 17 deletions

View File

@@ -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" ]

View File

@@ -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(

View File

@@ -90,9 +90,10 @@ 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) {
try {
const url = new URL(url_str); const url = new URL(url_str);
const signature = this.signature(url.toString()); const signature = this.signature(url.toString());
url.searchParams.append('_signature', signature); url.searchParams.append('_signature', signature);
@@ -105,6 +106,11 @@ class Signer {
"x-tt-params": xttparams, "x-tt-params": xttparams,
"X-Bogus": bogus "X-Bogus": bogus
}; };
} catch (_e) {
return null;
} finally {
}
} }
} }

View File

@@ -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: {