카카오톡 봇2
- 코딩/허접한 프로젝트?
- 2019. 5. 20.
내가 있는 정보처리기사 단톡방에 카카오톡 채팅 봇을 만들어 주었다.
간단하게 카카오톡, 카카오봇어플, wear or가 있고 자바스크립트만 있으면 된다.
코드는 대략 이렇게 되어있다.
function getWeathetInfo(pos) {
try{
var data = Utils.getWebText("https:m.search.naver.com/search.naver?query=" + pos + "%20날씨");
data = data.replace(/<[^>]+>/g,"");
data = data.split("월간")[1];
data = data.split("시간별 예보")[0];
data = data.trim();
data = data.split("\n");
var results = [];
results[0] = data[0];
results[1] = data[3].replace("온도", "온도 : ").trim() + "℃";
results[2] = data[4].replace("온도", "온도 : ").trim() + "℃";
results[3] = data[9].replace("먼지", "먼지 : ").trim();
results[4] = data[13].replace("습도", "습도 :").trim() + "%";
var result = "[" + pos + " 날씨 정보]\n\n상태 : " + results.join("\n");
return result;
}
catch(e) {
return null;
}
}
function response(room, msg, sender, isGroupChat, replier, ImageDB){
if(room=="정보처리기사실기"){
msg = msg.trim();
var cmd = msg.split(" ")[0];
var data = msg.replace(cmd + " ", "");
if(cmd == "/날씨") {
var result = getWeathetInfo(data);
if(result == null) {
replier.reply(data + "의 날씨 정보를 가져올 수 없습니다.");
} else {
replier.reply(result);
}
}
if(msg=="시험일정"){
replier.reply("2019년/ 1회\n접수 2019.01.25 -2019.01.31\n필기시험 2019.03.03 \n합격발표 2019.03.14 \n\n서류제출 2019.03.15-2019.03.27\n실기접수 2019.03.15-2019.03.21\n실기시험 2019.04.13-2019.04.27\n합격 발표 2019.05.03-2019.05.22\n------------------------------------------\n2019년/ 2회\n접수 2019.03.29 -2019.04.04\n필기시험 2019.04.27 \n합격발표 2019.05.17 \n\n서류제출 2019.05.20-2019.05.29\n실기접수 2019.05.20-2019.05.23\n실기시험 2019.06.29-2019.07.12\n합격 발표 2019.07.19-2019.08.16\n-------------------------------------------\n2019년/ 3회\n접수 2019.07.05 -2019.07.11\n필기시험 2019.08.04 \n합격발표 2019.08.30 \n\n서류제출 2019.09.02-2019.09.11\n실기접수 2019.09.02-2019.09.05\n실기시험 2019.10.12-2019.10.25\n합격 발표 2019.11.01-2019.11.22\n------------------------------------------")}
if(msg=="큐넷"){
replier.reply("http://www.q-net.or.kr/man001.do?gSite=Q")}
if(msg=="기사자격"){
replier.reply("※ 기사 응시자격\n\n1. 대학 4년제 : 4학년 1학기 이상 재학중인 경우 응시가 가능 (졸업예정자)\n2. 전문대 (2년, 3년) : 대학 졸업 후 실무경력을 쌓아야 함 (2년 : 2년 이상, 3년 : 1년 이상)\n3. 순수 실무경력 4년 이상 (유사 직무 분야)\n4. 동일분야 기사 이상\n5. 기능사 + 3년 이상 : 기능사 먼저 취득 후 3년의 실무경력\n6. 산업기사 1년 이상 : 산업기사 먼저 취득 후 1년의 실무경력\n7. 동일 및 유사 직무분야의 기사 수준 기술훈련과정 이수자 또는 그 이수예정자\n8. 외국에서 동일한 종목에 해당하는 자격을 취득한 자")}
if(msg=="/명령어"){
replier.reply("1.검색어 네이버의 실시간 검색어를 볼수있다.\n2./날씨 지역명or동명 날씨를 볼수있다.\n3. 기사자격 기사자격 조건을 볼수있다.\n4. 일정 시험을 볼 수 있다.\n5. 큐넷 큐넷주소를 볼 수 있다. \n사용법 예시) 검색어 /날씨 시험일정 큐넷")}
if(msg=="안녕하세요~"){
replier.reply("안녕하세요~ 별명/성별/나이로 닉네임 변경부탁드리며, 하트 눌러주시면 감사드리겠습니다. (하트가 많아져 사람들이 많아지고 정보 공유가 활성화 되길 바랍니다.) 카카오봇이 있으며 /명령어를 입력하시면 됩니다.")}
if(msg=="안녕하세요~~"){
replier.reply("안녕하세요~ 별명/성별/나이로 닉네임 변경부탁드리며, 하트 눌러주시면 감사드리겠습니다. (하트가 많아져 사람들이 많아지고 정보 공유가 활성화 되길 바랍니다.) 카카오봇이 있으며 /명령어를 입력하시면 됩니다.")}
if(msg=="안녕하세여"){
replier.reply("안녕하세요~ 별명/성별/나이로 닉네임 변경부탁드리며, 하트 눌러주시면 감사드리겠습니다. (하트가 많아져 사람들이 많아지고 정보 공유가 활성화 되길 바랍니다.) 카카오봇이 있으며 /명령어를 입력하시면 됩니다.")}
if(msg=="안녕하세여~"){
replier.reply("안녕하세요~ 별명/성별/나이로 닉네임 변경부탁드리며, 하트 눌러주시면 감사드리겠습니다. (하트가 많아져 사람들이 많아지고 정보 공유가 활성화 되길 바랍니다.) 카카오봇이 있으며 /명령어를 입력하시면 됩니다.")}
if(msg=="안녕하세여~~"){
replier.reply("안녕하세요~ 별명/성별/나이로 닉네임 변경부탁드리며, 하트 눌러주시면 감사드리겠습니다. (하트가 많아져 사람들이 많아지고 정보 공유가 활성화 되길 바랍니다.) 카카오봇이 있으며 /명령어를 입력하시면 됩니다.")}
if (msg.trim()== "검색어") {
var u = Utils.getWebText("https://www.naver.com")
var a = u.split("급상승 검색어 검색어")
var b = a[1].split("11")
var c = b[0].replace(/(<([^>]+)>)/g,"")
c = c.replace(/\n\n\n/g,"\n").replace(/(?![0-9]+) /g,"").trim().replace(/(?=(\D))\b/g,".")
replier.reply("[실시간 급상승 검색어]\n "+c)
}
}
}
function onCreate(savedInstanceState,activity) {
var layout=new android.widget.LinearLayout(activity);
layout.setOrientation(android.widget.LinearLayout.HORIZONTAL);
var txt=new android.widget.TextView(activity);
txt.setText("액티비티 사용 예시입니다.");
layout.addView(txt);
activity.setContentView(layout);
}
function onStartCompile(){}
function onResume(activity){}
function onPause(activity){}
function onStop(activity){}
------------------------------------------------------------
수정 후
if(room=="정보처리기사실기"){
msg = msg.trim();
var cmd = msg.split(" ")[0];
var data = msg.replace(cmd + " ", "");
if(cmd == "/날씨") {
var result = getWeathetInfo(data);
if(result == null) {
replier.reply(data + "의 날씨 정보를 가져올 수 없습니다.");
} else {
replier.reply(result);
}
}
if(msg=="과목안내"){
replier.reply("필기\n1과목 데이터베이스 20문제\n2과목 전자게산기 구조 20문제\n3과목 운영체제 20문제\n4과목 소프트웨어공학 20문제\n5과목 데이터통신 20문제\n※ 각 과목별 최소 8개이상, 총합 60개이상 맞춰야 합격\n실기\n1과목 업무프로세스 실무응용 15점\n2과목 데이터베이스 실무응용 25점\n3과목 실무 알고리즘 응용 25점\n4과목 IT 신기술동향 및 시스템관리 25점\n5과목 전산 영어 실무 10점\n※ 과목별 점수 상관없이 60점이상 합격")}
if(msg=="일정"){
replier.reply("2019년/ 1회\n접수 2019.01.25 -2019.01.31\n필기시험 2019.03.03 \n합격발표 2019.03.14 \n\n서류제출 2019.03.15-2019.03.27\n실기접수 2019.03.15-2019.03.21\n실기시험 2019.04.13-2019.04.27\n합격 발표 2019.05.03-2019.05.22\n------------------------------------------\n2019년/ 2회\n접수 2019.03.29 -2019.04.04\n필기시험 2019.04.27 \n합격발표 2019.05.17 \n\n서류제출 2019.05.20-2019.05.29\n실기접수 2019.05.20-2019.05.23\n실기시험 2019.06.29-2019.07.12\n합격 발표 2019.07.19-2019.08.16\n-------------------------------------------\n2019년/ 3회\n접수 2019.07.05 -2019.07.11\n필기시험 2019.08.04 \n합격발표 2019.08.30 \n\n서류제출 2019.09.02-2019.09.11\n실기접수 2019.09.02-2019.09.05\n실기시험 2019.10.12-2019.10.25\n합격 발표 2019.11.01-2019.11.22\n------------------------------------------")}
if(msg=="큐넷"){
replier.reply("http://www.q-net.or.kr/man001.do?gSite=Q")}
if(msg=="기사자격"){
replier.reply("※ 기사 응시자격\n\n1. 대학 4년제 : 4학년 1학기 이상 재학중인 경우 응시가 가능 (졸업예정자)\n2. 전문대 (2년, 3년) : 대학 졸업 후 실무경력을 쌓아야 함 (2년 : 2년 이상, 3년 : 1년 이상)\n3. 순수 실무경력 4년 이상 (유사 직무 분야)\n4. 동일분야 기사 이상\n5. 기능사 + 3년 이상 : 기능사 먼저 취득 후 3년의 실무경력\n6. 산업기사 1년 이상 : 산업기사 먼저 취득 후 1년의 실무경력\n7. 동일 및 유사 직무분야의 기사 수준 기술훈련과정 이수자 또는 그 이수예정자\n8. 외국에서 동일한 종목에 해당하는 자격을 취득한 자")}
if(msg=="/명령어"){
replier.reply("1.검색어 네이버의 실시간 검색어를 볼수있다.\n2./날씨 지역명or동명 날씨를 볼수있다.\n3. 기사자격 기사자격 조건을 볼수있다.\n4. 일정 시험을 볼 수 있다.\n5. 큐넷 큐넷주소를 볼 수 있다.\n6.과목안내 과목을 안내한다.\n 소스코드 - alisyabob.tistory.com")}
if(msg=="안녕하세요"){
replier.reply("안녕하세요~ 별명/성별/나이로 닉네임 변경부탁드리며, 하트 눌러주시면 감사드리겠습니다. (하트가 많아져 사람들이 많아지고 정보 공유가 활성화 되길 바랍니다.) 카카오봇이 있으며 /명령어를 입력하시면 됩니다.")}
if(msg=="안녕하세요."){
replier.reply("안녕하세요~ 별명/성별/나이로 닉네임 변경부탁드리며, 하트 눌러주시면 감사드리겠습니다. (하트가 많아져 사람들이 많아지고 정보 공유가 활성화 되길 바랍니다.) 카카오봇이 있으며 /명령어를 입력하시면 됩니다.")}
if(msg=="안녕하세요~"){
replier.reply("안녕하세요~ 별명/성별/나이로 닉네임 변경부탁드리며, 하트 눌러주시면 감사드리겠습니다. (하트가 많아져 사람들이 많아지고 정보 공유가 활성화 되길 바랍니다.) 카카오봇이 있으며 /명령어를 입력하시면 됩니다.")}
if(msg=="안녕하세요~~"){
replier.reply("안녕하세요~ 별명/성별/나이로 닉네임 변경부탁드리며, 하트 눌러주시면 감사드리겠습니다. (하트가 많아져 사람들이 많아지고 정보 공유가 활성화 되길 바랍니다.) 카카오봇이 있으며 /명령어를 입력하시면 됩니다.")}
if(msg=="안녕하세여"){
replier.reply("안녕하세요~ 별명/성별/나이로 닉네임 변경부탁드리며, 하트 눌러주시면 감사드리겠습니다. (하트가 많아져 사람들이 많아지고 정보 공유가 활성화 되길 바랍니다.) 카카오봇이 있으며 /명령어를 입력하시면 됩니다.")}
if(msg=="안녕하세여~"){
replier.reply("안녕하세요~ 별명/성별/나이로 닉네임 변경부탁드리며, 하트 눌러주시면 감사드리겠습니다. (하트가 많아져 사람들이 많아지고 정보 공유가 활성화 되길 바랍니다.) 카카오봇이 있으며 /명령어를 입력하시면 됩니다.")}
if(msg=="안녕하세여~~"){
replier.reply("안녕하세요~ 별명/성별/나이로 닉네임 변경부탁드리며, 하트 눌러주시면 감사드리겠습니다. (하트가 많아져 사람들이 많아지고 정보 공유가 활성화 되길 바랍니다.) 카카오봇이 있으며 /명령어를 입력하시면 됩니다.")}
if (msg.trim()== "검색어") {
var u = Utils.getWebText("https://www.naver.com")
var a = u.split("급상승 검색어 검색어")
var b = a[1].split("11")
var c = b[0].replace(/(<([^>]+)>)/g,"")
c = c.replace(/\n\n\n/g,"\n").replace(/(?![0-9]+) /g,"").trim().replace(/(?=(\D))\b/g,".")
replier.reply("[실시간 급상승 검색어]\n "+c)
}
}
'코딩 > 허접한 프로젝트?' 카테고리의 다른 글
카카오플러스 (챗봇) (0) | 2019.05.20 |
---|---|
현재위치 조회후 카톡으로 전송 (완료) 구글플레이 (0) | 2019.05.20 |
날씨어플 (json) (진행중) (0) | 2019.05.19 |
현재위치 조회후 카톡으로 전송(안드로이드) (완료) (0) | 2019.05.19 |
카카오 플러스 (채널)친구 만들기 (진행중) (0) | 2019.05.19 |