您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Prida filtr podle regionu do chatu na Amaterech
// ==UserScript== // @name Region filter // @namespace mod.amateri.com // @version 0.4 // @description Prida filtr podle regionu do chatu na Amaterech // @author pe2pi // @match https://www.amateri.com/chat-ws/?* // @match https://www.amateri.com/chat-ws/right* // @match https://www.amateri.com/chat-ws/bottom* // ==/UserScript== var chat_dir = "/chat-ws"; //////////// insert select box if(location.pathname == chat_dir + "/right.php" || location.pathname == chat_dir + "/bottom.php") { var regionSelectUsers = document.createElement ('select'); var regionSelectChat = document.createElement ('select'); /*jshint multistr: true */ regionSelectChat.innerHTML = regionSelectUsers.innerHTML = '\ <select>\ <option value="all">všechny</option> \ <option value="Hlavni Mesto Praha" >Hlavni Mesto Praha</option> \ <option value="Jihomoravsky Kraj" >Jihomoravsky Kraj</option>\ <option value="Jihocesky Kraj" >Jihocesky Kraj</option>\ <option value="Vysocina" >Vysocina</option>\ <option value="Karlovarsky Kraj" >Karlovarsky Kraj</option>\ <option value="Kralovehradecky Kraj" >Kralovehradecky Kraj</option>\ <option value="Liberecky Kraj" >Liberecky Kraj</option>\ <option value="Olomoucky Kraj" >Olomoucky Kraj</option>\ <option value="Moravskoslezsky Kraj" >Moravskoslezsky Kraj</option>\ <option value="Pardubicky Kraj" >Pardubicky Kraj</option>\ <option value="Plzensky Kraj" >Plzensky Kraj</option>\ <option value="Stredocesky Kraj" >Stredocesky Kraj</option>\ <option value="Ustecky Kraj" >Ustecky Kraj</option>\ <option value="Zlinsky Kraj" >Zlinsky Kraj</option>\ </select>\ '; // User region filter if(location.pathname == chat_dir + "/right.php"){ regionSelectUsers.setAttribute("id", "reSelectUser"); regionSelectUsers.setAttribute("onchange", "top.setCookie('region_users', this.value);parent.userListRegenerate();"); var online_talk = document.getElementById("online_talk"); regionSelectUsers.value = decodeURI(readCookie("region_users", "all")); online_talk.parentNode.insertBefore(regionSelectUsers, online_talk); } // Chat region filter if(location.pathname == chat_dir + "/bottom.php"){ regionSelectChat.setAttribute("id", "reSelectChat"); regionSelectChat.setAttribute("onchange", "top.setCookie('region_chat', this.value);parent.chat_reset_f(parent.smer)"); var filter_bar = document.getElementById("p4").parentNode; regionSelectChat.value = decodeURI(readCookie("region_chat", "all")); filter_bar.appendChild(regionSelectChat); } } function readCookie(name, def) { match = document.cookie.match(new RegExp(name + '=([^;]+)')); if (match) return match[1]; else return def; } /////////// Fixed user adding function newUserAddProcess(u) { u.a=u.a | 0; u.w=(u.w!=undefined) ? u.w : 0; u.w=u.w.toString(); var pole6a=u.w.substring(0,1); var pole6b=u.w.substring(1,2); if(u.i==uid) my_webcam=pole6a; var mymsg; var is_watcher=my_webcam>1 ? search_sorted_array(watching_user,u.i) : 0; var is_kecalek=u.lasttalk>=(srvTime-kecalekTime); var is_pritel=fav.length-1>0 && search_array(fav,u.i); var has_webcam=(pole6a>1 && (pole6b!=4 || (fav_reverse.length-1>0 && search_array(fav_reverse,u.i)) || u.i==uid)) ? 2 : 0; var canKick = (spravce > (u.a | 0) && uid!=u.i) || (parent.room_spr==uid && u.a==0 && uid!=u.i) ? true : false; var html_tmp='<li class="online'+u.p+'" '+(is_watcher ? 'style="list-style-image: url(img/kouka.jpg)"' : '')+'><span '+(my_webcam>1 ? '' : '')+'>'+(has_webcam ? '<a href="#" onclick="return false" onmouseover="parent.show_menu('+u.i+',parent.getY(this),parent.getX(this),\''+u.n+'\',\''+sess+'\',\''+roomid+'\',\''+volume+'\',\''+(pole6a==3 ? 1 : 0)+'\',\''+pole6b+'\')" onmouseout="setTimeout(\'parent.hide_menu()\',500)"><img src="img/'+(pole6a==3 ? "sluchatka" : "webka")+'.gif" width="'+(pole6a==3 ? "16" : "20")+'" height="11" border="0" style="position:relative;top:2px;margin-right:2px;"></a>' : '')+'<a href="/user/'+u.i+'/'+u.n+'" class="online'+u.p+'" onmouseover="parent.showInfo('+u.i+',parent.getY(this)-parent.getScrollXY(window)[1])" onmouseout="parent.hideInfo()" target="_blank" id="nick'+u.i+'">'+u.n+'</a>'+(is_kecalek ? " [<a href='#' title='"+msg52+"' class=\"online"+u.p+"\" onclick='parent.removeLastTalk("+u.i+");return false'>x</a>]" : "")+(septani ? ' <a href="#" onclick="parent.chatsm(\''+u.n+'\',\''+u.i+'\');return false" title="'+msg51+'"><img style="position:relative;top:4px;margin-right:1px" src="img/chat_new2.gif" width="14" height="14" border="0"></a>' : '')+(u.c>0 ? '<img style="position:relative;top:1px;" src="img/certifikace.gif" width="16" height="11" border="0" alt="'+msg50+'">' : '')+(u.r>0 ? '<a href="/vip" target="_blank" title="'+msg49+'"><img style="position:relative;top:1px;" src="img/vip_chat.gif" width="16" height="11" border="0"></a>' : '')+(u.g>0 ? '<a href="/user/album/'+u.i+'" target="_blank"><img style="position:relative;top:1px;" src="img/galerie.gif" width="16" height="11" border="0" alt="'+msg48+'"></a>' : '')+(canKick ? '<a href="#" onclick="parent.kick_dialog('+u.i+',\''+u.n+'\')" style="text-decoration:none" title="'+sprintf(msg47,u.n)+'"><img style="position:relative;top:1px;" src="img/odejit.gif" width="16" height="11" border="0"></a>' : '')+'</span>'; var e = right.document.getElementById("reSelectUser"); var reSelected = "all"; if(e != undefined) reSelected = e.options[e.selectedIndex].value; userDeleteProcess(u.i); if (is_kecalek) { u.list = 1; mymsg = msg53; } else if (is_pritel) { u.list = 2; if (!search_sorted_array(friends, u.i)) { friends.push(u.i); friends.sort(); if (!userRoomEnterFirstRead) nKamarad(u.i, u.n, u.p, u.pf); } mymsg = msg54; } else if (is_watcher) { u.list = 0; mymsg = msg57; } else { u.list = 3; mymsg = msg56; } if (right_loaded) { if (kateg[u.p - 1] == 1 && webcam_kateg[has_webcam] == 1 && (u.re==reSelected || reSelected=="all")){ var node_div = right.document.createElement("UL"); node_div.id = 'usr' + u.i; node_div.className = 'chat__list'; node_div.innerHTML = html_tmp; var el = right.document.getElementById(listName[u.list]); if (el!=undefined && el != null) { var div_arr = el.getElementsByTagName('UL'); if (div_arr.length != users_order[u.list].length) { var old = checkAllowed; checkAllowed = 1; checkUserList(u.list); checkAllowed = old; div_arr = el.getElementsByTagName('UL'); } var pos = search_users(u.i) + 1; users_order[u.list].splice(pos, 0, [u[order_param], u.i]); var div_cnt = div_arr.length; if (div_cnt == 0 || div_cnt == pos) { el.appendChild(node_div); } else { try { el.insertBefore(node_div, div_arr[pos]); } catch (e) { el.appendChild(node_div); } } if (animate_users && !userRoomEnterFirstRead) animate('nick' + u.i, animation_color[u.p - 1]); el.style.display = 'inline'; right.document.getElementById('cnt' + u.list).innerHTML = '(' + users_order[u.list].length + ')'; } } } } //var origUserAddProcess = unsafeWindow.userAddProcess; userAddProcess = function(u) { return newUserAddProcess(u); //return origUserAddProcess(u); }; ///////////////// Chat Filter - fix isPrintable var newIsPrintable = function(type, userId, fromNick, messageObject){ var e = bottom.document.getElementById("reSelectChat"); var reSelected = "all"; if(e != undefined) reSelected = e.options[e.selectedIndex].value; var skip_text = false; if (type=='system' && (syst_mess == 0 || jen_o_me)){ skip_text = true; } if (userId!=self.uid && (jen_kamaradi || (type=='system' && syst_mess > 0))) { if (!search_array(fav, userId)) { skip_text = true; } } if (type=='message'){ if (fromNick && search_sorted_array(ignore_user, fromNick.toString().toLowerCase())){ return false; } if (jen_o_me){ skip_text = true; if (messageObject.from_id == self.uid || messageObject.to_id == self.uid){ skip_text = false; } else if (messageObject.text.slice(0, self.user.toString().length+1).toLowerCase() == self.user.toString().toLowerCase()+':'){ skip_text = false; } } if(reSelected != "all"){ if(users[userId].re != reSelected){ skip_text = true; } if (messageObject.from_id == uid || messageObject.to_id == uid){ skip_text = false; } else if (messageObject.text.slice(0, user.toString().length+1).toLowerCase() == user.toString().toLowerCase()+':'){ skip_text = false; } } } return !skip_text; }; isPrintable = function(type, userId, fromNick, messageObject) { return newIsPrintable(type, userId, fromNick, messageObject); };