「LDRにブックマーク数を表示するスクリプト」を改造する

By mattz, 2011/03/30

takefさんのLDRにブックマーク数を表示するスクリプトをここ半年くらい使っていたのだけど、「s」で読みすすめている分にはいいのだけど、「a」で戻ったりするとブックマーク数アイコンが二重に表示されて微妙に気持ち悪いので、ちょこっと改変。ついでなので、主に利用しているlivedoor clipも表示するように。

// ==UserScript==
// @include       http://reader.livedoor.com/reader/*
// ==/UserScript==
(function () {
  var entryurl = "http://b.hatena.ne.jp/entry/";
  var apiurl = "http://b.hatena.ne.jp/entry/image/";
  var entryurl2 = "http://clip.livedoor.com/page/";
  var apiurl2 = "http://image.clip.livedoor.com/counter/";
  register_hook('before_printfeed', function(feed) {
    var items = feed['items'];
    var len = items.length;
    for (var i = 0; i < len; i++) {
      var item = items[i];
      var url = item['link'].replace('#', '%23');
      if(! item['title'].match(/<a href=/)) {
        item['title'] += '<a href="' + entryurl + url + '"><img src="' + apiurl + url + '"></a>';
        item['title'] += '<a href="' + entryurl2 + url + '"><img src="' + apiurl2 + url + '"></a>';
      }
    }
  });
})();

rel='next'なlink要素を強制的に付加するuser.js

By mattz, 2011/01/07

Operaにはfastforwardという素敵な機能があって、真っ当なつくりのページであればこれで事足りるのですが、世の中真っ当なつくりのページというのはなかなかございませんもので、このようなものを作りました。

もちろん、extreme-fast-forward.jsなんていうものが既にあるこ とは百も承知なのですが、oAutoPagerizeが好みではないもので、SITEINFOとか導入してませんし。

やってることは、rel='next'なlink要素がない場合は、ページ内のリンクから次っぽいリンクを見つけて(※)、そのリンク先URLをnextページとしてrel='next'なlink要素を付加するというものです。

※ちなみにa要素のinnerTextに「次」とか「つぎ」とか「Next」があればそのリンクは次のページへのリンクであろう、とか、a要素のinnerTextがなくて、a要素の中身が画像であってそのalt属性に「次」とか「つぎ」とか「Next」とかあるならそのリンクは次のページへのリンクであろう、みたいなやり方です。

副作用として次原隆二みたいなリンクに反応しちゃうことがありますが、まぁ大体うまくいっています。よろしければご利用下さい。

// ==UserScript==
// ==/UserScript==
(function (){
  var makeNextrel = function(url) {
    var n = document.createElement('link');
    n.rel = 'Next';
    n.href = url;
    document.querySelector('head').appendChild(n);
    return false;
  }
  var regexpnext = new RegExp(/(次|つぎ)( ?|[のへ])|next|[Nn][Ee][Xx][Tt])/i);
  window.addEventListener(
    'DOMContentLoaded',
    function(){
      var needsNext = true;
      var links = document.querySelectorAll('link');
      var i;
      for(i = 0; i  links.length; i++) {
        if(links[i].rel.match(/next/i)) {
          needsNext = false;
          return false;
        }
      }
      var ancs = document.querySelectorAll('a');
      var len = ancs.length;
      var linkto = '';
      for(i = 0; i  len; i++) {
        if(ancs[i].href) {
          linkto = ancs[i].href;
          if(ancs[i].innerText.match(regexpnext)){
            needsNext = makeNextrel(linkto);
          } else if('IMG' == ancs[i].firstChild.tagName){
            var f = ancs[i].firstChild;
            if(f.getAttribute('alt') && f.getAttribute('alt').match(regexpnext)) {
              needsNext = makeNextrel(ancs[i].href);
            } else if(f.getAttribute('title') && f.getAttribute('title').match(regexpnext)) {
              needsNext = makeNextrel(ancs[i].href);
            }
          }
        }
        if(!needsNext) {
          break;
        }
      }
    },false
  );
})();
var regexpnext = new RegExp(/(次|つぎ)( ?|[のへ])|next|[Nn][Ee][Xx][Tt])/i);

のところをお好みの正規表現に変えてあげれば、これでうまく行かないページでもどうにかなるはずですが、正規表現なんか知らんという方はご相談下さい。

Togetter向けuser.jsバージョンアップ

By mattz, 2010/09/15

2011/06/02 追記

2011/5末のリニューアルに伴い、リンク削除。

2010/04/16 追記

自分で使っていて見つけた不具合の対応だの、気に入らないところの調整だの追加したい機能だのがちょこちょこと出てくるので、結構頻繁にバージョンアップしています。で、本日現在の最新版。

