FxP Block+

Completly blocks users in FxP

目前為 2017-10-05 提交的版本,檢視 最新版本

// ==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);