From 5a323780d87c68f542ca07e95a2d0452ffee7e1c Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Tue, 24 Jul 2012 15:55:04 -0700 Subject: [PATCH] xkcd: having XKCD in a terminal - priceless. --- extra/xkcd/xkcd.factor | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/extra/xkcd/xkcd.factor b/extra/xkcd/xkcd.factor index f0f77873d9..527f17b2e9 100644 --- a/extra/xkcd/xkcd.factor +++ b/extra/xkcd/xkcd.factor @@ -1,25 +1,34 @@ ! Copyright (C) 2011 John Benediktsson ! See http://factorcode.org/license.txt for BSD license -USING: formatting http.client images.http images.viewer kernel -regexp strings ; +USING: formatting http.client images.http images.viewer io +kernel regexp sequences strings ui wrap.strings xml +xml.traversal ; IN: xkcd string load-http-image ; + first-match >string load-http-image image. ; + +: xkcd-text. ( url -- ) + http-get nip string>xml + "transcript" "id" deep-tag-with-attr children>string + 80 wrap-lines [ print ] each ; + +: comic. ( url -- ) + ui-running? [ xkcd-image. ] [ xkcd-text. ] if ; PRIVATE> : xkcd. ( n -- ) - "http://xkcd.com/%s/" sprintf load-comic image. ; + "http://xkcd.com/%s/" sprintf comic. ; : random-xkcd. ( -- ) - "http://dynamic.xkcd.com/random/comic/" load-comic image. ; + "http://dynamic.xkcd.com/random/comic/" comic. ; : latest-xkcd. ( -- ) - "http://xkcd.com" load-comic image. ; + "http://xkcd.com" comic. ;