Remove some IRC-related functions

This commit is contained in:
Jaidyn Ann 2023-05-19 14:45:45 -05:00
parent abfd96998e
commit 13f9738ca9

View File

@ -131,82 +131,6 @@
(user-enable-state conn channel hostmask enabled-state)) (user-enable-state conn channel hostmask enabled-state))
;; Sets a channel's .topic file
(define (set-channel-topic conn channel topic #!optional (username #f) (date #f))
(let ([topic-path (string-append (channel-directory-path conn channel)
".topic")])
(if (string? topic)
(call-with-output-file
topic-path
(lambda (out-port)
(write-string topic #f out-port))))
(if username
(set-xattr topic-path "user.chat.sender" (irc:hostmask-nick username)))))
;; Send message to an IRC channel
(define (send-message connection channel message)
(irc:write-cmd connection "PRIVMSG" channel message)
(make-message-file connection channel
(hash-table-ref connection 'nick)
message))
;; Hook function for irc:loop; handles all IRC commands
(define (on-command conn cmd params #!optional sender)
(cond
[(and (string=? cmd "PRIVMSG")
(string? sender)
(irc:hostmask? sender))
(let ([target (if (irc:user-is-self? conn (car params))
(irc:hostmask-nick sender)
(car params))])
(make-message-file conn target (irc:hostmask-nick sender) (last params)))]
[(or (string=? cmd "NOTICE")
(and (string=? cmd "PRIVMSG")
(or (string-null? sender) (not (irc:hostmask? sender)))))
(make-message-file conn ".server" "server" (last params))]
[(and (string=? cmd "JOIN") (irc:user-is-self? conn sender))
(make-channel conn (last params))]
[(string=? cmd "JOIN")
(make-user conn (last params) sender)]
;; [(string=? cmd "NICK")
;; (chatd-json-write conn
;; (compose-event-alist conn "user-info" #:user (last params)))])
))
;; Hook function for irc:loop; handles all IRC errors and replies
(define (on-reply conn reply params #!optional sender)
(cond
;; If topic set, output to a channel's .topic file
[(and (eq? reply RPL_TOPIC)
(irc:channel? (second params)))
(set-channel-topic conn (second params) (last params))]
[(and (eq? reply RPL_TOPICWHOTIME)
(irc:channel? (second params)))
(set-channel-topic conn (second params) #f (third params) (last params))]
;; We've got to add users, when they join the room!
[(or (and (irc:capability? conn 'userhost-in-names)
(eq? reply RPL_ENDOFNAMES))
(eq? reply RPL_ENDOFWHO))
(map (lambda (nick)
(let ([hostmask (irc:user-get conn nick 'hostmask)]
[channel (second params)])
(make-user conn channel hostmask)
(user-toggle-state conn channel hostmask "online" "offline")))
(irc:channel-users conn (second params)))]
[#t
(make-message-file conn ".server" "server" (last params))]))
(define (write-string-to-file file value) (define (write-string-to-file file value)
(call-with-output-file file (call-with-output-file file
(lambda (out-port) (lambda (out-port)