12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

connpassのメールがうるさいので一括で通知設定を選択できるようにした

Last updated at Posted at 2020-11-06

勉強会に参加したことのある方ならご存知のconnpass。
いろんなイベントに参加することができて非常に便利です。

が、最近あまりにメールが多い。

image.png

今後connpass.comからこのようなメールを受け取りたくない場合は、利用設定から配信停止することができます。

ということなので、利用設定からメール通知設定画面に飛んだところ……

え、これ手動でチェック外すの……???
image.png

僕は嫌だ!!!

ということで、JSでconnpassのメール通知設定用の関数を書きました。

コード

function mailSelect(type, isCheck) {
  switch (type) {
    case "all":
      window.document.querySelectorAll("input[name^='group_notify_group_email-']").forEach(selectBox =>
        selectBox.checked = isCheck
      )
      break
    case "kokai":
      window.document.querySelectorAll("input[name$='-event_publish_to_series_watcher']").forEach(selectBox =>
        selectBox.checked = isCheck
      )
      break
    case "bosyu":
      window.document.querySelectorAll("input[name$='-event_open_start_to_group_member']").forEach(selectBox =>
        selectBox.checked = isCheck
      )
      break
    case "shiryo":
      window.document.querySelectorAll("input[name$='-new_event_links_to_group_member']").forEach(selectBox =>
        selectBox.checked = isCheck
      )
      break
  }
}

使い方

  1. https://connpass.com/settings/ を開く
  2. 検証ツールを開きます。
  3. Consoleを開きます。
  4. 上記のコードをコピペします。
  5. コマンドを打ちます。

image.png

mailSelect("all", false)
mailSelect("kokai", false)
mailSelect("bosyu", true)
mailSelect("shiryo", false)

こんな感じで使えます。
メールを送るな!という人はmailSelect("all", false)でおk。

ブックマークレットにしてみた

ブックマークレットは即時関数なので、決め打ちです。

ブックマークレット作成で簡単にブックマークレットの形式に変換できます。

mailSelect("all",false)
javascript:(function(){window.document.querySelectorAll("input[name^='group_notify_group_email-']").forEach(selectBox=>selectBox.checked=false)})();void(0);

connpassの設定ページを開いた状態で、↑をアドレスバーにコピペします(コピペするとjavascript:が消えるので手打ちする)。

image.png

そしてエンター、以上!!

知ったこと

getElementsByNameでは完全一致しか取得できないんですね。
querySelectorを使うと、前方一致や後方一致のようなことができるようです。

DOMをセレクトするときに正規表現的な文法をつかう - みかづきブログ その3
Document.querySelectorAll() - Web API | MDN

12
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?