@ユーザー名,#ハッシュタグ,URLの取得 (xyttr Advent Calendar 3日目)

この記事はxyttr Advent Calendar 2011の記事です。

今回は、タイムラインバッファー上のリンクオブジェクト(っぽく見えるよう色付けしてるけど実際はただのテキスト)のデータを取得する関数を紹介します。

◆ ユーザー名の取得

カーソル下のユーザー名を取得するにはxyttr::focused-user関数を使ます。

(in-package :xyttr)

(defun test ()
  (interactive)
  (msgbox "~S" (focused-user)))

(define-key *xyttr-timerline-keymap* #\t 'test)

ユーザー名にカーソルを合わせてtを押した時の結果
http://gyazo.com/44c7cc8c570255da5187e12b871c8edc.png

紹介しておいてナンですが、使い途はあまり多くない気がします。

ハッシュタグの取得

カーソル下のハッシュタグ名を取得するにはxyttr::focused-hashtag関数を使ます。

(defun test ()
  (interactive)
  (msgbox "~S" (focused-hashtag)))

http://gyazo.com/6dac89d65117d3ce837577762ad07d1e.png

まだ本体の方でsaved search API(検索メモ)の対応をしてないので、お気に入りタグ機能など自作すると良いかもしれません。

◆ URLの取得

URLの取得はxyttr::focused-urlxyttr::expand-focused-urlを使います。
focused-urlは短縮URLの展開を行いません。特に理由がなければexpand-focused-urlを使うと良いでしょう。

;;; www-modeでURLを開く
(require "www/www")
(defun test ()
  (interactive)
  (whenlet url (expand-focused-url)
    (when (y-or-n-p "open ~A :" url)
      (www::www-open-remote url))))



以上、リンクっぽい箇所のデータ取得方法でした。