139 lines
4.5 KiB
JavaScript
139 lines
4.5 KiB
JavaScript
function loadGlobalsThenExecute(tabId, secondaryScript, callback) {
|
|
chrome.scripting.executeScript(
|
|
{
|
|
target: { tabId: tabId },
|
|
files: ["globals.js", "utils.js"],
|
|
},
|
|
() => {
|
|
chrome.scripting.executeScript(
|
|
{
|
|
target: { tabId: tabId },
|
|
files: [secondaryScript],
|
|
},
|
|
callback
|
|
);
|
|
}
|
|
);
|
|
}
|
|
|
|
function addButtonListener(buttonId, scriptName) {
|
|
document.getElementById(buttonId).addEventListener("click", () => {
|
|
chrome.tabs.query({ active: true, currentWindow: true }, ([tab]) => {
|
|
if (tab) {
|
|
if (buttonId === "bulk-delete") {
|
|
const bulkDeleteButton = document.getElementById(buttonId);
|
|
bulkDeleteButton.disabled = true;
|
|
bulkDeleteButton.classList.add("progress");
|
|
|
|
loadGlobalsThenExecute(tab.id, scriptName);
|
|
} else {
|
|
loadGlobalsThenExecute(tab.id, scriptName);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateProgressBar(buttonId, progress) {
|
|
console.log(`Updating progress bar for ${buttonId}:`, progress);
|
|
const button = document.getElementById(buttonId);
|
|
button.classList.add("progress");
|
|
button.style.setProperty("--progress", `${progress}%`);
|
|
button.setAttribute("data-progress", progress);
|
|
|
|
const buttonText =
|
|
buttonId === "bulk-delete" ? "Bulk Delete" : "Bulk Archive";
|
|
const actionText = buttonId === "bulk-delete" ? "Deleting" : "Archiving";
|
|
|
|
if (progress === 100) {
|
|
button.disabled = true;
|
|
button.innerHTML = `
|
|
<span class="progress-text">100%</span>
|
|
<span class="button-text">${actionText} Complete</span>
|
|
`;
|
|
|
|
// 显示 100% 一段时间后恢复原始状态
|
|
setTimeout(() => {
|
|
button.disabled = false;
|
|
button.classList.remove("progress");
|
|
button.innerHTML = `<span class="button-text">${buttonText}</span>`;
|
|
}, 500); // 1000 毫秒 = 1 秒,您可以根据需要调整这个时间
|
|
} else {
|
|
button.disabled = true;
|
|
button.innerHTML = `
|
|
<span class="progress-text">${progress}%</span>
|
|
<span class="button-text">${actionText}...</span>
|
|
`;
|
|
}
|
|
}
|
|
|
|
// 在消息监听器中也添加文本重置
|
|
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
|
|
console.log("Received message:", request);
|
|
if (request.action === "updateProgress") {
|
|
updateProgressBar(request.buttonId, request.progress);
|
|
} else if (request.action === "operationComplete") {
|
|
const button = document.getElementById(request.buttonId);
|
|
button.disabled = false;
|
|
button.classList.remove("progress");
|
|
updateProgressBar(request.buttonId, 100);
|
|
}
|
|
});
|
|
|
|
function initializeButtons() {
|
|
addButtonListener("add-checkboxes", "addCheckboxes.js");
|
|
addButtonListener("bulk-delete", "bulkDeleteConversations.js");
|
|
addButtonListener("toggle-checkboxes", "toggleCheckboxes.js");
|
|
addButtonListener("remove-checkboxes", "removeCheckboxes.js");
|
|
|
|
const bulkArchiveButton = document.getElementById("bulk-archive");
|
|
bulkArchiveButton.addEventListener("click", handleBulkArchive);
|
|
}
|
|
|
|
// Payment logic removed - bulk archive is now free
|
|
async function checkMembershipStatus() {
|
|
// Removed payment checking logic
|
|
updateBulkArchiveButton(true); // Always enable bulk archive
|
|
}
|
|
|
|
function updateBulkArchiveButton(isPaid) {
|
|
const bulkArchiveButton = document.getElementById("bulk-archive");
|
|
// Always enable bulk archive (no lock icon)
|
|
bulkArchiveButton.querySelector("span").textContent = "";
|
|
}
|
|
|
|
async function handleBulkArchive() {
|
|
// Removed payment requirements - bulk archive is now free for everyone
|
|
chrome.tabs.query({ active: true, currentWindow: true }, ([tab]) => {
|
|
if (tab) {
|
|
const bulkArchiveButton = document.getElementById("bulk-archive");
|
|
bulkArchiveButton.disabled = true;
|
|
bulkArchiveButton.classList.add("progress");
|
|
loadGlobalsThenExecute(tab.id, "bulkArchiveConversations.js");
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
// function updateCopyrightYear() {
|
|
// const currentYear = new Date().getFullYear();
|
|
// document.getElementById(
|
|
// "copyright"
|
|
// ).innerHTML = `© ${currentYear} <a href="https://github.com/qcrao/bulk-delete-chatGPT" target="_blank">qcrao@GitHub</a>`;
|
|
// }
|
|
|
|
document.addEventListener("DOMContentLoaded", function () {
|
|
initializeButtons();
|
|
// updateCopyrightYear();
|
|
checkMembershipStatus();
|
|
});
|
|
|
|
// 每次打开popup时检查会员状态
|
|
chrome.runtime.onConnect.addListener(function (port) {
|
|
if (port.name === "popup") {
|
|
port.onDisconnect.addListener(function () {
|
|
checkMembershipStatus();
|
|
});
|
|
}
|
|
});
|