Create  Edit  Diff  FrontPage  Index  Search  Changes  RSS  Login

disp_referrer2.rb

本日のリンク元もうちょっとだけ強化プラグイン

disp_referrer2.rbは、2003年9月19日にdisp_referrer.rbとしてtDiaryのレポジトリにコミットされました。 むとうさんのdisp_referrer.rbを使いたい方は、配布元から取得するか、Branch_disp_referrer-1ブランチを使ってください。なお、tDiary-1.5.5以下に同梱されているdisp_referrer.rbはむとうさんによるものです。

概要

アンテナからのリンク、サーチエンジンの検索結果を、通常のリンク元の下にまとめて表示します。サーチエンジンの検索結果は、検索語毎にまとめられ、日記自体の検索機能へとリンクすることもできます。

アンテナからのリンクの表示は、むとうさんの本日のリンク元表示プラグインでも可能になりました。リンク元表示を検索語毎にまとめる必要がない方は、disp_referrer2.rbは必要ないかもしれません。

最新の日記の表示では、通常のリンク元以外のリンク元を隠します。

tdiary-1.5.3-20030509以降で使えます。secure=trueな日記でもそれなりに使えます。

使い方

このプラグインは、tDiaryのリンク元置換リストによって置換された文字列とリンク元のURLを用いて、リンク元の種類の決定をしています。検索エンジンのURLの解釈は、プラグインに内蔵のリストを使ってやっています。

アンテナ
/a/か/antenna/かwww.tdiary.netなどを含むURL、または、置換された文字列が「アンテナ」か「links」などを含むURL。
検索エンジン
プラグイン内のリストにあてはまるURL。
通常のリンク
上記以外の、リンク元置換リストにあるURL。
その他のリンク
検索エンジンのリストやリンク元置換リストにあてはまるものがないURL。

リンク元置換リストに無いURLからのリンクがあった場合には、その他のリンク元として処理されます。URLが長い場合はtDiary本体の置換リストによって通常のリンク元になるかもしれません。このような場合には、適宜リンク元置換リストを編集してください。リンク元置換リストへのURLの追加の時は、referer_tableが参考になるかもしれません。また、その他のリンク元に関しては、WWWブラウザから「設定」→「リンク元もうちょっと強化」→「リンク元置換リストの編集に移る」を辿って、追加できます。

検索エンジンの追加にはプラグイン自体の編集が必要ですので、このページに書いておいてください。

基本的なオプションは、WWWブラウザから「設定」→「リンク元もうちょっと強化」を辿ることによって設定できます。詳細なオプションは、プラグインのファイルの中に説明がありますので、それを見て設定してください。

リファラスパム対策としてこのプラグインを使う

「設定」→「リンク元もうちょっと強化」より、「リンク元の分類と表示」の項目で、

  • リンク元置換リストにないリンク元を「その他のリンク元として分ける」
  • その他のリンク元を「隠す」

ようにすれば、リンク元置換リストにないリンク元(検索エンジンとアンテナ以外)は日記に表示されないようになります。お試しください。

なお、設定画面から、「その他のリンク元の置換リストの編集に移る。」をクリックすると、キャッシュを使っている場合は全部の日記の、キャッシュを使っていない場合は最新の日記で表示される日記の、リンク元置換リストにないURLが表示されます。

インストール方法

disp_referrer2.rbをpluginディレクトリに配置してください。漢字コードはEUCです。

UconvライブラリやNoraライブラリがインストールされていればより幸せになりますが、無ければ無いなりに動作します。

更新記録

  • 2003/03/07(1.1.2.11) 検索エンジンからのリンクがないか表示しない設定になっているときにリンク元が表示されない不具合を直しました。-zunda
  • 2003/03/14(1.1.2.16) 通常のリンク元、アンテナからのリンクもグループにまとめて表示できるようにしました。-zunda
  • 2003/03/20(1.1.2.21) 括弧内の文字列を無視して集計した場合に、無視した文字列をそれぞれのカウント数と一緒に表示するようにしてみました。-zunda
  • 2003/03/28(1.1.2.24) 検索キーワード内の改行を無視できるようにしました。-zunda
  • 2003/03/31(1.1.2.25) コンストラクタを再実装。少しだけCPU負荷が軽くなったと思います。-zunda
  • 2003/06/12(1.1.2.31) ()の入った検索キーワードに対応できなかった問題を解決しました。-zunda
  • 2003/07/03(1.1.2.35) リンク元置換リストに入っていないURLからのリンクをデフォルトでは表示しないようにしました。更新時には表示されます。どなたかが憂慮されていた(どなただっけな?)リファラspam対策の一つの方法になるかと思います。-zunda
  • 2003/07/16(1.1.2.40) 検索エンジンの置換リストを内部に持つようにしました。これを使いたくない場合は、@options['disp_referrer2.search.use.internal'] = falseにしてください。-zunda
  • 2003/08/04(1.1.2.39) ただいま絶賛(うそ)改造中につき安定版をhttp://zunda.freeshell.org/d/plugin/disp_referrer2.rb.stable として置いておきました。-zunda
  • 2003/08/13(1.1.2.87) 新版をリリースしました。-zunda
    • キャッシュにより表示が高速化された(レンタルtDiaryなどsecure=trueな日記ではキャッシュできません)
    • リンク元置換リストにないURLを比較的簡単にWWWブラウザからリストに追加できるようになった
    • 置換後の文字列の最初に[]で囲まれた文字を入れることによって、ユーザーがカテゴリーを増設できるようになった(最初の一つだけが有効です)
    • 基本的な設定をWWWブラウザからできるようになった
    • UconvライブラリやNoraライブラリがあればあるなりに、無ければないなりに動作する

