mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2025-12-07 20:17:05 +03:00
This should reduce the load on the server a bit, as it will no longer have to compute the publicID for each sponsorblock user. This also reduces the list of actions that leak the privateID to the server.
67 lines
2.6 KiB
TypeScript
67 lines
2.6 KiB
TypeScript
import Config from "../config";
|
|
import GenericNotice, { NoticeOptions } from "../render/GenericNotice";
|
|
import { ContentContainer } from "../types";
|
|
import Utils from "../utils";
|
|
import { GenericUtils } from "./genericUtils";
|
|
const utils = new Utils();
|
|
|
|
export interface ChatConfig {
|
|
displayName: string;
|
|
composerInitialValue?: string;
|
|
customDescription?: string;
|
|
}
|
|
|
|
export async function openWarningDialog(contentContainer: ContentContainer): Promise<void> {
|
|
const userInfo = await utils.asyncRequestToServer("GET", "/api/userInfo", {
|
|
publicUserID: await utils.getHash(Config.config.userID),
|
|
values: ["warningReason"]
|
|
});
|
|
|
|
if (userInfo.ok) {
|
|
const warningReason = JSON.parse(userInfo.responseText)?.warningReason;
|
|
const userNameData = await utils.asyncRequestToServer("GET", "/api/getUsername?userID=" + Config.config.userID);
|
|
const userName = userNameData.ok ? JSON.parse(userNameData.responseText).userName : "";
|
|
const publicUserID = await utils.getHash(Config.config.userID);
|
|
|
|
let notice: GenericNotice = null;
|
|
const options: NoticeOptions = {
|
|
title: chrome.i18n.getMessage("warningTitle"),
|
|
textBoxes: [{
|
|
text: chrome.i18n.getMessage("warningChatInfo"),
|
|
icon: null
|
|
}, ...warningReason.split("\n").map((reason) => ({
|
|
text: reason,
|
|
icon: null
|
|
}))],
|
|
buttons: [{
|
|
name: chrome.i18n.getMessage("questionButton"),
|
|
listener: () => openChat({
|
|
displayName: `${userName ? userName : ``}${userName !== publicUserID ? ` | ${publicUserID}` : ``}`
|
|
})
|
|
},
|
|
{
|
|
name: chrome.i18n.getMessage("warningConfirmButton"),
|
|
listener: async () => {
|
|
const result = await utils.asyncRequestToServer("POST", "/api/warnUser", {
|
|
userID: Config.config.userID,
|
|
enabled: false
|
|
});
|
|
|
|
if (result.ok) {
|
|
notice?.close();
|
|
} else {
|
|
alert(`${chrome.i18n.getMessage("warningError")} ${result.status}`);
|
|
}
|
|
}
|
|
}],
|
|
timed: false
|
|
};
|
|
|
|
notice = new GenericNotice(contentContainer, "warningNotice", options);
|
|
}
|
|
}
|
|
|
|
export function openChat(config: ChatConfig): void {
|
|
window.open("https://chat.sponsor.ajay.app/#" + GenericUtils.objectToURI("", config, false));
|
|
}
|