Advertisement
Guest User

Untitled

a guest
Jan 29th, 2022
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Anonym ID ban
  3. // @version 1
  4. // @grant none
  5. // ==/UserScript==
  6.  
  7. const get_banned_ids = () => JSON.parse(window.localStorage.getItem('banned_ids') || '[]')
  8.  
  9. const toggle_banned_id = (id) => {
  10. const banned_ids = get_banned_ids()
  11. const new_banned_ids = banned_ids.includes(id)
  12. ? banned_ids.filter(i => i !== id)
  13. : [...banned_ids, id]
  14.  
  15. window.localStorage.setItem('banned_ids', JSON.stringify(new_banned_ids, undefined, 4))
  16. }
  17.  
  18. const get_anon_id = post => (post.querySelector('.post__anon>span') || post.querySelector('.post__email>span')).innerText
  19.  
  20. const refresh_anonym_id_ban = () => {
  21. const banned_ids = get_banned_ids()
  22.  
  23. const all_posts = Array.from(document.getElementsByClassName('post_type_reply'))
  24.  
  25. for (let post of all_posts) {
  26. let toggle_ban_button = post.querySelector('.post__anon>.toggle_ban_button') || post.querySelector('.post__email>.toggle_ban_button')
  27. if (!toggle_ban_button) {
  28. toggle_ban_button = document.createElement('span')
  29. toggle_ban_button.classList.add('toggle_ban_button')
  30. toggle_ban_button.appendChild(document.createTextNode(' ☠ '))
  31. toggle_ban_button.addEventListener(
  32. 'click',
  33. event => {
  34. toggle_banned_id(get_anon_id(post))
  35. refresh_anonym_id_ban()
  36. event.preventDefault()
  37. }
  38. )
  39. const toggle_ban_button_container = post.querySelector('.post__anon') || post.querySelector('.post__email')
  40. toggle_ban_button_container.appendChild(toggle_ban_button)
  41. }
  42.  
  43. toggle_ban_button.style.color = banned_ids.includes(get_anon_id(post)) ? 'darkred' : 'inherit'
  44. }
  45.  
  46. const banned_posts = all_posts.filter(
  47. post => banned_ids.includes(get_anon_id(post))
  48. )
  49.  
  50. setTimeout(
  51. () => {
  52. for (let post of banned_posts) {
  53. post.classList.add('post_type_hidden')
  54. }
  55. },
  56. 100
  57. )
  58. }
  59.  
  60.  
  61. const thread_observer = new MutationObserver(() => {
  62. refresh_anonym_id_ban()
  63. });
  64.  
  65. window.addEventListener('DOMContentLoaded', () => {
  66. thread_observer.observe(document.getElementsByClassName('thread').item(0), { childList: true })
  67. })
  68.  
  69. refresh_anonym_id_ban()
  70.  
  71.  
  72.  
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement