Benutzer:Totto/common.js

Aus ConanWiki
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen 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/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5

var id=null;

function mainTotto(){

var tf=document.getElementById("p-personal");
var containerQuickJump= tf.getElementsByTagName("ul")[0];
var container = document.createElement("li");	
	container.setAttribute("class","TottoCustomContainer");
    container.innerHTML='<a href="/wiki/ConanWiki:NextHints" dir="auto" title="Quick Acess Hints" >Hints</a>';
    container.setAttribute("id","TottoHints");
    containerQuickJump.prepend(container);
var container2 = document.createElement("li");	
	container2.setAttribute("class","TottoCustomContainer");
    container2.innerHTML='<a href="/wiki/Vorlage:Anime-JP" dir="auto" title="Quick Acess Vorlage JP" >Vorlage JP</a>';
    container2.setAttribute("id","TottoVorlageJP");
    containerQuickJump.prepend(container2);
var container3 = document.createElement("li");	
	container3.setAttribute("class","TottoCustomContainer");
    container3.innerHTML='<a onclick="scrollToBottom();" dir="auto" title="Quick Acess Down" >Downscroll</a>';
    container3.setAttribute("id","TottoScrollDown");
    containerQuickJump.prepend(container3);		
var container4 = document.createElement("li");	
	container4.setAttribute("class","TottoCustomContainer");
    container4.innerHTML='<a onclick="refresh()" dir="auto" title="Online Counter">0</a>';
    container4.setAttribute("id","TottoOnlineCounter");
    containerQuickJump.prepend(container4);		
	//addHotkey("s","scrollToBottom");
    //addHotkey("u","scrollToTop");
	//addHotkey("p","preview");
	//AddAcessKeys();
	onlinecounter();
	id=setInterval(onlinecounter,60*1000)
	alertinit()
	isDatei()
	}
	
function preview(){
var ed= document.getElementsByClassName("editButtons");
if(ed.length>=1){
	///Auto HotkeyPreview Preview :yum:
	var previewbt=document.getElementById("wpPreview");
	previewbt.click();
	
}
}
	
	
function addToQuicklink(title,link){
var tf=document.getElementById("p-personal");
var containerQuickJump= tf.getElementsByTagName("ul")[0];
var container = document.createElement("li");	
	container.setAttribute("class","TottoCustomContainer");
    container.innerHTML='<a href="'+link+'" dir="auto" title="Quick Acess '+title+'" >'+title+'</a>';
    container.setAttribute("id","TottoHints");
    containerQuickJump.prepend(container);

	




}	
	
function scrollToBottom(){
	
	window.scrollTo(0,document.body.scrollHeight);
}
function scrollToTop(){
	window.scrollTo(0,document,0)
	
}
function addHotkey(hotkey,function_to_call){
	var num= hotkey.toUpperCase().charCodeAt(0);

 document.addEventListener("keydown", function(event) {  const key = event.keyCode; if(key===num&&event.altKey&&event.shiftKey){ window[function_to_call](); } }   );

}



function addHotkeyF(hotkey,function_to_call){	
var num= hotkey.toUpperCase().charCodeAt(0); 
 document.addEventListener("keydown", function(event) { const key = event.keyCode; if(key===num&&event.altKey&&event.shiftKey){ function_to_call(); } }   );
}


function getAllElementsWithAttribute(attribute){
  var matchingElements = [];
  var allElements = document.getElementsByTagName('*');
  for (var i = 0, n = allElements.length; i < n; i++){
    if (allElements[i].getAttribute(attribute) !== null) {
      // Element exists with attribute. Add to array.
      matchingElements.push(allElements[i]);
    }
  }
  return matchingElements;
}

function clickf(elementr){
	elementr.click();
}

function AddAcessKeys(){
	var t= getAllElementsWithAttribute("accesskey");
	for(var i=0;i<t.length;i++){
		var key=t[i].getAttribute("accesskey");
		if(key!="."&&key!=""){
			addHotkeyF(key,clickf(t[i]));
		}
		
	}
	
	
}
function refresh(){
onlinecounter();
var url="https://conanwiki.org/wiki/Spezial:Wer_ist_gerade_online"
window.open(url,"_blank")
}

