您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Userscript for hiding mandiner.hu's users
// ==UserScript== // @name Hide Mandiner User // @name:hu Mandiner Hozzászóló Elrejtő // @description Userscript for hiding mandiner.hu's users // @description:hu Felhasználói szkript a mandiner.hu felhasználóinak elrejtéséhez // @icon https://mandiner.hu/images/favicon.png // @version 5.0 // @license MIT // @include https://*mandiner.hu/cikk/* // @grant none // @namespace https://greasyfork.org/users/412587 // ==/UserScript== let comments = document.querySelectorAll('.comment'), disabledUsers = window.localStorage.getItem('disabledUsers') === null ? [] : JSON.parse(window.localStorage.getItem('disabledUsers')), hideDisabledUsers = window.localStorage.getItem('hideDisabledUsers') === null ? 'false' : window.localStorage.getItem('hideDisabledUsers'), commentsHead = document.querySelector('.comments-head'), headerDisabledUsers = document.createElement('h5'), searchBox = document.createElement('div'), searchHeader = document.createElement('div'), searchContent = document.createElement('div'), searchField = document.createElement('input'), searchButton = document.createElement('button'), searchBreak = document.createElement('br'), resultField = document.createElement('textarea'), searchFooter = document.createElement('div'), addUsersButton = document.createElement('button'), buttonImportUsers = document.createElement('button'); console.log('Comments: ' + comments.length); console.log('Disabled users: ' + disabledUsers.length); headerDisabledUsers.innerText = '▼ Némított felhasználók'; headerDisabledUsers.style.cursor = 'pointer'; buttonImportUsers.style.padding = '0.25em'; buttonImportUsers.style.margin = '0.25em'; buttonImportUsers.style.backgroundColor = '#517491'; buttonImportUsers.style.color = '#fff'; buttonImportUsers.style.fontWeight = 'bold'; buttonImportUsers.innerText = '📂 Importálás'; searchBox.setAttribute('id', 'searchBox'); searchBox.style.border = '1px solid #000'; searchBox.style.margin = '0.25em'; searchBox.style.width = 'fit-content'; searchHeader.setAttribute('id', 'searchHeader'); searchHeader.innerText = '▶ Tömeges felhasználó tiltás'; searchHeader.style.borderBottom = '1px solid #000'; searchHeader.style.padding = '0.25em'; searchHeader.style.cursor = 'pointer'; searchHeader.onclick = () => { if (searchContent.style.display == 'none') { searchContent.style.display = 'block'; searchFooter.style.display = 'block'; searchHeader.innerText = searchHeader.innerText.replace('▶', '▼'); } else { searchContent.style.display = 'none'; searchFooter.style.display = 'none'; searchHeader.innerText = searchHeader.innerText.replace('▼', '▶'); } }; searchContent.setAttribute('id', 'searchContent'); searchContent.style.padding = '0.25em'; searchContent.style.display = 'none'; searchField.setAttribute('id', 'searchField'); searchField.setAttribute('placeholder','Felhasználónév-részlet'); searchField.style.border = '1px solid #000'; searchButton.innerText = '🔎'; searchButton.setAttribute('title', 'Felhasználó keresése') searchButton.style.padding = '0 0.25em'; searchButton.style.marginLeft = '0.25em'; searchButton.style.backgroundColor = '#517491'; resultField.style.marginTop = '0.25em'; resultField.setAttribute('rows','5'); resultField.setAttribute('placeholder','Talált felhasználók'); resultField.style.border = '1px solid #000'; searchContent.appendChild(searchField); searchContent.appendChild(searchButton); searchContent.appendChild(searchBreak); searchContent.appendChild(resultField); searchButton.onclick = () => { let searchUser = searchField.value, searchUserRegexp = new RegExp(searchUser, 'gi'), users = []; resultField.innerHTML = ''; for (let comment of comments) { let user = comment.querySelector('.commentuser').text; if (user != null || user != undefined) { users.push(user); } } users = [...new Set(users)].filter((v)=>v.match(searchUserRegexp)); for (let user of users) { resultField.innerHTML += user + '\n'; } addUsersButton.removeAttribute('disabled'); }; searchFooter.setAttribute('id', 'searchFooter'); searchFooter.style.borderTop = '1px solid #000'; searchFooter.style.display = 'none'; addUsersButton.innerText = '👥 Felhasználók tiltása'; addUsersButton.style.padding = '0.25em'; addUsersButton.style.margin = '0.25em'; addUsersButton.style.backgroundColor = '#517491'; addUsersButton.style.color = '#fff'; addUsersButton.style.fontWeight = 'bold'; addUsersButton.setAttribute('disabled', 'disabled'); searchFooter.appendChild(addUsersButton); addUsersButton.onclick = () => { let users = resultField.innerHTML.split('\n').filter((v) => v != ''); users = [...new Set(users)] if (users.length !== 0) { for (let user of users) { if (user != '' && (disabledUsers.length == 0 || !disabledUsers.includes(user))) { disabledUsers.push(user); } } window.localStorage.setItem('disabledUsers', JSON.stringify(disabledUsers)); window.location.reload(true); } }; searchBox.appendChild(searchHeader); searchBox.appendChild(searchContent); searchBox.appendChild(searchFooter); commentsHead.appendChild(headerDisabledUsers); commentsHead.appendChild(searchBox); commentsHead.appendChild(buttonImportUsers); buttonImportUsers.onclick = () => { let fileInput = document.createElement('input'); fileInput.setAttribute('type', 'file'); fileInput.setAttribute('accept', '.txt'); fileInput.onchange = () => { let reader = new FileReader(), file = fileInput.files[0]; reader.onload = (event) => { let newUsers = event.target.result.split('\n'); if (newUsers.length !== 0) { for (let newUser of newUsers) { if (newUser != '' && (disabledUsers.length == 0 || !disabledUsers.includes(newUser))) { disabledUsers.push(newUser); } } window.localStorage.setItem('disabledUsers', JSON.stringify(disabledUsers)); window.location.reload(true); } }; reader.readAsText(file); }; fileInput.click(); }; if (disabledUsers.length > 0) { let commentsHead = document.querySelector('.comments-head'), listDisabledUsers = document.createElement('ul'), buttonExportUsers = document.createElement('button'), buttonClearUsers = document.createElement('button'); if (hideDisabledUsers === 'true') { listDisabledUsers.setAttribute('style', 'display: none;'); headerDisabledUsers.innerText = headerDisabledUsers.innerText.replace('▼', '▶'); } else { listDisabledUsers.removeAttribute('style'); headerDisabledUsers.innerText = headerDisabledUsers.innerText.replace('▶', '▼'); } headerDisabledUsers.onclick = () => { if (listDisabledUsers.hasAttribute('style')) { listDisabledUsers.removeAttribute('style'); headerDisabledUsers.innerText = headerDisabledUsers.innerText.replace('▶', '▼'); window.localStorage.setItem('hideDisabledUsers', 'false'); } else { listDisabledUsers.setAttribute('style', 'display: none;'); headerDisabledUsers.innerText = headerDisabledUsers.innerText.replace('▼', '▶'); window.localStorage.setItem('hideDisabledUsers', 'true'); } }; buttonClearUsers.innerText = '✓ Összes felhasználó engedélyezése'; buttonClearUsers.style.padding = '0.25em'; buttonClearUsers.style.margin = '0.25em'; buttonClearUsers.style.backgroundColor = '#070'; buttonClearUsers.style.color = '#fff'; buttonClearUsers.style.fontWeight = 'bold'; buttonExportUsers.style.padding = '0.25em'; buttonExportUsers.style.margin = '0.25em'; buttonExportUsers.style.backgroundColor = '#517491'; buttonExportUsers.style.color = '#fff'; buttonExportUsers.style.fontWeight = 'bold'; buttonExportUsers.innerText = '💾 Exportálás'; for (let disabledUser of disabledUsers) { let listItemDisabledUser = document.createElement('li'), spanDisabledUser = document.createElement('span'), buttonEnableUser = document.createElement('button'); spanDisabledUser.innerText = disabledUser; buttonEnableUser.setAttribute('data-username',disabledUser); buttonEnableUser.innerText = '✓'; buttonEnableUser.setAttribute('title', 'Engedélyezés'); buttonEnableUser.style.border = '1px solid #fff'; buttonEnableUser.style.backgroundColor = '#070'; buttonEnableUser.style.color = '#fff'; buttonEnableUser.style.padding = '0.25em'; buttonEnableUser.style.margin = '0 0.25em'; buttonEnableUser.style.fontWeight = 'bold'; buttonEnableUser.onclick = () => { let userName = buttonEnableUser.getAttribute('data-username'); disabledUsers = disabledUsers.filter(item => item !== userName); window.localStorage.setItem('disabledUsers', JSON.stringify(disabledUsers)); window.location.reload(true); }; listItemDisabledUser.appendChild(spanDisabledUser); listItemDisabledUser.appendChild(buttonEnableUser); listDisabledUsers.appendChild(listItemDisabledUser); } buttonExportUsers.onclick = () => { if (disabledUsers.length > 0) { let users = disabledUsers.join('\n'), downloadLink = document.createElement('a'); downloadLink.setAttribute( 'href', window.URL.createObjectURL( new Blob( [users], {type: 'text/plain'} ) ) ); downloadLink.setAttribute('download', 'users.txt'); downloadLink.click(); } }; buttonClearUsers.onclick = () => { disabledUsers = []; window.localStorage.setItem('disabledUsers', JSON.stringify(disabledUsers)); window.location.reload(true); }; commentsHead.appendChild(buttonExportUsers); commentsHead.appendChild(buttonClearUsers); commentsHead.appendChild(listDisabledUsers); } for (let comment of comments) { let user = comment.querySelector('.commentuser'), buttonDisableUser = document.createElement('button'); if (user != null || user != undefined) { if (disabledUsers.includes(user.text)) { comment.style.display = 'none'; comment.style.visibility = 'hidden'; } buttonDisableUser.innerText = 'X'; buttonDisableUser.setAttribute('title', 'Tiltás'); buttonDisableUser.style.border = '1px solid #fff'; buttonDisableUser.style.backgroundColor = '#f00'; buttonDisableUser.style.color = '#fff'; buttonDisableUser.style.padding = '0.25em'; buttonDisableUser.style.margin = '0 0.25em'; buttonDisableUser.style.fontWeight = 'bold'; buttonDisableUser.setAttribute('data-username', user.text); buttonDisableUser.onclick = () => { let userName = buttonDisableUser.getAttribute('data-username'); if ( disabledUsers.length == 0 || !disabledUsers.includes(userName) ) { disabledUsers.push(userName); window.localStorage.setItem('disabledUsers', JSON.stringify(disabledUsers)); } window.location.reload(true); }; user.after(buttonDisableUser); } }