Benutzer:Wirthi/common.js
Zur Navigation springen
Zur Suche springen
Hinweis: Leere nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Gehe zu Menü → Einstellungen (Opera → Einstellungen auf dem Mac) und dann auf Datenschutz & Sicherheit → Browserdaten löschen → Gespeicherte Bilder und Dateien.
var cwTitle; var cwAction; function cwInit() { cwTitle = mw.config.get("wgTitle"); cwAction = mw.config.get("wgAction"); console.log("action: "+cwAction); if (cwAction === "edit") { cwAddToolbarButton("weblinksToTemplate", "weblinksToTemplate()" ); cwAddToolbarButton("weblinksCheckOnline", "checkWeblinksOnline()" ); cwAddToolbarButton("fixSlippymap", "fixSlippymap()" ); } } function cwAddToolbarButton(name, action) { var toolbar = document.getElementById("toolbar"); if (toolbar) { toolbar.innerHTML += '<img width="23" height="22" src="/w/skins/common/images/de/button_bold.png" alt="'+name+'" title="'+name+'" id="mw-editbutton-'+name+'" class="mw-toolbar-editbutton" onClick="'+action+'">'; } } function getArticleText() { return document.getElementById("wpTextbox1").value; } function setArticleText(newValue) { document.getElementById("wpTextbox1").value = newValue; } function checkWeblinksOnline() { console.log("Task: Check weblinks online"); checkWeblinksOnlineIntl(getArticleText(), "Webseite"); checkWeblinksOnlineIntl(getArticleText(), "WebseiteSicher"); console.log("Task: Check weblinks online DONE"); } function checkWeblinksOnlineIntl(text, templateName) { var start = text.indexOf("{{"+templateName); while (start >= 0) { var weblink = parseWeblink(text, start-2, templateName); console.log("Website: "+weblink); window.open(weblink.link, "_blank"); start = text.indexOf("{{"+templateName, start+1); } } function parseWeblink(text, start, templateName) { var firstBar = text.indexOf("1=",start); var secondBar = text.indexOf("|",firstBar); var end = text.indexOf("}}", firstBar); var hasSection2 = secondBar > firstBar && secondBar < end; var endSection1 = hasSection2 ? secondBar : end; var rawLinkText = text.substring(firstBar+2,endSection1); var protocol = templateName==="WebseiteSicher"?"https":"http"; var link = protocol + "://"+rawLinkText; var name = hasSection2? text.substring(secondBar+2, end):""; return {link: link, name: name, start: start, end: end+2}; } function weblinksToTemplate() { console.log("Task: Weblinks to Templates"); var text = getArticleText(); text = weblinksToTemplateIntl(text, "http://", "Webseite"); text = weblinksToTemplateIntl(text, "https://", "WebseiteSicher"); text = updateOON(text, "Webseite"); text = updateOON(text, "WebseiteSicher"); text = updateGemeinderaete(text, "Webseite"); text = updateGemeinderaete(text, "WebseiteSicher"); setArticleText(text); } function updateOON(text, templateName) { //link to nachrichten.at => template OON var start = text.indexOf("nachrichten.at/"); if (start > 0) { alert("Weblink to Nachrichten.at, replace with template OÖN"); } return text; } function updateGemeinderaete(text, templateName) { //broken link to linz.at/gemeinderäte => template LinkGemeinderat var start = text.indexOf("{{"+templateName); while (start >= 0) { var weblink = parseWeblink(text, start-2,templateName); console.log(weblink); var idStart = weblink.link.indexOf("/6298_"); if (idStart > 0) { var id = weblink.link.substring(idStart+6,weblink.link.indexOf(".",idStart+6)); text = text.substring(0,weblink.start+2)+"{{LinkGemeinderat|ID="+id+"|name={{PAGENAME}}}}"+text.substring(weblink.end); } start = text.indexOf("{{"+templateName, start+1); } return text; } function weblinksToTemplateIntl(text, pattern, templateName) { var start = text.indexOf(pattern); while (start >= 0) { console.log("found at "+start); var isEmbedded = (start > 0) && text[start-1] === '['; console.log("embedded: "+isEmbedded); if (isEmbedded) { var end = text.indexOf("]",start); var endLink = text.indexOf(" ",start); var link = text.substring(start,endLink); var description = text.substring(endLink+1,end); var templateCode = "{{"+templateName+"|1="+link.substring(pattern.length)+"|2="+description+"}}"; alert("link: |"+link+"|\ndesc: |"+description+"|\n"+templateCode); text = text.substring(0,start-1) + templateCode + text.substring(end+1); } else { var endLink = nextWhitespaceAfter(text,start); var link = text.substring(start,endLink); var templateCode = "{{"+templateName+"|1="+link.substring(pattern.length)+"|2=}}"; alert("link: |"+link+"|\ndesc: |"+description+"|\n"+templateCode); text = text.substring(0,start) + templateCode + text.substring(endLink); } start = text.indexOf(pattern); } return text; } function nextWhitespaceAfter(text, start) { var pos=text.length; pos = nextCharAfter(text, start, pos, " "); pos = nextCharAfter(text, start, pos, "\n"); pos = nextCharAfter(text, start, pos, "\r"); pos = nextCharAfter(text, start, pos, "\t"); return pos; } function nextCharAfter(text, start, pos, character) { var idx = text.indexOf(character, start); if (idx >= start && idx < pos) { return idx; } return pos; } function portSlippymap() { console.log("Task: Port Slippmap to Template Karte"); var text = getArticleText(); text = portSlippymapInternal(text); setArticleText(text); } function portSlippymap(text) { var start = text.indexOf("slippymap"); var indexLat = text.indexOf("lat=", start); var indexLat2 = text.indexOf(" ",indexLat); var lat = text.substring(indexLat+4, indexLat2); var indexLon = text.indexOf("lon=", start); var indexLon2 = text.indexOf(" ",indexLon); var lon = text.substring(indexLon+4, indexLon2); console.log("replace with: |"+lat+"|"+lon+"|"); } console.log("load page"); cwInit();