您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a collapsable matte gray notepad on Character.AI chats, unique to each character page.
- // ==UserScript==
- // @name Notepad For Character.ai
- // @namespace http://tampermonkey.net/
- // @version 1.1
- // @description Adds a collapsable matte gray notepad on Character.AI chats, unique to each character page.
- // @author Mr005K via ChatGPT
- // @match https://character.ai/*
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- // Create and style the notepad panel
- const notepadPanel = document.createElement('div');
- notepadPanel.style.position = 'fixed';
- notepadPanel.style.top = '0';
- notepadPanel.style.right = '0';
- notepadPanel.style.width = '300px';
- notepadPanel.style.height = '100%';
- notepadPanel.style.backgroundColor = '#4a4a4a';
- notepadPanel.style.color = '#ffffff';
- notepadPanel.style.padding = '10px';
- notepadPanel.style.boxShadow = '0 0 10px rgba(0, 0, 0, 0.5)';
- notepadPanel.style.transform = 'translateX(100%)';
- notepadPanel.style.transition = 'transform 0.3s ease-in-out';
- notepadPanel.style.zIndex = '1000';
- // Create the toggle button
- const toggleButton = document.createElement('button');
- toggleButton.textContent = '📝';
- toggleButton.style.position = 'fixed';
- toggleButton.style.top = '10px';
- toggleButton.style.right = '10px';
- toggleButton.style.zIndex = '1001';
- toggleButton.style.backgroundColor = '#4a4a4a';
- toggleButton.style.color = '#ffffff';
- toggleButton.style.border = 'none';
- toggleButton.style.padding = '10px';
- toggleButton.style.cursor = 'pointer';
- // Create the textarea for notes
- const textarea = document.createElement('textarea');
- textarea.style.width = '100%';
- textarea.style.height = 'calc(100% - 20px)';
- textarea.style.backgroundColor = '#3a3a3a';
- textarea.style.color = '#ffffff';
- textarea.style.border = 'none';
- textarea.style.padding = '10px';
- textarea.style.resize = 'none';
- textarea.style.fontFamily = 'Arial, sans-serif';
- textarea.style.fontSize = '14px';
- // Function to get the character ID from the URL
- function getCharacterId() {
- const pathParts = window.location.pathname.split('/');
- return pathParts.includes('chat') ? pathParts.pop() : null;
- }
- // Load the saved notes from localStorage when character ID is available
- function loadNotes() {
- const characterId = getCharacterId();
- if (characterId) {
- const localStorageKey = `character_notepad_${characterId}`;
- textarea.value = localStorage.getItem(localStorageKey) || '';
- }
- }
- // Save the notes to localStorage whenever the textarea content changes
- textarea.addEventListener('input', () => {
- const characterId = getCharacterId();
- if (characterId) {
- const localStorageKey = `character_notepad_${characterId}`;
- localStorage.setItem(localStorageKey, textarea.value);
- }
- });
- // Add functionality to toggle the panel
- toggleButton.addEventListener('click', () => {
- if (notepadPanel.style.transform === 'translateX(100%)') {
- notepadPanel.style.transform = 'translateX(0)';
- } else {
- notepadPanel.style.transform = 'translateX(100%)';
- }
- });
- // Append elements to the body
- notepadPanel.appendChild(textarea);
- document.body.appendChild(notepadPanel);
- document.body.appendChild(toggleButton);
- // Observe URL changes to update the notepad content
- const observer = new MutationObserver(() => {
- loadNotes();
- });
- observer.observe(document.body, { childList: true, subtree: true });
- // Initial load of notes
- loadNotes();
- })();