/gsa-bot

광주과학고등학교에서 사용하는 공식 카카오톡 봇입니다.

Primary LanguageJavaScript

gsa-bot

광주과학고등학교 공식 카카오톡 봇 레포지토리입니다.
이 프로젝트는 d.ts 파일이 구현되어 있어, 타입 힌트를 제공합니다. 따라서, IDE(ex. PyCharm, WebStorm)를 사용하여 개발하는 것을 권장합니다.

Note

봇 앱은 ES5 문법까지만 지원하므로 src 폴더 내에서 코딩을 한 후, package.json에 정의된 npm run ready 커맨드로 소스 파일들을 babel로 트랜스파일한 파일을 사용하면 됩니다.

구동 환경

NoxPlayer와 서버로 카카오톡을 24시간 구동합니다.
NoxPlayer의 ROOT 기능을 이용해 슈퍼유저 권한을 부여한 메신저봇R 앱을 사용합니다.
데이터 전송에는 adb를 이용합니다.

adb connect 127.0.0.1:62001
adb push /dist/example.js /sdcard/msgbot/bots/example/example.js
adb pull /dist/example.js /sdcard/msgbot/bots/example/example.js

간단하게 위와 같은 방식으로 파일을 공유합니다. dist 폴더 내에 빌드된 소스 파일들을 adb를 사용해 메신저봇 내부 폴더로 전송해주세요.

사용한 모듈

모듈에 대해 더 자세한 것을 확인하려면 basic.md, command.md를 확인하세요.

패치 노트

  • main.js 구현
  • 모듈 DateTime, Command, BotOperator 구현
  • 메시지 디자인 개선
  • main.js 코드 개선
  • 학사 일정이 없으면 학사 일정 cronjob 무시.
  • 급식이 없으면 급식 cronjob 무시.
  • 명령어 남용 문제로 명령어 민감도 낮춤.
  • 개인 톡방 채널용 DB 생성
  • 방이름 보안 강화 (그룹챗, 인원수>80 조건 추가)
  • 급식 파싱 보수 및 보안 강화
  • Google Javascript Style 채택
  • 급식 명령어의 내용이 너무 커서 \u200b를 500개 추가하여 더보기로 볼 수 있게 함.
  • CronJob이 제대로 실행되지 않던 버그 수정.
  • 급식 정보를 파싱하는 getMeals 함수의 버그 수정.
  • 명령어 인식률을 지정할 수 있는 NaturalCommand.Builder#setUseDateParse의 첫 번째 인자로 margin을 추가. 해당 명령어에서 파싱되는 문자열을 제외한 나머지 문자열에서 공백을 제외한 문자열을 몇 자나 허용할 것인가를 정하는 인자. 기본값은 3.
  • Log를 보내는 전용 방을 추가. 앞으로 모든 명령어의 사용 로그는 Log 방으로 전송됨. Bot#setLogRoom으로 설정 가능.
  • 봇에 디버그 모드를 추가함. 새로 추가된 디버그 명령어를 사용하여 디버그 모드를 활성화할 수 있음. 디버그 모드가 활성화되면 봇은 디버그 방에만 응답함. Bot#isDebugMod로 확인 가능.
  • 디버그 용도의 방을 추가할 수 있게 됨. Bot#setDebugRooms으로 설정 가능.
  • CronJob 모듈의 버전을 v1.2로 업데이트함.
  • 공지 명령어에 파일, 이미지, 영상 전송 기능 추가
  • 버그 수정 (call by ref에 의한 기수List 복사 안됨 버그)
  • 유틸리티 함수 추가 (URL 단축, pretty time/bytes)