はてなブログの「購読中のブログ」一覧に読者登録設定へのリンクを追加するスクリプト

2016/03/04 21:02 追記

公式に機能が実装されました。

staff.hatenablog.com

追記ここまで

はてなブログで読者登録をしてみたけどやっぱり解除したくなった。というとき、基本的には「読者になる」のボタンやヘッダーにあるリンクから解除することになりますが、「読者になる」のボタンを設置していないとか、該当ユーザーがサービスをやめてしまった場合などを考えたことがありませんでした。

www.mayoinu.com

記事によれば以下のURLから読者登録の解除(設定)ができるとのこと。

http://blog.hatena.ne.jp/はてなID/ブログURL/subscribe

それなら「購読中のブログ」の一覧にリンクを追加してしまおうということで、スクリプトを書きました。

// 「こんなブログもあります」の一覧を削除
document.getElementsByClassName("admin-subscribe-wrapper-right").item(0).remove();

// 読者登録中のユーザー名とブログのURLを取得
var users = document.querySelectorAll("a.entry-unit-user-name");

// リンクの追加位置
var unit = document.querySelectorAll(".entry-unit-meta");

for(var i=0; i<users.length; i++){
  // 読者登録設定へのURLを生成
  var userid  = users.item(i).innerText.trim();
  var blogurl = users.item(i).href.replace("http://","");
  var subscription_url = "http://blog.hatena.ne.jp/" + userid + "/" + blogurl + "subscribe";

  // aタグの生成と設定
  var link  = document.createElement("a");
  link.href = subscription_url;
  link.innerText = "登録解除";
  link.setAttribute("target","_blank");

  unit.item(i).appendChild(link);
}

ブックマークレット

javascript:(function(){ document.getElementsByClassName("admin-subscribe-wrapper-right").item(0).remove();  var users = document.querySelectorAll("a.entry-unit-user-name");  var unit = document.querySelectorAll(".entry-unit-meta");  for(var i=0; i<users.length; i++){ var userid  = users.item(i).innerText.trim(); var blogurl = users.item(i).href.replace("http://",""); var subscription_url = "http://blog.hatena.ne.jp/" + userid + "/" + blogurl + "subscribe";  var link  = document.createElement("a"); link.href = subscription_url; link.innerText = "%E8%B3%BC%E8%AA%AD%E8%A7%A3%E9%99%A4"; link.setAttribute("target","_blank"); unit.item(i).appendChild(link);}})();

実行するとリンクが追加されます。

f:id:splicom:20150731140128j:plain

すでに読者登録しているユーザーが対象なので、リンクの表記は解除を明示するようにしました。処理を簡単にする都合で一覧の右側に表示される「こんなブログもあります」を消しているのと、ページを開く都度実行する必要があります。

2015/07/31 20:29 追記

リンクをクリックしたら読者登録が解除されるわけではなく、設定画面を開くだけです。

f:id:splicom:20150731202842j:plain

追記ここまで

以前書いた「購読中のブログの一覧を表示するスクリプト」にURLを追加しようかとも思いましたが、テキストのみで直接リンクにできないので現時点ではまだ対応していません。

sprint-life.hatenablog.com

登録解除を推進するようで若干うしろめたさはあるものの、読んでないのに登録したままなのもどうかと思うので、見直しの際にご活用ください。