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);
})();