This is an old revision of this page, as edited by SD0001(talk | contribs) at 23:56, 2 November 2019(use API:Search rather than scrape search results page). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.Revision as of 23:56, 2 November 2019 by SD0001(talk | contribs)(use API:Search rather than scrape search results page)
This page is loaded as a part of the find-archived-section gadget, used by 5,654 users.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
$.when(mw.loader.using(['mediawiki.util','mediawiki.api']),$.ready).then(function(){varaddsection=document.getElementById('ca-addsection');varcorrectNs=mw.config.get('wgNamespaceNumber')%2===1||mw.config.get('wgNamespaceNumber')===4;varminerva=mw.config.get('skin')==='minerva';// Show only on discussion pages (pages with "add section" button)// On minerva skin (which doesn't use add section button) show on all talk & project space pagesif(!addsection&&(!correctNs||!minerva)){return;}varsectionName=decodeURIComponent(window.___location.hash.slice(1)).replace(/_/g,' ');if(!sectionName||// no section name in URLsectionName.indexOf('/media/')===0||// URLs used by MediaViewerdocument.getElementById(sectionName.replace(/ /g,'_'))!==null){// section exists on pagereturn;}$('#mw-content-text').before($('<div>').text('Looks like the discussion "'+sectionName+'" has been archived. Finding archived discussion...').addClass('archived-section-prompt').css({'font-size':'90%','padding':'0 0 10px 20px'}));varprefix=mw.config.get('wgPageName').replace(/_/g,' ');// For admin noticeboards, archive pages titles are unusualif(prefix==="Wikipedia:Administrators' noticeboard/Incidents"){prefix="Wikipedia:Administrators' noticeboard/IncidentArchive";}elseif(prefix==="Wikipedia:Administrators' noticeboard/Edit warring"){prefix="Wikipedia:Administrators' noticeboard/3RRArchive";}elseif(prefix==="Wikipedia:Administrators' noticeboard"){prefix="Wikipedia:Administrators' noticeboard/Archive";}newmw.Api({ajax:{headers:{'Api-User-Agent':'[[w:en:User:SD0001/find-archived-section.js]]'}}}).get({action:'query',list:'search',srsearch:'"'+sectionName+'" prefix:"'+prefix+'"',srprop:'sectiontitle',srsort:'create_timestamp_desc',// list more recent archives firstsrlimit:'20'}).then(function(json){if(!json||!json.query||!json.query.search){return;}vardivHtml;varresults=json.query.search;if(results.length===0){divHtml='No search results found for archived discussion "'+mw.html.escape(sectionName)+'"';}else{divHtml='Looks like the discussion "'+mw.html.escape(sectionName)+'" has been archived. ';varpageTitle;// obtain the the first exact section title match (which would be from the most recent archive)// this loop iterates over just one item in the vast majority of casesfor(variinresults){varresult=results[i];// sectiontitle in API output has spaces encoded as underscoresif(result.sectiontitle&&result.sectiontitle===sectionName.replace(/ /g,'_')){pageTitle=result.title;break;}}varsearchLink=mw.util.getUrl('Special:Search',{search:'~"'+sectionName+'"',// ~ in the beginning forces a search even if a page of the same name existsprefix:prefix,sort:'create_timestamp_desc'});if(pageTitle){vardiscussionLink=mw.util.getUrl(pageTitle)+'#'+mw.util.wikiUrlencode(sectionName);divHtml+='<b><a href="'+discussionLink+'">Click to see archived discussion</a></b> ';divHtml+='<small><a href="'+searchLink+'">(or search in archives)</a></small>. ';}else{divHtml+='<a href="'+searchLink+'">Click to search in archives</a>. ';}}$('.archived-section-prompt').html(divHtml);}).fail(function(err){console.error('[find-archived-section]: ',JSON.stringify(err));});});