という特長があります。また、

    • 検索エンジンのリストをプラグインで持つようになったので、 リンク元置換リストの検索エンジンに関する記述が効かない
    • 廃止されたオプションがある
    • オプション名が変更された

という非互換があります。

  • 2003/08/13(1.1.2.88) アンテナのURLをアンテナと認識できないバグを修正しました。-zunda
  • 2003/08/14(1.1.2.90) リンク元置換リストの編集の際に、置換リストにはないがアンテナに分類されていたURLがリストに表示されるようにしました。-zunda
  • 2003/08/14(1.1.2.98) リンク元置換リストの編集の時にテキストフィールドの中でリターンキーを押した際に、的確な処理をするようになりました。また、secure=trueな日記でリンク元置換リストを編集した際に、更新がすぐに設定画面に現れない不具合を修正しました。-zunda
  • 2003/08/14(1.1.2.99) www.h2.dion.ne.jpが検索エンジンになってしまう問題に対応しました。小人さん、ご報告ありがとうございました。-zunda
  • 2003/08/27(1.1.2.101) rd.yahoo(リダイレクタ)と、Searchalot、Hotbotを追加しました。mputさん、ご報告ありがとうございました。-zunda
  • 2003/09/12(1.1.2.104) 再び、「その他のリンク元」を隠せるようにしました。-zunda
  • 2003/09/19(1.27) tDiaryのレポジトリにcommitしました。-zunda
  • 以降はChangeLogをご覧ください。

謝辞

このプラグインは、重要な

  • UTF-8文字列のEUC文字列への変換
  • 一部の検索エンジン名とそのURL
  • 検索エンジンのロボットのクローリングの際にリンク元を表示しない

機能を、むとうさんのdisp_referrer.rbから流用させていただいています。

また、URLを解釈する機能の一部を、Rubyに付属のcgi.rbからコピー、編集して使わせていただいています。

さらに、通常のリンク元を[]で囲まれた文字列を使ってカテゴリ分けするアイディアは、かずひこさんのものです。

皆様に感謝いたします。

要望

検索エンジンのURLの追加など、ここに追記してください。できるだけ具体的なURLがあると助かります-zunda

  • 検索エンジンもそろそろWebから設定できるようにした方がいいのでは?メンテが大変そうだし…。そろそろ2.2出るみたいですからタイミング的にはよろしいかと。
    • 実行速度を保つため、複雑な書き方(正規表現やサーチエンジンのタイトルなどを要素とする配列の配列を要素とするハッシュ)をするようになってしまっています。ユーザーの方が自分でメンテナンスする手間と、「その他のリンク元」に検索エンジンからのURLが表示されてしまう状況とを比較すると、後者を採りたい人の方が多いようにも思います。いかがでしょうか?-zunda
    • じゃあ、ネットから最新の設定を入手できるようにするとか。-ただただし

