NGA上传无水印、不压缩

自动设置NGA附件上传选项为无水印、不压缩

目前为 2024-11-10 提交的版本。查看 最新版本

// ==UserScript==
// @name         NGA上传无水印、不压缩
// @namespace    Violentmonkey Scripts
// @author       wordpure
// @version      0.1
// @description  自动设置NGA附件上传选项为无水印、不压缩
// @match        *://nga.178.com/post.php*
// @match        *://bbs.nga.cn/post.php*
// @match        *://ngabbs.com/post.php*
// @icon         data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OTIiIGhlaWdodD0iNDkyIj4KICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjRkVGOUUzIiByeD0iMjAlIiByeT0iMjAlIi8+CiAgPHBhdGggZmlsbD0iI2Y3Y2U5OCIgZD0ibTE5NCA5NyA0NC03N2gxbC0yIDg5LTQzLTEyWm0xMDEgMzMtNDAtMTF2LTFsNDktOTFoMWwtOSAxMDNoLTFabS0xMTgtMTUtMjkgMjItMzYtMTJ2LTFsMzYtNjhoMWw3IDQxIDIxIDE4Wm0xNzggMzctMSAxLTQwLTEyYTEgMSAwIDAgMS0xLTFsNTAtODNxMS0yIDAgMGwtOCA5NVptNTgtNDQtMiA2N3YxbC0zNi0xMSAzOC01N1ptLTI0MiA1NyA0OS00MGEyIDIgMzUgMCAxIDIgMGwxNDYgNDlxMiAwIDAgMGwtMjcxIDF2LTFsMjAtMjYgNTQgMTdaIi8+CiAgPHBhdGggZmlsbD0iIzk1NTM0MyIgZD0ibTE4NyAxOTQtNSAzNy0yIDEyLTMzIDl2LTZsOC01MmExIDEtODUgMCAxIDEgMGgzMVptLTY5IDggMSAyIDggMjMgMTEgMjgtMjggOC00LTlxMC0xIDAgMGwtMiAxMi0zNCAxMiAxMS03MHEwLTUgMi04IDQtNiAxMi02aDEybDYgMyA1IDVabTE5My04IDEgMjItNDcgOC0xIDEgMiAxaDMyLTYybC0xIDQtMzMgNyAxLTYgMi0xM3ExLTExIDktMThsMTAtNSAxMi0xaDc1Wm0xMDEgMTFoLTNsLTQ4IDVxNS0xMiAxNi0xNWwxMC0xYzQgMCA5LTEgMTMgMXE4IDIgMTIgMTBaIi8+CiAgPHBhdGggZmlsbD0iI2Y3Y2U5OCIgZD0ibTIwNSAyMTgtMiAxM2gtMjFsNS0zNyAxOCAyNFptMTI1IDVxLTEwLTEtMTgtNHYtM2wtMS0yMiAxOSAyOVptLTE5NSA1LTgtMS04LTIzLTEtMiAxNyAyNloiLz4KICA8cGF0aCBmaWxsPSIjNzkzYjJjIiBkPSJtNDEyIDIwNSA0IDM2LTMyIDUtMS04aC0xbC00IDEwLTM3IDkgNC0xMCAxNi0zNyA0OC01aDNaIi8+CiAgPHBhdGggZmlsbD0iI2Y4ZGZiMiIgZD0ibTQxOCAyNTgtMi0xNy00LTM2IDM1IDYxcS0xNS0yLTI5LThaIi8+CiAgPHBhdGggZmlsbD0iIzc5M2IyYyIgZD0iTTMxMiAyMTZ2OWwtMSAxaC00NWwtMi0xIDEtMSA0Ny04Wm0tNzcgMTQtNSAzNi01IDMyaDVsLTM4IDE5LTEtOCA3LTQ0IDQtMjggMzMtN1oiLz4KICA8cGF0aCBmaWxsPSIjZjhkZmIyIiBkPSJtMzMwIDIyMyAxNSAyNC00IDEwLTYgMTNxLTE1IDItMzAtMWw0LTIyYTEgMS04NiAwIDAtMSAwaC00N2wtMTYgMjRxLTgtMS0xNS01bDUtMzYgMS00aDc1bDEtMXYtNnE4IDMgMTggNFptLTE5NSA1IDEyIDE4djZsLTMgMTdxMCAyLTEgMGwtNS0xNC0xMS0yOCA4IDFabTY4IDMtMSA2LTQgMjhoLTIxbDMtMjIgMi0xMmgyMVoiLz4KICA8cGF0aCBmaWxsPSIjZmVmOWUzIiBkPSJtMzg0IDI0NiAzIDI3djFoLTE5bC0xLTEgMTEtMjUgNC0xMGgxbDEgOFoiLz4KICA8cGF0aCBmaWxsPSIjNWUyMzE3IiBkPSJtNDE2IDI0MSAyIDE3IDkgNzJhMSAxIDg3IDAgMS0xIDBoLTMybC00LTI4aC0zNGExIDEgMCAwIDAtMSAwbC0xMSAyOGgtMzNsMjQtNjAgNi0xMyAzNy05LTExIDI1IDEgMWgxOXYtMWwtMy0yNyAzMi01WiIvPgogIDxwYXRoIGZpbGw9IiM3OTNiMmMiIGQ9Im0xODAgMjQzLTMgMjItOCA1MS0yIDhxLTIgMy02IDVsLTcgMWgtN2wtNy0xcS00LTEtNS0zbC0zLTQtMjItNTkgMjgtOCA1IDE0cTEgMiAxIDBsMy0xNyAzMy05Wm0xMjUgMjYtMzMgMTJ2LTdoLTI5bDItMyAxNi0yNGg0N2ExIDEtODYgMCAxIDEgMGwtNCAyMlptLTIwMS0zLTkgNjRINjNxLTEgMCAwIDBsNy01MiAzNC0xMloiLz4KICA8cGF0aCBmaWxsPSIjZmVmOWUzIiBkPSJtMjQ1IDI3MS0yIDNoMjl2N2wtMyAxN2ExIDEgNCAwIDEtMSAwaC00M2w1LTMycTcgNCAxNSA1WiIvPgogIDxwYXRoIGZpbGw9IiM1ZTIzMTciIGQ9Im0zMDUgMjY5LTUgMzNxLTEgOS0zIDEzYy0zIDctMTAgMTMtMTggMTVoLTY4cS0xMyAwLTE5LTEzbDM4LTE5aDM4YTEgMSA0IDAgMCAxIDBsMy0xNyAzMy0xMloiLz4KICA8cGF0aCBmaWxsPSIjZjBiYjlkIiBkPSJtMjk0IDM5Ni00OC05LTI5LTcgODMtNyA0LTFxMyAwIDAgMGwtMTgxLTlhNSA1IDYwIDAgMS0yIDBsLTIzLTEycS0yIDAgMCAwaDI2NGwtMjYgMzlhMSAxLTc3IDAgMS0xIDFsLTQxIDVaIi8+CiAgPHBhdGggZmlsbD0iI2ViYWVhMCIgZD0ibTIxNyAzODAgMjkgNyA0OCA5LTU4IDgtMTAgMXYxbDkwIDgtMjkgNTRhMSAxIDAgMCAxLTEgMWwtNjYtMzNhNiA2IDc5IDAgMS0xLTFsLTUxLTUwdi0xbDQ5LTRaIi8+Cjwvc3ZnPg==
// @grant        none
// ==/UserScript==

(function () {
  'use strict';

  function setUploadOptions() {
    const attachForm = document.querySelector('#attachformC');
    if (!attachForm) return false;

    // 显示默认设置
    attachForm.querySelector('a').style.display = 'none';
    attachForm.querySelector('a + span').style.display = '';

    // 使用默认设置上传附件
    postfunc.autoUploadSW(true);

    // 默认无水印
    attachForm.querySelector('select').selectedIndex = 6;

    // 默认不压缩
    attachForm.querySelector('select + [type="checkbox"]').checked = true

    return true;
  }

  function waitForUploadOptions(maxWaitTime = 10000) {
    if (setUploadOptions()) {
      return;
    }

    const observer = new MutationObserver((mutations, obs) => {
      if (setUploadOptions()) {
        obs.disconnect();
      }
    });

    observer.observe(document.body, {
      childList: true,
      subtree: true,
    });

    setTimeout(() => {
      observer.disconnect();
      if (!setUploadOptions()) {
        alert('未找到附件上传设置');
      }
    }, maxWaitTime);
  }

  waitForUploadOptions();
})();