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 ./
|
||||
RUN npm ci
|
||||
|
||||
# Delete dev deps
|
||||
RUN apk del python3 g++ make cairo-dev pango-dev
|
||||
|
||||
# Copy required files for server
|
||||
COPY ./js ./js
|
||||
COPY ./src ./src
|
||||
COPY ./api ./api
|
||||
COPY ./js ./js
|
||||
|
||||
RUN apk del python3 g++ make cairo-dev pango-dev
|
||||
|
||||
EXPOSE 8080
|
||||
CMD [ "node", "api/index.js" ]
|
||||
|
||||
@@ -20,7 +20,9 @@ const server = http.createServer(async (req, res) => {
|
||||
const url = Buffer.concat(buffers).toString();
|
||||
|
||||
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()));
|
||||
} else {
|
||||
res.write(
|
||||
|
||||
@@ -90,21 +90,27 @@ class Signer {
|
||||
/**
|
||||
* Sign a TikTok URL
|
||||
* @param {string} url_str Unsigned URL
|
||||
* @returns Object with signed data
|
||||
* @returns Object with signed data or null if error
|
||||
*/
|
||||
sign(url_str) {
|
||||
const url = new URL(url_str);
|
||||
const signature = this.signature(url.toString());
|
||||
url.searchParams.append('_signature', signature);
|
||||
const bogus = this.bogus(url.searchParams.toString());
|
||||
url.searchParams.append('X-Bogus', bogus);
|
||||
const xttparams = this.xttparams(url.searchParams.toString());
|
||||
return {
|
||||
signature: signature,
|
||||
signed_url: url.toString(),
|
||||
"x-tt-params": xttparams,
|
||||
"X-Bogus": bogus
|
||||
};
|
||||
try {
|
||||
const url = new URL(url_str);
|
||||
const signature = this.signature(url.toString());
|
||||
url.searchParams.append('_signature', signature);
|
||||
const bogus = this.bogus(url.searchParams.toString());
|
||||
url.searchParams.append('X-Bogus', bogus);
|
||||
const xttparams = this.xttparams(url.searchParams.toString());
|
||||
return {
|
||||
signature: signature,
|
||||
signed_url: url.toString(),
|
||||
"x-tt-params": xttparams,
|
||||
"X-Bogus": bogus
|
||||
};
|
||||
} catch (_e) {
|
||||
return null;
|
||||
} finally {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
class Utils {
|
||||
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({
|
||||
status: "ok",
|
||||
data: {
|
||||
|
||||
Reference in New Issue
Block a user