limechat

LimeChatにprototype.jsの潤いを

LimeChatではwindowとかdocumentが設定されていないので、うまくごまかさないと、prototype.jsが動かない。 以下のコードを評価してから、prototype.jsを評価すれば、prototype.jsが使えるようになる。 var document = { getElementsByTagName : function() …

Grassスクリプトを実行できる(?)LimeChatスクリプト「Grass.js」

本当に出来ているのかどうか怪しいんだけど,Grass処理系(?)をLimeChatスクリプトとして使えるようにしてみた. function grass(code, inputHandler, outputHandler){ // List function N(v, n) { this.n = n; this.v = v; } N.prototype.i = function(s)…

LimeChatを携帯電話から操作するスクリプト「keitairc.js」

前に上げたスクリプトは POE 1.0003 を想定したワークアラウンドを入れることで,上手く動くようにしていた.今日,久方振りにActivePerlを新調したところ,POE 1.0002に下げられてしまった.CPANで無理に入れた物体なので,下げられるのは仕方ない.まあ,k…

Orthoclaseでkeitaircを動かしたい

LimeChatとkeitaircで接続を共有するために,LimeChat->IRC ProxyIRC Proxy経由で接続しなければならないのがうっとうしい.そこで,折角Orthoclaseでperlが動くんだから,keitaircをLimeChatに寄生させればいいんじゃないかと思った. 早速ちょこちょことポ…

LimeChatスクリプトを拡張するライブラリ 「Orthoclase」(4) + keitairc.js

http://d.hatena.ne.jp/anon_193/20090301/1235886634の続き. Download (from Mediafire) keitaircをポーティングするために新たな拡張を施した.どんなのかは前のエントリーの通り. あと,今回作った keitairc.js 0.01 for LimeChat. Download (from Med…

RubyScriptをOrthoclaseで使えるようにしたい (2)

RubyScriptをOrthoclaseで動かしたいので,もっともっとがんばってみた. イベントの接続は@LimeExt.ConnectObject(@event, "event_")で接続すればいいことに気付いたけど,今度はRubyScriptのディスパッチャが転けた. デバッガで原因を探ってみると,どう…

LimeChatスクリプトを拡張するライブラリ 「Orthoclase」(3)

http://d.hatena.ne.jp/anon_193/20090227/1235708463の続き. Download (from Mediafire) 今度はPHPScriptに暫定対応した.Microsoft製以外のスクリプトエンジンは,どいつもこいつもバグワールドで挙動がおかしいので,JScript/VBScript以外を使う場合,最…

PHPScriptをOrthoclaseで使えるようにしたい

PHPScriptをどうしても動かしたいので,もっとがんばってみた. デバッグデータベースを置いてちょこちょこデバッグしてみると,案の定、GlobalInterfaceTableをScriptSiteのスレッド間共有に使っていて死んでいた.RubyScriptと同じ原因だ・・・ ここで詰ん…

RubyScriptをOrthoclaseで使えるようにしたい

結論・・・イベント周りがIEべったりすぎて嘆くしかなかった.AddScriptlet呼び出し前提のイベント登録とかどういうことなの・・・ParseScriptTextだけだとイベント発火が門前払いという素敵仕様.これをどうにかするには,RubyScriptのソースコードそのもの…

LimeChatスクリプトを拡張するライブラリ 「Orthoclase」(2)

http://d.hatena.ne.jp/anon_193/20090131/1233376352の続き. Download (from Mediafire) 今度は言語選択が出来る機能を付けた. 標準の環境ならVBScriptの選択が,ActivePerlが入っているならPerlScriptの選択が出来るようになる. ほかのスクリプトエンジ…

ActiveScript Engine初期化の試行錯誤 (2)

もうちょっとがんばってみたところ,PythonScriptがSetScriptSiteで拗ねる理由を知ることが出来た. lib/site-packages/win32comext/axscript/client/framework.pyにあるこのコード def write(self,message): try: self.redir.write(message) except: win32a…

ActiveScript Engine初期化の試行錯誤

うごかないスクリプトエンジンが諦められないので、テストプログラム用意してがんばってみた. まず、PythonScriptが吹っ飛ぶ原因を探ってみたところ、なんとGetTypeInfoでAddRefしてないのが原因だった.そりゃ吹っ飛んでも仕方ない.ひどい濡れ衣だったねP…

Orthoclaseでうごくスクリプトエンジン

今の実装状態だと,どれくらい動くのか気になるので確かめてみた. JScript これに最適化されているのだから当たり前に動く. VBScript logをLog(対数関数)に取られてしまう以外はしっかりと動く.事前バインディングのハンドラは例によって,event_プレフ…

Orthoclaseに言語切り替え機能を付けたい

JScriptだけじゃなくて,VBScriptとか,PHPScript, RubyScript, PerlScript, Haskell Script etc.なんかも使えたら楽しそうじゃないか・・・?と思ったので,早速実装を始めた. 言語種別をソースコードから読み取るとなると,IActiveScriptParse::ParseScri…

LimeChatスクリプトを拡張するライブラリ 「Orthoclase」

国内で開発されたWindows IRCクライアント最大手のLimeChatが、2.25あたりから、従来のマクロ機能に加えて、JScriptによるスクリプティングが可能になり、マクロ作成の自由度がよりいっそう高まったことは記憶に新しい。WWWリソースのスクレイピング、時刻に…

スクリプトでfoobar2000にて再生中の曲を喋る

foobar2000には、COM Automation Serverというプラグインがあって、そこから現在起動中のfoobar2000の情報の取得や、制御が出来るようだ。 制御の口は ProgID 'Foobar2000.Application.0.7' のCOMコンポーネントとして登録されていて、VB(S)ならCreateObject…