http://mattz.xii.jp/sites/default/files/togetter_3_0_4.js

ちなみにバージョン2系の更新履歴はこんな感じ。

//   2.0.0 b1 2010/09/15 リリース
//   2.0.0 b2 2010/09/16 RT省略時のURLがリンクにならないのをとりあえず対応
//                       タイトルのNGワードフィルタ機能追加
//   2.0.0 b3 2010/09/16 まとめの時系列が逆転しているtweetにマークする機能追加
//   2.0.0    2010/09/22 まとめた人のIDでフィルタリングする機能追加
//   2.0.1    2010/10/01 リニューアル対応,
//                       設定キャンセルボタンの追加
//   2.0.2    2010/10/04 全体がRTであるtweet(意味があるというのもわかるが邪魔だ)を隠す機能を追加
//                       ついでにclip関係にバグがあったので修正
//   2.0.3    2010/10/05 サマリの省略方法の変更
//   2.0.4    2010/10/22 設定を開くボタンの表示位置を選べるようにした。
//   2.0.5    2010/11/29 はてなブックマークの変更に対応

ここから元々のの本文

Togetter関連の諸々を一つにまとめてみました」で公開しているtogetter.jsですが、色々思うところあって、バージョン2を作りました。

http://mattz.xii.jp/sites/default/files/togetter_2_0_0.js

2010/10/01リニューアル対応版
http://mattz.xii.jp/sites/default/files/togetter_2_0_1.js

2010/10/04 バグ修正&機能追加
http://mattz.xii.jp/sites/default/files/togetter_2_0_2.js

バージョン1から変わったこと

ページャー機能の廃止
ネイティブなページャのみで十分であろうと判断。
各種設定をブラウザ上でできるように変更
ウィンドウ右上に常に黄緑色の■が表示されるようになりますが、これをクリックすると、設定変更できます。
localStorageチョーベンリ。
特にgreasemonkeyの人は、scriptを書き換えるというのは大変そうなので。
とはいえ、今回greasemonkeyとして機能するかどうかは全く検証してません。基本Opera用です。
Greasemonkey版も一応用意しました。動かない(Firefoxでは動くみたいですが、Chromeだとダメですね)とか文句言われても対応できませんので、自分で何とかしていただいて何とかしたら是非公開してください。
Greasemonkey版は諦めました。jQueryを読み込む処理の分、別版にせざるを得ないのに加えて、普段使いもしないFirefoxのために対応する気になれ ません。パブリックドメインなので、必要なら勝手になんとかしてください。
ID(スクリーンネーム)ごとに背景色を変更する機能の廃止
要らないよね?どうしても欲しい人がいたら追加しますけど。
思いっきりjQueryに依存
何かと便利なので。

バージョン2公開時からさらに変わったこと

まとめた人のIDによってフィルタリングする機能を追加
誰とはここには書きませんけど。
個別まとめページのページ上部のメニューにコメント欄へのリンクを追加
コメントが増えてるかどうか確認したくて再訪することが結構あるので。
まとめタイトルをNGワードでフィルタリングする機能
ないすみーとかないすゆーとかホント興味ないんです。
まとめの並び順が時間順じゃない時に強調する機能を追加
わざわざそういうまとめをする場合、何かしら意図があるはずなので。

おすすめのuserCSS

あと、個人的には、下のようなuser cssと組み合わせるといいと思っています。色々非表示にしてますが、表示したい項目があったら、適宜修正してください。

div.list_body span[class]{
  font-weight:normal !important;
  font-size:inherit !important;
  font-style:normal !important;
  color:inherit !important;
}
.favorite_box                 /* 誰がお気に入りしたかとか興味ない                     */
,.hatena-star-star-container  /* どれだけスターがついたかとか興味ない                 */
,.tag_box                     /* どんなタグが付いているかにも興味ない                 */
,.icon                        /* どれだけ気に入られてるかとか読まれてるかとか興味ない */
,.ticket_img                  /* 新着かどうかとか興味ない                             */
,.side_user_box               /* 最近ログインしたユーザとか一番興味ない               */
,.blogparts_box               /* BOTのつぶやきとか見る必要を感じない                  */
,#footer                      /* フッタも要らね                                       */
,.twitter_button              /* Tweetボタンイラネ                                    */
,.livedoor_button             /* Clipボタンイラネ                                     */
,.delicious_button            /* delciousボタンイラネ                                 */
,.hatena_button               /* はてなブックマークボタンイラネ                       */
,.followme_box                /* フォローする気もない                                 */
{
  display:none !important;
}
.info_description{
  display:none;
}
a.info_title
{
  background-image:none !important; /* 一覧画面のタイトルの下線だと思ったら画像かよ */
  font-size:11pt !important;
}

