TweetDeck User-Column Replies Filter

Hides (not retweet or thread) replies in user-column.

当前为 2021-05-28 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name TweetDeck User-Column Replies Filter
  3. // @name:ja TweetDeck Userカラム リプライフィルター
  4. // @namespace https://gf.qytechs.cn/users/175598
  5. // @version 1.0
  6. // @description Hides (not retweet or thread) replies in user-column.
  7. // @description:ja Userカラム内の(リツイートやスレッドではない)リプライを隠します
  8. // @author N.Y.Boyu
  9. // @match https://tweetdeck.twitter.com/*
  10. // @grant none
  11. // @license MIT
  12. // ==/UserScript==
  13. (function(){
  14. var MutationObserver=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;
  15. var init,columnCheck,chirpCheck;
  16.  
  17. var yourUserName="";
  18. //NOTE: If put your user name, hides your tweet/retweet in home-column.
  19.  
  20. init=function(){
  21. var style,app,observer,init2;
  22. style=document.createElement("style");
  23. style.textContent='article[drf-removed]{ position:absolute; z-index:-1; }';
  24. document.head.appendChild(style);
  25. app=document.getElementsByClassName("application")[0];
  26. init2=function(){
  27. if(app.className==="application js-app is-condensed"){
  28. observer.disconnect();
  29. var cols=app.getElementsByClassName("app-columns")[0];
  30. new MutationObserver(columnCheck).observe(cols,{childList:true});
  31. columnCheck([{addedNodes:cols.children}]);
  32. }
  33. };
  34. (observer=new MutationObserver(init2)).observe(app,{attributes:true,attributeFilter:["class"]});
  35. init2();
  36. };
  37.  
  38. columnCheck=function(recs){
  39. for(var i=0;i<recs.length;i++){for(var j=0;j<recs[i].addedNodes.length;j++){
  40. var target=recs[i].addedNodes[j];
  41. if(target.dataset.column&&!target.drfColumnMarked){
  42. target.drfColumnMarked=true;
  43. var chirps=target.getElementsByClassName("chirp-container")[0];
  44. chirps.type=target.getElementsByClassName("column-type-icon")[0].className.split("icon-")[1];
  45. new MutationObserver(chirpCheck).observe(chirps,{childList:true});
  46. chirpCheck([{addedNodes:chirps.children}]);
  47. }
  48. }}
  49. };
  50.  
  51. chirpCheck=function(recs){
  52. var i,j,target,type,isReply,isRetweet,author;
  53. for(i=0;i<recs.length;i++){for(j=0;j<recs[i].addedNodes.length;j++){
  54. target=recs[i].addedNodes[j];
  55. if(!type)type=target.parentNode.type;
  56. if(!target.dataset.tweetId)break;
  57. isReply=!!target.querySelector(".tweet-body>.nbfc>.other-replies");
  58. isRetweet=!!target.querySelector(".tweet-context>.item-img>.icon-retweet-filled");
  59. if(yourUserName){
  60. author=isRetweet?target.querySelector('.tweet-context>.nbfc>[rel="user"]').href.slice(20)
  61. :target.querySelector(".tweet>header>.account-link").href.slice(20);
  62. }
  63. if((type==="user"&&isReply&&!isRetweet)||
  64. (type==="home"&&yourUserName&&yourUserName===author)){
  65. console.log("DRF: Hit");
  66. target.removeChild(target.children[0]);
  67. target.setAttribute("drf-removed","");
  68. //DO NOT delete DIRECTLY to avoid bugs.
  69. }
  70. }}
  71. };
  72.  
  73. init();
  74. console.log("DRF: TweetDeck User-Column Replies Filter is enabled.");
  75. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址