LoginSignup
7

More than 5 years have passed since last update.

はてなのシロクマを屑籠に放り込むユーザースクリプト

Last updated at Posted at 2016-04-11

概要

SHIRO-KUMAKUZU-BAKO.JPG

です。
どう見てもはてなのシロクマを非表示にします。

こいつははてなブックマークをログインせずに見ているとランダム(かのように)に現れます。
こういったリマインダーは最近多いですが、手癖の動きをランダムに妨害されると結構イラっとしてしまいます。
かといって社用PCでログインする気もないので、表示条件を調べて黙殺します。

はてブは大喜利を楽しむエンジニアが情報収集したり記事の真偽の目安にしたりと日常的に使う重要な場所なので、
逃れられぬリマインダーから逃げてしまいましょう。

動作確認環境

  • Windows7
  • Firefox46
  • Greasemonkey
  • はてなブックマーク非ログイン

結論コード

rm_bear.user.js

rm_bear.user.js

// ==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);

調査メモ

まずは表示条件がわからないので、はてブを何回もリロードします。
SHIRO-KUMAKUZU-BAKO.JPG
が出たらストップ。
うっかり更新しすぎる人はゲームのキャラメイクなどで理想的数値を再ロールする絶望を糧に心眼を養いましょう。

表示されたら開発者ツールのインスペクタを使い情報収集。

gest_modal.JPG

IDなどがあればと思いましたが、src属性でも多分大丈夫でしょう。
そのままデバッガに移動し、JavaScriptを調べます。

すべてのファイルから検索するために!/guide/guest_modalで検索

debug_bear.png

あとはネストとオブジェクトを辿って条件に入らなくしてやればいい。

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.usertrueにするか、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);

はい、グローバル変数のHatenaBookmarkですね。
グローバルにあればユーザースクリプトで参照できるので、vcountなりを直接書き換えてあげればOKです。

ちなみにvcountを39に設定すれば毎回表示させることができます。
クマに会いたくなったら(40で)割りきった気持ちになればF5を連打せずとも会えます。

なお、usertrueにした場合の他への影響は未調査です。

熊野 ナンシー

というらしいです。通称くまこ。

大きめの鼻とアンニュイな目からオスだと思ってました。
いや、今でも別熊の可能性が拭えませんが、しかしググりぢからが足りない。


くまこもいいけどくまみこChangもよろしくね。

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
7