Skip to content

spear34000/astral

Repository files navigation

✦ Astral

코딩 몰라도 되는 카카오톡 봇 만들기

Astral은 안드로이드 폰에서 카카오톡 봇을 만들 수 있게 해주는 앱입니다.
코드를 한 줄도 몰라도 비주얼 편집기로 봇을 만들 수 있고,
나중에 배워서 직접 코드를 짤 수도 있어요.

"코드는 흐르는 거야 — let the code flow" — astral


✨ 이걸로 뭐할 수 있나요?

  • 자동 응답 봇 — 특정 키워드가 들어오면 자동으로 답장
  • 명령어 봇!help, !날씨 같은 명령어로 동작
  • 플로우 만들기 — 그림 그리듯이 노드 연결해서 봇 제작 (코딩 필요 없음!)
  • 외부 연결 — REST API로 다른 앱이나 PC에서 봇 제어

🤔 코딩을 전혀 몰라도 되나요?

네! Astral은 비개발자를 위해 만들어졌어요.

  1. 비주얼 플로우 — 네모 칸(노드)을 연결만 하면 봇이 완성돼요
  2. 기본 템플릿 — 봇 만들 때 기본 코드가 자동으로 들어가요
  3. 따라하기 쉬운 UI — 모든 버튼과 설명이 알기 쉽게 되어있어요
  4. 배우면서 쓸 수 있음 — 코드를 배우고 싶다면, Astral에서 직접 연습할 수 있어요

📱 설치 방법

  1. 이 저장소를 다운로드하거나 빌드해서 APK를 설치하세요
  2. 앱을 실행하고 알림 접근 권한을 허용하세요 (카톡 메시지를 읽기 위해 필요)
  3. 봇을 만들고, 카톡에서 테스트해보세요!

빌드가 어렵다면, Releases에서 바로 APK를 받을 수도 있어요.


🎨 봇 만들기 (코딩 필요 없음)

플로우 에디터로 만들기 (추천!)

  1. 아래 탭에서 Flow 선택
  2. + 버튼 눌러서 노드 추가
  3. 노드를 연결해서 봇 로직 완성
  4. Compile 버튼 눌러서 봇 코드 생성

봇 목록에서 만들기

  1. 아래 탭에서 Bots 선택
  2. + 버튼 눌러서 새 봇 생성
  3. 봇 이름 짓고 언어 선택 (JavaScript 추천)
  4. 기본 코드가 자동으로 들어가 있어요, 바로 켜서 테스트!

📖 간단한 예제

메시지가 오면 자동으로 답장하는 봇:

JavaScript (Node.js)

bot.onMessage(function(room, sender, msg, isGroup) {
    bot.reply('안녕! 나는 Astral 봇이야 ✦');
});

Python

def on_message(room, sender, msg, is_group):
    bot.reply('안녕! 나는 Astral 봇이야 ✦')

bot.on_message(on_message)

🌐 외부에서 제어하기 (REST API)

앱 안에서 설정을 켜면, PC나 다른 기기에서도 봇을 제어할 수 있어요.

기능 주소 설명
상태 확인 GET /api/v1/ping 서버가 잘 돌고 있는지 확인
봇 목록 GET /api/v1/bots 등록된 봇들 보기
봇 생성 POST /api/v1/bots 새 봇 만들기 {name, language}
봇 상세 GET /api/v1/bots/:id 특정 봇 정보 보기
봇 켜기/끄기 POST /api/v1/bots/:id/toggle 봇 켜기 또는 끄기
봇 삭제 DELETE /api/v1/bots/:id 봇 삭제
봇 코드 변환 POST /api/v1/flows/compile 플로우 → 코드 변환
메시지 전송 POST /api/v1/message {room, message}로 답장 보내기
플러그인 목록 GET /api/v1/plugins 설치된 플러그인 보기
서버 재시작 POST /api/v1/server/restart API 서버 다시 시작

기본 포트: 9345 · 인증: 필요하면 설정에서 토큰 추가 가능


🔌 플러그인 (고급 기능)

.atlp 파일로 기능을 확장할 수 있어요.
앱 실행 시, 특정 이벤트가 발생할 때, 봇이 만들어질 때 등에 동작하는 플러그인을 만들 수 있습니다.

example.atlp (ZIP 파일)
├── plugin.json      # 플러그인 정보
└── main.js          # 플러그인 코드

🧠 비주얼 플로우 노드 설명

노드 타입 색상 하는 일
메시지 감지 파랑 특정 단어가 들어오면 시작
명령어 감지 파랑 !명령어 형식이 들어오면 시작
답장하기 초록 채팅방에 메시지 보내기
토스트 노랑 화면에 짧은 메시지 띄우기
기다리기 빨강 지정한 시간(ms)만큼 대기
로그 기록 보라 로그에 메시지 남기기
조건 분기 분홍 조건에 따라 다른 동작 실행

🏗️ 앱 구조 (개발자용)

app/
├── engine/      # 봇 엔진, API 서버, 플러그인 시스템
├── model/       # 데이터 모델
├── service/     # 카톡 알림 감지 + 응답
├── store/       # 데이터 저장
└── ui/          # 화면 UI (Compose)
  • JavaScript 엔진: 안드로이드 내장 WebView V8 사용 (별도 라이브러리 없음)
  • Python 엔진: Jython (순수 Java 파이썬) 사용
  • API 서버: 안드로이드 내장 HttpServer 사용

📄 라이선스

GNU General Public License v3.0 — LICENSE

이 프로그램은 자유 소프트웨어입니다. 누구나 배포하고 수정할 수 있습니다.

About

안드로이드 알림기반 봇 애플리케이션

Resources

License

Stars

4 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors