您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A small, modern TO DO list for dang ChatGPT
当前为
- // ==UserScript==
- // @name ChatGPT ToDo List
- // @namespace https://your.namespace.com
- // @version 0.7
- // @description A small, modern TO DO list for dang ChatGPT
- // @author Emree.el on instagram :)
- // @match https://chatgpt.com/*
- // @grant GM_setValue
- // @grant GM_getValue
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- // Adds a funny little checkbox to the top right corner
- const checkbox = document.createElement('input');
- checkbox.type = 'checkbox';
- checkbox.style.position = 'fixed';
- checkbox.style.top = '10px';
- checkbox.style.right = '10px';
- document.body.appendChild(checkbox);
- // Function to show/hide the panel based on checkbox state
- function togglePanel() {
- const panel = document.getElementById('custom-panel');
- if (checkbox.checked) {
- panel.style.display = 'block';
- } else {
- panel.style.display = 'none';
- }
- }
- checkbox.addEventListener('change', togglePanel);
- // Create the panel... lol
- const panel = document.createElement('div');
- panel.id = 'custom-panel';
- panel.style.position = 'fixed';
- panel.style.top = '50px';
- panel.style.right = '10px';
- panel.style.width = '200px';
- panel.style.height = '300px';
- panel.style.overflowY = 'auto'; // Changed from overflowX to overflowY
- panel.style.display = 'none';
- panel.style.border = '1px solid #171717'; // Set border color
- panel.style.background = '#171717'; // Set background color
- document.body.appendChild(panel);
- // Retrieve stored text from storage
- function retrieveStoredTexts() {
- const storedTexts = JSON.parse(GM_getValue('storedTexts', '[]'));
- const uniqueTexts = new Set(storedTexts);
- uniqueTexts.forEach(text => {
- const newText = document.createElement('div');
- newText.textContent = text;
- panel.prepend(newText);
- const deleteButton = document.createElement('button'); // Moved delete button creation here
- deleteButton.textContent = 'Delete';
- deleteButton.style.marginLeft = '5px';
- deleteButton.style.color = 'red'; // Set delete button text color to red
- deleteButton.addEventListener('click', function() {
- newText.remove();
- storedTexts.splice(storedTexts.indexOf(text), 1); // Remove text from stored texts
- GM_setValue('storedTexts', JSON.stringify(storedTexts)); // Update stored texts
- });
- newText.appendChild(deleteButton);
- });
- }
- // Call the function to retrieve stored text
- retrieveStoredTexts();
- // Create text input
- const textInput = document.createElement('input');
- textInput.type = 'text';
- textInput.placeholder = 'Enter text';
- textInput.style.background = '#212121'; // Set textbox color
- panel.appendChild(textInput);
- // Function to add entered text to the panel
- function addText() {
- const text = textInput.value.trim();
- if (text !== '') {
- const newText = document.createElement('div');
- newText.textContent = text;
- panel.prepend(newText);
- const deleteButton = document.createElement('button'); // Moved delete button creation here
- deleteButton.textContent = 'Delete';
- deleteButton.style.marginLeft = '5px';
- deleteButton.style.color = 'red'; // Set delete button text color to red
- deleteButton.addEventListener('click', function() {
- newText.remove();
- storedTexts.splice(storedTexts.indexOf(text), 1); // Remove text from stored texts
- GM_setValue('storedTexts', JSON.stringify(storedTexts)); // Update stored texts
- });
- newText.appendChild(deleteButton);
- textInput.value = '';
- storeText(text); // Store text
- }
- }
- // Function to store entered text in storage
- function storeText(text) {
- let storedTexts = JSON.parse(GM_getValue('storedTexts', '[]'));
- storedTexts.push(text); // Store text
- GM_setValue('storedTexts', JSON.stringify(storedTexts.filter(Boolean))); // Update stored texts, filter out empty strings
- }
- // Add event listener to the text input to add text
- textInput.addEventListener('keydown', function(event) {
- if (event.keyCode === 13) {
- addText();
- }
- });
- })();