2009/10/28

というわけで、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

2007/10/04

・.で始まるタイトルのファイルが同期されない

例) .NETのサイトです.url

これは.で始まるファイルをUNIX風にhiddenとみなすためと思われます。個人的にはシェルがちゃんとurlファイルと認識してるんだから例外として扱ってほしかったですね。どこかに設定あります?

 

・アクセスするたびにお気に入りバーの順序が変わる

最終アクセス日時が変わるのでお気に入りをクリックするたびに、ほかのPCと同期してしまうため順序が狂う。

これはちょっと・・・

 

結論:Groove2007をIEのお気に入り同期に使うのは微妙かな。

元記事:http://blogs.wankuma.com/mutaguchi/archive/2007/10/04/99806.aspx

2006/09/20

Bookmarkletとは、ブラウザのURL欄に入力して表示中のページに何らかのアクションを起こすスクリプトのことで、「お気に入り」や「ブックマーク」に指定することで再利用可能になります。ありがちだと思いますが、HTMLソースを表示するBookmarkletを書いてみました。

javascript:document.write(document.body.parentElement.outerHTML.replace(/\/g,">").replace(/\n/g,"
"));

実はこれを書いたのにはわけがあって、W-ZERO3[es]上で動作するPocketIEにソースを見る機能がないため作成したのですが…。肝心のPocketIE上ではうまく動作しません(泣

outerHTMLなどが取れないみたいですね。innerHTMLも駄目。writeとかalertとか使えるのに惜しいです。URLEncodeもなんか変で、\が%5Cにならず/になっちゃいます。最初これがエラーの原因かと思いましたが違いました。

でもOperaでは使えますよ!(なんか一昔前のWindows版ブラウザ事情とは逆だな〜)

元記事:http://blogs.wankuma.com/mutaguchi/archive/2006/09/20/39209.aspx


Copyright © 2005-2018 Daisuke Mutaguchi All rights reserved
mailto: mutaguchi at roy.hi-ho.ne.jp
プライバシーポリシー

Twitter

Books