您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Feederチャットの自由帳を定期的に作り続けるスクリプトです。
// ==UserScript== // @name 自由帳定期作成(Feederチャット) // @namespace http://tampermonkey.net/ // @version 0.2 // @description Feederチャットの自由帳を定期的に作り続けるスクリプトです。 // @author You // @match *.x-feeder.info/*/ // @exclude *.x-feeder.info/*/sp/ // @exclude *.x-feeder.info/*/settings/** // @require https://greasyfork.org/scripts/396472-yaju1919/code/yaju1919.js?version=798050 // @grant GM.setValue // @grant GM.getValue // ==/UserScript== (function() { 'use strict'; // 自由帳を作成する関数 const addNote = (title, text, password, folderId) => { if (title === "") return; // titleが空なら処理を中断 let elm_flag = $("#folder_navi_area").length !== 0; // 既に自由帳を開いているか if (!elm_flag) toggleSubContents(1); // 自由帳を開く createNote(title, password, password, folderId); setTimeout(() => { // 自由帳の編集 $("#note_contents").text(text); $("#note_save_button").click(); }, 750); if (!elm_flag) setTimeout(() => toggleSubContents(1), 800); // 最初に自由帳を開いていなかったら閉じる } //--------------------- const addBtn = (h, title, func) => { // ボタンを作成する関数 return $("<button>").text(title).click(func).appendTo(h); } const getInputVal = (h) => { // 引数に渡した要素内の入力欄の値をtextarea要素とinput要素に分けて連想配列で返す関数 let inputElmObj = {} let inputVal = []; if (h.find("textarea").length !== 0) { h.find("textarea").each((i, e) => inputVal.push(e.value)); inputElmObj.textarea = inputVal; inputVal = []; } if (h.find("input").length !== 0) { h.find("input").each((i, e) => inputVal.push(e.value)); inputElmObj.input = inputVal; } return inputElmObj; } const setInputVal = (h, inputValArr, textareaValArr) => { // 引数に渡した要素内の入力欄の値をセットする関数 if (h.find("textarea").length !== 0 && h.find("textarea").length === textareaValArr.length) h.find("textarea").each((i, e) => e.value = textareaValArr[i]); if (h.find("input").length !== 0 && h.find("input").length === inputValArr.length) h.find("input").each((i, e) => e.value = inputValArr[i]); } const h = $("<div>").css({ "background-color": "gray", "border": "3px solid black", "border-radius": "10px", }).prependTo("#main_right").append("<h1>自由帳定期作成</h1><br>"); let si; // siはsetIntervalのidを格納する変数 yaju1919.addInputBool(h, { title: "定期作成", value: false, change: () => { setTimeout(() => { let valObj = getInputVal(h); if (valObj.input.length === 1) return; const createInterval = valObj.input[1]; const noteTitle = valObj.input[3]; const noteText = valObj.textarea[0]; const notePassword = valObj.input[4]; const noteFolderId = valObj.input[2]; clearInterval(si); if (!h.find("input").eq(0).prop("checked")) return; si = setInterval(() => addNote(noteTitle, noteText, notePassword, noteFolderId), createInterval * 1000); }); }, }); addBtn(h, "作成", () => { // 自由帳を作成 let valObj = getInputVal(h); const noteTitle = valObj.input[3]; const noteText = valObj.textarea[0]; const notePassword = valObj.input[4]; const noteFolderId = valObj.input[2]; addNote(noteTitle, noteText, notePassword, noteFolderId); }); addBtn(h, "クリア", () => setInputVal(h, ["on", 15, 0, "Hello, World!", ""], [""])); // 入力欄をクリア addBtn(h, "簡単入力", () => setInputVal(h, ["on", 15, 0, "Hello, World!", ""], ["Hello, World!\nHello, World!\nHello, World!"])); // 入力欄にサンプルテキストを入力 yaju1919.addInputNumber(h, { title: "作成間隔", placeholder: "自由帳の作成間隔を入力(単位:秒)", save: "AM_createInterval", width: "100%", value: 15, min: 15, max: Infinity, }); yaju1919.addInputNumber(h, { title: "フォルダID", placeholder: "作成先のフォルダIDを入力(空の場合は0)", save: "AM_folderId", width: "100%", value: 0, min: 0, max: Infinity, }); yaju1919.addInputText(h, { title: "タイトル", placeholder: "自由帳のタイトルを入力", save: "AM_noteTitle", width: "100%", value: "Hello, World!", hankaku: false, change: () => { // タイトルの入力欄が空なら既定値に戻す if (h.find("input").eq(3).val() === "") setTimeout(() => h.find("input").eq(3).val("Hello, World!")); }, }); yaju1919.addInputText(h, { title: "パスワード", placeholder: "自由帳のパスワードを入力", save: "AM_notePassword", width: "100%", }); yaju1919.addInputText(h, { title: "本文", placeholder: "自由帳の本文を入力", save: "AM_noteText", width: "100%", textarea: true, hankaku: false, }); })();