Я использую библиотеку cl-irc для подключения к Slack через шлюз IRC Slack.Ошибка подключения к шлюзу Slack IRC
Однако я получаю следующее сообщение об ошибке, когда я пытаюсь запустить цикл обработки сообщений с read-message-loop
:
error while parsing arguments to DESTRUCTURING-BIND:
invalid number of elements in
("duncan_bayne" "Welcome" "to" "Slack" "IRC" "Gateway"
"server" "[email protected]")
to satisfy lambda list
(CL-IRC:NICKNAME CL-IRC::WELCOME-MESSAGE):
exactly 2 expected, but 8 found
[Condition of type SB-KERNEL::ARG-COUNT-ERROR]
...
Backtrace:
0: ((:METHOD CL-IRC::DEFAULT-HOOK (CL-IRC:IRC-RPL_WELCOME-MESSAGE)) #<CL-IRC:IRC-RPL_WELCOME-MESSAGE irc.tinyspeck.com RPL_WELCOME {1007FC6293}>) [fast-method]
1: ((:METHOD CL-IRC::APPLY-TO-HOOKS (T)) #<CL-IRC:IRC-RPL_WELCOME-MESSAGE irc.tinyspeck.com RPL_WELCOME {1007FC6293}>) [fast-method]
2: ((:METHOD CL-IRC:IRC-MESSAGE-EVENT (T CL-IRC:IRC-MESSAGE)) #<unavailable argument> #<CL-IRC:IRC-RPL_WELCOME-MESSAGE irc.tinyspeck.com RPL_WELCOME {1007FC6293}>) [fast-method]
3: ((:METHOD CL-IRC:READ-MESSAGE (CL-IRC:CONNECTION)) #<CL-IRC:CONNECTION myob.irc.slack.com {10068E8ED3}>) [fast-method]
4: ((:METHOD CL-IRC:READ-MESSAGE-LOOP (T)) #<CL-IRC:CONNECTION myob.irc.slack.com {10068E8ED3}>) [fast-method]
5: (SB-INT:SIMPLE-EVAL-IN-LEXENV (CL-IRC:READ-MESSAGE-LOOP *CONN*) #<NULL-LEXENV>)
6: (EVAL (CL-IRC:READ-MESSAGE-LOOP *CONN*))
В то время как в РЕПЛ я вижу:
UNHANDLED-EVENT:3672562852: RPL_MYINFO: irc.tinyspeck.com duncan_bayne "IRC-SLACK gateway"
Я не уверен, что Я делаю неправильно здесь; Я уверен, что это не мои крючки, потому что проблема сохраняется, даже если я отключу их всех.
Кроме того, я могу использовать соединение как ожидается - скажем, соединение канала и отправка сообщений - при условии, что я не пытаюсь запустить цикл сообщений.
Угадайте, я бы сказал, что Slack отвечает на связь с неожиданным сообщением?
Посмотрите, есть ли у вас какие-либо другие ошибки, если вы измените destructuring-bind (в строке события.lisp 149) на '(nickname & rest welcome-message)'. «ДОБРО ПОЖАЛОВАТЬ-СООБЩЕНИЕ», похоже, не используется ни для чего, поэтому, возможно, разработчик просто забыл об отдыхе, и это случилось с его тестовыми примерами. – jkiiski
Если вы можете исправить это и отправить патч, это здорово. В противном случае, в последний раз, когда я пытался что-то с IRC, я использовал https://github.com/Shinmera/colleen, и он сработал. – coredump