<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://zybkcn.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-whoisactive.js</id>
	<title>MediaWiki:Gadget-whoisactive.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://zybkcn.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-whoisactive.js"/>
	<link rel="alternate" type="text/html" href="https://zybkcn.com/w/index.php?title=MediaWiki:Gadget-whoisactive.js&amp;action=history"/>
	<updated>2026-05-04T11:15:06Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://zybkcn.com/w/index.php?title=MediaWiki:Gadget-whoisactive.js&amp;diff=26277&amp;oldid=prev</id>
		<title>2022年12月5日 (一) 07:54 入我相思门</title>
		<link rel="alternate" type="text/html" href="https://zybkcn.com/w/index.php?title=MediaWiki:Gadget-whoisactive.js&amp;diff=26277&amp;oldid=prev"/>
		<updated>2022-12-05T07:54:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2022年12月5日 (一) 15:54的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l34&quot;&gt;第34行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第34行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;			overayear: &amp;#039;Edited over a year ago&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;			overayear: &amp;#039;Edited over a year ago&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;		},&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;		},&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;		&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;de&lt;/del&gt;: {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;		&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zh&lt;/ins&gt;: {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;			recent: &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kürzlich bearbeitet&lt;/del&gt;&#039;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;			recent: &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;最近编辑&lt;/ins&gt;&#039;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;			thisyear: &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in diesem Jahr bearbeitet&lt;/del&gt;&#039;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;			thisyear: &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;今年编辑&lt;/ins&gt;&#039;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;			overayear: &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vor über einem Jahr bearbeitet&lt;/del&gt;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;			overayear: &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;一年多前编辑&lt;/ins&gt;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;		}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;		}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;	};&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;	};&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key zybkcn_com:diff:1.41:old-26275:rev-26277:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>入我相思门</name></author>
	</entry>
	<entry>
		<id>https://zybkcn.com/w/index.php?title=MediaWiki:Gadget-whoisactive.js&amp;diff=26275&amp;oldid=prev</id>
		<title>入我相思门：​创建页面，内容为“$( function () { 	const filteredLinks = []; 	const localizedUserNamespace = mw.config.get( &#039;wgFormattedNamespaces&#039; )[2]; 	$( &#039;.mw-body-content&#039; ). 		find( &#039;a[title^=&quot;User:&quot;], a[title^=&quot;&#039; + localizedUserNamespace + &#039;:&quot;]&#039; ). 		each( function() { 			const link = $( this ); 			const href = decodeURI( link.attr( &#039;href&#039; ) ); 			const userRegex = new RegExp( 				&#039;((User)|(&#039; + localizedUserNamespace + &#039;)):(.*?)(?=&amp;|$)&#039; 			); 			const username = href.match(userRegex);…”</title>
		<link rel="alternate" type="text/html" href="https://zybkcn.com/w/index.php?title=MediaWiki:Gadget-whoisactive.js&amp;diff=26275&amp;oldid=prev"/>
		<updated>2022-12-05T07:44:21Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“$( function () { 	const filteredLinks = []; 	const localizedUserNamespace = mw.config.get( &amp;#039;wgFormattedNamespaces&amp;#039; )[2]; 	$( &amp;#039;.mw-body-content&amp;#039; ). 		find( &amp;#039;a[title^=&amp;quot;User:&amp;quot;], a[title^=&amp;quot;&amp;#039; + localizedUserNamespace + &amp;#039;:&amp;quot;]&amp;#039; ). 		each( function() { 			const link = $( this ); 			const href = decodeURI( link.attr( &amp;#039;href&amp;#039; ) ); 			const userRegex = new RegExp( 				&amp;#039;((User)|(&amp;#039; + localizedUserNamespace + &amp;#039;)):(.*?)(?=&amp;amp;|$)&amp;#039; 			); 			const username = href.match(userRegex);…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;$( function () {&lt;br /&gt;
	const filteredLinks = [];&lt;br /&gt;
	const localizedUserNamespace = mw.config.get( &amp;#039;wgFormattedNamespaces&amp;#039; )[2];&lt;br /&gt;
	$( &amp;#039;.mw-body-content&amp;#039; ).&lt;br /&gt;
		find( &amp;#039;a[title^=&amp;quot;User:&amp;quot;], a[title^=&amp;quot;&amp;#039; + localizedUserNamespace + &amp;#039;:&amp;quot;]&amp;#039; ).&lt;br /&gt;
		each( function() {&lt;br /&gt;
			const link = $( this );&lt;br /&gt;
			const href = decodeURI( link.attr( &amp;#039;href&amp;#039; ) );&lt;br /&gt;
			const userRegex = new RegExp(&lt;br /&gt;
				&amp;#039;((User)|(&amp;#039; + localizedUserNamespace + &amp;#039;)):(.*?)(?=&amp;amp;|$)&amp;#039;&lt;br /&gt;
			);&lt;br /&gt;
			const username = href.match(userRegex);&lt;br /&gt;
			const index = username[0].indexOf( &amp;#039;/&amp;#039; );&lt;br /&gt;
			if ( username[0].indexOf( &amp;#039;/&amp;#039; ) === -1 ) {&lt;br /&gt;
				filteredLinks.push( {&lt;br /&gt;
					username: username[0],&lt;br /&gt;
					element: link&lt;br /&gt;
				} );&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
	if ( !filteredLinks.length ) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	const RECENT = &amp;#039;recent&amp;#039;;&lt;br /&gt;
	const THISYEAR = &amp;#039;thisyear&amp;#039;;&lt;br /&gt;
	const OVERAYEAR = &amp;#039;overayear&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
	const messages = {&lt;br /&gt;
		en: {&lt;br /&gt;
			recent: &amp;#039;Edited recently&amp;#039;,&lt;br /&gt;
			thisyear: &amp;#039;Edited this year&amp;#039;,&lt;br /&gt;
			overayear: &amp;#039;Edited over a year ago&amp;#039;&lt;br /&gt;
		},&lt;br /&gt;
		de: {&lt;br /&gt;
			recent: &amp;#039;kürzlich bearbeitet&amp;#039;,&lt;br /&gt;
			thisyear: &amp;#039;in diesem Jahr bearbeitet&amp;#039;,&lt;br /&gt;
			overayear: &amp;#039;vor über einem Jahr bearbeitet&amp;#039;&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	const localizedMessages = function () {&lt;br /&gt;
		const lang = mw.config.get( &amp;#039;wgUserLanguage&amp;#039; );&lt;br /&gt;
		if ( lang in messages ) {&lt;br /&gt;
			return messages[lang];&lt;br /&gt;
		}&lt;br /&gt;
		return messages.en;&lt;br /&gt;
	}();&lt;br /&gt;
&lt;br /&gt;
	const getLastActiveMarker = function ( timestamp ) {&lt;br /&gt;
		const date = Date.parse( timestamp );&lt;br /&gt;
		const now = Date.now();&lt;br /&gt;
		const diff = Math.floor( ( now - date ) / ( 1000 * 60 * 60 * 24 ) );&lt;br /&gt;
		var timespan = RECENT;&lt;br /&gt;
		if ( diff &amp;gt; 365 ) {&lt;br /&gt;
			timespan = OVERAYEAR;&lt;br /&gt;
		} else if ( diff &amp;gt; 30 ) {&lt;br /&gt;
			timespan = THISYEAR;&lt;br /&gt;
		}&lt;br /&gt;
		const iconPath = mw.config.get( &amp;#039;wgServer&amp;#039; ) + mw.config.get( &amp;#039;wgScriptPath&amp;#039; ) +&lt;br /&gt;
			&amp;#039;/resources/lib/ooui/themes/wikimediaui/images/icons/userContributions-ltr.svg&amp;#039;;&lt;br /&gt;
		const marker =&lt;br /&gt;
			&amp;quot;&amp;lt;span class=&amp;#039;mw-whoisactivegadget-span mw-whoisactivegadget-&amp;quot; + timespan + &amp;quot;&amp;#039;&amp;gt;&amp;quot; +&lt;br /&gt;
			&amp;quot;&amp;lt;img src=&amp;#039;&amp;quot; + iconPath + &amp;quot;&amp;#039; class=&amp;#039;mw-whoisactivegadget-filter-&amp;quot; + timespan + &amp;quot;&amp;#039;/&amp;gt; &amp;quot; +&lt;br /&gt;
			localizedMessages[timespan] + &amp;quot;&amp;lt;span&amp;gt;&amp;quot;;&lt;br /&gt;
		return $( marker );&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( [ &amp;#039;mediawiki.api&amp;#039; ], function () {&lt;br /&gt;
		filteredLinks.forEach( function( item ) {&lt;br /&gt;
			const username = item.username;&lt;br /&gt;
			const element = item.element;&lt;br /&gt;
			const api = new mw.Api();&lt;br /&gt;
			api.get( {&lt;br /&gt;
				format: &amp;#039;json&amp;#039;,&lt;br /&gt;
				action: &amp;#039;query&amp;#039;,&lt;br /&gt;
				list: &amp;#039;usercontribs&amp;#039;,&lt;br /&gt;
				uclimit: &amp;#039;1&amp;#039;,&lt;br /&gt;
				ucuser: username&lt;br /&gt;
			} ).then( function ( result ) {&lt;br /&gt;
				if ( result.query.usercontribs.length ) {&lt;br /&gt;
					const timestamp = result.query.usercontribs[0].timestamp;&lt;br /&gt;
					getLastActiveMarker( timestamp ).insertAfter( element );&lt;br /&gt;
				}&lt;br /&gt;
			} );&lt;br /&gt;
		} );&lt;br /&gt;
	} );&lt;br /&gt;
} );&lt;/div&gt;</summary>
		<author><name>入我相思门</name></author>
	</entry>
</feed>