no way to compare when less than two revisions
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | stuff:hisinone_greasemonkey_script [2020/09/14 16:09 CEST] (aktuell) – angelegt simon | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ======= HisInOne GreaseMonkey Script zum direkten Anzeigen der Raum-IDs ======= | ||
+ | Quick and Dirty Script, um im His automatisch die roomId in den Suchergebnissen und Detailseiten zu Räumen anzuzeigen (direkt neben Raumname). | ||
+ | |||
+ | **@match** anpassen nicht vergessen! | ||
+ | |||
+ | // ==UserScript== | ||
+ | // @name Show HISinOne room ids | ||
+ | // @version | ||
+ | // @description | ||
+ | // @author | ||
+ | // @match | ||
+ | // ==/ | ||
+ | |||
+ | (function() { | ||
+ | 'use strict'; | ||
+ | var COMPLETED_READY_STATE = 4; | ||
+ | var RealXHRSend = XMLHttpRequest.prototype.send; | ||
+ | function proxifyOnReadyStateChange(xhr) { | ||
+ | if (xhr.hasMyProxy) return; | ||
+ | xhr.hasMyProxy = true; | ||
+ | var realOnReadyStateChange = xhr.onreadystatechange; | ||
+ | xhr.onreadystatechange = function() { | ||
+ | var r; | ||
+ | if (realOnReadyStateChange) { | ||
+ | r = realOnReadyStateChange(); | ||
+ | } | ||
+ | if( xhr.readyState === COMPLETED_READY_STATE ) { | ||
+ | ajaxCompleted(xhr); | ||
+ | } | ||
+ | return r; | ||
+ | }; | ||
+ | } | ||
+ | // Wire | ||
+ | (function() { | ||
+ | // Override send method of all XHR requests | ||
+ | console.log(' | ||
+ | XMLHttpRequest.prototype.send = function() { | ||
+ | // Wire response callbacks | ||
+ | var r = RealXHRSend.apply(this, | ||
+ | proxifyOnReadyStateChange(this); | ||
+ | return r; | ||
+ | }; | ||
+ | })(); | ||
+ | function ajaxCompleted(xhr) { | ||
+ | setTimeout(showRoomIds, | ||
+ | } | ||
+ | function showRoomIds() { | ||
+ | var btns = document.querySelectorAll(' | ||
+ | var data; | ||
+ | for (var b = 0; b < btns.length; | ||
+ | if (!btns[b].onclick) continue; | ||
+ | if (btns[b].hasRid) continue; | ||
+ | btns[b].hasRid = true; | ||
+ | if (btns[b].getElementsByTagName(' | ||
+ | data = btns[b].onclick.toString().match(/ | ||
+ | if (!data || data.length < 2) continue; | ||
+ | btns[b].parentNode.appendChild(document.createTextNode(' | ||
+ | } | ||
+ | data = false; | ||
+ | var txt = document.getElementById(' | ||
+ | || document.getElementById(' | ||
+ | if (txt && txt.value) { | ||
+ | data = txt.value.match(/ | ||
+ | } | ||
+ | if (!data || data.length < 2) { | ||
+ | txt = document.querySelectorAll(' | ||
+ | if (txt && txt.length) { | ||
+ | for (b = 0; b < txt.length; ++b) { | ||
+ | if (txt[b].value && txt[b].value.match(/ | ||
+ | data = [ 0, txt[b].value ]; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | if (data && data.length > 1) { | ||
+ | var dst = document.getElementById(' | ||
+ | if (!dst.hasRid) { | ||
+ | dst.hasRid = true; | ||
+ | dst.appendChild(document.createTextNode(' | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | showRoomIds(); | ||
+ | })(); |