您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
Show drrr.com chat room language on longue so you don't need to hover on each room just to check the language.
// ==UserScript== // @name Drrr.com Chat Room Language Displayer // @namespace http://greasyfork.icu/users/700963 // @version 1.0.4 // @description Show drrr.com chat room language on longue so you don't need to hover on each room just to check the language. // @author eterNEETy // @match https://drrr.com/lounge* // @icon https://www.google.com/s2/favicons?sz=64&domain=drrr.com // @grant none // @license MIT // ==/UserScript== var swap_span_pos = true; // ========================================================= function doCallback(callback=false) { if (typeof callback == "function") { callback(); } } function checkExist(query,qid=0,hidden_ok=false) { let el_exist = false; if (document.querySelectorAll(query).length > qid){ if (hidden_ok) { el_exist = true; } else if (document.querySelectorAll(query)[qid].getBoundingClientRect().width > 0 && document.querySelectorAll(query)[qid].getBoundingClientRect().height > 0) { el_exist = true; } } return el_exist; } function checkEl(query,qid=0,callback=false,hidden_ok=false) { let old_top = -1; let old_left = -1; let loop_checkEl = setInterval(function() { console.log("checkEl: "+query+"["+qid+"]"); if (checkExist(query,qid,hidden_ok)) { if (hidden_ok) { clearInterval(loop_checkEl); doCallback(callback); } else if (old_top==document.querySelectorAll(query)[qid].getBoundingClientRect().top && old_left==document.querySelectorAll(query)[qid].getBoundingClientRect().left) { clearInterval(loop_checkEl); doCallback(callback); } else { old_top = document.querySelectorAll(query)[qid].getBoundingClientRect().top; old_left = document.querySelectorAll(query)[qid].getBoundingClientRect().left; } } }, 300); } // ========================================================= function clickRefresh() { var count_delay = 2; var loop_delay = setInterval(function() { count_delay -= 1; console.log(count_delay+1); if (count_delay == 0) { document.querySelectorAll("#lounge-refresh")[0].click(); clearInterval(loop_delay); } }, 500); } function processRoom(room_obj) { // console.log(room_obj); var selector_str = "ul.rooms>li.name>form>button[value='"+room_obj.roomId+"']"; // console.log(selector_str); var el_room = document.querySelector(selector_str); if (el_room != null) { var el_music = el_room.querySelector(".room-badge.room-badge-music"); var el_description = el_room.querySelector(".room-badge.room-badge-description"); var el_title = el_room.querySelector(".room-name"); var lang_code = room_obj.language.slice(-2); var dom_lang = '<i class="region region-' + lang_code + '"></i>'; var new_title = "[" + lang_code + "] " + room_obj.name; el_title.innerHTML = dom_lang + " " + new_title; el_title.title = new_title; var data_jets_val = el_room.parentElement.parentElement.parentElement.attributes["data-jets"].value; el_room.parentElement.parentElement.parentElement.attributes["data-jets"].value = new_title.toLowerCase() + data_jets_val.slice(room_obj.name.length); if (swap_span_pos) { el_title.parentElement.insertBefore(el_title, el_title.parentElement.children[0]); var width_int = el_room.getBoundingClientRect().width - el_music.getBoundingClientRect().width - el_description.getBoundingClientRect().width; var width_str = Math.ceil(width_int).toString() + 'px'; el_title.style.width = width_str; } } } function processRooms(rooms_obj) { // console.log(rooms_obj); for (var i = 0; i < rooms_obj.rooms.length; i++) { processRoom(rooms_obj.rooms[i]); } } (function() { 'use strict'; let origOpen = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function() { this.addEventListener('load', function() { var url_obj = new URL(this.responseURL); if (url_obj.pathname == "/lounge" && url_obj.search == "?api=json") { processRooms(JSON.parse(this.responseText)); } }); origOpen.apply(this, arguments); }; checkEl("#lounge-refresh",0,clickRefresh); })();