// ==UserScript==
// @name 巴哈姆特 - 高亮樓主
// @description 如題
// @namespace gamer_lz
// @author Covenant
// @version 1.0.4
// @license MIT
// @homepage
// @match https://forum.gamer.com.tw/C.php?bsn=*
// @exclude https://forum.gamer.com.tw/C.php?bsn=*&s_author=*
// @icon data:image/x-icon;base64,AAABAAIAICAAAAEACACoCAAAJgAAABAQAAABAAgAaAUAAM4IAAAoAAAAIAAAAEAAAAABAAgAAAAAAIAEAAAAAAAAAAAAAAABAAAAAAAA////APb29gDw8PAA4+PjAN3d3ADMzMwAxsbGALu7uwCysrIAqqqqAKOjowCZmZkAiIiIAHh4dgBvb28AZmZmAFhYWABSUlEASkpKAEFBQQAzMzMAJycoAAUFBQAAAAAAAgH+AFpNLABwaT8AkIAtAK6aLwCzokkAoJZjAMGzZQDPxpYA49y3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcMDBMMBxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcIERAIFxcXBBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCBERFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwgQDxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXEBIIFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwgQEBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCBASFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcIEBAXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwgQEAkXFxcXFxcXFxcEFxcXFxcXFxcXFxcXFxcXFxcXFxAQDBcXFxcXFxcXFwwXFxcXFxcXFxcXFxcXFxcXFxcXCA4QCBcXFxcXFwkOFxcXFxcXFxcXFxcXFxcXFxcXFxcXCA8SEAwXFwwODBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCBISEw4MDwgXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFw4QFxcXFxcXFxcXFxcXChEREQoXFxcJCQ4OEhIRERMXFw4QEQkXFxcXFxcXFxcXFxcKEREREREREwkXCQkJERAQCgoREBcXFxcXFxcXFxcXFxcXChcKFwoXFxcXFxcJChERERERDBcMCRcMEhcXFxcXFxcXFxcXFxcXFxcRFxcXCQoRERERDBMSEhEcFxcXFxcXFxcXFxcXFxcXFwoRCRcXAwoREREREBocFxcXFxcXFxcXFxcXCRECFxcXChMTEREREBERHBERCRcXFxcXFxcXFxcXFxcXChEJCQkREREREREREREcAgsPCRIXFxcXFxcXFxcXFxcXChERERERERERERERExwXFwwSCRIXFxcXFxcXFxcXFxcNERERERERERERERERHBcKEgoSFxcXFxcXFxcXFxcXChEREREREREREREREREUERcXFxcXFxcXFxcXFxcXCg0NERERERERERERERERDQ0cCBIXFxcXFxcXFwoKDRERERERERERERERERENDQ0cHBwdIRcXFwoTEhEQERESEhINDQ0NDQ0NDQ0NDQ0cHBwdFxcXFxcXFxcXFxcXFxchHBwcHBweHh4eHBwcHBwhFxcXFxcXFxcXFxcXFxchHBwcHBwcHBwcHBwcHCEXFxcXFxcXFxcXFx8fHhwcHBwcHBwcHBweHyEhFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxf////////wf///w7///4////8f////H////j////4////+P////h/3//8f9///D8///4Mf///AP///8//BwBh/+AIAf/6vwCT//3AA//8YA//HAAf/4AAB//AAMP/wACH/4AAf/4AAB/gAAAcAAAA//wAA//wAB/8AAH///////ygAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAAAAAAAAAAAAEAAAAAAAD///8A////APDw8ADj4+MA3d3cAMzMzADGxsYAu7u7ALKysgCqqqoAo6OjAJmZmQCIiIgAeHh2AG9vbwBmZmYAWFhYAFJSUQBKSkoAQUFBADMzMwAnJygABQUFAAAAAAACAf4AWk0sAHBpPwCQgC0ArpovALOiSQCglmMAwbNlAM/GlgDj3LcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxcXFxcXFxcGDAgIFxcXFxcXFxcXFxcEERcXFwgXFxcXFxcXFxcEEAUXFxcXFxcXFxcXFxcXCBAXFxcXFxcXFxcXFxcXFwgQFxcXFxcGFxcXFxcXFxcEEAwXFxcMFxcXFxcXFxcXFwgSDA8OBBcXFwwXFxcXFxcXCBAPFxcXBhcXCgwLDA0NDQoIEQ8IBQ0XFxcGFwkXFw0PDxEREwwXFxcXFxcXFwwKFw8RHBEJFxcXFxcXDAkXDxEREREXEgcSFxcXFxcMEREREREPFwgSFwYODRERERERDxwcHBwPFxcXFyEfHxwcHBwcICEXFxcXIRwcHBwcHCAhFxcXFxcXF/8P///+d////H////z////8+////Hf///4H//9/Hf//gAH//9YD///8g///8gj///gJ//8AA///wA///wB///8=
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_registerMenuCommand
// @run-at document-end
// @noframes
// ==/UserScript==
function create_style(innerText,class_name){
var style=document.createElement("style");
if(Array.isArray(class_name)){
for(let i=0; i<class_name.length; i++){style.classList.add(class_name[i]);}
}
else if(typeof class_name==='string'){style.classList.add(class_name);}
style.textContent=innerText;
style.title="user_gm_css";
document.body.appendChild(style);
return style;
}
var style_font_face=create_style("@font-face{font-family: 'color_emoji';src: local('Segoe UI Emoji'),local('Noto Color Emoji');}\n",["user_gm_css","font_face","css_gamer"]);
style_font_face.textContent+="@font-face{font-family: 'symbol_emoji';src: local('Segoe UI Symbol');}\n@font-face{font-family: 'old_emoji';src: local('Noto Color Emoji');}\n";
style_font_face.textContent+="@font-face{font-family: 'DroidSans_Mono';src: local('DroidSansMono');}\n@font-face{font-family: 'Cutive_Mono';src: local('Cutive Mono');}\n";
style_font_face.textContent+="@font-face{font-family: 'Roboto_2';src: local('Roboto');}\n@font-face{font-family: 'Noto_Serif';src: local('NotoSerif');}\n@font-face{font-family: 'Dancing_Script';src: local('DancingScript');}\n";
var font_family_panel="font-family: 'Noto Sans Mono','Noto Mono','Consolas','DroidSans_Mono','symbol_emoji','Noto Color Emoji','Noto Sans CJK JP','Meiryo','Yu Gothic','Microsoft JhengHei','old_emoji',sans-serif;";
var style=create_style(".user_a_panel_12px{display: inline-block;min-width: 5em;line-height: 1.5em;padding: 0.1rem 0.5rem;"+font_family_panel+"font-weight: 100;font-size: 0.75rem;}\n",["user_gm_css","css_gamer"]);
style.textContent+=".user_a_panel_12px{color: #FFFFFF;background: #303030;border-style: outset;border-color: #707070; border-radius: 4px;}\n";
style.textContent+=".float_right{float: right;}";
function create_div(class_name,is_appendChild,node,refNode){
var div=document.createElement("div");
if(Array.isArray(class_name)){
for(let i=0; i<class_name.length; i++){div.classList.add(class_name[i]);}
}
else if(typeof class_name==='string'){div.classList.add(class_name);}
div.style.backgroundSize='contain';
div.style.backgroundRepeat='no-repeat';
if(is_appendChild){
node.appendChild(div);
}
else{node.insertBefore(div, refNode);}
return div;
}
function create_a(text,url,class_name,is_appendChild,node,refNode){
var anchor=document.createElement("a");
anchor.href=url;
anchor.innerText=text;
anchor.title=text;
if(Array.isArray(class_name)){
for(let i=0; i<class_name.length; i++){anchor.classList.add(class_name[i]);}
}
else if(typeof class_name==='string'){anchor.classList.add(class_name);}
anchor.target="_blank";
if(is_appendChild){
node.appendChild(anchor);
}
else{node.insertBefore(anchor, refNode);}
return anchor;
}
function create_i(innerText,class_name,is_appendChild,node,refNode){
var italic=document.createElement("i");
if(Array.isArray(class_name)){
for(let i=0; i<class_name.length; i++){italic.classList.add(class_name[i]);}
}
else if(typeof class_name==='string'){italic.classList.add(class_name);}
italic.innerText=innerText;
if(is_appendChild){
node.appendChild(italic);
}
else{node.insertBefore(italic, refNode);}
return italic;
}
function fn_url(url){
var str_url=new URL(url);
var params=new URLSearchParams(str_url.search);
return [str_url,params];
}
//console.log("break");
(function() {
'use strict';
let url=fn_url(document.location);
let c_section=document.querySelectorAll('section.c-section');
for(let i=0; i<c_section.length; i++){//臨時添加功能,能用多久我也不知道
if(c_section[i].id.search(/post_/i)==0){//確認是樓層
let userid=c_section[i].querySelectorAll('.userid')[0].innerText;//各樓層id
let c_post__header__info=c_section[i].querySelectorAll('.c-post__header__info')[0];
create_a("🔗 B.php?qt=6","https://forum.gamer.com.tw/Bo.php?bsn="+url[1].get('bsn')+"&qt=6&q="+userid,["float_right","user_a_panel_12px"],true,c_post__header__info);
}
}
let c_post=document.querySelectorAll('.c-post');
if(c_post.length>0&&(url[1].get('page')==null||url[1].get('page')=="1")){//需要判斷是不是第一頁
let post__header__title=c_post[0].querySelectorAll('h1')[0].innerText;//標題
let lz=c_post[0].querySelectorAll('.userid')[0].innerText.toLowerCase();//樓主id
if(post__header__title.search("RE:")!=0){
for(let i=0; i<c_post.length; i++){
let userid=c_post[i].querySelectorAll('.userid')[0].innerText;//各樓層id
if(userid.toLowerCase()==lz){
let userlevel=c_post[i].parentNode.querySelectorAll('div.userlevel')[0];
let div_mark=create_div("b-mark",true,c_post[i].parentNode);
if(userlevel.classList.contains('senior')){
div_mark.classList.add("b-mark--update");
}
else{
div_mark.classList.add("b-mark--feature");
}
div_mark.title="樓主";
create_i("\uE838","material-icons",true,div_mark).classList.add("feature");
}
}
}
else{//標題有"RE:",視為吃樓
let floor=c_post[0].querySelectorAll('div>a.floor')[0].innerText;
if(floor=="樓主"){//在&last=1的情況下,需要檢測是不是第一頁
let userlevel=c_post[0].parentNode.querySelectorAll('div.userlevel')[0];
let div_mark=create_div("b-mark",true,c_post[0].parentNode);
if(userlevel.classList.contains('senior')){
div_mark.classList.add("b-mark--update");
}
else{
div_mark.classList.add("b-mark--feature");
}
div_mark.title="吃樓";
create_i("\uE5D8","material-icons",true,div_mark).classList.add("raise");
}
}
}
})();