2009/10/28
[PSTweet]TwitterクライアントPowerShellモジュールを作ろう!(1)
というわけで、PowerShell 2.0が出ましたのでモジュールをなんか作ってみたいと思います。手ごろで最近熱いといえばやっぱりTwitterクライアントじゃないかなあと。というわけで題材はこれ。
設計的なもの
・PSプロバイダを実装することで実現
・よって、独自コマンドレットは必要最低限実装
・Get-ChildItemでタイムラインを表示
・タイムラインはTimeLineオブジェクトで表現
・発言はTweetオブジェクトとして表現
・TimeLineオブジェクトの中にTweetオブジェクトの配列が含まれる
・PSpathとしてはタイムラインの場合Twitter::Friendになり、発言の場合はTwitter::username\0000000とかになる
・Set-Locationでタイムライン移動(フレンドTL,リプライTL,DirectMessage,任意のユーザー)
・Get-Contentでタイムラインや発言を文字列として取得
・Invoke-Itemでブラウザを開く
・Remove-Itemで自分の発言削除
・New-Itemでポスト
・Set-ItemPropertyで発言をお気に入りに追加
・認証が必要な操作に関しては-credentialパラメータを使用。ただしデフォルト値はどこかに保持しておく
・ぱっと思いつく必要な独自コマンドレットはGet-FollowerとGet/New/Remove-Followingかな。返す値はTweetする人ということでTweeterクラスを作る
というわけで、非常にシンプルというか硬派なクライアントです。シェルでパイプラインを駆使してフィルターかけたりスクリプトを組んだり、ラッパーGUIを組んだり(!)すると色々楽しいと思います。
とりあえずモジュールのHello Worldまでメモ。
基本はPSスナップインを作るのと同じです。なので、詳細は
C#と諸々 コマンドレットの作成方法
http://csharper.blog57.fc2.com/blog-entry-55.html
をご覧ください。ここでスナップインクラスを作る、インストール、スナップイン登録という部分をまるっきり省けばOKです。
配置ですが、$pshome\Modulesに今回作るクライアント名であるPSTweetフォルダを作ります。そこにPSTweet.dllとPSTweet.psd1を配置します。psd1ファイルはこんな感じで良いようです。
@{
GUID="{847D070F-3247-46AB-BAE9-166038EFEA4B}"
Author="Daisuke Mutaguchi"
CompanyName="Winscript"
Copyright="© Daisuke Mutaguchi. All rights reserved."
ModuleVersion="1.0.0.0"
PowerShellVersion="2.0"
CLRVersion="2.0"
NestedModules="PSTweet"
RequiredAssemblies=Join-Path $psScriptRoot "PSTweet.dll"
}
あとはImport-Module PSTweetでシェルから読み込めます。
というわけでこれから作っていこうと思いますよ。
元記事:http://blogs.wankuma.com/mutaguchi/archive/2009/10/28/182510.aspxプライバシーポリシー