概要
です。
どう見てもはてなのシロクマを非表示にします。
こいつははてなブックマークをログインせずに見ているとランダム(かのように)に現れます。
こういったリマインダーは最近多いですが、手癖の動きをランダムに妨害されると結構イラっとしてしまいます。
かといって社用PCでログインする気もないので、表示条件を調べて黙殺します。
はてブは大喜利を楽しむエンジニアが情報収集したり記事の真偽の目安にしたりと日常的に使う重要な場所なので、
逃れられぬリマインダーから逃げてしまいましょう。
動作確認環境
Windows7
Firefox46
Greasemonkey
- はてなブックマーク非ログイン
結論コード
// ==UserScript==
// @name rm bear
// @description はてなブックマークの登録誘導を消す
// @namespace khsk
// @include http://b.hatena.ne.jp/*
// @version 1
// @grant none
// ==/UserScript==
// ログイン済みユーザー?のフリをするなら
Hatena.Bookmark.user = true;
// visit回数の記録改変を気にしないなら
Hatena.Bookmark.cookie.set('vcount', 1);
調査メモ
まずは表示条件がわからないので、はてブを何回もリロードします。
が出たらストップ。
うっかり更新しすぎる人はゲームのキャラメイクなどで理想的数値を再ロールする絶望を糧に心眼を養いましょう。
表示されたら開発者ツールのインスペクタを使い情報収集。
IDなどがあればと思いましたが、src
属性でも多分大丈夫でしょう。
そのままデバッガに移動し、JavaScriptを調べます。
すべてのファイルから検索するために!/guide/guest_modal
で検索
あとはネストとオブジェクトを辿って条件に入らなくしてやればいい。
B.RegistReminder = {
count: function () {
if (B.user) {
B.cookie.clear('vcount');
} else {
var vcount = B.cookie.get('vcount');
vcount = vcount ? ++vcount : 1;
B.cookie.set('vcount', vcount , '+10y');
if (vcount % 40 == 0) {
うーん、やっぱりregistって使っていいのかしら。
どうやら40回ごとに表示されるようである。
体感では結構レアに感じてました。(この時の自分のvcount
は約1500でした)
条件分岐から、B.user
をtrue
にするか、vcount
の値を常に+1されても40で割り切れない値にしてやればいい。
cookie
へのセット方法も書かれているのですぐ使える(+10yは有効期限?不明)。
B
は何かと調べると、このファイルの先頭に書かれている。
var Hatena = Hatena || {};
(function (Ten, Hatena) {
var B = Hatena.Bookmark = Hatena.Bookmark || {};
try { // 念のため例外補足
var h = document.getElementsByTagName("html")[0]
// for v3
B.isV3EntryPage = (h.getAttribute("data-is-v3-entry-page") === "true");
} catch (err) {}
B.isLocal = !/(?:^|\.)(?:b|bkuma)\.hatena\.ne\.jp$/.test(location.hostname);
はい、グローバル変数のHatena
のBookmark
ですね。
グローバルにあればユーザースクリプトで参照できるので、vcount
なりを直接書き換えてあげればOKです。
ちなみにvcount
を39に設定すれば毎回表示させることができます。
クマに会いたくなったら(40で)割りきった気持ちになればF5を連打せずとも会えます。
なお、user
をtrue
にした場合の他への影響は未調査です。
熊野 ナンシー
というらしいです。通称くまこ。
大きめの鼻とアンニュイな目からオスだと思ってました。
いや、今でも別熊の可能性が拭えませんが、しかしググりぢからが足りない。
くまこもいいけどくまみこChangもよろしくね。