なんの変哲もないつぶやきbotです。
つぶやく内容は真に受けないでください。
1日に1~3回くらいつぶやきます。
せっかくなのでbotにしました。ちなみに私自身はこちら↓。
追記
遅ればせながら oauth に対応しました。(2010/12)つぶやく間隔も1時間に3回に変更しました。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(use srfi-1 :only (remove!)) | |
(use util.match :only (match-let1)) | |
(use net.twitter) | |
(use rfc.http :only (http-get)) | |
(use sxml.ssax :only (ssax:xml->sxml)) | |
(use sxml.sxpath :only (sxpath)) | |
; http://spreadsheets.google.com/feeds/list/t17yhzlYiMccaqCDCqCy-Bw/od6/public/basic?alt=rss | |
(define-constant *google-ss-server* "spreadsheets.google.com") | |
(define-constant *google-ss-template* | |
(string-append "/feeds/list/" "~a" "/od6/public/basic?alt=rss")) | |
(define (rss->sxml srv url) | |
(receive (ret ls xml)(http-get srv url) | |
(ssax:xml->sxml (open-input-string xml) '()))) | |
(define (make-cred con-key con-sec acc-token acc-sec) | |
(make <twitter-cred> | |
:consumer-key con-key | |
:consumer-secret con-sec | |
:access-token acc-token | |
:access-token-secret acc-sec)) | |
(define (main args) | |
(match-let1 | |
(con-key con-sec acc-token acc-sec | |
sheet-id count sxml-editor msg-builder . rest)(cdr args) | |
(let* ((eval (^b (eval (read-from-string b) 'user))) | |
(sf (eval sxml-editor)) | |
(mf (eval msg-builder)) | |
(src (sf (rss->sxml *google-ss-server* | |
(format *google-ss-template* sheet-id)))) | |
(cred (make-cred con-key con-sec acc-token acc-sec))) | |
(dotimes (i (string->number count)) | |
(sys-sleep 1) | |
(let1 msg (mf src) | |
(print msg) | |
(rlet1 r (twitter-update cred msg) | |
(set! src (remove! (^e (string=? msg e)) src) ))))))) |
0 件のコメント:
コメントを投稿