mooner1022 / StarLight

Scriptable messenger auto-reply application with plugin support
https://starlight.mooner.dev
GNU General Public License v3.0
43 stars 4 forks source link

답장이 다른 채팅방으로 가는 문제 #46

Closed thfzm closed 4 weeks ago

thfzm commented 1 month ago

카톡 알림이 온 방이 여러개일 때 명령어가 온 방 말고 다른 방에 메시지가 잔송되는 문제가 있습니다. 같이 알림이 있던 방(명령어를 안보낸 곳)에 먼저 알림이 가고 원래 방(명령어 보낸 곳)에 조금 후에 가는 경우도 있고 안가는 경우도 있는 것 같네요 근데 이게 항상 그런게 아닌가봅니다..

1723782630524.jpg

원래 방

1723782520327.jpg

메시지가 간 방

mooner1022 commented 1 month ago

사용하신 스크립트를 첨부해주실 수 있을까요?

thfzm commented 1 month ago

const scriptName = "훈눟"; function response(room, msg, sender, isGroupChat, replier, imageDB, packageName) { if (room == "메모장") if (msg == "훈") { replier.reply("눟"); } }

해당 스크립트입니다

mooner1022 commented 4 weeks ago

확인한 바로는 레거시 response 함수의 구현에 관한 문제로 보입니다.

현재의 response 구현은 replier에 세션 정보가 담기지 않고, 단순히 마지막으로 수신한 방의 정보에 따라 전송하는 방식으로 구현되었습니다. response의 구현은 메신저봇/채자봇과의 호환성을 목표로 하기에, 메신저봇에서의 동작이 어떻게 되는지 확인 후 이 동작에 따라 구현을 개선하겠습니다.

제보 감사합니다. 이 이슈는 문제 해결까지 열어 놓겠습니다. 추가적으로 말씀해주실 사항이 있으시다면 자유롭게 남겨주세요. 😀

thfzm commented 4 weeks ago

그러면 답장하는 부분에 그냥 답장할 내용 말고 (room, "답장할내용") 으로 구성해두면 임시로 해결이 되는걸까요??

jisungbin commented 4 weeks ago

방금 막 찾은 오류인데 프로젝트 삭제 후 프로젝트 정렬을 하면 삭제한 프로젝트가 다시 뜨고 그걸 또 삭제하려고 시도하면 앱이 크래시가 납니다. 다시 실행하면 되긴 한데 컴파일을 다시 해야하나보니 조금 번거롭네요.. 전체 스크립트를 컴파일 해주는 버튼이 생기면 편리할 것 같아요

아예 다른 문제이니 별도의 이슈로 새로 제출해 주시는 게 좋아 보입니다.

mooner1022 commented 4 weeks ago

그러면 답장하는 부분에 그냥 답장할 내용 말고 (room, "답장할내용") 으로 구성해두면 임시로 해결이 되는걸까요??

네 해당 방안으로 해결이 가능하나, Rhino상에서 room의 값이 변경되는 현상을 목격한 적이 있기에 이러한 문제가 없는 onMessage 사용을 추천드립니다

mooner1022 commented 4 weeks ago

Fixed on d3d858877a9bb1e0a32e4c19593408834c86dfa9