noteArchive

日記2022-02-17

2022-02-18 11:03

はじめ

昼です

noteのホームで特定投稿者の記事を隠す

noteのホーム開くと自分の記事が表示されて嫌だったので消す

cssではムズそうだったのでjsを使う、ユーザースクリプト動かすのには今はViolentmonkeyがいいそうですよ

記事消す関数

document.querySelectorAll(".m-largeNoteWrapper__card .a-link").forEach((n)=>{n.getAttribute("href").startsWith("/u9_/")&&n.parentElement.remove()})

startsWith("/u9_/")の部分を消したい特定投稿者のIDにする

これでホームに表示されている特定投稿者の記事を消せる
しかし、noteのホームの記事はページが読み込まれた後から記事が読み込まれて追加されていく、記事が追加される前に記事消す関数を発動させても意味が無い

記事が読み込まれて追加された後に発動させないといけないので
記事が新しく読み込まれた事を検知して、そのタイミングで発動させる

記事読み込みを検知

記事が追加されると記事が表示される所の要素の高さが変化するので

document.querySelector(".t-container__body").clientHeight

などで記事が表示される所の要素の高さを取得して、setIntervalなどでそれの変化を検知して発動させれば良いだろうと思ったが
よりよい方法があるみたいで

ResizeObserverというのがあるそうで、これを使う

ResizeObserver

https://developer.mozilla.org/ja/docs/Web/API/ResizeObserver

ResizeObserverで要素のサイズの変化を監視出来るという事でこれを使う

(function(){
  const removeMy = ()=>document.querySelectorAll(".m-largeNoteWrapper__card .a-link").forEach((n)=>{n.getAttribute("href").startsWith("/u9_/")&&n.parentElement.remove()})
  new ResizeObserver((entries) => {
      removeMy()
  }).observe(document.querySelector(".t-container__body"))
})()

こんな感じにした、これで自分の記事(/u9_/の記事)が消える

動作したりしなかったりするのを直す

なんかこれだと動作したりしなかったりする、原因は.t-container__body自体が作られるより早く作動し始める事
また、ホームタブから別のタブに移動したりすると.t-container__bodyが消えたりして、その後ホームタブに戻ってもページ移動してない扱いなんで再作動してくれないからとかっぽい

って事で今度はMutationObserverで.t-container__bodyが現れるのを監視する感じで、適当に雑に直す

(function(){
  let existContainer = false
  new MutationObserver(function() {
    if (document.querySelector(".t-container__body")) {
      if (existContainer) return
      const removeMy = ()=>document.querySelectorAll(".m-largeNoteWrapper__card .a-link").forEach((n)=>{n.getAttribute("href").startsWith("/u9_/")&&n.parentElement.remove()})
      new ResizeObserver((entries) => {
          removeMy()
          console.log("erase")
      }).observe(document.querySelector(".t-container__body"))
      existContainer = true
    } else {
      existContainer = false
    }
  }).observe(document, {childList: true, subtree: true})
})()

まあ、これでいいだろう…

ハッシュタグが勝手に入ってた

日記公開する時に勝手にハッシュタグが入ってたりする

おすすめハッシュタグと登録されたハッシュタグが近くて、勝手に入ったハッシュタグをおすすめハッシュタグと見間違える

プリコネ

ルナの塔を登る

イベントのSPボス倒す為にキャラを色々強化した影響で手持ちの戦力が上がっており、一気に登りきれた
道中数名戦闘不能が出て回廊は無理

弱火にしたと思ったら強火にしてた

焼きそばが焦げた

おわり

日付変わっとった