解決済みの要望

  • tripodとinfoseekの統合で http://members.at.infoseek.co.jp/ みたいなURLができたのですが、これがすべて検索エンジンに扱われてしまいます。
    • 1.1.2.103以降に更新してみてください。-zunda
  • msnはリンク元をクロールしているようです
    • tdiary.confに「@options['bot'] = ['msnbot']」を追加すれば避けてくれます。近々デフォルトで対応すると思います
  • 下記、disp_referrer.rb,v 1.38以降、ja/disp_referrer.rb,v 1.12以降で対応しているはずです。ありがとうございます。-zunda
    • livedoor検索(http://sf.livedoor.com/search?q=)が通常のリンク元に混じるようです。
      • 時間がつくれずに更新が遅れていてすみません。Rubyのわかる方でしたらja/disp_referrer.rbの検索エンジンリストに、他の検索エンジンを参考に書き加えてください。Rubyのわからない方でしたらすみませんが、しばらくお待ちください。-zunda
      • http://diary.sakura.ne.jp/?date=20040819#p01 に説明があります。...勘違いでした。本日のリンク元に入ってしまうということですね?
      • ではこんなかんじでいいですか。
        • 'livedoor' => %r{\Ahttp://.*?\.livedoor\.}i, '"Livedoor"', ['q'], nil ?,
        • 'livedoor' => %r{\Ahttp://.*?\.livedoor\..*?/search}i, '"Livedoor"', ['q'], nil ?,
      • おまけに 'aol' => %r{\Ahttp://.*?\.aol\.}i, '"AOLサーチ"', ['query', 'query_contain'], nil ?,
    • 検索エンジンをいくつか追加してみました.めちゃ適当ですが.次のバージョンに取り込んでいただけると嬉しいです.
      • 'searchscout' => %r{\Ahttp://(?:results?,
      • 'tkensaku' => %r{\Ahttp://www\.tkensaku\.com/sclient\.cgi}i, '"TKENSAKU"', ['value'],?,
      • 'yahoofs' => %r{\Ahttp://cache\.yahoofs\.jp/(?:search/)?cache}i, '"Yahoo! cache"', ['p', 'w'],?,
    • http://blog.goo.ne.jp/foo/ からのリンクも検索によるものだと勘違いされてしまい、「キーワード不明」として表示されてしまいます。disp_referer.rb の DispReferer2_Engines['goo'] あたりがあやしい?
  • feedback検索(http://naoya.dyndns.org/feedback)、まとめ検索(http://www.matome.jp/)が正しく分類されないようです。
    • feedbackはこんな感じで取り込んで頂けると。
      • 'feedback' => %r{\Ahttp://naoya\.dyndns\.org/feedback/app/search}i, '"feedback検索"', ['keyword'],?,
    • ありがとうございます。ja/disp_referrer.rbに追加してみましたが、やはり[本日のリンク元]に分類されてしまいます。[キャッシュの更新]を行っても変化ありませんでした。disp_referrer.rb,v 1.42、ja/disp_referrer.rb,v 1.16を使用しています。
    • バックスラッシュは正しく入力されていますか?コピペすると '\' が '/' に変わっちゃうことがありますよ。
    • ハッシュのキーはURLのホスト名部分のうしろから2番目か3番目です。この場合はdydnsにします。テストが終わり次第とりこみます。ありがとうございました。 -zunda
  • まとめ検索は…う〜ん、どうしたらいいんだろう?リンク元URLにキーが存在しないんですよ。例えばhogeだと以下のようなURLになるんです。
  • cafesta検索の追加やってみました。あっているかな…。
    • 'cafesta' => %r{\Ahttp://tool\.cafesta\.com/overture/search\.cgi.*}i, '"Cafesta検索"', ['Keywords'],?,
  • 個人サイトのlink.html等のページが、アンテナではないのにアンテナで分類されます。自分的にはただのリンク集はアンテナに分類されないほうが直感的かなと思います。こういうものだと割り切ればよいのでしょうが...byひろりん
    • リンク集はアンテナ的だと思ってるのですがどうでしょう?設定画面からアンテナの正規表現を編集して必要ならキャッシュを更新していただければ分類が変わると思います。-zunda
      • 了解です。確かに言われてみるとアンテナでもいいかなと思いました。byひろりん
  • 下記の要望に、ja/disp_referrer.rb,v1.31で対応しました。長らくお待たせしてしまってすみませんでした。-zunda
  • ここ、まだ有効ですかね?
  • knuさんより、blog.chew.jpの検索
 'chew' => [[%r{\Ahttp://blog\.chew\.jp/result/(?:.*/)?(.+)}, 'keyword=$1; "YGブログ検索"', [], nil]],
  • ほかにもいくつか。(knu, 2007-07-18)
 'wordtantei' => [[%r{\Ahttp://wordtantei\.com/result/(?:.*/)?(.+)}, 'keyword=$1; "ワード探偵"', [], nil]],
 'sfa-cms' => [[%r{\Ahttp://www\.sfa-cms\.com/word/(?:.*/)?(.+)}, 'keyword=$1; "入れ⇔替え検索"', [], nil]],
 'hatena' => [[%r{\Ahttp://search\.hatena\.ne\.jp/}i, '"はてな検索"', ['word'], nil]],
 [%r{\Ahttp://([a-z]{2})\.search\.yahoo\.com/}i, '".#{$1}のYahoo!検索"', ['p'], DispReferrer2_Google_cache], # [%r{\Ahttp://(?:[^bm/]+|blog-search)\.yahoo.... の前の行に。
 [%r{\Ahttp://search\d*\.www\.infoseek\.co\.jp/(?:[IO]Titles|Seek)}, '"Infoseekハイブリッド検索"', ['qt'], nil], # Infoseek最終行を置き換え。
  • Live Search。(knu, 2007-07-26)
'live' => [
  [%r{\Ahttp://search\.live\.com/results\.aspx}i, '".#{$1}のLive Search"', ['q'], nil],
  [%r{\Ahttp://search\.live\.com/images/results\.aspx}i, '".#{$1}のLive Search(画像)"', ['q'], nil],
  [%r{\Ahttp://search\.live\.com/news/results\.aspx}i, '".#{$1}のLive Search(ニュース)"', ['q'], nil],
],
  • 遅くなりました。上記3項目をja/disp_referrer.rb,v 1.44としてcommitしました。-zunda (2007-12-10)
Last modified:2007/12/10 21:51:59
Keyword(s):
References:[PluginList] [disp_referrer_ext_category.rb]