c站触发词一键保存

将 Civitai 内容导出,并包含触发词和源网址。

// ==UserScript==
// @name         c站触发词一键保存
// @namespace    civitai-exporter
// @version      1.2
// @description  将 Civitai 内容导出,并包含触发词和源网址。
// @author       江誉镠
// @match        https://civitai.com/models/*
// @grant        GM_download
// @grant        GM_registerMenuCommand
// ==/UserScript==

(function () {
  'use strict';

  function extractCopiedTexts() {
    const copiedTexts = [];

    const nodes = document.querySelectorAll('.mantine-Group-root.mantine-i72d0e');
    nodes.forEach((node) => {
      const content = node.textContent.trim();
      copiedTexts.push(content);
    });

    return copiedTexts;
  }

  function checkEnglishAlphabet(text) {
    // 英文字母正则表达式
    const regex = /^[a-zA-Z]+$/;
    return regex.test(text);
  }

  function exportCopiedTexts() {
    const nodes = document.querySelectorAll('.mantine-Text-root.mantine-Title-root.mantine-g96yxx');
    let filename = '未命名的触发词文档';
    if (nodes.length > 0) {
      const title = nodes[0].textContent.trim();
      filename = title;
    }
    const copiedTexts = extractCopiedTexts();

    // 检查是否含有非英文字母的触发词
    let nonEnglishTriggerWords = '';
    for (let i = 0; i < copiedTexts.length; i++) {
      const triggerWord = copiedTexts[i].split(':')[0];
      if (!checkEnglishAlphabet(triggerWord)) {
        nonEnglishTriggerWords += triggerWord + ' ';
      }
    }

    if (nonEnglishTriggerWords !== '') {
      alert('导出触发词失败!是不是用了翻译!\n请还原英文界面后再次导出。');
      return;
    }

    const triggerWord = '触发词:';
    const sourceUrl = '原网址:' + window.location.href + '\n';
    const content = copiedTexts.join('\n触发词:') + '\n';
    filename += '.txt';
    const dataUrl = 'data:text/plain;charset=utf-8,' + encodeURIComponent(sourceUrl + triggerWord + content);

    GM_download(dataUrl, filename);
  }

  GM_registerMenuCommand('导出触发词', exportCopiedTexts);
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址