사용자 정의 명령에 HTTP의 쿠키와 같은 기능을 넣었으면 좋겠습니다.
대략적인 구상은 다음과 같습니다. 구현의 편의를 위해서 실제 HTTP 쿠키를 그대로 구현하지는 않고 단 하나, 즉 inklbot-session 정도의 이름으로만 사용할 수 있도록 합니다. (이러면 문자열을 하나만 저장하면 되죠. 굳이 CookieJar 쓸 이유도 없음.) 아니면 X-Inklbot-Session과 같은 헤더를 사용할 수도 있지만 사용하기 많이 귀찮을 것 같습니다.
사용자가 처음 접속했을 때 인클봇은 빈 사전을 만듭니다. 이 사전은 도메인(쿠키의 그 도메인 맞음. 필요하다면 URL 도메인 단위로만 제한해도 됨.)을 키로 하고 세션 쿠키를 값으로 하며, 만약 명령을 수행하여 나온 HTTP response가 쿠키를 포함하고 있다면 (i.e. Set-Cookie 헤더) 사전에 값을 바꿉니다. 명령을 수행할 때는 먼저 도메인을 분리하여 이 사전에서 필요한 세션 쿠키를 불러 와 넘겨 줍니다.
이렇게 하면 가장 좋은 것이 미투데이 자동 포스팅과 같이 로그인/로그아웃이 절대적으로 필요한 기능들을 이용할 수 있게 됩니다. 굳이 다른 봇을 쓸 필요가 없이 인클봇만을 사용하여 이런 것을 할 수 있다는 얘깁니다. 또한 개인적으로만 사용하고 싶은 명령을 만들 때도 유용히 사용할 수 있을 것입니다.
좀 더 생각해 보면 세션 쿠키를 두 개로 나눠서 사용자와 채널 별로 (이 경우 X-Inklbot-User-Session과 X-Inklbot-Channel-Session 따위가 나올 듯) 분리해서 적용할 수 있는데 이렇게 되면 끝말잇기도 외부에 맡길 수 있게 됩니다. 끝말잇기가 인클봇의 외부 I/O에 영향을 주는 것인지 CPU에 영향을 주는 것인지는 모르겠으나 후자의 경우 큰 효과가 있을 것입니다.
근데 왜 최대 업로드 크기가 1기가바이트인가여? 내 서버 아니니 상관 없지만.
처리했습니다. 구체적인 아이디어 대단히 고맙습니다.
이제 인클봇 사용자 명령은 쿠키를 지원합니다. PHP라면 setcookie()와 $_COOKIE로 접근하할 수 있습니다.