続:Google Deskbarで遊んでみる
先ほどとは違って、あまり危なくない上に、そこそこ使える物を……ということで。
とりあえずはC#のソースを。前回よりもさらに@ITの記事を参考にしています。例によって、ネストは全角スペースで行っております。
using System;
using System.Text;
using System.IO;
using System.Web;
using Google.Desktop;
namespace Kbukulo
{
/// <summary>
/// HTML生成クラス……
/// </summary>
public class HTMLcoder
{
public static string makeHTML(string keyword, string haURL, string wkURL)
{
string template = @"
<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=SHIFT_JIS'>
<title>単語意味検索:「{0}」</title>
</head>
<body style='background-color:#EEEEEE'>
<br />
<br />
<h1 style='font-size: 120%'>単語意味検索:「{0}」</h1>
<ul>
<li><a href='{1}'>はてなキーワード</a></li>
<li><a href='{2}'>Wikipedia</a></li>
</ul>
<br />
</body>
</html>";
return String.Format(template, keyword, haURL, wkURL);
}
}
/// <summary>
/// Kbukulo の概要の説明です。
/// 入力された文字列をURLエンコードして、所定のURLと組み合わせる。
/// web辞書へ直接アクセスするURLが出来たら、それを元にローカルのHTMLファイルを作成。
/// そして、そのHTMLファイルを開く。
/// データファイルを別に分けないとなぁ……。
/// </summary>
public class Kbukulo :ICustomSearch
{
public string Title()
{
//プラグイン名
return "単語意味検索";
}
public OutputType GetOutputType()
{
//ミニviewerで開く
return OutputType.kViewer;
}
public string Run(string query, OutputType browser_type)
{
//ImiKensaku()の戻り値を渡す
return ImiKensaku(query);
}
string ImiKensaku(string query)
{
string keyword = query;
//はてなとWikipediaのURIを文字列型で
string khatena = "http://d.hatena.ne.jp/keyword/";
string kpedia = "http://ja.wikipedia.org/wiki/";
//URLエンコード
string sjiskey = HttpUtility.UrlEncode(keyword, Encoding.GetEncoding(932));
string utf8key = HttpUtility.UrlEncode(keyword);
// string eucjpkey = HttpUtility.UrlEncode(keyword, Encoding.GetEncoding(51932));
//はてなはShift-JIS
//wikipediaはUTF-8
string haURL = khatena + sjiskey;
string wkURL = kpedia + utf8key;
//出力用HTMLソース
string output = HTMLcoder.makeHTML(keyword, haURL, wkURL);
//テンポラリに.htmlを出力するためのパス指定
string path = Path.Combine(Path.GetTempPath(), "Kbukulo.html");
//HTML書き出し
StreamWriter sw = new StreamWriter(path, false, Encoding.GetEncoding("Shift_JIS"));
sw.WriteLine(output);
sw.Close();
//書き出したファイルへのパスを戻り値に
return path;
}
}
}
どういう動作をするかというと……サマリにも書いていますけど、入力された単語をURLエンコードして、はてなダイアリーやWikipediaのページが直接開けるようなURLを作成する、と。そして、それをリストにしたHTMLをローカルに作って開く、という仕組みです。
ソースコード内に直接あれこれ入っているのが下品だけれど、もう少し項目を増やせば、そこそこ実用になりそうな気配はしますね。
もしかしたらリリース版を作るかも知れません(今のところは、先のプラグインと同様に自分専用)。
コメント