usr bin sbcl --script bin geo-send TODO Greasemonkey-скрипт добавляющи

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/sbcl --script
; ~/.bin/geo-send
; TODO: Greasemonkey-скрипт, добавляющий к интерфейсу Google Maps кнопочку «ололо фжуйку»,
; по нажатию которой будет вызываться(?!) сей скрипт
(if
(/= (length *posix-argv*) 3)
(format t "Usage: geo-send lat lon~%")
(with-open-file
; FIXME: Отступы покрасивее
; Да, здесь можно было сделать (concatenate), но так короче
(fifo (format nil "~a/~a"
(user-homedir-pathname)
".mcabber/mcabber.fifo")
:direction :output
:if-exists :append
:if-does-not-exist nil)
(if fifo
; TODO: фейс-контроль списка аргументов.
; Скажем решительное «нет» 'geo-send пыщь-пыщь стопицот /dev/null'!
(apply #'format
fifo
(concatenate 'string
"/rawxml send "
"<message to='juick@juick.com'>"
"<event xmlns='http://jabber.org/protocol/pubsub#event'>"
"<items node='http://jabber.org/protocol/geoloc'>"
"<item id='00000000-0000-0000-0000-000000000000'>"
"<geoloc xmlns='http://jabber.org/protocol/geoloc' xml:lang='en'>"
"<lat>~a</lat><lon>~a</lon>"
"</geoloc></item></items></event></message>")
(cdr *posix-argv*))
(format t "mcabber isn't running or FIFO support is disabled.~%"))))