2010/12/15

gauche-net-twitter

少しだけ触ってみました。参考にしたのは README とこちら。

たいしたサンプルにもなりませんが、簡単な URL を作ってつぶやくだけの簡単なお仕事をするスクリプト。

(use util.match :only (match-let1))
(use srfi-19 :only (current-date date->string))
(use net.twitter)
(define (usage)
(format (current-error-port)
"~a : wrong number of arguments. requires 7 ...\n" *program-name*)
(exit 2))
(define (build-url server template builder :optional (prefix "http://"))
(string-append prefix server (builder template)))
(define (main args)
(if (null? args)
(usage)
(match-let1 (consumer-key consumer-secret access-token access-token-secret
server template url-builder msg-builder . rest)(cdr args)
(let* ((eval (^b (eval (read-from-string b)(interaction-environment))))
(url-fun (eval url-builder))
(msg-fun (eval msg-builder))
(msg (msg-fun (build-url server template url-fun)))
(cred (make <twitter-cred>
:consumer-key consumer-key
:consumer-secret consumer-secret
:access-token access-token
:access-token-secret access-token-secret)))
(twitter-update cred msg)))))

例えば、こういう風に呼ぶと
>gosh url-builtter.scm consumer-key consumer-secret access-token access-token-secret "kumanichi.com" "/sinseimen/~a/~a.shtml" "(^t (let1 today (current-date)(format t (date->string today \"~Y~m\")(date->string today \"~Y~m~d001\"))))" "(^u (string-append (date->string (current-date) \"~Y/~m/~d ~H:~M:~S ~a \") u))"
こんなふうに URL をつぶやく。
2010/12/15 02:42:47 Wed http://kumanichi.com/sinseimen/201012/20101214001.shtml

ボットにするなら、あとは外から定期実行してやれば良いかなあと。

上記例のページがそうなんですが RSS がないんですよね。
そういうページの RSS を生成してくれるサービスもありますが、うまいこと生成されないページもしばしば。
URL が簡単なものであれば Twitter ボットに呟かせるのも手かなー、などと思ったもので。
リンク貼るだけならどこかの図書館みたいなことになることもないでしょうし。。

プログラミングGauche

0 件のコメント:

コメントを投稿