https://de.wikipedia.org/w/index.php?action=history&feed=atom&title=Benutzer%3ALKD%2Fcontribsrange.js Benutzer:LKD/contribsrange.js - Versionsgeschichte 2025-07-18T02:43:32Z Versionsgeschichte dieser Seite in Wikipedia MediaWiki 1.45.0-wmf.10 https://de.wikipedia.org/w/index.php?title=Benutzer:LKD/contribsrange.js&diff=220637076&oldid=prev Ladsgroup: Maintenance: Fixing deprecated call to importScriptURI (mw:ResourceLoader/Migration_guide_(users)#importScriptURI) 2022-02-27T16:04:14Z <p>Maintenance: Fixing deprecated call to importScriptURI (<a href="https://www.mediawiki.org/wiki/ResourceLoader/Migration_guide_(users)#importScriptURI" class="extiw" title="mw:ResourceLoader/Migration guide (users)">mw:ResourceLoader/Migration_guide_(users)#importScriptURI</a>)</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 27. Februar 2022, 18:04 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 83:</td> <td colspan="2" class="diff-lineno">Zeile 83:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> url += '&amp;ucuserprefix=' + prefix;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> url += '&amp;ucuserprefix=' + prefix;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> }</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> }</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> <del style="font-weight: bold; text-decoration: none;">importScriptURI</del>(url);</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> <ins style="font-weight: bold; text-decoration: none;">mw.loader.load</ins>(url);</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> crContURI = url;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> crContURI = url;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Zeile 166:</td> <td colspan="2" class="diff-lineno">Zeile 166:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> } else {</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> } else {</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> prog.appendChild(document.createTextNode('.'));</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> prog.appendChild(document.createTextNode('.'));</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> <del style="font-weight: bold; text-decoration: none;">importScriptURI</del>(url);</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> <ins style="font-weight: bold; text-decoration: none;">mw.loader.load</ins>(url);</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> }</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> }</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}</div></td> </tr> </table> Ladsgroup https://de.wikipedia.org/w/index.php?title=Benutzer:LKD/contribsrange.js&diff=209055883&oldid=prev Ladsgroup: Maintenance: Replacing legacy global variable (phab:T72470) 2021-02-21T08:39:25Z <p>Maintenance: Replacing legacy global variable (<a href="https://phabricator.wikimedia.org/T72470" class="extiw" title="phab:T72470">phab:T72470</a>)</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 21. Februar 2021, 10:39 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 51:</td> <td colspan="2" class="diff-lineno">Zeile 51:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> var patternCIDR = /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(2[7-9]|3[0-2]|24|16)/i ;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> var patternCIDR = /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(2[7-9]|3[0-2]|24|16)/i ;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> var patternWild = /^.{3,}\*$/i ;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> var patternWild = /^.{3,}\*$/i ;</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> var url = wgServer + wgScriptPath + '/api.php?action=query&amp;format=json&amp;callback=prefixContribs&amp;list=usercontribs' + options + '&amp;uclimit=' + parseInt(crLimit);</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> var url = <ins style="font-weight: bold; text-decoration: none;">mw.config.get('</ins>wgServer<ins style="font-weight: bold; text-decoration: none;">')</ins> + <ins style="font-weight: bold; text-decoration: none;">mw.config.get('</ins>wgScriptPath<ins style="font-weight: bold; text-decoration: none;">')</ins> + '/api.php?action=query&amp;format=json&amp;callback=prefixContribs&amp;list=usercontribs' + options + '&amp;uclimit=' + parseInt(crLimit);</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if(ucfrm.target.value.search(patternCIDR) == 0) {</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> if(ucfrm.target.value.search(patternCIDR) == 0) {</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> prefixContribsStartbox(ucfrm.parentNode);</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> prefixContribsStartbox(ucfrm.parentNode);</div></td> </tr> </table> Ladsgroup https://de.wikipedia.org/w/index.php?title=Benutzer:LKD/contribsrange.js&diff=198271788&oldid=prev Krinkle: Maintenance: mw:RL/MGU - wgEnableAPI is deprecated 2020-03-30T17:08:13Z <p>Maintenance: <a href="https://www.mediawiki.org/wiki/RL/MGU" class="extiw" title="mw:RL/MGU">mw:RL/MGU</a> - wgEnableAPI is deprecated</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 30. März 2020, 19:08 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 19:</td> <td colspan="2" class="diff-lineno">Zeile 19:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*/</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*/</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>if(wgCanonicalSpecialPageName == 'Contributions' &amp;&amp; <del style="font-weight: bold; text-decoration: none;">wgEnableAPI</del>) { </div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>if(wgCanonicalSpecialPageName == 'Contributions' &amp;&amp; <ins style="font-weight: bold; text-decoration: none;">true</ins>) { </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> addOnloadHook(prefixContribsInit);</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> addOnloadHook(prefixContribsInit);</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> var crContURI = ''; //query URI for continuing later</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> var crContURI = ''; //query URI for continuing later</div></td> </tr> </table> Krinkle https://de.wikipedia.org/w/index.php?title=Benutzer:LKD/contribsrange.js&diff=62312261&oldid=prev LKD: AZ: Die Seite wurde neu angelegt: /* Special:Contributions Wildcard/CIDR lookup, version [0.2.6a] Originally from: http://en.wikipedia.org/… 2009-07-17T16:45:14Z <p><a href="/wiki/Hilfe:Zusammenfassung_und_Quellen#Auto-Zusammenfassung" title="Hilfe:Zusammenfassung und Quellen">AZ</a>: Die Seite wurde neu angelegt: /* Special:Contributions Wildcard/CIDR lookup, version [0.2.6a] Originally from: http://en.wikipedia.org/…</p> <p><b>Neue Seite</b></p><div>/* Special:Contributions Wildcard/CIDR lookup, version [0.2.6a]<br /> Originally from: http://en.wikipedia.org/wiki/User:Splarka/contribsrange.js<br /> <br /> Notes:<br /> * Uses the API which is faster than most CIDR contrib tools.<br /> ** Needs 1.14 r42198+ for advanced continue.<br /> * Currently uses a GET json via &lt;script src=&quot;&quot;&gt; to avoid ajax problems.<br /> * Only currently works if submitted (or called by URL parameter, eg Special:Contributions/User).<br /> ** Checks namespace and date options in form.<br /> ** Also utilizes &amp;ucstart and &amp;ucend date parameters if supplied manually (not supported in the UI atm).<br /> * Uses: Submit any IP CIDR range /16 or from /24 to /32. Submit any string (at least 3 characters) with a suffixed asterisk.<br /> ** eg: [123.123.123.0/24 ] or [123.123.123.* ] or [Willy* ].<br /> * Now keeps searching until it finds crMax (or forever with crshowall=true URI parameter).<br /> ** Puts them in a nice collapsed div stack, like enhanced recent changes.<br /> * /25 and /26 ranges now disabled, since they are inaccurate (50 parameter limit), please use /24 (ucuserprefix) or /27 (32 parameters)<br /> <br /> To do:<br /> * use ajax (let sysops/bots = 5000)?<br /> */<br /> <br /> if(wgCanonicalSpecialPageName == &#039;Contributions&#039; &amp;&amp; wgEnableAPI) { <br /> addOnloadHook(prefixContribsInit);<br /> var crContURI = &#039;&#039;; //query URI for continuing later<br /> var crLimit = 500; //limit for each query<br /> var crMax = 10000; //bypass with &amp;crshowall=true URI parameter<br /> var crImgHid = stylepath + &#039;/common/images/Arr_r.png&#039;;<br /> var crImgSho = stylepath + &#039;/common/images/Arr_d.png&#039;;<br /> appendCSS(&#039;.cr-list {padding-left:5px;}\n.cr-toggle-hidden {padding-left:16px;background: transparent no-repeat center left url(&quot;&#039; + crImgHid + &#039;&quot;)}&#039; <br /> + &#039;\n.cr-toggle-shown {padding-left:16px;background: transparent no-repeat center left url(&quot;&#039; + crImgSho + &#039;&quot;)}\n.mw-mightexist {font-style:italic;}&#039;<br /> + &#039;\n#results-from-CIDR {border:1px solid black;padding:.5em}\n#prefixcontribs-tog {float:right;border:1px solid black;text-decoration:none;color:black;padding:0 5px;}&#039;);<br /> }<br /> <br /> function prefixContribsInit() {<br /> var show = document.getElementById(&#039;contentSub&#039;) || document.getElementById(&#039;topbar&#039;);<br /> if(show) show.appendChild(document.createTextNode(&#039; \u2022 Javascript-enhanced contributions lookup 0.2 enabled. You may enter a CIDR range or append an asterisk to do a prefix search.&#039;));<br /> var ucfrm = document.getElementsByTagName(&#039;form&#039;)[0];<br /> if(!ucfrm.target) return;<br /> <br /> //general optionlets independent of type of search.<br /> var opt_ns = (parseInt(ucfrm.namespace[ucfrm.namespace.selectedIndex].value) &gt; -1) ? &#039;&amp;ucnamespace=&#039; + ucfrm.namespace[ucfrm.namespace.selectedIndex].value : &#039;&#039;;<br /> var opt_ts = &#039;&#039;;<br /> var m = &#039;&#039; + ucfrm.month.selectedIndex; <br /> var y = ucfrm.year.value;<br /> if(m.length == 1) m = &#039;0&#039; + m<br /> if(y &gt; 2000 &amp;&amp; y &lt; 2100) opt_ts = &#039;&amp;ucstart=&#039; + y + &#039;-&#039; + m + &#039;-01T00:00:00Z&#039;<br /> var opts_se = &#039;&#039;;<br /> if(queryString(&#039;ucstart&#039;)) opts_se += &#039;&amp;ucstart=&#039; + encodeURIComponent(queryString(&#039;ucstart&#039;));<br /> if(queryString(&#039;ucend&#039;)) opts_se += &#039;&amp;ucend=&#039; + encodeURIComponent(queryString(&#039;ucend&#039;));<br /> var options = opt_ns + opt_ts + opts_se;<br /> <br /> var patternCIDR = /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(2[7-9]|3[0-2]|24|16)/i ;<br /> var patternWild = /^.{3,}\*$/i ;<br /> var url = wgServer + wgScriptPath + &#039;/api.php?action=query&amp;format=json&amp;callback=prefixContribs&amp;list=usercontribs&#039; + options + &#039;&amp;uclimit=&#039; + parseInt(crLimit);<br /> if(ucfrm.target.value.search(patternCIDR) == 0) {<br /> prefixContribsStartbox(ucfrm.parentNode);<br /> var cidr = ucfrm.target.value.match(patternCIDR)[0];<br /> var range = cidr.match(/[^\/]\d{1,2}$/i)[0];<br /> if(range == 24 || range == 16) {<br /> //prefixable CIDR, lets do-er<br /> if(range == 24) {<br /> cidr = cidr.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\./)[0];<br /> } else {<br /> cidr = cidr.match(/\d{1,3}\.\d{1,3}\./)[0];<br /> }<br /> url += &#039;&amp;ucuserprefix=&#039; + cidr;<br /> } else {<br /> //complex CIDR, lets figure it out<br /> var oct3 = cidr.match(/\.\d{1,3}\//i)[0].replace(/(\.|\/)/g,&#039;&#039;);<br /> cidr = cidr.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\./)[0];<br /> var num = Math.pow(2,32 - range);<br /> var start = oct3 - oct3 % num;<br /> url += &#039;&amp;ucuser=&#039;;<br /> for(var i=start;i&lt;=start + num;i++) {<br /> url += &#039;&#039; + cidr + i;<br /> if(i != start + num) url += &#039;|&#039;<br /> }<br /> }<br /> } else if(ucfrm.target.value.search(patternWild) == 0) {<br /> //very simple wildcard, lets do-er<br /> prefixContribsStartbox(ucfrm.parentNode);<br /> var prefix = ucfrm.target.value.replace(/\*$/,&#039;&#039;);<br /> prefix = prefix.substr(0,1).toUpperCase() + prefix.substr(1);<br /> url += &#039;&amp;ucuserprefix=&#039; + prefix;<br /> }<br /> importScriptURI(url);<br /> crContURI = url;<br /> }<br /> <br /> function prefixContribsStartbox(parent) {<br /> var res = document.createElement(&#039;div&#039;);<br /> res.setAttribute(&#039;id&#039;,&#039;results-from-CIDR&#039;);<br /> addlinkchild(res,&#039;javascript:prefixContribsToggleDiv();&#039;,&#039;expand all&#039;,&#039;prefixcontribs-tog&#039;);<br /> var spin = document.createElement(&#039;span&#039;);<br /> spin.setAttribute(&#039;id&#039;,&#039;prefixcontribs-prog&#039;)<br /> spin.appendChild(document.createTextNode(&#039;Searching.&#039;));<br /> res.appendChild(spin);<br /> injectSpinner(spin,&#039;prefixcontribs-spin&#039;);<br /> parent.appendChild(res);<br /> }<br /> <br /> function prefixContribs(obj) {<br /> if(!obj[&#039;query&#039;] || !obj[&#039;query&#039;][&#039;usercontribs&#039;]) return<br /> cidr = obj[&#039;query&#039;][&#039;usercontribs&#039;];<br /> var res = document.getElementById(&#039;results-from-CIDR&#039;);<br /> if(cidr.length == 0) {<br /> res.appendChild(document.createTextNode(&#039; No changes were found for this wildcard/CIDR range.&#039;));<br /> removeSpinner(&#039;prefixcontribs-spin&#039;);<br /> return;<br /> }<br /> for(var i=0;i&lt;cidr.length;i++) {<br /> var id = &#039;cr-&#039; + escapeID(cidr[i].user);<br /> var etitle = encodeURIComponent(cidr[i].title.replace(/ /g,&#039;_&#039;)).replace(&#039;%2F&#039;,&#039;/&#039;).replace(&#039;%3A&#039;,&#039;:&#039;);<br /> var euser = encodeURIComponent(cidr[i].user.replace(/ /g,&#039;_&#039;)).replace(&#039;%2F&#039;,&#039;/&#039;).replace(&#039;%3A&#039;,&#039;:&#039;);<br /> // group each result set based on the user name, create new div for new names<br /> if(!document.getElementById(id)) {<br /> var hdiv = document.createElement(&#039;div&#039;);<br /> hdiv.setAttribute(&#039;id&#039;,&#039;d-&#039; + id)<br /> addlinkchild(hdiv,&#039;javascript:prefixContribsToggleDiv(&quot;&#039; + id +&#039;&quot;)&#039;,cidr[i].user,&#039;m-&#039; + id,&#039;cr-toggle-hidden&#039;);<br /> res.appendChild(hdiv);<br /> res.appendChild(document.createTextNode(&#039;\n&#039;));<br /> var rul = document.createElement(&#039;ul&#039;);<br /> rul.setAttribute(&#039;id&#039;,id);<br /> rul.setAttribute(&#039;class&#039;,&#039;cr-list&#039;);<br /> rul.style.display = &#039;none&#039;;<br /> res.appendChild(rul);<br /> res.appendChild(document.createTextNode(&#039;\n&#039;));<br /> }<br /> var ul = document.getElementById(id);<br /> ul.appendChild(document.createTextNode(&#039;\n&#039;));<br /> var li = document.createElement(&#039;li&#039;);<br /> li.appendChild(document.createTextNode(cidr[i].timestamp.replace(/T[\d:]*Z/,&#039; &#039;)));<br /> addlinkchild(li, wgScript + &#039;?title=Special:Contributions/&#039; + euser, cidr[i].user);<br /> li.appendChild(document.createTextNode(&#039; (&#039;));<br /> addlinkchild(li, wgScript + &#039;?title=User_talk:&#039; + euser, &#039;talk&#039;,&#039;&#039;,&#039;mw-mightexist&#039;);<br /> li.appendChild(document.createTextNode(&#039;) edited (&#039;));<br /> addlinkchild(li, wgScript + &#039;?title=&#039; + etitle + &#039;&amp;curid=&#039; + cidr[i].pageid + &#039;&amp;diff=prev&amp;oldid=&#039; + cidr[i].revid , &#039;diff&#039;);<br /> li.appendChild(document.createTextNode(&#039;) &#039;));<br /> addlinkchild(li, wgScript + &#039;?title=&#039; + etitle + &#039;&amp;curid=&#039; + cidr[i].pageid, cidr[i].title);<br /> if(cidr[i].comment) li.appendChild(document.createTextNode(&#039; (&#039; + cidr[i].comment + &#039;)&#039;))<br /> ul.appendChild(li);<br /> }<br /> <br /> //continue?<br /> crMax = crMax - cidr.length;<br /> var prog = document.getElementById(&#039;prefixcontribs-prog&#039;);<br /> if(!obj[&#039;query-continue&#039;] || !obj[&#039;query-continue&#039;][&#039;usercontribs&#039;] || !obj[&#039;query-continue&#039;][&#039;usercontribs&#039;][&#039;uccontinue&#039;]) {<br /> removeSpinner(&#039;prefixcontribs-spin&#039;); <br /> prog.parentNode.removeChild(prog);<br /> prefixContribsNumerate();<br /> return;<br /> }<br /> var url = crContURI + &#039;&amp;uccontinue=&#039;+ obj[&#039;query-continue&#039;][&#039;usercontribs&#039;][&#039;uccontinue&#039;];<br /> if(crMax &lt;= 0 &amp;&amp; queryString(&#039;crshowall&#039;) != &#039;true&#039;) {<br /> prog.appendChild(document.createTextNode(&#039; Whoa! Finding a lot. To see them all click &#039;));<br /> var ga = document.createElement(&#039;a&#039;);<br /> var gaurl = document.location.href;<br /> if(gaurl.indexOf(&#039;#&#039;) != -1) gaurl = gaurl.substr(0,gaurl.indexOf(&#039;#&#039;))<br /> if(gaurl.indexOf(&#039;?&#039;) == -1) gaurl += &#039;?&#039;<br /> gaurl += &#039;&amp;crshowall=true&#039;;<br /> ga.setAttribute(&#039;href&#039;,gaurl);<br /> ga.appendChild(document.createTextNode(&#039;here&#039;));<br /> prog.appendChild(ga);<br /> prog.appendChild(document.createTextNode(&#039;. (Warning: May bog down browser!)&#039;));<br /> removeSpinner(&#039;prefixcontribs-spin&#039;);<br /> prefixContribsNumerate();<br /> } else {<br /> prog.appendChild(document.createTextNode(&#039;.&#039;));<br /> importScriptURI(url);<br /> }<br /> }<br /> <br /> function prefixContribsNumerate() {<br /> var lsts = getElementsByClassName(document,&#039;ul&#039;,&#039;cr-list&#039;);<br /> for(var i=0;i&lt;lsts.length;i++) {<br /> var dv = document.getElementById(&#039;d-&#039; + lsts[i].getAttribute(&#039;id&#039;));<br /> dv.appendChild(document.createTextNode(&#039; &#039; + lsts[i].getElementsByTagName(&#039;li&#039;).length + &#039; found&#039;));<br /> }<br /> if(lsts.length == 1) prefixContribsToggleDiv(lsts[0].id)<br /> }<br /> <br /> function prefixContribsToggleDiv(id,force) {<br /> if(!id) {<br /> var lsts = getElementsByClassName(document,&#039;ul&#039;,&#039;cr-list&#039;);<br /> for(var i=0;i&lt;lsts.length;i++) prefixContribsToggleDiv(lsts[i].id,true)<br /> return;<br /> }<br /> var i = document.getElementById(id);<br /> var m = document.getElementById(&#039;m-&#039; + id);<br /> if(!i || !m) return<br /> if(i.style.display == &#039;none&#039; || force) {<br /> i.style.display = &#039;block&#039;;<br /> m.className = &#039;cr-toggle-shown&#039;<br /> } else {<br /> i.style.display = &#039;none&#039;;<br /> m.className = &#039;cr-toggle-hidden&#039;<br /> }<br /> }<br /> <br /> function addlinkchild(obj,href,text,id,classes) {<br /> if(!obj || !href || !text) return false;<br /> var a = document.createElement(&#039;a&#039;);<br /> a.setAttribute(&#039;href&#039;,href);<br /> a.appendChild(document.createTextNode(text));<br /> if(id) a.setAttribute(&#039;id&#039;,id);<br /> if(classes) a.setAttribute(&#039;class&#039;,classes);<br /> obj.appendChild(a);<br /> return a;<br /> }<br /> <br /> function escapeID(txt) {<br /> var id = txt;<br /> id = id.replace(/ /g,&#039;_&#039;);<br /> id = encodeURIComponent(id);<br /> id = id.replace(/\%3A/g,&#039;:&#039;);<br /> id = id.replace(/\%/g,&#039;.&#039;);<br /> return id;<br /> }<br /> <br /> function queryString(p) {<br /> var re = RegExp(&#039;[&amp;?#]&#039; + p + &#039;=([^&amp;#]*)&#039;);<br /> var matches;<br /> if (matches = re.exec(document.location)) {<br /> try { <br /> return decodeURI(matches[1]);<br /> } catch (e) {<br /> }<br /> }<br /> return null;<br /> }</div> LKD