Clojure에서 코드 문제를 해결할 때까지 leave 할 수없는 bot을 만들어 보았습니다.

2542 단어 슬랙Clojure


게시물이 늦어져 죄송합니다. . .
이 기사는 『Slack Advent Calendar 2016』 11일째 기사입니다.
전회는 hoto17296 씨의 「 Slack 전문 Bot 프레임 워크 "Shrike" 」였습니다.

Bot을 만든 경위



당 Advent Calendar에서. 있습니다.

그런 무서운 일꾼의 개미 지옥 bot입니다만, 문득 "개미 지옥이 프로그래밍의 문제를 출제해, 풀린 사람만 퇴출할 수 있도록 하면 익숙하지 않은 언어에서도 게임 감각으로 모두 써 주는 것은…?"라고 생각 , 이번 bot의 구현에 밟았습니다.

실제 거동



이하의 용량으로 프라이빗 채팅 등을 통해 문제를 등록하고, 후에는 동작시키고 싶은 채널(혹은 그룹)에 invite하면 동작합니다.

첫날 기사

이 봇이 작동 중인 채널을 떠나려고 하면 ↓과 같이 강제로 다시 invite된 후 등록된 문제에서 무작위로 출제됩니다.



후에는 응답으로 대답을 쓰고 문제를 해결하는 것입니다!



훌륭하게 대답할 수 있는 멤버는, bot에 의한 칭찬의 아래 채널을 빠질 수가 있습니다

기술적인 이야기



지금까지 Slack용의 bot를 만들 때는, 매우 쉽고 편리한 liquidz씨의 를 빌려서 만들고 있었습니다만
  • Incoming Webhook or Outgoing Webhook에서만 볼 수 있습니다
  • 채널 초대와 같은 API를 지원하지 않습니다

  • 라고 한 경위가 있었기 때문에, 이번 시작해 jubot 를 사용한 구현이 되었습니다.
    jubot과 같은 풀 스택 구현이 아닌 분수는 걸립니다만, Slack API의 사양에 똑같이 버릇이 없고 매우 취급하기 쉬운 인상이었습니다.
    Clojure에 의한 Slack bot는 Go등에 비하면 별로 분위기가 없는 인상이 있습니다만, 보통으로 사용할 수 있는 라이브러리도 갖추어져 있으므로, Clojure를 쓰고 익숙하다면 솔선해 사용해도 좋을까,라고 생각했다 나름이었습니다.

    또 작성한 Bot의 소스 코드는 clj-slack 로 공개하고 있으므로, 꼭 도움을 주세요.
    그럼 좋은 연말을!

    좋은 웹페이지 즐겨찾기