카카오톡 봇2

    내가 있는 정보처리기사 단톡방에 카카오톡 채팅 봇을 만들어 주었다.

     

    간단하게 카카오톡, 카카오봇어플, 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) 
    } 
    
    }

    댓글

    Designed by JB FACTORY