// ==UserScript==
// @name HV - Clean Forum Contents
// @grant none
// @include /^https?://forums\.e-hentai\.org\/index\.php\?.*\bshowtopic=.*/
// @include /^https?://forums\.e-hentai\.org/index\.php\?.*\bresult_type=posts/
// @include /^https?://forums\.e-hentai\.org\/index\.php\?act=([Pp]ost|ST|Msg)&/
// @include /^https?://forums\.e-hentai\.org\/index\.php\?showuser=.*/
// @include /^https?://forums\.e-hentai\.org\/index\.php\?showforum=.*/
// @include http://hentaiverse.org/?s=Bazaar&ss=mm*
// @version 0.0.1.20160205083229
// @namespace https://greasyfork.org/users/2233
// @description E-H Forums Tweaks
// ==/UserScript==
var wnd = window
var doc = wnd.document
var loc = wnd.location
var href = loc.href
var $ = function(e, css) { if(!css) { css=e; e=doc }; return e.querySelector(css) }
var $$ = function(e, css) { if(!css) { css=e; e=doc }; return e.querySelectorAll(css) }
/*** Settings ***/
// For forums
var hide_pinned_threads = true
var hide_unread_imgs = true
var hide_closed_shops = true
var highlight_auctions = true
var highlight_shop_owners = true
var hide_top_area = true
var hide_bottom_area = true
var hide_last_posts = true
if(typeof wnd.do_not_hide == 'undefined') {
var do_not_hide = [ // user IDs
0,
]
} else { var do_not_hide = wnd.do_not_hide }
if(typeof wnd.wts_shop_owners_to_highlight == 'undefined') {
var wts_shop_owners_to_highlight = [ // user IDs
0,
]
} else { var wts_shop_owners_to_highlight = wnd.wts_shop_owners_to_highlight }
if(typeof wnd.wtb_shop_owners_to_highlight == 'undefined') {
var wtb_shop_owners_to_highlight = [ // user IDs
0,
]
} else { var wtb_shop_owners_to_highlight = wnd.wtb_shop_owners_to_highlight }
if(typeof wnd.wts_thread_blist == 'undefined') {
var wts_thread_blist = [ // thread IDs
0,
]
} else { var wts_thread_blist = wnd.wts_thread_blist }
if(typeof wnd.wtb_thread_blist == 'undefined') {
var wtb_thread_blist = [ // thread IDs
0,
]
} else { var wtb_thread_blist = wnd.wtb_thread_blist }
if(typeof wnd.chat_thread_wlist == 'undefined') {
var chat_thread_wlist = [ // thread IDs
0,
]
} else { var chat_thread_wlist = wnd.chat_thread_wlist }
if(typeof wnd.user_blist == 'undefined') {
var user_blist = [ // user IDs
0,
]
} else { var user_blist = wnd.user_blist }
if(typeof wnd.user_blist_wts == 'undefined') {
var user_blist_wts = [ // user IDs
0,
]
} else { var user_blist_wts = wnd.user_blist_wts }
if(typeof wnd.user_blist_wtb == 'undefined') {
var user_blist_wtb = [ // user IDs
0,
]
} else { var user_blist_wtb = wnd.user_blist_wtb }
if(typeof wnd.uname_blist == 'undefined') {
var uname_blist = [ // hide quotes by username (string)
'',
]
} else { var uname_blist = wnd.uname_blist }
// For posts
var hide_emotes = [
/\bstyle_emoticons\//,
/\/folder_post_icons\//,
/\/ehgt\/cm\//,
]
var hide_cutie_marks = true
var hide_post_count = true
var hide_warn_levels = true
var dup_edit_time = true
if(typeof wnd.uid_blist == 'undefined') {
var uid_blist = [ // hide posts by uid (integer)
0,
]
} else { var uid_blist = wnd.uid_blist }
if(typeof wnd.dont_clean == 'undefined') {
var dont_clean = [ // topic id
0,
]
} else { var dont_clean = wnd.dont_clean }
/*** End of Settings ***/
/*** The BWList script ***/
var showforum = href.match(/showforum=(\d+)/)
if(!showforum) { showforum = href.match(/&?\bf=(\d+)/) }
if(showforum) {
showforum = showforum[1]
// Hide unread imgs
if(hide_unread_imgs) {
var imgs = $$('img[src="style_images/ambience/newpost.gif"]')
for(var i=0, len=imgs.length; i<len; i++) { imgs[i].style.display = 'none' }
var imgs = $$('img[src="style_images/fusion/newpost.gif"]')
for(var i=0, len=imgs.length; i<len; i++) { imgs[i].style.display = 'none' }
}
// Hide closed shops
if(hide_closed_shops) {
if(showforum == '77' || showforum == '78') {
var lnks = $$('td.row1 > div > span > a[id^="tid-link-"]')
//var closed_patterns = /\b(close|closed|complete|(delete|del\b)|done|end|none|nothing|shut|sorry)/i
var closed_patterns = /\b(close|closed|complete|(delete|del\b)|done|end|none|nothing|shut|sorry|auction|lottery|lotto)/i
for(var i=0, len=lnks.length; i<len; i++) {
if((!/&st=/.test(href)) || (/&st=0/.test(href))) { // (probably) on the first page
if(/\b(auction|lottery|lotto)\b/i.test(lnks[i].textContent)) { continue }
}
var owner = $(lnks[i].parentNode.parentNode.parentNode.parentNode, 'td.row2 > a[href*="showuser"]')
if(do_not_hide.indexOf(parseInt(owner.href.match(/showuser=(\d+)/)[1])) != -1){ continue }
if(closed_patterns.test(lnks[i].textContent)) {
lnks[i].parentNode.parentNode.parentNode.parentNode.style.display = 'none'
continue
}
var desc = $(lnks[i].parentNode.parentNode, 'span#tid-desc-'+lnks[i].id.match(/(\d+)/)[1])
if(closed_patterns.test(desc.textContent)) {
desc.parentNode.parentNode.parentNode.parentNode.style.display = 'none'
continue
}
}
}
}
// Highlight auctions
if(highlight_auctions) {
if(showforum == '77') {
var lnks = $$('td.row1 > div > span > a[id^="tid-link-"]')
for(var i=0, len=lnks.length; i<len; i++) {
if(/\b(auction|lottery|lotto)\b/i.test(lnks[i].textContent)) {
var owner = $(lnks[i].parentNode.parentNode.parentNode.parentNode, 'td.row2 > a[href*="showuser"]')
if(owner.style.color == '') { owner.style.color = 'blue'}
}
}
}
}
// Highlight shop owners
if(highlight_shop_owners) {
var fav = []
if(showforum == '77') { fav = wts_shop_owners_to_highlight } // WTS
else if(showforum == '78') { fav = wtb_shop_owners_to_highlight } // WTB
var owner = $$('td.row2 > a[href*="showuser"]')
for(var i=0, len=owner.length; i<len; i++) {
//if((fav.indexOf(owner[i].textContent) != -1) && (owner[i].style.color == '')) { owner[i].style.color = 'red' }
for(var j=0, len_j=fav.length; j<len_j; j++) {
if((new RegExp('showuser='+fav[j]+'\\b').test(owner[i].href)) && (owner[i].style.color == '')) {
owner[i].style.color = 'red'
break
}
}
}
}
// Hide specified forum threads
var thread_blist = thread_wlist = []
if(showforum == '76') { thread_wlist = chat_thread_wlist } // Chat
else if(showforum == '77') { thread_blist = wts_thread_blist } // WTS
else if(showforum == '78') { thread_blist = wtb_thread_blist } // WTB
if(thread_blist.length) {
for(var i=0, len=thread_blist.length; i<len; i++) {
try { $('#tid-link-'+thread_blist[i]).parentNode.parentNode.parentNode.parentNode.style.display = 'none' } catch(e) {}
}
}
else if(thread_wlist.length) {
var lnks = $$('td.row1 > div > span > a[id^="tid-link-"]')
for(var i=0, len=lnks.length; i<len; i++) {
if(!/^tid-link-/.test(lnks[i].id)) { continue }
var tid = parseInt(lnks[i].id.match(/tid-link-(\d+)/)[1])
if(thread_wlist.indexOf(tid)==-1) {
try { lnks[i].parentNode.parentNode.parentNode.parentNode.style.display = 'none' } catch(e) {}
}
}
}
// Hide threads made by specific users on any subforums
if(user_blist.length) {
var users = $$('td.row2 > a[href*="showuser"]')
for(var i=0, len=users.length; i<len; i++) {
for(var j=0, len_j=user_blist.length; j<len_j; j++) {
//if((new RegExp('showuser='+user_blist[j]+'\\b').test(users[i].href)) && (users[i].style.color == '')) {
if(new RegExp('showuser='+user_blist[j]+'\\b').test(users[i].href)) {
//if(!/\bauction\b/i.test(users[i].parentNode.parentNode.querySelectorAll('.row1')[2].textContent)) {
//users[i].parentNode.parentNode.style.display = 'none'
//}
users[i].parentNode.parentNode.style.display = 'none'
break
}
}
}
}
// Hide threads made by specific users on WTS
if(user_blist_wts.length) {
if(showforum == '77') {
var users = $$('td.row2 > a[href*="showuser"]')
for(var i=0, len=users.length; i<len; i++) {
for(var j=0, len_j=user_blist_wts.length; j<len_j; j++) {
//if((new RegExp('showuser='+user_blist_wts[j]+'\\b').test(users[i].href)) && (users[i].style.color == '')) {
if(new RegExp('showuser='+user_blist_wts[j]+'\\b').test(users[i].href)) {
if(!/\bauction\b/i.test(users[i].parentNode.parentNode.querySelectorAll('.row1')[2].textContent)) {
users[i].parentNode.parentNode.style.display = 'none'
}
break
}
}
}
}
}
// Hide threads made by specific users on WTB
if(user_blist_wtb.length) {
if(showforum == '78') {
var users = $$('td.row2 > a[href*="showuser"]')
for(var i=0, len=users.length; i<len; i++) {
for(var j=0, len_j=user_blist_wtb.length; j<len_j; j++) {
//if((new RegExp('showuser='+user_blist_wtb[j]+'\\b').test(users[i].href)) && (users[i].style.color == '')) {
if(new RegExp('showuser='+user_blist_wtb[j]+'\\b').test(users[i].href)) {
if(!/\bauction\b/i.test(users[i].parentNode.parentNode.querySelectorAll('.row1')[2].textContent)) {
users[i].parentNode.parentNode.style.display = 'none'
}
break
}
}
}
}
}
}
/*** End of the BWList script ***/
if(/act=post/i.test(href)) {
var ids = $$('.row2:first-child')
for(var i=0, len=ids.length; i<len; i++) {
if(uname_blist.indexOf(ids[i].textContent) != -1) {
ids[i].parentNode.style.display = 'none'
try { ids[i].parentNode.nextSibling.style.display = 'none' } catch(e) {}
try { ids[i].parentNode.nextSibling.nextSibling.style.display = 'none' } catch(e) {}
}
}
}
else if(/:\/\/forums\./.test(href)) {
if(/(showtopic=\d+)|(\bresult_type=posts)/.test(href)) {
// Hide posts
var hide_this = true
if(/showtopic=\d+/.test(href) && (dont_clean.indexOf(parseInt(href.match(/showtopic=(\d+)/)[1])) != -1)) { hide_this = false }
if(hide_this) {
var borderwrap = $$('.borderwrap')
for(var i=0, len=borderwrap.length; i<len; i++) {
var is_post = ($(borderwrap[i], '.postcolor') != null)
if(is_post) {
var uid = $(borderwrap[i], 'a[href^="http://forums.e-hentai.org/index.php?showuser="], a[href^="https://forums.e-hentai.org/index.php?showuser="]')
if(uid) {
uid = parseInt(uid.href.match(/\?showuser=(\d+)/)[1])
if(uid_blist.indexOf(uid) != -1) {
borderwrap[i].style.display = 'none'
try {
if(/(BR|TABLE)/.test(borderwrap[i].previousSibling.previousSibling.tagName)) {
borderwrap[i].previousSibling.previousSibling.style.display = 'none'
}
} catch(e) {}
try {
if(borderwrap[i].previousSibling.previousSibling.previousSibling.tagName == 'BR') {
borderwrap[i].previousSibling.previousSibling.previousSibling.style.display = 'none'
}
} catch(e) {}
try {
if(/(BR|TABLE)/.test(borderwrap[i].nextSibling.nextSibling.tagName)) {
borderwrap[i].nextSibling.nextSibling.style.display = 'none'
}
} catch(e) {}
try {
if(borderwrap[i].nextSibling.nextSibling.nextSibling.tagName == 'BR') {
borderwrap[i].nextSibling.nextSibling.nextSibling.style.display = 'none'
}
} catch(e) {}
}
}
}
}
}
}
else if(/showforum=\d+/.test(href)) {
if(hide_pinned_threads) {
var divs = document.querySelectorAll('tr>td.row1>div')
if(divs) {
for(var i=divs.length-1; i>=0; i--) { if(/Pinned:/.test(divs[i].textContent)) { divs[i].parentNode.parentNode.style.display = 'none' } }
}
}
}
}
else if(/&ss=mm$/.test(href) || /&filter=inbox/.test(href)) {
var letters = $$('#mainpane tr[onclick]')
for(var i=0, len=letters.length; i<len; i++) {
if(uname_blist.indexOf(letters[i].querySelector('td').textContent) != -1) {
letters[i].style.display = 'none'
}
}
}
// Hide quotes
if(/:\/\/forums\./.test(href)) {
var p = new RegExp('^QUOTE\\((' + uname_blist.join('|') + ') @', 'i')
var postcolor = $$('.postcolor')
for(var i=0, len=postcolor.length; i<len; i++) {
var quotetop = $$(postcolor[i], '.quotetop')
for(var j=0, len2=quotetop.length; j<len2; j++) {
if(p.test(quotetop[j].textContent)) {
quotetop[j].style.display = 'none'
try { quotetop[j].nextSibling.style.display = 'none' } catch(e) {}
try { if(quotetop[j].nextSibling.nextSibling.tagName == 'BR') { quotetop[j].nextSibling.nextSibling.style.display = 'none' } } catch(e) {}
try { if(quotetop[j].nextSibling.nextSibling.nextSibling.tagName == 'BR') { quotetop[j].nextSibling.nextSibling.nextSibling.style.display = 'none' } } catch(e) {}
try { if(quotetop[j].nextSibling.nextSibling.nextSibling.nextSibling.tagName == 'BR') { quotetop[j].nextSibling.nextSibling.nextSibling.nextSibling.style.display = 'none' } } catch(e) {}
try { if(quotetop[j].nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.tagName == 'BR') { quotetop[j].nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.style.display = 'none' } } catch(e) {}
}
}
}
}
// Hide emotes
if(hide_emotes.length >= 1) {
var imgs = $$('IMG')
for(var i=imgs.length-1; i>=0; i--) {
for(var a=0, len=hide_emotes.length; a<len; a++) {
if(hide_emotes[a].test(imgs[i].src)) {
imgs[i].style.display = 'none'
break
}
}
}
}
// Hide cutie marks
if(hide_cutie_marks) {
if(/:\/\/forums\./.test(href)) {
var div = $$('DIV[style*="url(http://forums.e-hentai.org/ehgt/cm/"], DIV[style*="url(https://forums.e-hentai.org/ehgt/cm/"]')
for(var i=0, len=div.length; i<len; i++) { div[i].style.display = 'none' }
}
}
// Hide post counts
if(hide_post_count) {
if(/:\/\/forums\./.test(href)) {
var a = $$('a[onclick^="link_to_post("]')
for(var i=0, len=a.length; i<len; i++) { a[i].text = '#' }
}
}
// Hide warn levels
if(hide_warn_levels) {
if(/:\/\/forums\./.test(href)) {
var w = $$('img[src*="style_images/ambience/warn"]')
for(var i=0, len=w.length; i<len; i++) {
w[i].style.display = 'none'
try { w[i].previousSibling.textContent = '' } catch(e) {}
try { w[i].previousSibling.previousSibling.textContent = '' } catch(e) {}
try { w[i].previousSibling.previousSibling.previousSibling.textContent = '' } catch(e) {}
try {
var spacer = w[i].parentNode.parentNode.querySelectorAll('img[src*="style_images/ambience/spacer."]')
for(var j=0, len2=spacer.length; j<len2; j++) {
spacer[j].style.display = 'none'
}
} catch(e) {}
}
}
}
// Duplicate last edit time to the top of a post
if(dup_edit_time) {
if(/showtopic=\d+/.test(href) && !/&st=/.test(href)) {
var posts = $$('*[id^="post-main-"]')
for(var i=0, len=posts.length; i<len; i++) {
var edit = $(posts[i], '.edit')
if(edit) {
var last_edit_time = edit.textContent.match(/^This post has been edited by .*: (.*)/)[1]
posts[i].innerHTML = '<p>Last Edited: ' + last_edit_time + '</p><br>' + posts[i].innerHTML
}
}
}
}
// Hide top area
if(hide_top_area) {
if(/(showtopic=\d+)|(\bresult_type=posts)/.test(href) && !/act=Msg/i.test(href)) {
var hide_this = true
var topic_id = href.match(/showtopic=(\d+)/)
if(topic_id) { if(dont_clean.indexOf(parseInt(topic_id[1])) != -1) { hide_this = false } }
if($('h3')) { hide_this = false }
if(hide_this) {
if(!/&st=/.test(href)) {
try {
var e = $('.pagecurrent')
var e2 = e.parentNode.parentNode.parentNode.parentNode.parentNode
if(e2 && e2.className == 'ipbtable') { e2.style.display = 'none' }
else { e.parentNode.style.display = 'none' }
} catch(e) {}
try { $$('img[src$="style_images/ambience/cat_top_ls.gif"]')[1].parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none' } catch(e) {}
try { $('.subtitle').parentNode.style.display = 'none' } catch(e) {}
}
try { $('td[style*="background-image:url(style_images/ambience/header_eh_textbarbg.jpg)"]').parentNode.parentNode.parentNode.style.display = 'none' } catch(e) {}
try { $('table.mainnav').style.display = 'none' } catch(e) {}
try { $('img[src$="style_images/ambience/cat_top_ls.gif"]').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none' } catch(e) {}
try { $('#userlinks').style.display = 'none' } catch(e) {}
try { $('img[src$="style_images/ambience/ls_main_table_bottom.gif"]').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none' } catch(e) {}
try { $('#navstrip').parentNode.style.display = 'none' } catch(e) {}
try { $('img[src$="style_images/ambience/nav_m.gif"]').parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none' } catch(e) {}
}
}
}
// Hide bottom area
if(hide_bottom_area) {
if(/:\/\/forums\./.test(href) && !/act=Msg/i.test(href)) {
try { $('.borderwrap .formsubtitle').parentNode.style.display = 'none' } catch(e) {}
try { $('.borderwrap .dropdown').parentNode.parentNode.parentNode.parentNode.style.display = 'none' } catch(e) {}
try { $('.copyright').style.display = 'none' } catch(e) {}
try { $$('img[src*="style_images/ambience/expand_main_table."]')[0].parentNode.parentNode.style.display = 'none' } catch(e) {}
try { $$('img[src*="style_images/ambience/expand_main_table."]')[1].parentNode.parentNode.style.display = 'none' } catch(e) {}
}
}
// Hide last posts
if(hide_last_posts) {
if(/showforum=/.test(href)) {
var f_hide_last_posts = function() {
//var a = $$('span.lastaction a[href^="http://forums.e-hentai.org/index.php?showuser="], span.lastaction a[href^="https://forums.e-hentai.org/index.php?showuser="]')
var a = $$('span.lastaction a[href$="&view=getlastpost"]')
for(var i=0, len=a.length; i<len; i++) {
var e = doc.createElement('a')
e.text = 'Last'
e.href = a[i].href
a[i].parentNode.parentNode.appendChild(e)
a[i].parentNode.parentNode.removeChild(a[i].parentNode)
}
}
f_hide_last_posts()
//setTimeout(f_hide_last_posts, 1000)
//setTimeout(f_hide_last_posts, 2000)
//setTimeout(f_hide_last_posts, 3000)
//setTimeout(f_hide_last_posts, 4000)
//setTimeout(f_hide_last_posts, 5000)
}
}