User:PerfektesChaos/js/externalLinkProblem/gui/r.js
Appearance
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
Documentation for this user script can be added at User:PerfektesChaos/js/externalLinkProblem/gui/r. |
/// User:PerfektesChaos/js/externalLinkProblem/gui/r.js
/// 2019-01-23 PerfektesChaos@de.wikipedia
/// Fingerprint:#0#1E8AFF85#
/// @license GPL [//www.mediawiki.org/w/COPYING](+GFDL,LGPL,CC-BY-SA)
///<nowiki>
(function(mw,$){
"use strict";
var Version=2.9,ELP="externalLinkProblem",Sub="gui",Supersed="defekterWeblinkBotVorlage",Box={},Content={},Pop={$body:false},OO;
if(typeof mw.libs[ELP]!=="object"||!mw.libs[ELP]){
mw.libs[ELP]={};}
mw.libs[ELP].type=ELP;
ELP=mw.libs[ELP];
if(typeof ELP[Sub]!=="object"){
ELP[Sub]={};}
ELP[Sub].vsn=Version;
if(typeof ELP.config!=="object"){
ELP.config={};}
if(typeof ELP.config.css!=="object"){
ELP.config.css={};
ELP.config.css.box={"border":"#808080 2px solid",
"clear":"both",
"margin-top":"1em",
"margin-bottom":"1em",
"padding":"0.8em",
"padding-right":"0"};
ELP.config.css.href={"background-color":"#FFD0D0",
"border":"#FF0080 2px solid",
"padding-bottom":"2px",
"padding-left":"4px",
"padding-right":"16px",
"padding-top":"2px"};
ELP.config.css.ref={"color":"#FF00FF"};
ELP.config.css.factory=function(){
var o,s,u,v;
if(typeof ELP.css==="object"&&typeof ELP.css){
for(s in ELP.config.css){
if(typeof ELP.config.css[s]==="object"&&typeof ELP.css[s]==="object"&&typeof ELP.css[s]){
o=ELP.config.css[s];
u=ELP.css[s];
for(s in u){
v=u[s];
switch(typeof v){
case "string":
o[s]=v;
break;
case "boolean":
if(!v&&typeof o[s]==="string"){
delete o[s];}
break;}}}}}
};}
if(typeof ELP.lang!=="object"){
ELP.lang={slang:"en"};}
if(typeof ELP[Sub].texts!=="object"){
ELP[Sub].texts={
"blocked":{"en":"Blocked.",
"de":"Blockiert."},
"blocking":{"en":"(malware, spam [blacklist], mailto:)",
"de":"(Malware, Spam [blacklist], mailto:)"},
"bracket":{"en":"Opening bracket '[' in URL, might be unescaped ']'",
"de":"Öffnende Klammer '[' in der URL, womöglich ']' nicht kodiert"},
"curl":{"en":"CURL: network problem",
"de":"CURL: Netzwerkproblem"},
"current":{"en":"current",
"de":"aktuell"},
"discard":{"en":"Perhaps already resolved",
"de":"Möglicherweise bereits nicht mehr wirksam"},
"editSrc":{"en":"edit section source",
"de":"Abschnittsquelltext bearbeiten"},
"empty":{"en":"(empty)",
"de":"(leer)"},
"help":{"en":"details",
"de":"Details"},
"hint":{"en":"Show external links",
"de":"Zeige Links"},
"hintTalk":{"en":"Show external links with assumed problem on talk page (will open in new window)",
"de":"Zeige Links mit vermutetem Problem auf der Diskussionsseite (wird in neuem Fenster geöffnet)"},
"mode":{"en":"HTTP status",
"de":"HTTP-Status"},
"mode3":{"en":"Page has been moved",
"de":"Seite wurde verschoben"},
"mode5":{"en":"Entire domain or server unavailable",
"de":"Ganze Domain / Server unerreichbar"},
"more":{"en":"More pages",
"de":"Weitere Seiten"},
"notdone":{"en":"Error: marked as done",
"de":"Fehler: als erledigt markiert"},
"other":{"en":"Other page with same URL:",
"de":"Andere Seite mit gleicher URL:"},
"others":{"en":"Other pages with same URL (research might be used here):",
"de":"Andere Seiten mit gleicher URL (Erfolg könnte wiederverwendet werden):"},
"pipe":{"en":"Pipe '|' within URL, might be wikilink syntax",
"de":"Pipe '|' in der URL, womöglich Wikilink-Syntax"},
"earlier":{"en":"Section from earlier bot run detected",
"de":"Abschnitt aus früherem Botlauf gefunden"},
"since":{"en":"Already unavailable:",
"de":"Bereits unerreichbar:"},
"special":{"en":"Special character at URL end, might have caused problem",
"de":"Sonderzeichen am Ende der URL, womöglich Ursache"},
"sub":{"en":"Truncated URL appropriate?",
"de":"Gekürzte URL inhaltlich richtig?"},
"success":{"en":"success",
"de":"erfolgreich"},
"syntax":{"en":"Syntax error",
"de":"Syntaxfehler"},
"try":{"en":"try",
"de":"Ausprobieren"},
"wayback":{"en":"A version in wayback.archive.org might be appropriate:",
"de":"Vielleicht ist eine Version auf wayback.archive.org geeignet:"},
"wayback*":{"en":"all",
"de":"alle"},
"wayback!":{"en":"most recent",
"de":"jüngste"},
"webcite":{"en":"A version in webcitation.org might be appropriate:",
"de":"Vielleicht ist eine Version auf webcitation.org geeignet:"},
"wikilink":{"en":"Internal link should be rewritten as [[...]]",
"de":"Wikilink sollte als [[...]] geschrieben werden"}
};}
function facilitated(){
var rls,signature,sub;
if(typeof ELP.signature==="string"){
sub="/"+Sub;
signature=ELP.signature+sub;
if(mw.loader.getState(signature)!=="ready"){
rls={};
rls[signature]="ready";
mw.loader.state(rls);
mw.hook(ELP.type+sub+".ready").fire();}}}
function fair(access){
var r=access.replace(/#.*$/,""),k=r.indexOf("\\" );
if(k>=0){
if(k>6){
r=r.replace(/\\/g,"%5C");
}else{
k=r.indexOf("\\\\", k );
if(k>=0&&k<=6){
r=r.substr(0,k)+"//"+r.substr(k+2);}}}
r=r.replace(/{/g,"%7B")
.replace(/}/g,"%7D")
.replace(/%28/g,"(")
.replace(/%29/g,")");
k=r.indexOf("//");
if(k>=0&&k<=6){
if(k){
r=r.substr(0,k).toLowerCase()+r.substr(k);
}else{
r="https:"+r;}
if(r.indexOf("/",11)<0){
r=r+"/";}}
return r;}
function far(access){
var r=access,i=r.indexOf("//"),k,start,strip;
if(i>=0&&i<=6){
i=r.indexOf("/",i+6);
if(i>0){
start=r.substr(0,i);
strip=r.substr(i+1);
try{
start=decodeURI(start);
}catch(e){
}
if(strip){
for(i=strip.length-1;i>=0;i--){
k=strip.charCodeAt(i);
if(k>127){
strip=strip.substr(0,i)+String.fromCharCode(k)+strip.substr(i+1);}}}
r=start+"/"+strip;}}
return r;}
function furnish(){
$(".cn-fundraiser-banner, #fundraising").remove();
OO=window.OO;
Box.factory();
ELP.gui.$content.prepend(ELP.gui.$wrapper);
ELP.gui.fresh();}
Box.factory=function(){
var s,$bl,$el;
ELP.config.css.factory();
ELP.gui.$wrapper=$("<div>");
ELP.gui.$wrapper.addClass("noprint").attr("id",ELP.type)
.css(ELP.config.css.box);
ELP.gui.$buttons=$("<div>");
ELP.gui.$buttons.css({"float":"right",
"vertical-align":"top"});
if(typeof ELP.prego==="object"){
if(typeof ELP.prego.supply==="string"){
ELP.prego.lib=mw.libs[ELP.prego.supply];}
if(typeof ELP.prego.lib==="object"&&typeof ELP.prego.lib.$button==="function"){
$el=ELP.prego.lib.$button(ELP.type);
$el.css({"float":"right",
"vertical-align":"top"});
ELP.gui.$buttons.append($el);}}
ELP.gui.$wrapper.append(ELP.gui.$buttons);
if(typeof ELP[Supersed]==="boolean"&&false){
s="Du verwendest noch das Skript '"+Supersed+"'.<br /> Der Nachfolger ist <a href='"+mw.util.getUrl(ELP.support+"#"+Supersed)+"' target='_blank'>"+ELP.type+"</a>.<br />Bitte ändere den Eintrag ";
if(typeof ELP.fliegelflagel==="boolean"&&ELP.fliegelflagel){
s=s+"auf <a href='"+mw.util.getUrl("Spezial:Fliegelflagel")+"' target='_blank'>Fliegelflagel</a>.";
}else{
s=s+"in deiner <a href='"+mw.util.getUrl("Special:MyPage/common.js")+"' target='_blank'>common.js</a> usw.";}
$bl=$("<div>");
$bl.css({"color":"#FF00FF",
"font-weight":"bold",
"margin-bottom":"1em",
"width":"70%"});
$el=$("<span>"+s+"</span>");
$bl.append($el);
ELP.gui.$wrapper.append($bl);}
if(typeof ELP.talk==="object"){
$el=ELP.talk.furnish(ELP.lang.find("hintTalk"));
$el.attr({"target":"ExtLPtalk"});
}else{
$el=$("<span>");}
$el.css({"font-size":"1.8em",
"white-space":"nowrap"}).text(ELP.project.say);
$bl=$("<div>");
$bl.css({"width":"70%"}).append($el);
ELP.gui.$wrapper.append($bl);
};
Box.fiat=function(access){
var s="$"+access,$r=null,$el;
if(typeof this[s]==="object"){
$r=this[s];
}else{
if(access==="throbber"){
$r=$("<img />");
$r.attr("src","//upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif")
.attr("id",ELP.type+"-clock").css({"height":"20px"});
}else if(access==="spacer"){
$r=$("<span>");
$r.text(" ");
}else{
$r=$("<button />");
$r.attr({"id":ELP.type+"-"+access,
"type":"button"}).css({"border-color":"#E0E0E0 #E0E0E0 #707070 #707070",
"float":"left"});
$el=$("<span>");
$el.css({"font-weight":"bolder"});
if(access==="show"){
$el.css({"color":"#00A000",
"font-size":"120%",
"font-weight":"bold",
"padding":"2px"}).text("+");
}else{
$el.css({"color":"#FF0000",
"padding":"2px"}).text("X");}
$r.append($el);
$r.click(this.flip);}
this[s]=$r;}
return $r;
};
Box.fill=function(){
var listed=(typeof Box.$ol==="object"),i,n;
if(listed){
Pop.$ol.empty();}
if(typeof Pop.complain==="object"){
if(!listed){
Pop.$ol=$("<ol>");}
n=Pop.complain.length;
for(i=0;i<n;i++){
Pop.$ol.append(Pop.complain[i]);}
if(!Pop.$list){
Pop.$list=$("<div>");
Pop.$list.attr("id",ELP.type+"_list").css({"clear":"both"});
ELP.gui.$wrapper.append(Pop.$list);}
if(!listed){
Pop.$list.append(Pop.$ol);}}
};
Box.flip=function(after,assign){
var live=(typeof Pop.$list==="object"),list,s,submit,suspend;
if(after===true){
list=assign;
}else if(typeof Box.large==="boolean"){
list=(!Box.large);
}else{
list=true;}
submit=(list?"hide":"show");
suspend=(list?"show":"hide");
s="$"+suspend;
if(typeof Box[s]==="object"){
Box[s].hide();}
if(list){
if(live){
Pop.$list.show();
}else{
Box.fill();}
}else if(live){
Pop.$list.hide();}
Box.flop(true);
s="$"+submit;
if(typeof Box[s]==="object"){
Box[s].show();
}else if(typeof Box.$action==="object"){
Box.$action.append(Box.fiat(submit));}
if(ELP.config.mode===1){
Box.future(true,list);}
Box.large=list;
};
Box.flop=function(align){
if(typeof this.$throbber==="object"){
this.$throbber.remove();
delete this.$throbber;}
if(align&&typeof this.$spacer!=="object"){
Box.$action.append(Box.fiat("spacer"));}
};
Box.future=function(after,assign){
var r=false,s;
if(typeof window.sessionStorage==="object"){
s=window.sessionStorage.getItem(ELP.type);
if(!s){
s="";}
if(after){
s=s.replace(/~details=.~/g,"")+"~details="+(assign?1:0)+"~";
window.sessionStorage.setItem(ELP.type,s);
}else{
r=(s.indexOf("~details=1~")>=0);}}
return r;
};
Box.google={de:"de",fr:"fr"
};
Content.fetch=function(){
var i,n,swift,$external;
if(typeof ELP.problems==="object"&&typeof this.pointer!=="object"){
swift="(?:ipedia|ibooks|imediafoundation|inews|iquote|isource|iversity|ivoyage|tionary";
if(ELP.scope!=="info"){
swift=swift+"|idata";}
swift="\\/\\/[^/#?]*\\.?wik"+swift+")\.org/wiki/";
swift="^(?:[hft]+tps?:)?"+swift;
this.reWiki=new RegExp(swift);
n=ELP.problems.length;
this.pointer={};
for(i=0;i<n;i++){
this.pointer[fair(ELP.problems[i].url)]=i;}
$external=ELP.gui.$content.find(".external");
if($external.length){
$external.each(Content.found);}}
};
Content.fill=function(){
var i,n,r,$e;
ELP.gui.$content.find("."+Content.signature).remove();
Pop.complain=[];
Pop.limited=(ELP.scope!=="view");
if(typeof ELP.problems==="object"){
n=ELP.problems.length;
if(n){
for(i=0;i<n;i++){
$e=Pop.factory(ELP.problems[i],Pop.complain.length,-1);
if($e){
$e.attr({"data-problem":i});
Pop.complain.push($e);}}}}
if(typeof Box.wikilinks==="object"){
n=Box.wikilinks.length;
if(n){
for(i=0;i<n;i++){
Pop.friend(Box.wikilinks[i]);}}}
if(Pop.complain.length){
r=true;
}else{
delete Pop.complain;
r=false;}
return r;
};
Content.flip=function(about){
var illusive=0.9,margin=10,j,k,offset,options,sign,$c;
if(about.popup){
about.live=!about.live;
}else{
$c=Pop.complain[about.id];
if($c){
if(about.sequence){
j=about.sequence.charCodeAt(0)-65;
}else{
j=0;}
sign=$c.attr("data-problem");
if(sign){
k=parseInt(sign,10);
$c=Pop.factory(ELP.problems[k],about.id,j,about.section);
}else if(about.syntax){
$c=$("<span>");
$c.text(ELP.lang.find("wikilink"));
}else{
$c=false;}}
if($c){
if(typeof this.$body!=="object"){
this.$body=$("body");
this.$window=$(window);}
sign=Content.signature+"-"+about.id;
if(about.sequence){
sign=sign+about.sequence;}
$c.attr({"id":sign}).addClass(Content.signature+"-popup")
.css({"display":"table",
"font-family":"sans-serif",
"font-size":"medium",
"font-style":"normal",
"font-variant":"normal",
"padding-top":"3px",
"visibility":"hidden"});
this.$body.append($c);
$c=$("#"+sign);
options={align:"center",anchor:false,height:$c.outerHeight()+margin,padded:false,width:$c.outerWidth()+margin};
$c.detach();
options.$content=$c;
options.$content.css({"display":"block",
"visibility":"visible"});
about.popup=new OO.ui.PopupWidget(options);
about.popup.$element.attr({"role":"tooltip"}).css({"opacity":illusive});
this.$body.append(about.popup.$element);
this.$window.resize(function(){
if(about.live){
about.live=false;
about.popup.toggle(false);}
});
about.live=1;}}
if(about.popup){
if(about.live){
offset=about.$parent.offset();
offset.left+=about.$parent.outerWidth()/ 2;
offset.top-=about.popup.height+5;
if(offset.top<0){
offset.top=about.$parent.offset().top+about.$parent.outerHeight()+3;}
j=$(window.document).scrollLeft();
k=this.$window.width()+j;
if(offset.left+about.popup.width / 2>k){
offset.left=k-about.popup.width / 2-2;
if(offset.left<0){
offset.left=j+3;}}
if(about.live===true){
about.popup.toggle(true);}
about.popup.$element.offset(offset);
if(about.live!==true){
about.popup.toggle(true);}
}else{
about.popup.toggle(false);}}
};
Content.found=function(){
var $el=$(this),k,p,s;
s=$el.attr("href");
if(s==="#"){
s=$el.attr("data-href");}
if(s){
s=fair(far(s));
k=Content.pointer[s];
if(typeof k==="number"){
p=ELP.problems[k];
if(p.effective){
p.effective.push($el);
}else{
p.effective=[$el];}
}else if(Content.reWiki.test(s)){
p=[s,$el];
if(Box.wikilinks){
Box.wikilinks.push(p);
}else{
Box.wikilinks=[p];}}}
return true;
};
Content.frame=function($a,allow){
var $el=$a.prevAll(":header"),r=false;
if($el.length){
$el=$el.first().children(".mw-editsection");
if($el.length){
$el=$el.children("a");
r=$el.attr("href");}}
if(!r){
$el=$a.parent("#mw-content-text");
if(!$el.length&&allow){
r=Content.frame($a.parent(),allow-1);}}
return r;
};
Content.furnish=function($a,assign,another){
var sign="data-"+ELP.type.toLowerCase(),id,max,section,styleNE,styleSW,syntax,widget,$el,$id,$span;
if(!$a.attr(sign)){
$a.attr(sign,assign);
max=20;
section=false;
id=assign+1;
sign=id+(another?another:"");
styleSW="#707070";
styleNE="#D8D8D8";
$id=$("<span>");
$id.attr({"class":Content.signature,
"id":ELP.type+"_"+sign});
$a.attr({"target":Pop.forward("ExternalL")}).before($id).css(ELP.config.css.href);
if(!Pop.limited){
$el=$a.closest(".references");
if(!$el.length){
section=this.frame($a,max);
if(!section){
if(typeof this.start!=="string"){
section=mw.config.get("wgPageName");
this.start=mw.config.get("wgScript")+"?action=edit§ion=0&title="+mw.util.wikiUrlencode(section);}
section=this.start;}}}
$span=$("<span>");
$el=$("<span>");
$el.css({"font-size":"25%"}).text(" ");
$span.append($el);
if(another){
syntax=false;
}else{
syntax=$a.attr("data-syntax");}
$el=$("<a>");
widget={$parent:$el,id:assign,section:section,sequence:another,syntax:syntax,popup:false};
$el.attr({"data-sign":"#"+assign,
"href":"#",
"title":ELP.type}).click(function(){
Content.flip(widget);
return false;
}).css({"background":"#D0D0D0",
"border-top-color":styleNE,
"border-right-color":styleNE,
"border-left-color":styleSW,
"border-bottom-color":styleSW,
"border-style":"solid",
"border-width":"2px",
"color":"#000000",
"display":"inline-block",
"padding-left":"2px",
"padding-right":"2px",
"padding-top":"1px",
"padding-bottom":"1px",
"text-decoration":"none"}).text(sign);
$span.append($el);
$el=$("<span>");
$el.css({"font-size":"25%"}).text(" ");
$span.append($el).attr({"class":Content.signature+"-button"});
$a.after($span);}
};
Content.signature=ELP.type+"_el-id";
Pop.facetter=function(access){
var join=access.indexOf("//"),$r=false,got,i,n,s,shift,spacer,start,sub,$el;
if(join>=0){
join+=2;
i=access.indexOf("/",join);
if(i>=0){
s=access.substr(join,i-join);
got=/\.([^.]+\.[a-z]+)$/.exec(s);
shift=Pop.forward("ExternalL");
if(got){
sub=got[1];
$el=$("<a>");
$el.attr({"href":access.substr(0,join)+sub,
"target":shift});
$el.text(sub);
$r=$("<li>");
$r.append($el);}
join=i+1;
i=access.indexOf("?",join);
if(i<0){
sub=access;
}else{
sub=access.substr(0,i);}
sub=sub.substr(join);
if(sub!==""||i>=0){
if($r){
spacer=" · ";
$el=$("<span>");
$el.text(spacer);
$r.append($el);
}else{
$r=$("<li>");}
start=access.substr(0,join-1);
$el=$("<a>");
$el.attr({"href":start+"/",
"target":shift}).text(start);
$r.append($el);
if(sub!==""){
got=sub.split("/");
n=got.length;
for(i=0;i<n;i++){
$el=$("<span>");
$el.text(" / ");
$r.append($el);
s=got[i];
start=start+"/"+s;
$el=$("<a>");
$el.attr({"href":start,
"target":shift}).text(s);
$r.append($el);}}}}}
return $r;
};
Pop.factory=function(about,assigned,another,access){
var legal=true,$r=$((another<0?"<li>":"<div>")),$ul=$("<ul>"),list,lock,i,j,n,s,spacer,$el,$uli;
if(typeof about.effective==="object"){
spacer=" · ";
s=about.url;
list=(another<0);
if(typeof about.listed==="boolean"&&about.listed){
lock=true;
if(list){
$el=this.forbidden(s);
}else{
$el=$("<span>");
$el.css({"font-weight":"bolder"}).text("SPAM");}
}else if(list){
$el=$("<a>");
$el.attr({"href":s,
"target":Pop.forward("ExternalL")}).text(s);}
if($el){
$r.append($el);}
n=about.effective.length;
if(list||n>1){
$uli=$("<li>");
for(i=0;i<n;i++){
if(i!==another){
if(i){
$el=$("<span>");
$el.text(spacer);
$uli.append($el);}
j=assigned+1;
s=String.fromCharCode(i+65);
$el=$("<a>");
$el.text(s).attr("href","#"+ELP.type+"_"+j+s);
$uli.append($el);
Content.furnish(about.effective[i],assigned,s);}}
$ul.append($uli);}
if(!lock){
$uli=this.fatal(s);
if($uli){
$ul.append($uli);
legal=false;}
if(typeof about.link==="boolean"&&about.link){
$el=this.flow(s);
if($el){
$ul.append($el);}}
if(typeof about.since==="string"){
$ul.append(this.former(about.since));}
if(typeof about.mode==="number"){
$ul.append(this.figure(about.mode,s));}
if(typeof about.cit==="string"){
$ul.append(this.webcite(s,about.cit));}
s=typeof about.wba;
if(s==="string"||s==="boolean"){
$ul.append(this.wayback(about.url,about.wba));}
$uli=this.flop(about.url,about.sub,about.less);
if($uli){
$ul.append($uli);}
if(typeof about.other==="object"){
$uli=this.further(about.other,about.url);
if($uli){
$ul.append($uli);}}
if(legal){
if(ELP.config.levels){
$uli=this.facetter(about.url);
if($uli){
$ul.append($uli);}}
if(ELP.config.lookup){
$uli=this.google(about.url,about.effective);
if($uli){
$ul.append($uli);}}}}
if(typeof about.learnt==="boolean"&&about.learnt){
$uli=$("<li>");
$el=$("<span>");
$el.css({"font-weight":"bold"}).text(ELP.lang.find("notdone"));
$uli.append($el);
$ul.append($uli);
}else if(access){
$uli=$("<li>");
$el=$("<span>");
$el.text("[");
$uli.append($el);
$el=$("<a>");
$el.attr("href",access).text(ELP.lang.find("editSrc"));
$uli.append($el);
$el=$("<span>");
$el.text("]");
$uli.append($el);
$ul.append($uli);}
}else if(this.limited){
$r=false;
}else if(about.learnt){
$el=$("<span>");
$el.css({"text-decoration":"line-through"}).text(about.url);
$r.append($el);
$el=$("<span>");
$el.text(ELP.lang.find("discard"));
$uli=$("<li>");
$uli.append($el);
$ul.append($uli);
}else{
$r=false;}
if($r){
if($ul.children().length){
$r.append($ul);
}else if(!list){
$el=$("<span>");
$el.text("404");
$r.append($el).css({"text-align":"center"});}}
return $r;
};
Pop.fatal=function(access){
var i=access.indexOf("//"),$r=false,got,k,s,$el;
if(i>=0){
s=access.substr(i+2);
i=s.indexOf("/");
if(i>=0){
if(typeof this.rePort!=="object"){
this.rePort=new RegExp("^(.+):[0-9]+$");
this.reIPv4=new RegExp("^[0-9.]+$");
this.reIPv4s=new RegExp("^([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+)$");
this.reIPv6=new RegExp("^\\[[0-9.a-f:]+\\]$");
this.TLD2=new RegExp("^[0-9a-z][-0-9.a-z]*[0-9a-z]\\.[a-z]{2,}$");}
s=s.substr(0,i).toLowerCase();
got=this.rePort.exec(s);
if(got){
s=got[1];}
if(this.reIPv4.test(s)){
got=this.reIPv4s.exec(s);
for(i=1;i<=4;i++){
k=parseInt(got[i],10);
if(k>255){
$r=true;
break;}}
}else if(!this.reIPv6.test(s)&&!this.TLD2.test(s)){
$r=true;}
if($r){
$r=$("<li>");
$el=$("<span>");
$el.text(ELP.lang.find("syntax")).css({"font-weight":"bold"});
$r.append($el);}}}
return $r;
};
Pop.favour=function(access,about){
var show=about,id,$a,$e,$r;
if(typeof ELP.project[access]==="number"){
id=ELP.project[access];
if(!show){
show=ELP.lang.find("help");}
$a=$("<a>");
$a.attr({"href":mw.util.getUrl("Special:Redirect")+"/page/"+id,
"target":Pop.forward("help")}).text(show);
if(about){
$r=$a;
}else{
$r=$("<span>");
$e=$("<span>");
$e.text("(");
$r.append($e).append($a);
$e=$("<span>");
$e.text(")");
$r.append($e).css({"margin-left":"1em"});}}
return $r;
};
Pop.figure=function(answer,access){
var s=ELP.lang.find("mode"),$r=$("<li>"),$el=Pop.favour("idHTTPstat",s),i;
if($el){
$r.append($el);
s="";}
$el=$("<span>");
s=s+" = "+answer;
if(answer>=500&&answer<=599){
s=s+" ("+ELP.lang.find("mode5")+")";
i=access.indexOf("//");
if(i>0){
$el.text(s);
$r.append($el);
$el=$("<span>");
$el.text(" · ");
$r.append($el);
$el=$("<a>");
i=access.indexOf("/",i+2);
if(i>0){
s=access.substr(0,i+1);
}else{
s=access+"/";}
$el.attr({"href":mw.util.getUrl("Special:Linksearch")+"/"+s,
"target":Pop.forward("Linksearch")});
s=ELP.lang.find("more");}
}else if(answer>=300&&answer<=399){
s=s+" ("+ELP.lang.find("mode3")+")";
}else if(answer<100){
s=s+" ("+ELP.lang.find("curl")+")";}
$el.text(s);
$r.append($el);
return $r;
};
Pop.flop=function(access,attempt,after){
var s=access,sub=attempt,i=s.lastIndexOf("|"),j=s.lastIndexOf("%7C"),like=false,story=false,$r=false,suffix,$el,$help,$show;
if(typeof this.reEnd!=="object"){
this.reEnd=new RegExp("[(,.;?|]$");
this.reFile=new RegExp("[a-zA-Z0-9]\\.[a-zA-Z]");
this.rePipe=new RegExp("%7C$","i");
this.reSlash=new RegExp("//.+/.+/$");
this.reURL=new RegExp("[&#]");}
if(i>0||j>0){
if(j>i){
s=s.replace(this.rePipe,"|");
suffix=s.substr(j+3);
i=j;
}else{
suffix=s.substr(i+1);}
if(suffix){
if(this.reURL.test(suffix)){
suffix=false;
}else if(this.reFile.test(suffix)){
suffix=false;}
if(suffix){
story=ELP.lang.find("pipe");
$help=Pop.favour("idPipe");
$show=$("<span>");
$show.css({"font-weight":"bold",
"margin-left":"1em"}).text("|"+suffix+"]");
if(!sub){
sub=s.substr(0,i);
like=true;}}}}
if(after||this.reEnd.test(s)||this.reSlash.test(s)){
story=(story?story+". ":"")+ELP.lang.find("special");
if(!sub){
sub=s.substr(0,s.length-1);
like=true;}}
if(story){
$r=$("<li>");
$el=$("<span>");
$el.text(story);
$r.append($el);}
if(typeof sub==="string"){
if(!$r){
$r=$("<li>");}
story=(story?". ":"")+ELP.lang.find("sub");
$el=$("<span>");
$el.text(story);
$r.append($el);
if($help){
$r.append($help);}
if($show){
$r.append($show);}
$el=$("<a>");
$el.attr({"href":sub,
"target":Pop.forward("ExternalL")}).css({"margin-left":"1em"})
.text(ELP.lang.find((like?"try":"success")));
$r.append($el);}
return $r;
};
Pop.flow=function(access){
var $r=false,parts,scheme,$a;
if(typeof Pop.reScheme!=="object"){
Pop.reWiki=new RegExp("^((?:ht|f)tp)(s?)(//:.+)$","i");}
parts=Pop.reWiki.exec(access);
if(parts){
scheme=parts[1]+(parts[2]?"":"s");
$a=$("<a>");
$r=$("<li>");
$a.attr({"href":scheme+parts[3],
"target":Pop.forward("ExternalL")}).text(scheme+"^//:");
$r.append($a);}
return $r;
};
Pop.forbidden=function(access){
var s=access+"/",j=s.indexOf("\\\\" ),k=s.indexOf("/"),$a=$("<a>"),$el=$("<span>"),$r=$("<span>");
$a.attr({"href":fair(access),
"target":Pop.forward("ExternalL")}).css({"font-weight":"bold"})
.text(ELP.lang.find("blocked"));
$r.append($a);
$el.text(ELP.lang.find("blocking")).css({"margin-left":"1em"});
$r.append($el);
$el=$("<span>");
$el.text(s.substring(j+2,k)).css({"font-style":"italic",
"margin-left":"1em"});
$r.append($el);
return $r;
};
Pop.former=function(already){
var $el=$("<span>"),$r=$("<li>");
$el.text(ELP.lang.find("since")+already);
$r.append($el);
return $r;
};
Pop.forward=function(assume){
return(ELP.config.loose?"_blank":assume);
};
Pop.friend=function(about){
var src=about[0],$got=about[1],k,n,$a,$li,$ul,$uli;
if(!$got.closest(Pop.wikiClasses).length){
k=this.complain.length;
$got.attr({"data-syntax":"wikilink"});
$a=$("<a>");
$a.attr({"href":src,
"target":Pop.forward("ExternalL")}).text(src);
$li=$("<li>");
$li.append($a);
$a=$("<a>");
n=k+1;
$a.attr("href","#"+ELP.type+"_"+n).text(ELP.lang.find("wikilink"));
$uli=$("<li>");
$uli.append($a);
$ul=$("<ul>");
$ul.append($uli);
$li.append($ul);
Content.furnish($got,k);
this.complain.push($li);}
};
Pop.further=function(array,access){
var i,s,spacer,$el,n=array.length,$r=false;
if(n){
$r=$("<li>");
$el=$("<span>");
s=(n===1?"other":"others");
spacer=" · ";
$el.text(ELP.lang.find(s));
$r.append($el);
for(i=0;i<n;i++){
$el=$("<span>");
$el.text((i?spacer:" "));
$r.append($el);
s=array[i];
$el=$("<a>");
$el.attr({"href":mw.util.getUrl("Special:Redirect")+"/page/"+s,
"target":Pop.forward("_blank")});
$el.text(s);
$r.append($el);}
$el=$("<span>");
$el.text(spacer);
$r.append($el);
$el=$("<a>");
$el.attr({"href":mw.util.getUrl("Special:Linksearch")+"/"+access,
"target":Pop.forward("_blank")}).text(ELP.lang.find("current"));
$r.append($el);}
return $r;
};
Pop.google=function(access,a){
var i=access.indexOf("//"),$r=false,j,n,parts,s,seek,words,$el;
if(i>=0){
seek="https://www.google."+ELP.lang.search+"/search?q=site:";
i+=2;
n=access.indexOf("/",i);
words={};
if(n>0){
seek=seek+access.substring(i,n);
s=access.substr(n).replace(/[#?].*$/g,"")
.replace(/\.[a-z0-9]+$/g,"");
parts=s.split("/");
n=parts.length;
for(i=0;i<n;i++){
s=parts[i];
if(s){
words[s]=true;}}}
for(i=0;i<a.length;i++){
$el=a[i];
s=$el.text().replace(/[-_|:,;.?!&(){}+*=~'"\xA0\u202F]/g," ").replace(/\s+/g," ");
parts=s.split(" ");
for(j=0;j<parts.length;j++){
words[encodeURIComponent(parts[j])]=true;}}
for(s in words){
seek=seek+"+"+s;}
$el=$("<a>");
$el.attr({"href":seek,
"target":Pop.forward("GoogleSearch")});
$el.text("Google");
$r=$("<li>");
$r.append($el);}
return $r;
};
Pop.wayback=function(access,almost){
var $el=$("<span>"),$r=$("<li>");
$el.text(ELP.lang.find("wayback")+" ");
$r.append($el);
$el=$("<a>");
$el.attr({"href":"http://wayback.archive.org/web/*/"+access.replace(/</g,"%3C"),
"target":Pop.forward("wwwarchive")}).text(ELP.lang.find("wayback*"));
$r.append($el);
$el=$("<a>");
if(typeof almost==="string"&&almost.length>=10){
$el=$("<span>");
$el.text(" · ");
$r.append($el);
$el=$("<a>");
$el.attr({"href":"http://wayback.archive.org/web/"+almost+"/"+access,
"target":Pop.forward("wwwarchive")}).text(ELP.lang.find("wayback!"));
$r.append($el);}
return $r;
};
Pop.webcite=function(access,almost){
var $el=$("<span>"),$r=$("<li>");
$el.text(ELP.lang.find("webcite")+" ");
$r.append($el);
$el=$("<a>");
$el.attr({"href":"http://www.webcitation.org/"+almost,
"target":Pop.forward("wwwarchive")}).text("webcitation.org");
$r.append($el);
return $r;
};
Pop.wikiClasses=".mw-warning-with-logexcerpt,.noprint,.plainlinks,.wikibase-entity-usage";
ELP.lang.fallback=function(access){
var r;
if(typeof ELP.gui.texts[access]==="object"){
r=ELP.gui.texts[access].en;
}else{
r="***????* "+access+" *????***";}
return r;
};
ELP.lang.fine=function(access){
var r;
if(typeof ELP.gui.texts[access]==="object"){
r=ELP.prego.lib.translation(ELP.gui.texts[access]);
}else{
r="***??* "+access+" *??***";}
return r;
};
ELP.gui.fresh=function(){
var last,list,$bl,$span,$ul;
if(typeof ELP.gui.$wrapper==="object"&&typeof ELP.problems==="object"&&ELP.problems){
$bl=$("<div>");
$bl.css({"float":"left",
"vertical-align":"top"});
if(typeof ELP.talk==="object"&&ELP.talk){
list=ELP.talk.leader;
if(typeof ELP.talk.last==="boolean"){
last=ELP.talk.last;}
}else{
list=true;}
if(ELP.problems){
if(list){
Box.$action=$bl;
Box.$action.append(Box.fiat("throbber"));
ELP.gui.$buttons.prepend(Box.$action);
Content.fetch();
if(Content.fill()){
switch(ELP.config.mode){
case 1:
list=Box.future(false);
break;
case 2:
list=true;
break;
default:
list=false;}
Box.flip(true,list);
}else{
Box.flop(false);}
}else if(!ELP.config.lazy&&typeof ELP.talk.former==="function"){
$ul=ELP.talk.former();
if($ul){
$bl=$("<div>");
$bl.css({"padding":"1em"});
$span=$("<span>");
$span.css({"font-weight":"bold"}).text(ELP.lang.find("discard")+":");
$bl.append($span).append($ul);
ELP.gui.$wrapper.append($bl);}}
}else{
$bl.css({"color":"#FF0000",
"font-weight":"bold"});
$bl.text(ELP.lang.find("empty"));
ELP.gui.$buttons.prepend($bl);}
if(!list&&last){
ELP.talk.last=false;
$bl=$("<div>");
$bl.css({"background-color":"#FFD0D0",
"margin-right":"1em",
"padding":"1em"}).text(ELP.lang.find("earlier"));
ELP.gui.$wrapper.append($bl);}
if(typeof ELP.follow==="function"){
ELP.follow();}}
};
function fire($area){
ELP.gui.$content=$area;
if(typeof ELP.gui.$wrapper!=="object"){
if(ELP.config.less){
furnish();
}else{
mw.loader.using(["oojs","oojs-ui-core","oojs-ui-widgets"],furnish);}}}
ELP[Sub].fire=function(){
facilitated();
if(typeof ELP.request==="string"&&ELP.request===Sub&&typeof ELP.project==="object"&&ELP.project&&typeof ELP.config==="object"&&ELP.config){
ELP.request=false;
if(typeof ELP.config.less!=="boolean"){
ELP.config.less=false;}
if(typeof ELP.config.levels!=="boolean"){
ELP.config.levels=false;}
if(typeof ELP.prego.lib==="object"&&typeof ELP.prego.lib.translation==="function"){
ELP.lang.find=ELP.lang.fine;
}else{
ELP.lang.find=ELP.lang.fallback;}
if(typeof ELP.config.loose!=="boolean"){
ELP.config.loose=false;}
if(typeof ELP.config.low!=="boolean"){
ELP.config.low=false;}
if(!ELP.config.low&&typeof ELP.talk==="object"&&ELP.talk&&typeof ELP.talk.leader==="boolean"&&ELP.talk.leader){
ELP.config.low=false;}
if(typeof ELP.config.lookup==="boolean"&&ELP.config.lookup){
ELP.lang.standard=mw.config.get("wgContentLanguage");
if(typeof Box.google[ELP.lang.standard]){
ELP.lang.search=Box.google[ELP.lang.standard];
}else{
ELP.lang.search="com";}
}else{
ELP.config.lookup=false;}
if(!ELP.config.low){
mw.hook("wikipage.content").add(fire);}}
};
function first(){
facilitated();
if(typeof ELP.featuring==="function"){
ELP.featuring(ELP[Sub].fire);}}
first();
}(window.mediaWiki,window.jQuery));
/// EOF</nowiki>externalLinkProblem/gui/r.js