2008/01/31


しげふみさんのサイトでmicrosummaryという言葉を初めて目にしました。
livedoor Reader購読者数のライブタイトル
これはFirefoxだけの拡張で置いておくのは勿体無い。
しばらくしたら私のサイトでもmicrosummaryに対応したいと思いますが、とりあえず遊びも兼ねて...

Yahooヘッドラインニュースの最新1件をFirefoxのライブタイトルで表示出来る物を作ってみました。
インストールには、Microsummary Buddyが必要です。
Microsummary Buddyをインストールした後、以下のリンクをクリックして下さい。
※Firefox限定です。
YahooヘッドラインニュースのMicrosummary Generatorをインストール
これを入れた後Yahooヘッドラインニュースに移動し、ブックマーク追加を行います。
microsummary-yahoo-headline-news1
1段目のプルダウンメニューを広げると以下の様な項目が現れます。
microsummary-yahoo-headline-news2
ブックマークの登録先は、「個人用ツールバーフォルダ」に行います
すると、ブックマークツールバーに以下の様なブックマークが登場します。
microsummary-yahoo-headline-news3
※microsummaryが見つかるとアドレスバーに青いアイコンが現れます。
ライブタイトルの更新はデフォルトで30分おきという事なので、30分おきにYahooのヘッドラインニュース最新1件がブックマークツールバーに表示される事になります。

さて、このMicrosummary Buddyの拡張XMLですが中身は以下の様になっています。
<?xml version="1.0" encoding="UTF-8"?>
<generator xmlns="http://www.mozilla.org/microsummaries/0.1" name="Yahoo Headline News">
 <template>
  <transform xmlns="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <output method="text"/>
   <template match="/">
    <text>News:</text>
    <value-of select="//h1[@class='yjXL'][1]/a[1]/text()"/>
   </template>
  </transform>
 </template>
 <pages>
   <include>^http://headlines\.yahoo\.co\.jp/hl$</include>
 </pages>
</generator>
"generator/pages/include"でmicrosummaryを生成するURLのパターンを定義し、"generator/template/transform"でライブタイトルとなるmicrosummaryの変換式を書きます。
XSLTで「//li...なんちゃら」とやっている部分がYahooヘッドラインニュースのトップ記事1件を取得しているXPathになります。

面白いですね。twitterの最新発言や、自分のサイトはてなブックマーク数をライブタイトルにしても面白いかも知れませんね。
Posted at by




以前、個人的なブームでPlaggerのPublish::XXXプラグインを作ってた頃の知識を再利用。

Minibufferには、ソーシャルブックマークへ登録するコマンド「bookmark」があります。
minibufferbookmarkcommand.user.js
ちょっと前これを色んなSBMに対応出来る様にプラガブルに修正したのですが、ノウハウを生かして以下2本のbookmarkプラグインを作成しました。

GooBookmarkプラグイン
minibufferbookmarkcommand.goobookmark.user.js
NiftyClipプラグイン
minibufferbookmarkcommand.niftyclip.user.js
それぞれ :bookmark -g
:bookmark -n
で実行出来る様になっています。
Publish::XXXの時と同様に利用している人は皆無かと思いますが、よかったらどうぞ。
Posted at by




もう眠くなってきたら :shutdown ソースは // ==UserScript==
// @name           Minibuffer Shutdown Command
// @namespace      Minibuffer.Shutdown.Command
// @include        http://*
// ==/UserScript==


(function(){
  var mes = [
    'System is going down for system shutdown now.......',
    'Starting local stop scripts.                       ',
    'Exiting Syslogd!                                   ',
    'Syncing all filesystems:                       [OK]',
    'Unmounting all filesystems:                    [OK]',
    'The system is going down NOW !!                    ',
    'Sending SIGTERM to all processes.                  ',
    'The system is halted. Press Reset or turn off power',
    'flushing ide devices:                          [OK]',
    'System halted.                                     ',
  ];
  function shutdown( stdin ) {
    GM_addStyle(<><![CDATA[
      #gm_minibuffer_flash_status * {
      font-family: 'terminal', 'monospace';
      font-weight: bold;
      }
      ]]></>);
    var n = 0;
    var timer = setInterval(function(){
      window.Minibuffer.status('shutdown'+n, mes[n], 50000);
      if (n++ >= mes.length) {
        clearInterval(timer);
        document.open();
        document.close();
        document.body.style.backgroundColor='black';
      }
    }, 1000);
    return stdin;
  }

  if (typeof window.Minibuffer != 'undefined') {
    window.Minibuffer.addCommand({
      name: "shutdown",
      command: shutdown,
    });
  }
})();
こんな感じ。
インストール:minibuffer.shutdown.user.js
てか実用的な物つくれ!俺
Posted at by