2010/09/22 追記

「まとめた人のIDによってフィルタリングする機能を追加」したバージョンを先ほど公開しました。
とりあえずこれでバージョン2としてはフィックスします。当面、バグ対応以外の修正は行いません。

2010/10/04 追記

つもりでしたが、機能追加しちゃいました。

Togetter関連の諸々を一つにまとめてみました

By mattz, 2010/04/23

2011/05/31 追記

Togetterがリニューアルで色々と変わって、そのままでは使えないのでとりあえずリンク外します。リニューアル対応はすすめていますが、Togetter自体、このあともしばらくは変更が入りそうなので、ある程度落ち着いたところでver 4.0.0を出します。


Togetter関連のもろもろを1つのuser.jsにまとめた。

ダウンロード→ http://mattz.xii.jp/sites/default/files/togetter.js

2010/04/26 追記

greasemonkeyタグつけてブックマークしている人とかいて申し訳ないので、Greasemonkey分からないなりに頑張って対応してみた。→ http://mattz.xii.jp/sites/default/files/togetter.user.js

2010/04/27 追記

ちょこちょこと微調整。

2010/04/28 追記

RTの引用部分を省略する時に、省略した部分をRT元のIDへのtitle要素にしてマウスオーバーで参照できるように変更した。

2010/09/15 追記

Togetter側で、@つきの名前をポイントすると、プロフィール?をhover表示するようにしてるため、これがうまいこといきません。
回避するには http://platform0.twitter.com/*/javascripts/hovercards.bundle.js をコンテンツブロックしてしまうという手がありますが、副作用もあ りますので、ご利用は計画的に。

2010/07/20 追記

Togetterのデザインリニューアルにあわせて修正しました。機能の追加はありません。

できること

  • http://mattz.xii.jp/node/388 フォントいじりを全て無効化します。
  • http://mattz.xii.jp/node/389 はてなブックマーク関連のイマイチしっくりこないところを僕にとって自然な感じに変更する。
  • ↑に加えて、ldcのclip数を表示したりできます。
  • http://mattz.xii.jp/node/390 ページャーリンクの追加。
  • 作成者のtweetだけ目立たせる。
  • 作成者のtweetの占有率を表示する。 http://d.hatena.ne.jp/Pasta-K/20100321/1269164746 をclipしてる人がウォッチリストにいたのでtitleだけみ て取り込んでみた。まぁ大元は@otsuneのtweetだしパクリとか言わないで下さい。というかソースを参考にしたりはしてませんがネタ自体はパクリです。ごめんなさい。
  • ID(スクリーンネーム)ごとに背景色を変更する。
  • 「引用つき野良RT」っぽいtweetの引用されたと思しき部分を消して「誰のtweetをRTしたか」だけ分かるようにします。ちなみにtweet自体が「RT:」で始まってたりするtweetは僕にとっては無価値なので、丸ごと消えます。
  • 「お気に入りしたユーザ」のアイコンを小さく表示します。つか、これこんな上の方に要らないでしょ。

全て、ほんのちょっと書きかえるだけで、機能を無効にできます。例えばフォントいじりの無効化とかはUserCSSの方が早かったりするので、不要ならdestroyTweetsSpanStyleってところをfalseにしてもらえばいいです。誰でも分かるようにしたつもりですけど、分からなかったら諦めて下さい。面倒見る気はありません。

Togetterにページング機能を追加するuser.js

By mattz, 2010/04/14

またTogetterです。これじゃ好きじゃないとか言っても信用してもらえません。ま、せっかく作ったんで。

要するに

こうするuser.jsです。

http://mattz.xii.jp/sites/default/files/togetterpager.js

前/次リンクについてはTogetter本家が実装したようなので、<link rel='Prev'>とか<link rel='Next'>とかだけ追加するようなものに修正。

ナビゲーション要素に追加しますので、fastforwardも効きます。

Togetterの[XXusers]画像のリンク先をはてなブックマークのコメントページに変更するuser.js

By mattz, 2010/03/26

それほどTogetterが大好きってわけでもなんでもないんですが、Togettrのまとめページ見てると、何でこの画像のリ ンク先がはてなブックマークじゃないんだろう?といつも思うので。

http://mattz.xii.jp/sites/default/files/togetter2.js

追記

Togetterのデザイン変更で多分動かなくなったのでリンク外す。

Togetter関連の諸々を一つにまとめてみましたで代用可能だと思うので使ってやってください。

アクティブなtextフィールドに今日の日付を挿入するショートカットを追加するuser.js

