您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
yandev edition!
// ==UserScript== // @name Honey's card fetcher // @namespace http://tampermonkey.net/ // @version 2024-10-11 // @description yandev edition! // @author Tots not me! // @match https://moescape.ai/tavern/my-characters/* // @license MIT // @grant GM_registerMenuCommand // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // ==/UserScript== (function() { 'use strict'; console.log("card fetcher is running"); GM_registerMenuCommand("Export V1 Card", dlTavernCard); let tavernCard = { name: "", description: "", scenario: "", first_mes: "", mes_example: "" }; function downloadJSON(data, filename) { const jsonString = JSON.stringify(data, null, 2); const blob = new Blob([jsonString], {type: 'application/json'}); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = filename; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); } function GetCharacterData(){ let nickname = document.getElementById('name'); if (nickname) { tavernCard.name = nickname.value; } let desc = document.getElementById('char_persona'); if (desc) { tavernCard.description = desc.value; } let world_scenario = document.getElementById('world_scenario'); if (world_scenario) { tavernCard.scenario = world_scenario.value; } let char_greeting = document.getElementById('char_greeting'); if (char_greeting) { tavernCard.first_mes = char_greeting.value; } let example_dialogue = document.getElementById('example_dialogue'); if (example_dialogue) { tavernCard.mes_example = example_dialogue.value; } return tavernCard; } function dlTavernCard() { let tavernCard = GetCharacterData(); let filename = tavernCard.name ? `${tavernCard.name}.json` : 'taverncard.json'; downloadJSON(tavernCard, filename); } })();