# 마스토돈 검색봇 [플래닛](https://planet.moe)에 검색서버가 안붙어있는게 불편해서 만들고 있어요! [보러 가기 (Beta)](https://planet.moe/@search) ## 지금 안되는것들 1. CI/CD 셋업 (귀찮아...) ## 개발 플랜
겁나김 ### Glossary > Todo: `❌` | Partial: `⚠️` | Done (not tested): `✔️` | Tested: `✅` ### 당장 할거 1. TL 스트리밍 크롤링 기능 구현 `✅` * 공개랑 Unlisted만 크롤링 `✅` - 부스트 제외하는거 까먹지말자 `✅` * 스트리밍 죽으면 다시 살린다! `✔️` - 리트라이 간격은 ln(x) 분마다 `✔️` 2. 팔로우시 맞팔 `✅` * 팔로우하면 EULA 동의 기능 구현할것 `✅` - 대충 크롤링당한다는 거에 동의한다는 내용 `✅` - 팔로당하면 안내 보내고, 동의했을 경우에만 맞팔 `✅` * 플래닛이 아니면 안내 후 블언블 `✅` - 부하 얼마나 걸리나 보고 다른 인스턴스 유저에도 열지 결정할께요 - 부하 심하면 expensive한 쿼리는 새벽 4시에 돌리는걸로 코드 수정해보고 함보기 3. Forget Me 구현 `✅` * 블언블 후 삭제쿼리 돌리기 `✅` * 돌린 담에 DM으로 안내 `✅` 4. 검색 기능 구현 `✔️` * 팔로우된 사람만 사용가능 `✅` - 기브앤테이크! 글구 SQLite 쓸꺼라 쿼리 너무 많이 날리면 봇터짐 * 답글은 질문글의 공개설정 따라가기 `✅` - Public은 Unlisted로 `✅` * 쿼리는 trim한다음에 돌리기 `✅` - 공백 들어가면 헷갈리기 시작한다 * 한글은 2글자이상, 영문은 4글자이상 `✅` - trim한 후에 단어별로 계산 `✅` * 블랙리스트 키워드 만들기 `✅` - `youtube`라던가... `.com`이라던가 `the`라던가 서버에 부하줄것 같은것들.. `✅` * 결과 주소 인스턴스에 쿼리해보고 삭제된 글이면 스킵, 후에 DB 레코드에서도 삭제 `✅` - 근데 결과 너무 많으면 쓰로틀링 걸리지 않을까.. `✔️` * 500자 넘어가면 답글 여러개 이어서 다는거 구현 `✅` 5. 명령어들 `✅` * 봇이 보낸건 무시 `✅` * !!help 같은거 `✅` * 대충 필요한게 !!help, !!forgetme, !!from: 빼고 또있으려나?? `✅` 6. 맛톤에서 개인이 백업 json 받을수있는거 DB에 추가해주는 기능 구현 `❌` * 근데 어떻게 봇한테 json을 보내지?? 맛톤에 파일첨부 되던가??? ### 나중에 할지도 모르는거 1. Rust에 await/async 확실하게 stabilize되면 Rust랑 MariaDB/PostgreSQL로 옮길꺼야 2. 중앙 API서버? 같은거 하나 두고 봇은 인스턴스에 하나씩 돌아가게 만든다음 여러 서버에서 검색하는거? * 근데 좀 멍청한 구현인것 같다
## 사용법 `//TODO:` ## Special thanks to 귀여운 로고 사용을 허락해주신 [planet.moe의 운영자님](https://planet.moe/@planet)