🏠 Home 

Group Leader Enhancement Suit

An userscript to manage HF groups


Install this script?
// ==UserScript==
// @name         Group Leader Enhancement Suit
// @namespace    Remix
// @version      0.1
// @description  An userscript to manage HF groups
// @author       Remix
// @require      https://code.jquery.com/jquery-2.1.4.min.js
// @require      https://openuserjs.org/src/libs/sizzle/GM_config.js
// @include      http://hackforums.net/*
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_xmlhttpRequest
// ==/UserScript==
blackListColor = GM_getValue('blackListColor', '#F44336');
shinyColor = GM_getValue('shinyColor', '#FFCC00');
shinyUsers = [];
//url = 'http://grouptoolkit.ub3r.org/bl_api.php';
url = GM_getValue('blackListUrl', '');
console.log(url);
if(url != '')
GM_xmlhttpRequest({
method: "GET",
url: url+'?action=read',
onload: function(response){
var arr = JSON.parse(response.responseText);
arr.splice(arr.length-1, 1);
GM_setValue('blackListedMembers', arr);
},
});
blackListedMembers = GM_getValue('blackListedMembers', []);
$(document).ready(function() {
if(location.href.indexOf('usercp.php?action=options') > -1) {
$('input#invisible').parent().parent().parent().parent().parent().parent().parent().parent().parent().after('<br><table border="0" cellspacing="1" cellpadding="4" class="tborder"><tbody><tr><td class="thead" colspan="2"><strong>GLES Settings</strong></td></tr><tr><td width="50%" class="trow1" valign="top"><fieldset class="trow2"><legend><strong>Management</strong></legend><table cellspacing="0" cellpadding="4"><tbody><tr><td><span class="smalltext"><label for="activityCheckLink">Activity check:</label></span></td><td><input name="activityCheckLink" id="activityCheckLink" placeholder="Link"></td><td width="1"><input id="activityCheckGID" placeholder="Group ID"></td><td><input type="button" id="activityCheckBtn" class="button" value="Run"></td></tr><tr><td><span class="smalltext"><label for="activityCheckLink">Blacklist URL:</label></span></td><td><input name="blackListLink" id="blackListLink" value="'+url+'"></td></tr></tbody></table></td></tr></tbody></table>');
$('input[class="button"][name="regsubmit"]').on('click', function() {
GM_setValue('blackListUrl', $('#blackListLink').val());
});
$('#activityCheckBtn').on('click', function() {
var gid = $('#activityCheckGID').val();
var link = $('#activityCheckLink').val();
if(gid.length === 0 || link.length === 0)
return;
var tid = link.replace(/[^0-9]/g, '');
$.get('http://hackforums.net/misc.php?action=whoposted&tid=' + tid, function(data) {
var posted = [];
$('body').append('<div style="display:none" id="result"></div>');
$('#result').html(data);
$('#result span[class*="group"]').each(function() {
posted.push($(this).parent().prop('href').replace(/[^0-9]/g, ''));
});
GM_setValue('postedUsers', posted);
window.location = 'http://hackforums.net/managegroup.php?gid=' + gid;
});
});
/*** Activity check end ***/
} else if (location.href.indexOf('managegroup.php?gid=') > -1) {
/*** Mouse hover color ***/
$('a[href*="private.php?action=send"]').parent().parent().hover(function() {
$(this).children().css('background-color', '#393939');
}, function() {
$(this).children().css('background-color', '');
});
/*** Mouse hover color end ***/
/*** Activity check begin ***/
var posted = GM_getValue('postedUsers', []);
if(posted.length > 0) {
$('input[type="checkbox"][name*="removeuser"]').each(function() {
$(this).prop('checked', true);
$(this).parent().parent().children().css('background', 'rgb(36, 36, 36)');
});
posted.forEach(function(uid) {
var checkbox =  $('input[type="checkbox"][name*="removeuser['+uid+']"]');
$(checkbox).prop('checked', false);
$(checkbox).parent().parent().children().css('background', '');
});
GM_setValue('postedUsers', []);
}
/*** Activity check end ***/
/*** Blacklist ***/
blackListedMembers.forEach(function(uid) {
$('a[href*="member.php?action=profile&uid=' + uid + '"]').parent().parent().children().css('background-color', blackListColor);
});
/*** Blacklist end ***/
/*** Check all members ***/
//$('table tbody tr:nth-child(2) td:last-child').append('<a href="javascript:void(0)" id="selectAllMembers">Check All</a>');
$('#selectAllMembers').on('click', function() {
$('input[type="checkbox"][name*="removeuser"]').each(function(box) {
if($(this).prop('checked') == false) {
$(this).prop('checked', true);
$(this).parent().parent().children().css('background', 'rgb(36, 36, 36)');
} else {
$(this).prop('checked', false);
$(this).parent().parent().children().css('background', '');
}
});
});
/*** set background color for checked members ***/
$('input[type="checkbox"][name*="removeuser"]').change(function() {
if($(this).prop('checked'))
$(this).parent().parent().children().css('background', 'rgb(36, 36, 36)');
else
$(this).parent().parent().children().css('background', '');
});
/*** Export members ***/
/*$('table tbody tr:first-child td').append('<a href="javascript:void(0)" style="float: right" id="memberExportLink">Export members</a>');
$('#memberExportLink').on('click', function() {
var output = '[list]';
$('table tbody tr td a[href*="http://hackforums.net/member.php?action=profile&uid="]').each(function(element) {
output += '[*][url=' + $(this).attr('href') + ']' + $(this).find('span').html() + '[/url]\n';
});
output += '[/list]';
console.log(output);
});*/
/*** PM 5 members ***/
/*$('table[cellpadding="4"]').prop('cellpadding', '5');
$('td[class="thead"][colspan="7"]').prop('colspan', '9');
$('td[class="tcat"]:nth-child(2)').after('<td class="tcat" align="2" width="10%"><span class="smalltext"><strong>PM (max. 5)</strong></span></td>');
$('a[href*="action=send&uid="]').parent().after('<td class="trow1" align="center"><input type="checkbox" class="pmSelectedUsersCheckBox"></td>');*/
} else if (location.href.indexOf('managegroup.php?action=joinrequests&gid=') > -1) {
/*** Check all join requests ***/
/*$('td.tcat strong').each(function() {
var text = $(this).text();
if(text == 'Accept')
$(this).parent().append('<br><small><a href="javascript:void(0)" class="checkAllJoinRequests" id="checkAllAccept">Check all</a></small>');
else if(text == 'Ignore')
$(this).parent().append('<br><small><a href="javascript:void(0)" class="checkAllJoinRequests" id="checkAllIgnore">Check all</a></small>');
else if(text == 'Decline')
$(this).parent().append('<br><small><a href="javascript:void(0)" class="checkAllJoinRequests" id="checkAllDecline">Check all</a></small>');
});
$('.checkAllJoinRequests').on('click', function() {
if($(this).prop('id') == 'checkAllAccept')
$('input[type="radio"][name*="request"][value="accept"]').each(function() {
$(this).prop('checked', true);
});
else if($(this).prop('id') == 'checkAllIgnore')
$('input[type="radio"][name*="request"][value="ignore"]').each(function() {
$(this).prop('checked', true);
});
else if($(this).prop('id') == 'checkAllDecline')
$('input[type="radio"][name*="request"][value="decline"]').each(function() {
$(this).prop('checked', true);
});
});*/
/*** Black list ***/
} else if(location.href.indexOf('member.php?action=profile&uid=') > -1) {
var ownUid = $('a[href*="member.php?action=profile&uid="]:first-child').prop('href').replace(/[^0-9]/g, '');
var uid = location.href.replace(/[^0-9]/g, '');
if(uid != ownUid) {
if(blackListedMembers.indexOf(uid) == -1) {
$('a[href*="/usercp.php?action=do_editlists&manage=ignored"]').after('<br><a href="javascript:void(0)" id="blackListMember"><img src="http://i.imgur.com/xTP4gXj.png" alt=""> Add to your Blacklist</a>');
} else {
var block = $('body table[class="tborder"]:first-child');
$(block).each(function(idx) { if(idx == 0) { $(this).css('border', '1px solid ' + blackListColor); } });
$(block).find('.largetext').find('strong').find('span').css('color', blackListColor);
$('a[href*="/usercp.php?action=do_editlists&manage=ignored"]').after('<br><a href="javascript:void(0)" id="blackListMember"><img src="http://i.imgur.com/xTP4gXj.png" alt=""> Remove from your Blacklist</a>');
}
}
if(shinyUsers.indexOf(uid) != -1) {
var block = $('body table[class="tborder"]:first-child');
$(block).each(function(idx) { if(idx == 0) { $(this).css('border', '1px solid ' + shinyColor); } });
$(block).find('.largetext').find('strong').find('span').toggleClass('addStar');
}
$('#blackListMember').on('click', function() {
var position = blackListedMembers.indexOf(uid);
if(position == -1) {
blackListedMembers.push(uid);
if(url != '')
GM_xmlhttpRequest({
method: "GET",
url: url+'?action=add&uid='+uid,
onload: function(response){
console.log(response.responseText);
},
});
} else {
blackListedMembers.splice(position, 1);
if(url != '')
GM_xmlhttpRequest({
method: "GET",
url: url+'?action=remove&uid='+uid,
onload: function(response){
console.log(response.responseText);
},
});
}
GM_setValue('blackListedMembers', blackListedMembers);
});
} else if(location.href.indexOf('showthread.php?tid=') != -1) {
blackListedMembers.forEach(function(uid) {
console.log(uid);
$('a[href*="member.php?action=profile&uid='+ uid +'"] span[class*="group"]').each(function() {
var table = $(this).closest('table[class="tborder"]');
$(table).css('border', '1px solid ' + blackListColor);
$(table).find('tbody').find('tr').find('td[class="tcat"]').css('background-color', blackListColor);
});
});
shinyUsers.forEach(function(uid) {
$('a[href*="member.php?action=profile&uid='+ uid +'"] span[class*="group"]').each(function() {
console.log($(this));
var table = $(this).closest('table[class="tborder"]');
var topbar = $(table).find('tbody').find('tr').find('td[class="tcat"]');
$(table).css('border', '1px solid ' + shinyColor);
$(topbar).css('background-color', shinyColor);
$(topbar).find('.smalltext').css('color', 'black');
$(topbar).find('a').css('color', 'black');
$(this).toggleClass('addStar');
});
});
} else if(location.href.indexOf('private.php?action=read&pmid=') != -1) {
$('a[href*="member.php?action=profile&uid="]').each(function(idx) {
if(idx == 2) {
var uid = $(this).prop('href').replace(/[^0-9]/g, '');
if(blackListedMembers.indexOf(uid) != -1) {
var table = $(this).closest('table[class="tborder"]');
$(table).css('border', '1px solid ' + blackListColor);
$(table).find('tbody').find('tr').find('td[class="tcat"]').css('background-color', blackListColor);
} else if(shinyUsers.indexOf(uid) != -1) {
var table = $(this).closest('table[class="tborder"]');
var topbar = $(table).find('tbody').find('tr').find('td[class="tcat"]');
$(table).css('border', '1px solid ' + shinyColor);
$(table).find('tbody').find('tr').find('td[class="tcat"]').css('background-color', shinyColor);
$(topbar).css('background-color', shinyColor);
$(topbar).find('.smalltext').css('color', 'black');
$(topbar).find('a').css('color', 'black');
}
}
});
}
/*** Blacklist end ***/
$('span.addStar').before('<img src="http://i.imgur.com/tylnPNi.png" alt="">');
});