By mattz, 2010/03/11

Excelの便利なショートカットに、Ctrl+;で日付挿入っていうのがあり、業務上それ(日付を入力する)をWebアプリでやることが多かったので作 った。色々参考にしたページ多数。実は全くそのまんまの機能のscriptも見つけてはいたのですけど、IE限定とか書いてあるし、割り当てるキーの変更がしにくいとか不満があったので。

http://mattz.xii.jp/sites/default/files/insertdate.js

色々と応用が利くのでエントリとして上げておく。

document.activeElementはFirefoxではwindow.getSelection().focusNodeとすればいいらしい。ChromeやSafariでのことは知らないし、試す気もありません

タグ

Twitterのパーマリンクを表示する時に前後のポストを取ってきて表示するUser.js作った

By mattz, 2010/03/04

特定の発言だけが RT されて前後の発言が無視されるとかなんとか、って Twitter がわで前後の発言にアクセスしづらいのも問題だよなー

追記

user.jsだと、API消費がなんなので、ブックマークレット版を推奨します。

追記終わり。

問題というか、Twitterの特定の1ポストがソーシャルブックマークでクリップされていたりなんかした時に、前後の発言も見たいなぁ、なんて思うことが多かったので、なんとかしてみた。

ダウンロード: http://mattz.xii.jp/sites/default/files/twst.js_.txt

イメージ伝わりやすいようにスクリーンキャプチャ。

APIを多分2個消費しますのでご注意ください。

あと、17行目~26行目くらいのところのCSS文字列を適当に変えると適当に見た目が変えられます。

俺環境(Windows Opera 10.50)でしか確認してないので、動作保障はしませんが、ご指摘いただければ可能な限り対応します。

既知の問題

特定ポストの直後のポストはうまく取得できなくて、最新の数ポストになっちゃうことが多いです。

修正履歴的なもの

3/4

コード中の<、>をちゃんと参照にしてなかったから全然だめだった。修正。つか、もしかしたらローカルのユーザスクリプトフォルダにjquery.jsの1.3.2を置いとかないとダメかも。

追記

別にローカルに1.3.2なくても大丈夫だった。Twitterが使ってる1.3.0だけで大丈夫。

3/5

statusでもstatusesでいいとは知らなかった。若干修正。だけで済まそうと思ったけど、よく見てみたら色々冗長だったりしたので割と全体的に見直し。

3/23

今更ですが、ブックマークレット版も用意したのでよろしければどうぞ。

10.50 beta2をsnapshotに上書きするのはやめた方がいいかも

By mattz, 2010/02/25

ソースは俺。

2台のマシン(XPと64bit7と)でやって2台とも、いろいろと不具合出ました。twicliの設定が飛ぶとか、設定しなおそうとしてもできないとか、speeddial.iniが壊れるとか。

ちゃんとsnapshotを消してから入れ直せば解消するのも2台とも同じ。

はっきりとした根拠はないですけども。

元々betaとかsnapshotって上書きしない方がよかったりするわけなんですけども。

元々betaとかsnapshotってそれくらい自分で何とかしてよねって代物だったりするわけなんですけども。

3275を入れてみて追記

直後に出たsnapshot、build3275をインストールしても同じ。一応beta2のアンインストールはしたんですが、やっぱりそれだけ(各種設定ファイルは残る)だと似たように不具合出る。

speeddialは壊れなかったが、twicliで設定したCSS情報やフィルタの設定が飛ぶ。飛ぶだけならもう一度設定するだけなので構わないのだが、その後twicliの設定を保存することができなくなる。Cookieの削除とかも一応してみたけどやっぱりだめっぽい。

他にも頼んでもいないのにCSSのエラーでコンソール出たりもするし(とりあえずopera:config#UserPrefs|ErrorConsoleFilterにはcss=4と追記しておいた) 訳が分からん。

snapshotが出るたびにプロファイルの削除までやってられないので、beta3とかRC版とかそういう節目のビルドが出るまで入れないことにします。

Opera 10.50βのページ内検索

By mattz, 2010/02/17

そうそう。10.50になってページ内検索の使い勝手が随分向上(主観です)しましたが、検索中にページが暗くなるのは嫌い(主観)です。

それはちょっと置いといて、先ほど全然別のこと、何かというとSpeed Dialの透過度は設定できるようになってないのかなぁと思ってopera:configでOpacityって検索してみたら、opera:config#UserPrefs|DimSearchOpacityっていう項目が見つかって、あ、これはと思ってそこの数値を下げてみたら、想像通り検索中の暗くなる度合いが下がったよ、って話。

Speed Dialの透過度らしき項目は残念ながら見つからなかった。

タグ