function onlinecounter(){
var url="https://conanwiki.org/wiki/Spezial:Wer_ist_gerade_online"
 fetch(url).then(function (response) {
	// The API call was successful!
	return response.text();
}).then(function (html) {
	try{
		var num=0;
		// Convert the HTML string into a document object
		var parser = new DOMParser();
		var doc = parser.parseFromString(html, 'text/html');
		var cont=document.getElementById("TottoOnlineCounter").getElementsByTagName("a")[0];
		var c=doc.getElementById("mw-content-text");
		num=c.getElementsByTagName("ul")[0].getElementsByTagName("li").length;
		cont.innerHTML=num;
		//console.log(num);
		}catch(err) {
		// There was an error
		console.warn('Something went wrong.', err);
		document.getElementById("TottoOnlineCounter").getElementsByTagName("a")[0].innerHTML=0;
	}
});

		

}

function isDatei(){
var is=window.location.pathname.split("/").map(function (a){return a.startsWith("Datei:")}).reduce(function (a,b){return a||b})
	if(is){
		document.getElementById("file").addEventListener('contextmenu',getText,false)
	}

}
function getText(){
	 // ev.preventDefault();
    // alert('success!');
    // return false;
	var url="https://conanwiki.org/index.php?title="+(window.location.pathname.split("/").reduce(function (a,b){return b}))+"&action=edit"
		 fetch(url).then(function (response) {
		// The API call was successful!
		return response.text();
	}).then(function (html) {
		try{
			var num=0;
			// Convert the HTML string into a document object
			var parser = new DOMParser();
			var doc = parser.parseFromString(html, 'text/html');
			var text=doc.getElementById("wpTextbox1").innerHTML;
			navigator.clipboard.writeText(text);
			alertSucess("Inhalt kopiert");
			}catch(err) {
			// There was an error
			console.warn('Something went wrong.', err);
			document.getElementById("TottoOnlineCounter").getElementsByTagName("a")[0].innerHTML=0;
		}
	});
}

function alertinit(){
var div = document.createElement('div');
var style = document.createElement('style');
style.innerHTML = '.alert { padding: 20px; background-color: #4bac4f;  color: white; margin-bottom: 15px;}.closebtn {  margin-left: 15px;  color: white;  font-weight: bold;  float: right;  font-size: 22px;  line-height: 20px;  cursor: pointer;  transition: 0.3s;} .closebtn:hover {  color: black;}   .fade-out-20 {  animation: fadeOut ease 20s; -moz-animation: fadeOut ease 20s; }  .fade-out-5 {  animation: fadeOut ease 5s; -moz-animation: fadeOut ease 5s; } @keyframes fadeOut {  0% {    opacity:1;  }  100% {  opacity:0; } } @-moz-keyframes fadeOut {  0% {    opacity:1;  } 100% { opacity:0; } }  ';
div.innerHTML = ' <div id="alert-box" class="alert" style="display:none;position: fixed;top: 50%;z-index: 100;left: 25%;width: 50%;text-align: center;font-size: 49px;"><span onclick="this.parentElement.style.display=\'none\'" class="closebtn" style="font-size: 63px;">×</span><span id="alert-text">Alert</span></div>';
document.head.appendChild(style);
document.body.appendChild(div);
}

function alertSucess(text){
	alert(text,"#4bac4f");
}

function alert(text,color){
	var d=document.getElementById("alert-box")  ;
	d.classList.remove("fade-out-20");
	d.style.display="block";
	d.style.opacity=1;
	d.style["background-color"]=color;
	d.classList.add("fade-out-20");
	var t=document.getElementById("alert-text");
	t.innerHTML=text;
	setTimeout(()=>{ 
		var d=document.getElementById("alert-box")  ;
		d.style.display="none";
		d.classList.remove("fade-out-20");
	},20*1000);

}



mainTotto();