김건우

Fix dDayReply to dDay

1 +22.45
...\ No newline at end of file ...\ No newline at end of file
1 const {prefix, token} = require('./config.json'); 1 const {prefix, token} = require('./config.json');
2 -const Discord = require("discord.js") 2 +const Discord = require("discord.js") // npm install discord.js 필요
3 const client = new Discord.Client() 3 const client = new Discord.Client()
4 -var fs = require('fs'); //파일입출력 모듈 4 +var fs = require('fs');
5 const internal = require("stream"); 5 const internal = require("stream");
6 var now = new Date(); // 현재날짜 및 시간 객체 6 var now = new Date(); // 현재날짜 및 시간 객체
7 +var moment = require('moment') // npm install --save moment 필요
7 8
8 9
9 10
...@@ -35,7 +36,7 @@ client.on("message", msg => { ...@@ -35,7 +36,7 @@ client.on("message", msg => {
35 msg.reply("Pong!") 36 msg.reply("Pong!")
36 } 37 }
37 if (command === "현재시간") { 38 if (command === "현재시간") {
38 - msg.reply(now.getHours() + "시 " + now.getMinutes() + "분"); 39 + msg.reply(now.getFullYear() + "년 " + (now.getMonth()+1) + "월 " +now.getDate() + "일 " + now.getHours() + "시 " + now.getMinutes() + "분");
39 } // 테스트 조건문 end 40 } // 테스트 조건문 end
40 41
41 42
...@@ -47,7 +48,7 @@ client.on("message", msg => { ...@@ -47,7 +48,7 @@ client.on("message", msg => {
47 var data = String(now.getHours()) +"."+ String(now.getMinutes()); 48 var data = String(now.getHours()) +"."+ String(now.getMinutes());
48 console.log(msg.author.id); 49 console.log(msg.author.id);
49 50
50 - var fileName = "data/stopWatch/" + msg.author.id + ".txt"; 51 + var fileName = "./data/stopWatch/" + msg.author.id + ".txt";
51 fs.writeFileSync(fileName, data, 'utf8', function(error){ // 파일에 data내용 저장 52 fs.writeFileSync(fileName, data, 'utf8', function(error){ // 파일에 data내용 저장
52 console.log('studyStart write end'); 53 console.log('studyStart write end');
53 }); 54 });
...@@ -113,18 +114,22 @@ client.on("message", msg => { ...@@ -113,18 +114,22 @@ client.on("message", msg => {
113 //디데이 설정 114 //디데이 설정
114 if (msg.content.startsWith("~디데이설정")) { 115 if (msg.content.startsWith("~디데이설정")) {
115 console.log("dDaySetStart"); 116 console.log("dDaySetStart");
117 + try {
118 + var dDayData = msg.toString().split(" ");
119 + var dDayTitle = dDayData[1];
120 + var dDayWhen = dDayData[2].toString().split('/');
121 + var fileName = "data/dDay/" + dDayTitle + ".txt";
122 +
123 + fs.writeFileSync(fileName, dDayData[2], 'utf8', function(error){ // 파일에 data내용 저장
124 + console.log('dDaySet write end');
125 + });
126 + console.log(dDayWhen[0] + "월 " + dDayWhen[1] + "일에 " + dDayTitle + "이(가) 설정되었습니다.");
127 + msg.reply(dDayWhen[0] + "월 " + dDayWhen[1] + "일에 " + dDayTitle + "이(가) 설정되었습니다.");
128 +
129 + } catch {
130 + msg.reply("양식이 올바르지 않습니다. 예) ~디데이설정 기말고사 12/15");
131 + }
116 132
117 - var dDayData = msg.toString().split(" ");
118 - var dDayTitle = dDayData[1];
119 - var dDayWhen = dDayData[2].toString().split('/');
120 - var fileName = "data/dDay/" + dDayTitle + ".txt";
121 -
122 - fs.writeFileSync(fileName, dDayData[2], 'utf8', function(error){ // 파일에 data내용 저장
123 - console.log('dDaySet write end');
124 - });
125 -
126 - console.log(dDayWhen[0] + "월 " + dDayWhen[1] + "일에 " + dDayTitle + "이(가) 설정되었습니다.");
127 - msg.reply(dDayWhen[0] + "월 " + dDayWhen[1] + "일에 " + dDayTitle + "이(가) 설정되었습니다.");
128 133
129 } //디데이 설정 end 134 } //디데이 설정 end
130 135
...@@ -139,18 +144,45 @@ client.on("message", msg => { ...@@ -139,18 +144,45 @@ client.on("message", msg => {
139 144
140 fileArr.forEach((el,i) => { 145 fileArr.forEach((el,i) => {
141 fs.readFile("./data/dDay/"+el, 'utf8', function(err, data) { 146 fs.readFile("./data/dDay/"+el, 'utf8', function(err, data) {
142 - msg.reply(el.replace('.txt','') + ' ' + data); 147 + var dDayWhen = data.toString().split('/');
148 + var t1 = moment(); //현재 날짜
149 + var t2 = moment(String(now.getFullYear()) + "-" + dDayWhen[0] + "-" + dDayWhen[1] , 'YYYY-MM-DD'); // 저장된 날짜
150 +
151 + msg.reply(el.replace('.txt','') + "까지 D - "+ (Number(t2.diff(t1,'days')) + 2)); //dDay 답장
143 }); 152 });
144 }); 153 });
145 }); 154 });
146 } //디데이 달력 보기 end 155 } //디데이 달력 보기 end
147 156
148 -
149 -
150 -
151 157
158 + //디데이 삭제
159 + if (msg.content.startsWith("~디데이삭제")) {
160 + var dDayData = msg.toString().split(" ");
161 + var fileName = "data/dDay/" + dDayData[1] + ".txt";
162 + try {
152 163
164 + fs.statSync(fileName); //파일 존재 확인
165 + try {
166 + fs.unlinkSync(fileName) // 파일 존재시 삭제
167 + msg.reply("해당 이벤트가 삭제되었습니다.");
168 + } catch (error) {
169 + if(err.code == 'ENOENT'){
170 + console.log("file delete error");
171 + }
172 + }
173 +
174 + } catch (error) {
175 +
176 + //파일이 없다면 에러 발생
177 + msg.reply("설정되지 않은 이벤트입니다.");
178 + if (error.code === "ENOENT") {
179 + console.log("파일이 존재하지 않습니다.");
180 + }
181 + }
182 +
183 +
153 184
185 + } //디데이 삭제 end
154 186
155 187
156 188
...@@ -162,4 +194,4 @@ client.on("message", msg => { ...@@ -162,4 +194,4 @@ client.on("message", msg => {
162 194
163 195
164 //디스코드 봇 토큰 196 //디스코드 봇 토큰
165 -client.login(token);
...\ No newline at end of file ...\ No newline at end of file
197 +client.login('OTA3OTU2NjY1MTEzMDE4NDA4.YYuuiQ.Rn2yQ9lGPLr_24sky29TWQHLOYA');
...\ No newline at end of file ...\ No newline at end of file
......