diff --git a/manifest/manifest.json b/manifest/manifest.json
index 771562e4..a8229541 100644
--- a/manifest/manifest.json
+++ b/manifest/manifest.json
@@ -41,6 +41,7 @@
"icons/report.png",
"icons/close.png",
"icons/refresh.svg",
+ "icons/lock.svg",
"icons/beep.ogg",
"icons/PlayerInfoIconSponsorBlocker.svg",
"icons/PlayerDeleteIconSponsorBlocker.svg",
diff --git a/public/icons/lock.svg b/public/icons/lock.svg
new file mode 100644
index 00000000..95a257b2
--- /dev/null
+++ b/public/icons/lock.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/popup.html b/public/popup.html
index 466de0bd..9cc97612 100644
--- a/public/popup.html
+++ b/public/popup.html
@@ -21,6 +21,9 @@
+
diff --git a/src/content.ts b/src/content.ts
index 8f98edaa..12a2a9f2 100644
--- a/src/content.ts
+++ b/src/content.ts
@@ -1412,11 +1412,13 @@ function openInfoMenu() {
const edit =
popup.querySelector("#sbPopupIconEdit");
const check = popup.querySelector("#sbPopupIconCheck");
const refreshSegments = popup.querySelector("#refreshSegments");
+ const lockSegments = popup.querySelector("#lockSegments");
logo.src = chrome.extension.getURL("icons/IconSponsorBlocker256px.png");
settings.src = chrome.extension.getURL("icons/settings.svg");
edit.src = chrome.extension.getURL("icons/pencil.svg");
check.src = chrome.extension.getURL("icons/check.svg");
refreshSegments.src = chrome.extension.getURL("icons/refresh.svg");
+ lockSegments.src = chrome.extension.getURL("icons/lock.svg");
parentNode.insertBefore(popup, parentNode.firstChild);
diff --git a/src/popup.ts b/src/popup.ts
index 9efa790f..e1dac07b 100644
--- a/src/popup.ts
+++ b/src/popup.ts
@@ -103,6 +103,7 @@ async function runThePopup(messageListener?: MessageListener): Promise {
"sponsorMessageTimes",
//"downloadedSponsorMessageTimes",
"refreshSegmentsButton",
+ "lockSegmentsButton",
"whitelistButton",
"sbDonate"
].forEach(id => PageElements[id] = document.getElementById(id));
@@ -133,6 +134,7 @@ async function runThePopup(messageListener?: MessageListener): Promise {
PageElements.optionsButton.addEventListener("click", openOptions);
PageElements.helpButton.addEventListener("click", openHelp);
PageElements.refreshSegmentsButton.addEventListener("click", refreshSegments);
+ PageElements.lockSegmentsButton.addEventListener("click", lockSegments);
/** If true, the content script is in the process of creating a new segment. */
let creatingSegment = false;
@@ -158,53 +160,42 @@ async function runThePopup(messageListener?: MessageListener): Promise {
PageElements.showNoticeAgain.style.display = "unset";
}
- utils.sendRequestToServer("GET", "/api/getUsername?userID=" + Config.config.userID, (res) => {
- if (res.status === 200) {
- PageElements.usernameValue.innerText = JSON.parse(res.responseText).userName
- }
- })
+ const userInfoRes = await utils.asyncRequestToServer("GET", "/api/userInfo?userID=" + Config.config.userID);
+ if (userInfoRes.ok) {
+ const userInfo = JSON.parse(userInfoRes.responseText);
- //get the amount of times this user has contributed and display it to thank them
- if (Config.config.sponsorTimesContributed != undefined) {
- PageElements.sponsorTimesContributionsDisplay.innerText = Config.config.sponsorTimesContributed.toLocaleString();
- PageElements.sponsorTimesContributionsContainer.classList.remove("hidden");
+ if (userInfo.vip) PageElements.lockSegmentsButton.classList.remove("hidden");
- //get the userID
- const userID = Config.config.userID;
- if (userID != undefined) {
- //there are probably some views on these submissions then
- //get the amount of views from the sponsors submitted
- utils.sendRequestToServer("GET", "/api/getViewsForUser?userID=" + userID, function(response) {
- if (response.status == 200) {
- const viewCount = JSON.parse(response.responseText).viewCount;
- if (viewCount != 0) {
- if (viewCount > 1) {
- PageElements.sponsorTimesViewsDisplayEndWord.innerText = chrome.i18n.getMessage("Segments");
- } else {
- PageElements.sponsorTimesViewsDisplayEndWord.innerText = chrome.i18n.getMessage("Segment");
- }
+ PageElements.usernameValue.innerText = userInfo.userName;
- PageElements.sponsorTimesViewsDisplay.innerText = viewCount.toLocaleString();
- PageElements.sponsorTimesViewsContainer.style.display = "unset";
- }
+ //get the amount of times this user has contributed and display it to thank them
+ if (Config.config.sponsorTimesContributed != undefined) {
+ PageElements.sponsorTimesContributionsDisplay.innerText = Config.config.sponsorTimesContributed.toLocaleString();
+ PageElements.sponsorTimesContributionsContainer.classList.remove("hidden");
+
+ //get the userID
+ const viewCount = userInfo.viewCount;
+ if (viewCount != 0) {
+ if (viewCount > 1) {
+ PageElements.sponsorTimesViewsDisplayEndWord.innerText = chrome.i18n.getMessage("Segments");
+ } else {
+ PageElements.sponsorTimesViewsDisplayEndWord.innerText = chrome.i18n.getMessage("Segment");
}
- });
- //get this time in minutes
- utils.sendRequestToServer("GET", "/api/getSavedTimeForUser?userID=" + userID, function(response) {
- if (response.status == 200) {
- const minutesSaved = JSON.parse(response.responseText).timeSaved;
- if (minutesSaved != 0) {
- if (minutesSaved != 1) {
- PageElements.sponsorTimesOthersTimeSavedEndWord.innerText = chrome.i18n.getMessage("minsLower");
- } else {
- PageElements.sponsorTimesOthersTimeSavedEndWord.innerText = chrome.i18n.getMessage("minLower");
- }
+ PageElements.sponsorTimesViewsDisplay.innerText = viewCount.toLocaleString();
+ PageElements.sponsorTimesViewsContainer.style.display = "unset";
+ }
- PageElements.sponsorTimesOthersTimeSavedDisplay.innerText = getFormattedHours(minutesSaved);
- }
+ const minutesSaved = userInfo.minutesSaved;
+ if (minutesSaved != 0) {
+ if (minutesSaved != 1) {
+ PageElements.sponsorTimesOthersTimeSavedEndWord.innerText = chrome.i18n.getMessage("minsLower");
+ } else {
+ PageElements.sponsorTimesOthersTimeSavedEndWord.innerText = chrome.i18n.getMessage("minLower");
}
- });
+
+ PageElements.sponsorTimesOthersTimeSavedDisplay.innerText = getFormattedHours(minutesSaved);
+ }
}
}
@@ -690,6 +681,10 @@ async function runThePopup(messageListener?: MessageListener): Promise {
);
}
+ function lockSegments() {
+ alert("lock");
+ }
+
/**
* Should skipping be disabled (visuals stay)
*/