Completly blocks users in FxP
目前為
// ==UserScript==
// @name FxP Block+
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Completly blocks users in FxP
// @author DaCurse0
// @copyright 2017+, DaCurse0+
// @match https://www.fxp.co.il/*
// @grant none
// ==/UserScript==
const factoryDefaults={blocked:[],dba:''},Parser=new DOMParser,Data=getLocalData();function get_userid(a){return new Promise(async(b,c)=>{let d=await $.get(`https://www.fxp.co.il/member.php?username=${a}`),e=Parser.parseFromString(d,'text/html');try{let f=$(e).find('.userprof_content>dl>dd>a').attr('href').substr(35);b(f)}catch(f){c('User doesn\'t exist')}})}function get_username(a){return new Promise(async(b,c)=>{let d=await $.get(`https://www.fxp.co.il/member.php?u=${a}`),e=Parser.parseFromString(d,'text/html'),f=$(e).find('.member_username').text().trim();''===f?c('User doesn\'t exist'):b(f)})}function getLocalData(){let a;try{a=JSON.parse(localStorage.fxpblockplus)}catch(b){a=factoryDefaults}return a}function saveData(){localStorage.fxpblockplus=JSON.stringify(Data)}function menuOption(){let a=$('#yui-gen0').children().last().prev(),b=$('<div>').append(a.clone()).html();a.before(b),a.before('<div style="height: 15px;"><a href="javascript:" id="blockplus">\u05D4\u05D2\u05D3\u05E8\u05D5\u05EA Block+</a></div>')}function createMenu(){let a=`<style>
#blockplus-menu {
width: 400px;
height: 350px;
z-index: 9999;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: white;
}
#blockplus-menu > div {
margin: 10px;
}
#blocked-users {
width: 100%;
min-height: 200px;
margin-bottom: 5px;
}
#blockplus-menu button {
padding: 5px 10px;
font-size: 12pt;
margin-bottom: 8px;
}
#userblockname {
width: 83%;
height: 28px;
font-size: 14pt;
border: solid 1px #6b91ab;
outline: none;
}
#adduser {
float: left;
}
#remusers, #closeusers {
width: 100%;
}
</style>`;$('head').append(a);let b=`<div id="blockplus-menu" style="display: none;">
<div>
<label for="blocked-users">משתמשים חסומים:</label>
<select multiple id="blocked-users">
</select>
<input type="text" id="userblockname" />
<button id="adduser">הוסף</button><br/>
<button id="remusers" disabled>מחק בחירה</button>
<button id="closeusers" onclick="$('#blockplus-menu').hide()">סגור</button>
</div>
</div>`;$('body').append(b),bindEvents(),refreshUsers()}function refreshUsers(){$('#blocked-users').children().remove(),Data.blocked.forEach(async a=>{let b=await get_username(a);$('#blocked-users').append(`<option>${b} - ${a}</option>`)})}function bindEvents(){$('#blockplus').click(()=>{$('#blockplus-menu').show(),$('#yui-gen1').get(0).click()}),$('#adduser').click(async()=>{$('#adduser').attr('disabled',!0);let b,a=$('#userblockname').val();try{$('#userblockname').val(''),b=await get_userid(a)}catch(c){return alert('\u05D4\u05DE\u05E9\u05EA\u05DE\u05E9 \u05D4\u05D6\u05D4 \u05DC\u05D0 \u05E7\u05D9\u05D9\u05DD \u05D0\u05D5 \u05E9\u05D4\u05D5\u05D0 \u05D1\u05D1\u05D0\u05DF!'),void $('#adduser').removeAttr('disabled')}return $('#adduser').removeAttr('disabled'),Data.blocked.includes(b)?void alert('\u05D4\u05DE\u05E9\u05EA\u05DE\u05E9 \u05D4\u05D6\u05D4 \u05DB\u05D1\u05E8 \u05E7\u05D9\u05D9\u05DD \u05D1\u05E8\u05E9\u05D9\u05DE\u05EA \u05D4\u05D7\u05E1\u05D5\u05DE\u05D9\u05DD!'):void(Data.blocked.push(b),refreshUsers())}),$('#blocked-users').change(()=>{let a=$('#blocked-users').val();null===a?$('#remusers').attr('disabled',!0):$('#remusers').removeAttr('disabled')}),$('#remusers').click(()=>{let a=$('#blocked-users').val();if(null!==a){let b=[];a.forEach(c=>{b.push(c.split(' - ')[1])}),Data.blocked=Data.blocked.filter(c=>{return-1===b.indexOf(c)}),refreshUsers(),$('#remusers').attr('disabled',!0)}}),blockUsers()}function blockUsers(){let a=location.pathname;'/forumdisplay.php'===a&&$('.threadbit').each((b,c)=>{let d=$(c).find('.label a').attr('href');Data.blocked.forEach(e=>{d.includes(e)&&$(c).remove()})})}function Init(){$(window).unload(()=>{saveData()}),menuOption(),createMenu()}$(Init);