mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-27 01:48:33 +03:00
Better submission error message
This commit is contained in:
@@ -20,7 +20,7 @@ import { parseUserAgent } from "../utils/userAgent";
|
|||||||
import { getService } from "../utils/getService";
|
import { getService } from "../utils/getService";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import { vote } from "./voteOnSponsorTime";
|
import { vote } from "./voteOnSponsorTime";
|
||||||
import { canSubmit } from "../utils/permissions";
|
import { canSubmit, canSubmitGlobal } from "../utils/permissions";
|
||||||
import { getVideoDetails, videoDetails } from "../utils/getVideoDetails";
|
import { getVideoDetails, videoDetails } from "../utils/getVideoDetails";
|
||||||
import * as youtubeID from "../utils/youtubeID";
|
import * as youtubeID from "../utils/youtubeID";
|
||||||
import { acquireLock } from "../utils/redisLock";
|
import { acquireLock } from "../utils/redisLock";
|
||||||
@@ -509,6 +509,11 @@ export async function postSkipSegments(req: Request, res: Response): Promise<Res
|
|||||||
}
|
}
|
||||||
const userID: HashedUserID = await getHashCache(paramUserID);
|
const userID: HashedUserID = await getHashCache(paramUserID);
|
||||||
|
|
||||||
|
const permission = await canSubmitGlobal(userID);
|
||||||
|
if (!permission.canSubmit) {
|
||||||
|
return res.status(403).send(permission.reason);
|
||||||
|
}
|
||||||
|
|
||||||
const invalidCheckResult = await checkInvalidFields(videoID, paramUserID, userID, segments, videoDurationParam, userAgent, service);
|
const invalidCheckResult = await checkInvalidFields(videoID, paramUserID, userID, segments, videoDurationParam, userAgent, service);
|
||||||
if (!invalidCheckResult.pass) {
|
if (!invalidCheckResult.pass) {
|
||||||
return res.status(invalidCheckResult.errorCode).send(invalidCheckResult.errorMessage);
|
return res.status(invalidCheckResult.errorCode).send(invalidCheckResult.errorMessage);
|
||||||
|
|||||||
@@ -23,14 +23,14 @@ async function oldSubmitter(userID: HashedUserID): Promise<boolean> {
|
|||||||
const result = await db.prepare("get", `SELECT count(*) as "submissionCount" FROM "sponsorTimes" WHERE "userID" = ? AND "timeSubmitted" < 1743827196000`
|
const result = await db.prepare("get", `SELECT count(*) as "submissionCount" FROM "sponsorTimes" WHERE "userID" = ? AND "timeSubmitted" < 1743827196000`
|
||||||
, [userID], { useReplica: true });
|
, [userID], { useReplica: true });
|
||||||
|
|
||||||
return result.submissionCount > 1;
|
return result.submissionCount >= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function oldDeArrowSubmitter(userID: HashedUserID): Promise<boolean> {
|
async function oldDeArrowSubmitter(userID: HashedUserID): Promise<boolean> {
|
||||||
const result = await db.prepare("get", `SELECT count(*) as "submissionCount" FROM "titles" WHERE "userID" = ? AND "timeSubmitted" < 1743827196000`
|
const result = await db.prepare("get", `SELECT count(*) as "submissionCount" FROM "titles" WHERE "userID" = ? AND "timeSubmitted" < 1743827196000`
|
||||||
, [userID], { useReplica: true });
|
, [userID], { useReplica: true });
|
||||||
|
|
||||||
return result.submissionCount > 1;
|
return result.submissionCount >= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function canSubmit(userID: HashedUserID, category: Category): Promise<CanSubmitResult> {
|
export async function canSubmit(userID: HashedUserID, category: Category): Promise<CanSubmitResult> {
|
||||||
@@ -46,14 +46,21 @@ export async function canSubmit(userID: HashedUserID, category: Category): Promi
|
|||||||
};
|
};
|
||||||
default:
|
default:
|
||||||
return {
|
return {
|
||||||
canSubmit: await oneOf([isUserVIP(userID),
|
canSubmit: true,
|
||||||
oldSubmitter(userID)
|
reason: ""
|
||||||
]),
|
|
||||||
reason: "We are currently experiencing a mass spam attack, we are restricting submissions for now"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function canSubmitGlobal(userID: HashedUserID): Promise<CanSubmitResult> {
|
||||||
|
return {
|
||||||
|
canSubmit: await oneOf([isUserVIP(userID),
|
||||||
|
oldSubmitter(userID)
|
||||||
|
]),
|
||||||
|
reason: "We are currently experiencing a mass spam attack, we are restricting submissions for now"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export async function canVote(userID: HashedUserID): Promise<CanSubmitResult> {
|
export async function canVote(userID: HashedUserID): Promise<CanSubmitResult> {
|
||||||
return {
|
return {
|
||||||
canSubmit: await oneOf([isUserVIP(userID),
|
canSubmit: await oneOf([isUserVIP(userID),
|
||||||
|
|||||||
Reference in New Issue
Block a user