※Linux版スタンドアロンFLASHプレーヤ![]()
って事でWindows版のUstreamプレーヤを作りました。
- GUIツールキットはFLTK2
- FLASHはブラウザが使用しているActiveXだけを表示
- 入力エリアにチャネル名を入力するだけで再生
実行画面はこんな感じです。
※Linux版スタンドアロンFLASHプレーヤ![]()
Microsummaries - MozillaWiki例えば、貴方が任意のWebサイト一覧を作り、そのWebサイト毎の最新サマリを日々更新したと思った場合どうするでしょうか。 Web::Scraperを使って、そのサイトの本文もしくはタイトルらしき辺りをスクレイピングするでしょうか。 もしくはmicrofomatsを使ってエントリを一覧し、その先頭を最新と信じて出力するでしょうか。
<link rel="microsummary" href="http://mattn.kaoriya.net/microsummary/entry_title.xml" />
という部分に、microsummary定義ドキュメントへのパスが記述されています。
<?xml version="1.0" encoding="UTF-8"?>
<generator xmlns="http://www.mozilla.org/microsummaries/0.1" name="Big Sky - Entry Title">
<template>
<transform xmlns="http://www.w3.org/1999/XSL/Transform" version="1.0">
<output method="text"/>
<template match="/">
<value-of select="html/head/title"/>
<text> - </text>
<value-of select="//div[@class='xfolkentry'][1]/h3"/>
</template>
</transform>
</template>
<update interval="240"/>
<pages>
<include>^http://mattn\.kaoriya\.net</include>
</pages>
</generator>
となっています。利用方法では、ニュースのヘッドラインを流す事も可能です。![]()
参考:FirefoxのブックマークツールバーでYahooヘッドラインニュースを流す方法さらに、ライブドアリーダのフィード詳細画面では、購読者数とレートがmicrosummaryとして配信されており、動的なブックマーク(ライブタイトル)を実現出来ます。 例えば私のサイトのフィード詳細でもmicrosummaryが配信されています。以下のブックマークレットで確認出来ます。
参考:しげふみメモ:livedoor Reader購読者数のライブタイトルこの他、定義ドキュメントに記述出来る要素については
Microsummary XML grammar reference - MDCに日本語訳化された物があるので興味のある方は参照してみて下さい。
bookmarlet:microsummary表示しているドキュメントのlink要素の内、ref="microsummary"の物を検索し、定義ドキュメントをXHRで取得しXMLDOMとしてパース。その後pages/includeにURLがマッチしている事を確認した後にXSLTプロセッサでサマリを生成する。といった仕組みです。
<?php
header('content-Type: text/plain; charset="Shift_JIS"');
# URLかどうか...(適当)
function isUrl($str) {
return (preg_match('/^(https?)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $str) && $str!="");
}
# コマンドとパラメータ
$c="";
$p2="";
$subject="";
if(isset($_REQUEST['c'])){
$c = $_REQUEST['c'];
}
if(isset($_REQUEST['p2'])){
$p2 = $_REQUEST['p2'];
}
if(isset($_REQUEST['subject'])){
$subject = $_REQUEST['subject'];
}
$c = mb_convert_encoding($c, "SJIS");
$pi = mb_convert_encoding($pi, "SJIS");
$subject = mb_convert_encoding($subject, "SJIS");
# コマンドのチェック
if ($c != 'hatebu' || $p2 == "" || !isUrl($p2)){
echo "response=ERROR\n";
echo "subject=".$c." ".$p2."\n";
echo "body=Failed\nInvalid parameter \"$c\" \"$p2\" \"$subject\"";
exit;
}
# AtomPubで送信
error_reporting(E_ALL);
require_once('class.atomapi.php');
require_once('class.wsse.php');
$username = 'xxxxxxxxxxxxxxxx';
$password = 'xxxxxxxxxxxxxxxx';
$endpoint = 'http://b.hatena.ne.jp/atom/post';
$auth = 'WSSE';
$entry = new AtomEntry();
$entry->set_title('HATENA');
$entry->set_content('BOOKMARK');
$entry->set_summary($subject);
$entry->add_link($p2, 'related', '', 'text/html');
$auth_obj = new WSSE($username, $password);
$post = new AtomRequest('POST', $endpoint, $auth_obj, $entry->to_xml('POST'));
$post->exec();
if ($post->error()) {
echo "response=ERROR\n";
echo "subject=".$c." ".$p2."\n";
echo "body=Failed\nInvalid parameter \"$c\" \"$p2\" \"$subject\"";
} else {
echo "response=SUCCESS\n";
echo "subject=".$c." ".$p2."\n";
echo "body=Succeeded";
}
exit;
?>
この状態で、ニワンゴ開発サーバからコマンドを発行する為に
m at open dot niwango dot jp
※「at」は「@」に、「dot」は「.」に置き換えます
hatebu [URL]
※[URL]はとりあえず、http/httpsのみにしました。このブログを応援する