2 (url-list-file "phlog_list.txt"))
4 (import matchable srfi-1
7 (chicken pretty-print))
9 (if (file-exists? url-list-file)
10 (let ((res (with-input-from-file url-list-file read)))
12 (set! url-alist res))))
14 (define (save-url-list)
15 (with-output-to-file url-list-file
16 (lambda () (pretty-print url-alist))))
18 (define (set-url nick url)
19 (let ((nick-symb (string->symbol nick)))
21 (alist-cons nick-symb url (alist-delete nick-symb url-alist)))
24 (define (get-url nick)
25 (let* ((nick-symb (string->symbol nick))
26 (record (assoc nick-symb url-alist)))
27 (and record (cdr record))))
29 (define (clear-url nick)
30 (let* ((nick-symb (string->symbol nick)))
31 (set! url-alist (alist-delete nick-symb url-alist))
34 (lambda (source args privmsg)
35 (match (string-split (car args))
37 (privmsg source "hello yourself!"))
41 (privmsg source "updated url"))
46 (let ((url (get-url nick)))
48 (conc "URL for " nick ": " url)
49 (conc "No URL for " nick " in database")))))
53 (privmsg source "cleared url"))
57 (privmsg source "No registered phlog/gemlog/blog URLs. :(")
59 (privmsg source "Current URL list:")
62 (let ((nick (symbol->string (car record)))
64 (privmsg source (conc " " nick ": " url))))
68 (let ((url (get-url source)))
70 (privmsg "#phloggersgarage"
71 (conc source " has published a new post at " url "!"))
72 (privmsg source "Register your *log URL first using ,seturl <URL>."))))
75 (privmsg source "Hi! Here are the valid pgbot commands:")
76 (privmsg source " ,seturl [url] : Save your *log URL for others to see")
77 (privmsg source " ,rmurl : Remove your *log URL if one is saved.")
78 (privmsg source " ,geturl [nick] : Retrieve the *log URL belonging to [nick].")
79 (privmsg source " ,list : List all currently stored *log URLs.")
80 (privmsg source " ,accounce : Announce a new *log entry to #phloggersgarage! Huzzah!")))))