timeline-draw-statuses (xyttr Advent Calendar 22日目分)
この記事はxyttr Advent Calendar 2011の記事です。
関数xyttr::timeline-draw-statusesを使った小ネタを2つ。
- *function* timeline-draw-statuses (buf statuses &key (point 0)) ツイートデータを整形してバッファに出力します。 * buf -- 出力先バッファ * statuses -- ツイートデータのリスト * point -- 出力先位置
◆ 栞を挟む
(in-package :xyttr) ;; ツイートデータ生成 (defun make-tweet (status-id name text) `(("id" . ,status-id) ("user" ("screen_name" . ,name)) ("text" . ,text) ("created_at" . ,(format-date-string "%a %b %d %H:%M:%S %Z %Y")))) ;; カーソル下のツイートの1つ前に栞を挟む (defun kokomadeyonda2 () (interactive) (when (eq buffer-mode 'xyttr-timeline-mode) (let ((p (1- (entry-point))) (tw (make-tweet nil "xyttr_shiori" (format nil "~V@{◇◆~}" (ash (window-columns) -2) t)))) (w/buffer-modifying () (timeline-draw-statuses (selected-buffer) (list tw) :point p))))) (define-key *xyttr-timeline-keymap* '(#\C-k #\C-m) 'kokomadeyonda2)
◆ トレンドを表示
(define-api trends (woeid exclude) :path (format nil "/1/trends/~A.json" woeid)) (defun show-trend () (interactive) (when (eq buffer-mode 'xyttr-timeline-mode) (let ((buf (selected-buffer))) (api-trends-async :woeid +woeid-tokyo+ :onsuccess (lambda (res) (w/json (trends) (car res) (let* ((text (format nil "trends:~{ ~A~}" (mapcar #'(lambda (tr) (json-value tr name)) trends))) (tw (make-tweet nil "xyttr_trend_info" text))) (save-excursion (set-buffer buf) (w/buffer-modifying () ;; バッファ先頭へ出力 (timeline-draw-statuses buf (list tw)) (refresh-screen)))))))))) (define-key *xyttr-timeline-keymap* #\t 'show-trend)
トレンドの使い途イマイチ分からん