4chan/f fitler

remove viewed swf

目前為 2020-10-07 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name 4chan/f fitler
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description remove viewed swf
  6. // @description ctrl+<- prev swf
  7. // @description ctrl+-> next swf
  8. // @author Neysummer2000
  9. // @match https://boards.4chan.org/f/
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15. var g_viewing; // dom
  16. var g_viewed = localStorage.getItem("4chan_viewed");
  17. if (g_viewed == null)
  18. g_viewed = "[]";
  19. g_viewed = JSON.parse(g_viewed);
  20. //console.log(g_viewed);
  21.  
  22. var dom;
  23. for (var url of g_viewed) {
  24. dom = document.querySelector('a[href="' + url + '"]');
  25. if (dom !== null) {
  26. dom.parentElement.parentElement.remove();
  27. //console.log("remove " + url);
  28. }
  29. }
  30.  
  31. window.addEventListener("keydown", function(ev){
  32. if(g_viewing === undefined) return;
  33. if(ev.ctrlKey){
  34. switch(ev.key){
  35. case "ArrowRight":
  36. var prev = g_viewing.nextElementSibling;
  37. if(prev !== null){
  38. document.getElementById('swf-embed').remove()
  39. prev.children[3].children[0].click();
  40. }
  41. break;
  42.  
  43. case "ArrowLeft":
  44. var next = g_viewing.previousElementSibling;
  45. if(next !== null){
  46. document.getElementById('swf-embed').remove()
  47. next.children[3].children[0].click();
  48. }
  49. break;
  50.  
  51. }
  52. }
  53. });
  54.  
  55. document.querySelectorAll('.flashListing td:nth-child(4) a').forEach(function(d) {
  56. d.addEventListener("click", function(ev) {
  57. if (g_viewed.indexOf(d.href) === -1)
  58. g_viewed.push(d.href);
  59.  
  60. g_viewing = d.parentElement.parentElement;
  61. console.log(g_viewing);
  62. localStorage.setItem("4chan_viewed", JSON.stringify(g_viewed));
  63. var a = document.createElement("a");
  64. a.href = "javascript: window.open('" + d.href + "');";
  65. a.innerText = "download";
  66. a.style.cssText = "float: right; margin-right: 10px;";
  67. document.getElementById('swf-embed-header').appendChild(a);
  68. //console.log(d.href);
  69. });
  70. })
  71.  
  72.  
  73. })();