upgrade to manifest_version v3
This commit is contained in:
@@ -66,7 +66,21 @@ async function bulkDeleteConversations() {
|
|||||||
if (confirmButton) {
|
if (confirmButton) {
|
||||||
console.log("点击确认按钮...")
|
console.log("点击确认按钮...")
|
||||||
confirmButton.click();
|
confirmButton.click();
|
||||||
await new Promise(resolve => setTimeout(resolve, 1000)); // Add a delay of 1 second
|
// await new Promise(resolve => setTimeout(resolve, 1000)); // Add a delay of 1 second
|
||||||
|
// 等待删除按钮消失
|
||||||
|
const deleteButtonDisappeared = new Promise((resolve) => {
|
||||||
|
const observer = new MutationObserver(() => {
|
||||||
|
if (!document.querySelector('.absolute.flex.right-1.z-10.text-gray-300.visible')) {
|
||||||
|
observer.disconnect();
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
observer.observe(document.body, {
|
||||||
|
childList: true,
|
||||||
|
subtree: true,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
await deleteButtonDisappeared;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,6 +116,12 @@ async function bulkDeleteConversations() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function addCheckboxesWithState(checkedIndexes) {
|
async function addCheckboxesWithState(checkedIndexes) {
|
||||||
|
// 移除现有的复选框
|
||||||
|
const existingCheckboxes = document.querySelectorAll('.conversation-checkbox');
|
||||||
|
existingCheckboxes.forEach((checkbox) => {
|
||||||
|
checkbox.remove();
|
||||||
|
});
|
||||||
|
|
||||||
// 在这里重新添加复选框
|
// 在这里重新添加复选框
|
||||||
const conversations = document.querySelectorAll('.flex.py-3.px-3.items-center.gap-3.relative.rounded-md.hover\\:bg-\\[\\#2A2B32\\].cursor-pointer.break-all.hover\\:pr-4.group');
|
const conversations = document.querySelectorAll('.flex.py-3.px-3.items-center.gap-3.relative.rounded-md.hover\\:bg-\\[\\#2A2B32\\].cursor-pointer.break-all.hover\\:pr-4.group');
|
||||||
conversations.forEach((conversation, index) => {
|
conversations.forEach((conversation, index) => {
|
||||||
@@ -122,6 +142,8 @@ async function addCheckboxesWithState(checkedIndexes) {
|
|||||||
for (let i = 0; i < remainingCheckboxes.length; i++) {
|
for (let i = 0; i < remainingCheckboxes.length; i++) {
|
||||||
remainingCheckboxes[i].dataset.index = i;
|
remainingCheckboxes[i].dataset.index = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
bulkDeleteConversations();
|
bulkDeleteConversations();
|
||||||
@@ -1,29 +1,24 @@
|
|||||||
{
|
{
|
||||||
"manifest_version": 2,
|
"manifest_version": 3,
|
||||||
"name": "ChatGPT Bulk Delete",
|
"name": "ChatGPT Bulk Delete",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"description": "A Chrome extension to bulk delete ChatGPT conversations",
|
"description": "A Chrome extension to bulk delete ChatGPT conversations",
|
||||||
"icons": {
|
"icons": {
|
||||||
"48": "icon48.png"
|
"48": "icon48.png"
|
||||||
},
|
},
|
||||||
"browser_action": {
|
"action": {
|
||||||
"default_icon": "icon48.png",
|
"default_icon": "icon48.png",
|
||||||
"default_popup": "popup.html",
|
"default_popup": "popup.html",
|
||||||
"default_title": "Bulk Delete Conversations"
|
"default_title": "Bulk Delete Conversations"
|
||||||
},
|
},
|
||||||
"permissions": [
|
"permissions": [
|
||||||
"activeTab",
|
"scripting",
|
||||||
"storage"
|
"activeTab"
|
||||||
],
|
],
|
||||||
"background": {
|
"content_scripts": [
|
||||||
"scripts": ["background.js"],
|
{
|
||||||
"persistent": false
|
"matches": ["*://chat.openai.com/*"],
|
||||||
},
|
"js": ["addCheckboxes.js", "bulkDeleteConversations.js"]
|
||||||
"content_scripts": [
|
}
|
||||||
{
|
]
|
||||||
"matches": ["*://chat.openai.com/*"],
|
}
|
||||||
"js": ["addCheckboxes.js", "bulkDeleteConversations.js"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
26
popup.js
26
popup.js
@@ -1,14 +1,30 @@
|
|||||||
document.getElementById('add-checkboxes').addEventListener('click', () => {
|
document.getElementById('add-checkboxes').addEventListener('click', () => {
|
||||||
chrome.tabs.executeScript({ file: 'addCheckboxes.js' });
|
chrome.tabs.query({ active: true, currentWindow: true }, ([tab]) => {
|
||||||
|
chrome.scripting.executeScript({
|
||||||
|
target: { tabId: tab.id },
|
||||||
|
files: ['addCheckboxes.js']
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
document.getElementById('bulk-delete').addEventListener('click', () => {
|
document.getElementById('bulk-delete').addEventListener('click', () => {
|
||||||
chrome.tabs.executeScript({ file: 'bulkDeleteConversations.js' });
|
chrome.tabs.query({ active: true, currentWindow: true }, ([tab]) => {
|
||||||
|
chrome.scripting.executeScript({
|
||||||
|
target: { tabId: tab.id },
|
||||||
|
files: ['bulkDeleteConversations.js']
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
document.getElementById('remove-checkboxes').addEventListener('click', () => {
|
document.getElementById('remove-checkboxes').addEventListener('click', () => {
|
||||||
chrome.tabs.executeScript({ file: 'removeCheckboxes.js' });
|
chrome.tabs.query({ active: true, currentWindow: true }, ([tab]) => {
|
||||||
});
|
chrome.scripting.executeScript({
|
||||||
|
target: { tabId: tab.id },
|
||||||
|
files: ['removeCheckboxes.js']
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// Update copyright year
|
// Update copyright year
|
||||||
const currentYear = new Date().getFullYear();
|
const currentYear = new Date().getFullYear();
|
||||||
|
|||||||
Reference in New Issue
Block a user