(urls)
| 1759 | } |
| 1760 | |
| 1761 | function customDown(urls){ |
| 1762 | processFunc = null; |
| 1763 | useIframe = false; |
| 1764 | if(urls){ |
| 1765 | urls=decodeURIComponent(urls.replace(/%/g,'%25')); |
| 1766 | GM_setValue("DACrules_"+document.domain, urls); |
| 1767 | var processEles=[]; |
| 1768 | let urlsArr=urls.split("@@"),eles=[]; |
| 1769 | if(/^http|^ftp/.test(urlsArr[0])){ |
| 1770 | [].forEach.call(urlsArr[0].split(","),function(i){ |
| 1771 | var curEle; |
| 1772 | var varNum=/\[\d+\-\d+\]/.exec(i); |
| 1773 | if(varNum){ |
| 1774 | varNum=varNum[0].trim(); |
| 1775 | }else{ |
| 1776 | curEle=document.createElement("a"); |
| 1777 | curEle.href=i; |
| 1778 | curEle.innerText="Added Url"; |
| 1779 | processEles.push(curEle); |
| 1780 | return; |
| 1781 | } |
| 1782 | var num1=/\[(\d+)/.exec(varNum)[1].trim(); |
| 1783 | var num2=/(\d+)\]/.exec(varNum)[1].trim(); |
| 1784 | var num1Int=parseInt(num1); |
| 1785 | var num2Int=parseInt(num2); |
| 1786 | var numLen=num1.length; |
| 1787 | var needAdd=num1.charAt(0)=="0"; |
| 1788 | if(num1Int>=num2Int)return; |
| 1789 | for(var j=num1Int;j<=num2Int;j++){ |
| 1790 | var urlIndex=j.toString(); |
| 1791 | if(needAdd){ |
| 1792 | while(urlIndex.length<numLen)urlIndex="0"+urlIndex; |
| 1793 | } |
| 1794 | var curUrl=i.replace(/\[\d+\-\d+\]/,urlIndex).trim(); |
| 1795 | curEle=document.createElement("a"); |
| 1796 | curEle.href=curUrl; |
| 1797 | curEle.innerText="Added Url " + processEles.length.toString(); |
| 1798 | processEles.push(curEle); |
| 1799 | } |
| 1800 | }); |
| 1801 | }else{ |
| 1802 | let urlSel=urlsArr[0].split(">>"); |
| 1803 | try{ |
| 1804 | eles=document.querySelectorAll(urlSel[0]); |
| 1805 | eles=[].filter.call(eles, ele=>{ |
| 1806 | return ele.nodeName=='BODY'||(!!ele.offsetParent&&getComputedStyle(ele).display!=='none'); |
| 1807 | }) |
| 1808 | }catch(e){} |
| 1809 | if(eles.length==0){ |
| 1810 | eles=[]; |
| 1811 | var eleTxts=urlsArr[0].split(/(?<=[^\\])[,,]/),exmpEles=[],excludeTxts={}; |
| 1812 | [].forEach.call(document.querySelectorAll("a"),function(item){ |
| 1813 | if(!item.offsetParent)return; |
| 1814 | eleTxts.forEach(txt=>{ |
| 1815 | var txtArr=txt.split("!"); |
| 1816 | if(item.innerText.indexOf(txtArr[0])!=-1){ |
| 1817 | exmpEles.push(item); |
| 1818 | excludeTxts[item]=txtArr.splice(1); |
no test coverage detected