NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Resilio Sync X // @version 0.1 // @description Resilio Sync Batch Add Link, and automaticaly click OK button. // @author SnowstarCyan // @match http://127.0.0.1:8888/gui/ // @grant none // ==/UserScript== (function() { 'use strict'; // 批量添加秘钥 var batch_connect = function(CODE, PATH){ utWebUI.addForceSyncFolder(PATH, CODE, false, void 0, _=>undefined); }; var batch_batch_connect = function(input){ var matches = input.match(/^\S+\s+.+$/mg).map(x=>x.match(/^(\S+)\s+(.+?)\s*$/m)); matches.map(match => batch_connect(match[1], match[2])); }; // 生成操作界面 var appChild = function(itemSelector, html){ var tmpdiv = document.createElement("div"); tmpdiv.innerHTML = html; console.log(itemSelector); console.log($("itemSelector")); $(itemSelector)[0].appendChild(tmpdiv.children[0]); }; var main = function(){ if( !$("#add-folder-btn-group")[0] ){ return true; // need re call } appChild( "#add-folder-btn-group", '\ <button type="button" class="btn btn-primary" id="open-batch-connection-dialog" data-original-title="" title="" style="\ font-size: 16px;\ font-weight: 400;\ text-transform: capitalize;\ line-height: 16px;\ width: auto;\ letter-spacing: .5pt;\ padding: 9px 24px 20px 16px;\ float: left;\ "> <span class="mycon mycon-add-advanced-folder" style="\ "></span> 批量添加秘钥、链接 </button>\ '); appChild( "body", '\ <div tabindex="-1" role="dialog" aria-hidden="false" id="manual-batch-connection-dialog" class="modal fade" aria-labelledby="a16758100000" style="display: block; visibility: hidden"><div class="modal-backdrop fade" style="height: 857px;"></div>\ <div class="modal-dialog">\ <div class="modal-content">\ <div class="modal-header" id="a16758100000">\ <button type="button" class="close" data-dismiss="modal" aria-hidden="true" id="manual-batch-connection-close">\ <span class="mycon mycon-close"></span>\ </button>\ <h5>批量添加文件夹</h5>\ </div>\ <div class="modal-body">\ <div class="form-group">\ <label for="manual-connection-key">格式:一行一个条目,每个条目由 秘钥 目录路径 组成。</label><br>\ <br>\ <div class="input-group" style="\ display: block;\ /* height: 0em; */\ ">\ <textarea id="manual-batch-connection-keys" type="text" class="form-control" placeholder="AXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX D:\\sync\\同步文件夹A-读写权限\nBXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX D:\\sync\\同步文件夹B-只读\n\n格式:(秘钥或链接) (文件夹目录)" data-submit-target="#manual-connection-next" style="font-family: monospace; height: 10em;margin-bottom: 1em;"></textarea>\ \ </div>\ <div class="input-group" style="\ text-align: right;\ "><span class="input-group-btn" style="">\ <button id="manual-batch-connection-next" class="btn btn-sm btn-default" type="button">批量添加</button>\ </span></div></div>\ \ \ </div>\ </div>\ </div>\ </div>\ '); // 显示批量添加秘钥面板 var show_manual_batch_connection_dialog = function(){ $("body")[0].classList = "modalOpen modal-open"; $("#manual-batch-connection-dialog")[0].classList = "modal fade in"; $("#manual-batch-connection-dialog > .modal-backdrop")[0].classList = "modal-backdrop fade in"; $("#manual-batch-connection-dialog")[0].style.visibility = null; }; var close_manual_batch_connection_dialog = function(){ $("body")[0].classList = ""; $("#manual-batch-connection-dialog")[0].classList = "modal fade"; $("#manual-batch-connection-dialog > .modal-backdrop")[0].classList = "modal-backdrop fade"; $("#manual-batch-connection-keys")[0].value = ""; $("#manual-batch-connection-dialog")[0].style.visibility = "hidden"; }; // 监听面板动作 $("#open-batch-connection-dialog")[0].onclick = show_manual_batch_connection_dialog; $("#manual-batch-connection-dialog > .modal-backdrop")[0].onclick = close_manual_batch_connection_dialog; $("#manual-batch-connection-close")[0].onclick = close_manual_batch_connection_dialog; $("#manual-batch-connection-next")[0].onclick = function(){ var input = $("#manual-batch-connection-keys")[0].value; close_manual_batch_connection_dialog(); batch_batch_connect(input); }; // 附加功能:自动点击确认按钮 setInterval(function(){ var btn = $("#okButton")[0]; if( btn ){ btn.click(); btn.id = "okButtonClicked"; } }, 32); }; // 延迟执行 var timerCallMain = setInterval(function(){ if(!main()){ clearInterval(timerCallMain); } }, 32); })();