From 6252920efcb4b1971920d862e94fc4f26b2e43ab Mon Sep 17 00:00:00 2001 From: fofolee Date: Sat, 20 Jun 2020 19:46:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=BE=E7=BD=AE=E5=91=BD?= =?UTF-8?q?=E4=BB=A4=E6=94=AF=E6=8C=81=E7=9A=84=E5=B9=B3=E5=8F=B0=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=96=87=E4=BB=B6=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/options.js | 87 ++++++++++++++++++++++++++++----------- src/img/linux.svg | 1 + src/img/macos.svg | 1 + src/img/windows.svg | 1 + src/logo/applescript.png | Bin 1888 -> 1236 bytes 5 files changed, 65 insertions(+), 25 deletions(-) create mode 100644 src/img/linux.svg create mode 100644 src/img/macos.svg create mode 100644 src/img/windows.svg diff --git a/src/assets/options.js b/src/assets/options.js index c77d8b3..547188d 100644 --- a/src/assets/options.js +++ b/src/assets/options.js @@ -185,6 +185,10 @@ let showOptions = (tag = "默认") => { var app = features.cmds[0].match.app if (app.length > 10) app = app.slice(0, 10) + '...'; cmds = `窗口: ${app}`; + } else if (features.cmds[0].type == 'files') { + var app = features.cmds[0].match + if (app.length > 10) app = app.slice(0, 10) + '...'; + cmds = `文件: ${app}`; } else { features.cmds.forEach(cmd => { cmds += `${cmd}`; @@ -239,9 +243,10 @@ let showCustomize = () => {

模 式 关键字

说 明 @@ -260,15 +265,16 @@ let showCustomize = () => { 变 量 输 出

+ + + @@ -405,19 +414,24 @@ let typeCheck = () => { switch (type) { case 'key': $("#ruleWord").html("关键字"); - $(".var.regex").hide() - $(".var.window").hide() + $(".var.regex, .var.window, .var.files").hide() $("#rule").prop("placeholder", '多个关键字用逗号隔开'); break; case 'regex': $("#ruleWord").html("正 则"); + $(".var.window, .var.files").hide() $(".var.regex").show() - $(".var.window").hide() - $("#rule").prop("placeholder", '匹配的正则规则,如 /.*?\\.exe$/i'); + $("#rule").prop("placeholder", '匹配文本的正则,如 /.*?\\.exe$/i'); + break; + case 'files': + $("#ruleWord").html("正 则"); + $(".var.regex, .var.window").hide() + $(".var.files").show() + $("#rule").prop("placeholder", '匹配文件的正则,如 /.*?\\.exe$/i'); break; case 'window': $("#ruleWord").html("进 程"); - $(".var.regex").hide() + $(".var.regex, .var.files").hide() $(".var.window").show() $("#rule").prop("placeholder", '窗口的进程名,多个用逗号隔开'); break; @@ -499,11 +513,12 @@ $("#options").on('click', '.editBtn', function () { showCustomize(); data.tags && $('#tags').val(data.tags.join(",")) var cmds = data.features.cmds[0] - if (cmds.type == 'regex') { - $('#type').val('regex') + var platform = data.features.platform + if (platform) ["win32", "darwin", "linux"].map(x => (!platform.includes(x) && $(`#${x}`).addClass('disabled'))) + $('#type').val(cmds.type) + if (cmds.type == 'regex' || cmds.type == 'files') { $('#rule').val(cmds.match); } else if (cmds.type == 'window') { - $('#type').val('window'); $('#rule').val(cmds.match.app); } else { $('#type').val('key') @@ -650,13 +665,15 @@ let SaveCurrentCommand = async () => { var cmd = window.editor.getValue(); // 合规性校验 if (type == 'key' - && ['{{input}}', '{{SelectFile}}', '{{pwd}}', '{{WindowInfo}}'].map(x => cmd.includes(x)).includes(true)) { - Swal.fire('关键字模式无法使用{{input}}、{{SelectFile}}、{{WindowInfo}}、{{pwd}}!') + && ['{{input}}', '{{SelectFile}}', '{{pwd}}', '{{WindowInfo}}', '{{MatchedFiles}}'].map(x => cmd.includes(x)).includes(true)) { + Swal.fire('关键字模式无法使用{{input}}、{{SelectFile}}、{{WindowInfo}}、{{pwd}}、{{MatchedFiles}}!') } else if (type == 'regex' - && ['{{SelectFile}}', '{{WindowInfo}}', '{{pwd}}'].map(x => cmd.includes(x)).includes(true)) { - Swal.fire('正则模式无法使用{{SelectFile}}、{{WindowInfo}}、{{pwd}}!') - } else if (type == 'window' && cmd.includes('{{input}}')) { - Swal.fire('窗口模式无法使用{{input}}!') + && ['{{SelectFile}}', '{{WindowInfo}}', '{{pwd}}', '{{MatchedFiles}}'].map(x => cmd.includes(x)).includes(true)) { + Swal.fire('正则模式无法使用{{SelectFile}}、{{WindowInfo}}、{{pwd}}、{{MatchedFiles}}!') + } else if (type == 'window' && cmd.includes('{{input}}', '{{MatchedFiles}}')) { + Swal.fire('窗口模式无法使用{{input}}、{{MatchedFiles}}!') + } else if (type == 'files' && cmd.includes('{{input}}', '{{MatchedFiles}}')) { + Swal.fire('窗口模式无法使用{{input}}、{{MatchedFiles}}!') } else if (['text', 'html'].includes($('#output').val()) && cmd.includes('{{SelectText}}')) { Swal.fire('显示文本或html输出时无法使用{{SelectText}}!') } else if (type == 'regex' && /^(|\/)\.[*+](|\/)$/.test($('#rule').val())) { @@ -684,10 +701,6 @@ let SaveCurrentCommand = async () => { cmds = rule.split(",").map(x => x.trim()) } else if (type == 'regex') { if (!/^\/.*?\/[igm]*$/.test(rule)) { - await Swal.fire({ - icon: 'info', - text: '亲,是不是忘了正则表达式两边的"/"了?正确的写法是/xxxx/,不过作者会很贴心地帮你自动加上哟', - }) rule = "/" + rule + "/" } cmds = [{ @@ -711,6 +724,16 @@ let SaveCurrentCommand = async () => { } } cmds = [cmdOfWin]; + } else if (type == 'files') { + if (!/^\/.*?\/[igm]*$/.test(rule)) { + rule = "/" + rule + "/" + } + cmds = [{ + "label": desc, + "type": "files", + "match": rule, + "minNum": 1 + }]; } // 需要子输入框 if (cmd.includes('{{subinput}}')) { @@ -718,13 +741,17 @@ let SaveCurrentCommand = async () => { } else { hasSubInput = false; } + // platform + var platform = [] + $('.platform').not('.disabled').each(function() { platform.push($(this).attr('id')) }) // 添加特性 pushData = { features: { "code": code, "explain": desc, "cmds": cmds, - "icon": icon + "icon": icon, + "platform": platform }, program: program, cmd: cmd, @@ -967,6 +994,16 @@ $("#options").on('change', '#type', function () { typeCheck(); }) +// 平台按钮 +$("#options").on('click', '.platform', function () { + if ($(this).hasClass('disabled')){ + $(this).removeClass('disabled') + } else { + if ($('.disabled').length == 2) message('至少保留一个平台') + else $(this).addClass('disabled') + } +}) + Mousetrap.bind('ctrl+s', () => { SaveCurrentCommand() return false diff --git a/src/img/linux.svg b/src/img/linux.svg new file mode 100644 index 0000000..f0d72e3 --- /dev/null +++ b/src/img/linux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/img/macos.svg b/src/img/macos.svg new file mode 100644 index 0000000..c55a9c0 --- /dev/null +++ b/src/img/macos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/img/windows.svg b/src/img/windows.svg new file mode 100644 index 0000000..b59b8fc --- /dev/null +++ b/src/img/windows.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/logo/applescript.png b/src/logo/applescript.png index 2790db43034a9bda9ddd18131f480f240478bb23..979b022a9a02a854e3e323378e741a28e98db569 100755 GIT binary patch delta 1167 zcmV;A1aSM{4%7*dReuC&NklSe}2n98bg!j>212s7Nia7FN8_pUmHWP$QN&t!hK2B*?;eY(~o5nFd#qj)rU66 zA7m3S5VYza$-!mQ;Z3>RedI?BUyx%F=S7D%R3b$2V}=iw>+HMWXi*4H{Fvc`q{zNW zj&2hsiyt-mf)7*4$z8Je?+L_la_Fw<;4WGC@kqK}%_S#yE4|~#jXqEqc}EU?b-Q^i zTm2s4{l4hv7JrpVp1kMBjlR%o{v$ZKRY*(lqefq_k|ig1Xu*#fKEMa5;AByBMo9QE z!x!fsyp~1wY$=BUczpug-eUfMv`>KB<7{Bnu7Rm10M2%KEo4FMfMsX~VF7WOR_p9& z4`cp2^wyk&t!@3g)jY@~9e8GBK2WMV3x*2~X4TwT=8mv$JT$?Y*# z9<~nZvVS19a+1M8YKLMF4}W~FD+^9qdP319Y2h&BwrWC9)%@yr->q777D-ek`O?BY zNQQ7vUhLuBa1F?00*Wr(moK+2GKmu*Sf-9>LhaRAfJS$hwFp{3xxk zk#R$1I@Ji80G&SJ^%K%{r|AK-7vl8m3c)ZUtDLdFKyzK9b)4^KYwnPZ z?yKeiI)PU|Q@r+&4#5}lh3EVOa2i&aFz_~&3Ip@aXx?_VT>C(xd2~>a5^#L4N zzYXmZfs7-Zjxz;6b`@t%#zyToqYO!vK_w?6eAIG}aM(~g53Fwd|JWYaAuPR{+yTol h48t&tKHS{=1EsDA5Xlu(-~a#s00>D%PDHLkV1ii1Ibr|+ delta 1824 zcmV+*2jBSA3E&QpReuKcNklyPM5!u5D^6n`}xc z)CZLY5i9thAU>$|q4=UzsnRr;z30}{G~L})3sz~ds1Pb%`d}4ly`WUVOOxGm&SrBv zXM0OCezX0eZ8B*#Wri*@_s0O$W)X*i@1YGEF~_dVjv$a4@+Nn@O?-q@O=o0l!KS zeSq$SViQR=fdEg;3HXd6h9=9+Wd>5qx!Hk-w3MK`psv2ryYMi{asdJV1%f>SLH`b3 z_kbRi=_W(m1Cy&DO*{|k2mJ^^R3K$sgx5(J*}sAg!_PZh14eZYAva*N{{?+7INx*d z9({0;zJG=Hh{60}xTE?7c&)K@Pc?+cAEcjr(eu+Xldf_bqp4S5WPb&L%zt=$f~E9Di|C=o{_(rh21Eu7y+lXW zY?DF=(iL3n4QNFy=*koGF58?SqIUzmv(T0p(BMPoKb>txXhn?OXpe6o_&33*Im9#} zxWLz|Xp>)HvVEJ?dC>(G)j62Ub}Y3lURG$SxTvyE9DPr#F0{!f>4%{**&q{4P)Hng z9e*TupiO>(;J?N)AhaUJV5W<|>q`3JSGohqG9jqy_D!6w=~M1Si+tlAnB2-TA*yP7 z$EM3V)MwEi|3HOsm}Nvnt=&6DN<49K9$&w_;-$NbY(pZcqBBWyn}>)qka!I3@eeH1 z*RjlqB-ehOSbYjvy=#aRwZ+EJni$kajei$drbN-2-ceG}5=#f4%IedOpfxdo)uEqd zjCZZuJ5Ea4FOT{wRqE58Mr&dK6Yz&DgFLD}tdr{QQJ7@s27X3%Z+sP669brlzhIf= zLG=-xtb2EyRKnzH^{Ozz4l{#3quk~*(`ZW^V5xqJWu7ItTS#5s1gYs6BhF9)@_((G z9*u=k1NFMx-=I6rJ7%6U#r;oLG6=LhL`h^UgbxQf=qpe&Ghk7Yz$4HKJ3DMx$!>B1$Tt?R`WwrH=(73LV`!0YoPR;h&oW>J z*#b%!ZSqU?-m!v(Ho8PssZSl`J{^^`#}lm1n?(!{DL3H$&hBW@a?hHy&m1RJ5S$)bNTI3r? zNO|0B8*~M&vGZ%fi4|y(e`u~`84*=wer-Ei6N8F?c7J}$@D$68Xo6MnA81P~%7WUP zEJGqGfA{cIWtUQjmc&EkR7B@7XHeaSR>Y*LJGrv3HJ)M_bm@ZWe8y zsJJaQTGc(2{xT3#U=M0LMJY|`N38a4&4OJw4_3btVHxI0v~q*up%J@mKIoHYyxs}4 z;&FD3Y{ssdm(q~-2HjI<1>ssMYKfh-dgEW0`4hVwL1mMpW5iBBhj8?ampDU-jd0$# ztbXnD!j{;gC;g(f*ngx@4`eNs%8o>Bi6{OSD;QTQuX%Xd>QR0u>r}R2(~Kw&s7)5H z^3y^WI=#W>(~g>I!d(pI9V1OvuX+MXRf7hL1_bi(#bQr<$R1F7m-@+5WtVzisb7tj zv@7uf$nSXmDO%;&{OU*Loe6V&Kb%A&kw_#Gi9{liNF)-8gc&n(a{d8+TTy5Y^%H9V O0000