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 += '&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 += '&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&format=json&callback=prefixContribs&list=usercontribs' + options + '&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&format=json&callback=prefixContribs&list=usercontribs' + options + '&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' && <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' && <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 <script src=""> 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 &ucstart and &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 == 'Contributions' && wgEnableAPI) { <br />
addOnloadHook(prefixContribsInit);<br />
var crContURI = ''; //query URI for continuing later<br />
var crLimit = 500; //limit for each query<br />
var crMax = 10000; //bypass with &crshowall=true URI parameter<br />
var crImgHid = stylepath + '/common/images/Arr_r.png';<br />
var crImgSho = stylepath + '/common/images/Arr_d.png';<br />
appendCSS('.cr-list {padding-left:5px;}\n.cr-toggle-hidden {padding-left:16px;background: transparent no-repeat center left url("' + crImgHid + '")}' <br />
+ '\n.cr-toggle-shown {padding-left:16px;background: transparent no-repeat center left url("' + crImgSho + '")}\n.mw-mightexist {font-style:italic;}'<br />
+ '\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;}');<br />
}<br />
<br />
function prefixContribsInit() {<br />
var show = document.getElementById('contentSub') || document.getElementById('topbar');<br />
if(show) show.appendChild(document.createTextNode(' \u2022 Javascript-enhanced contributions lookup 0.2 enabled. You may enter a CIDR range or append an asterisk to do a prefix search.'));<br />
var ucfrm = document.getElementsByTagName('form')[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) > -1) ? '&ucnamespace=' + ucfrm.namespace[ucfrm.namespace.selectedIndex].value : '';<br />
var opt_ts = '';<br />
var m = '' + ucfrm.month.selectedIndex; <br />
var y = ucfrm.year.value;<br />
if(m.length == 1) m = '0' + m<br />
if(y > 2000 && y < 2100) opt_ts = '&ucstart=' + y + '-' + m + '-01T00:00:00Z'<br />
var opts_se = '';<br />
if(queryString('ucstart')) opts_se += '&ucstart=' + encodeURIComponent(queryString('ucstart'));<br />
if(queryString('ucend')) opts_se += '&ucend=' + encodeURIComponent(queryString('ucend'));<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 + '/api.php?action=query&format=json&callback=prefixContribs&list=usercontribs' + options + '&uclimit=' + 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 += '&ucuserprefix=' + cidr;<br />
} else {<br />
//complex CIDR, lets figure it out<br />
var oct3 = cidr.match(/\.\d{1,3}\//i)[0].replace(/(\.|\/)/g,'');<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 += '&ucuser=';<br />
for(var i=start;i<=start + num;i++) {<br />
url += '' + cidr + i;<br />
if(i != start + num) url += '|'<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(/\*$/,'');<br />
prefix = prefix.substr(0,1).toUpperCase() + prefix.substr(1);<br />
url += '&ucuserprefix=' + prefix;<br />
}<br />
importScriptURI(url);<br />
crContURI = url;<br />
}<br />
<br />
function prefixContribsStartbox(parent) {<br />
var res = document.createElement('div');<br />
res.setAttribute('id','results-from-CIDR');<br />
addlinkchild(res,'javascript:prefixContribsToggleDiv();','expand all','prefixcontribs-tog');<br />
var spin = document.createElement('span');<br />
spin.setAttribute('id','prefixcontribs-prog')<br />
spin.appendChild(document.createTextNode('Searching.'));<br />
res.appendChild(spin);<br />
injectSpinner(spin,'prefixcontribs-spin');<br />
parent.appendChild(res);<br />
}<br />
<br />
function prefixContribs(obj) {<br />
if(!obj['query'] || !obj['query']['usercontribs']) return<br />
cidr = obj['query']['usercontribs'];<br />
var res = document.getElementById('results-from-CIDR');<br />
if(cidr.length == 0) {<br />
res.appendChild(document.createTextNode(' No changes were found for this wildcard/CIDR range.'));<br />
removeSpinner('prefixcontribs-spin');<br />
return;<br />
}<br />
for(var i=0;i<cidr.length;i++) {<br />
var id = 'cr-' + escapeID(cidr[i].user);<br />
var etitle = encodeURIComponent(cidr[i].title.replace(/ /g,'_')).replace('%2F','/').replace('%3A',':');<br />
var euser = encodeURIComponent(cidr[i].user.replace(/ /g,'_')).replace('%2F','/').replace('%3A',':');<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('div');<br />
hdiv.setAttribute('id','d-' + id)<br />
addlinkchild(hdiv,'javascript:prefixContribsToggleDiv("' + id +'")',cidr[i].user,'m-' + id,'cr-toggle-hidden');<br />
res.appendChild(hdiv);<br />
res.appendChild(document.createTextNode('\n'));<br />
var rul = document.createElement('ul');<br />
rul.setAttribute('id',id);<br />
rul.setAttribute('class','cr-list');<br />
rul.style.display = 'none';<br />
res.appendChild(rul);<br />
res.appendChild(document.createTextNode('\n'));<br />
}<br />
var ul = document.getElementById(id);<br />
ul.appendChild(document.createTextNode('\n'));<br />
var li = document.createElement('li');<br />
li.appendChild(document.createTextNode(cidr[i].timestamp.replace(/T[\d:]*Z/,' ')));<br />
addlinkchild(li, wgScript + '?title=Special:Contributions/' + euser, cidr[i].user);<br />
li.appendChild(document.createTextNode(' ('));<br />
addlinkchild(li, wgScript + '?title=User_talk:' + euser, 'talk','','mw-mightexist');<br />
li.appendChild(document.createTextNode(') edited ('));<br />
addlinkchild(li, wgScript + '?title=' + etitle + '&curid=' + cidr[i].pageid + '&diff=prev&oldid=' + cidr[i].revid , 'diff');<br />
li.appendChild(document.createTextNode(') '));<br />
addlinkchild(li, wgScript + '?title=' + etitle + '&curid=' + cidr[i].pageid, cidr[i].title);<br />
if(cidr[i].comment) li.appendChild(document.createTextNode(' (' + cidr[i].comment + ')'))<br />
ul.appendChild(li);<br />
}<br />
<br />
//continue?<br />
crMax = crMax - cidr.length;<br />
var prog = document.getElementById('prefixcontribs-prog');<br />
if(!obj['query-continue'] || !obj['query-continue']['usercontribs'] || !obj['query-continue']['usercontribs']['uccontinue']) {<br />
removeSpinner('prefixcontribs-spin'); <br />
prog.parentNode.removeChild(prog);<br />
prefixContribsNumerate();<br />
return;<br />
}<br />
var url = crContURI + '&uccontinue='+ obj['query-continue']['usercontribs']['uccontinue'];<br />
if(crMax <= 0 && queryString('crshowall') != 'true') {<br />
prog.appendChild(document.createTextNode(' Whoa! Finding a lot. To see them all click '));<br />
var ga = document.createElement('a');<br />
var gaurl = document.location.href;<br />
if(gaurl.indexOf('#') != -1) gaurl = gaurl.substr(0,gaurl.indexOf('#'))<br />
if(gaurl.indexOf('?') == -1) gaurl += '?'<br />
gaurl += '&crshowall=true';<br />
ga.setAttribute('href',gaurl);<br />
ga.appendChild(document.createTextNode('here'));<br />
prog.appendChild(ga);<br />
prog.appendChild(document.createTextNode('. (Warning: May bog down browser!)'));<br />
removeSpinner('prefixcontribs-spin');<br />
prefixContribsNumerate();<br />
} else {<br />
prog.appendChild(document.createTextNode('.'));<br />
importScriptURI(url);<br />
}<br />
}<br />
<br />
function prefixContribsNumerate() {<br />
var lsts = getElementsByClassName(document,'ul','cr-list');<br />
for(var i=0;i<lsts.length;i++) {<br />
var dv = document.getElementById('d-' + lsts[i].getAttribute('id'));<br />
dv.appendChild(document.createTextNode(' ' + lsts[i].getElementsByTagName('li').length + ' found'));<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,'ul','cr-list');<br />
for(var i=0;i<lsts.length;i++) prefixContribsToggleDiv(lsts[i].id,true)<br />
return;<br />
}<br />
var i = document.getElementById(id);<br />
var m = document.getElementById('m-' + id);<br />
if(!i || !m) return<br />
if(i.style.display == 'none' || force) {<br />
i.style.display = 'block';<br />
m.className = 'cr-toggle-shown'<br />
} else {<br />
i.style.display = 'none';<br />
m.className = 'cr-toggle-hidden'<br />
}<br />
}<br />
<br />
function addlinkchild(obj,href,text,id,classes) {<br />
if(!obj || !href || !text) return false;<br />
var a = document.createElement('a');<br />
a.setAttribute('href',href);<br />
a.appendChild(document.createTextNode(text));<br />
if(id) a.setAttribute('id',id);<br />
if(classes) a.setAttribute('class',classes);<br />
obj.appendChild(a);<br />
return a;<br />
}<br />
<br />
function escapeID(txt) {<br />
var id = txt;<br />
id = id.replace(/ /g,'_');<br />
id = encodeURIComponent(id);<br />
id = id.replace(/\%3A/g,':');<br />
id = id.replace(/\%/g,'.');<br />
return id;<br />
}<br />
<br />
function queryString(p) {<br />
var re = RegExp('[&?#]' + p + '=([^&#]*)');<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