index.js
4.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
const {prefix, token} = require('./config.json');
const Discord = require("discord.js")
const client = new Discord.Client()
var fs = require('fs'); //파일입출력 모듈
const internal = require("stream");
var now = new Date(); // 현재날짜 및 시간 객체
//로그인 콘솔 출력
client.on("ready", () => {
console.log(`Logged in as ${client.user.tag}!`)
client.user.setPresence({ game: { name: "챗봇 상태메시지 적는곳"}, status: "online"})
});
//명령어 인식
client.on("message", msg => {
console.log(msg.author.id, msg.content); //채팅을 로그에 띄우기
//prefix로 시작하지 않는경우 통과 를 위한 명령어
if (!msg.content.startsWith(prefix) || msg.author.bot) return;
const args=msg.content.slice(prefix.length).split(" ");
const command=args.shift().toLowerCase();
//prefix로 시작하지 않는경우 통과 를 위한 명령어 end
//테스트 조건문
if (command === "ping") {
msg.reply("Pong!")
}
if (command === "현재시간") {
msg.reply(now.getHours() + "시 " + now.getMinutes() + "분");
} // 테스트 조건문 end
//공부시작 시간 체크
if (command === "공부시작") {
var data = String(now.getHours()) +"."+ String(now.getMinutes());
console.log(msg.author.id);
var fileName = "data/stopWatch/" + msg.author.id + ".txt";
fs.writeFileSync(fileName, data, 'utf8', function(error){ // 파일에 data내용 저장
console.log('studyStart write end');
});
msg.reply("공부시작! 열공~ ⁽⁽◝( ˙ ꒳ ˙ )◜⁾⁾");
} //공부시작 시간 체크 end
//공부끝 시간 체크
if (command === "공부끝") {
var fileName = "data/stopWatch/" + msg.author.id + ".txt";
try {
// 파일 있는지 확인. 없으면 catch
//(공부시작을 한 경우) : 공부시간 계산
fs.readFile(fileName, 'utf8', function(err, data) {
console.log('find');
var studyData = data.toString().split('.');
var studyHours = now.getHours() - Number(studyData[0]);
if (now.getMinutes() - Number(studyData[1]) < 0) {
var studyMinutes = 60 + now.getMinutes() - Number(studyData[1]);
}
else {
var studyMinutes = now.getMinutes() - Number(studyData[1]);
}
//공부시간 출력
msg.reply(studyHours + "시간 " + studyMinutes + "분 공부하였습니다.");
console.log(studyHours + "h " + studyMinutes + "m");
});
//공부시간 출력하였으면 공부시작 적은 파일 삭제.
try {
fs.unlinkSync(fileName)
} catch (error) {
if(err.code == 'ENOENT'){
console.log("file delete error");
}
}
} catch (error) {
//(공부시작을 하지 않은 경우)
if (error.code === "ENOENT") {
console.log("user no start");
msg.reply("아직 공부를 시작하지 않았습니다.");
}
}
} //공부끝 시간 체크 end
//디데이부분 수정 필요
//디데이 설정
if (msg.content.startsWith("~디데이설정")) {
console.log("dDaySetStart");
var dDayData = msg.toString().split(" ");
var dDayTitle = dDayData[1];
var dDayWhen = dDayData[2].toString().split('/');
var fileName = "data/dDay/" + dDayTitle + ".txt";
fs.writeFileSync(fileName, dDayData[2], 'utf8', function(error){ // 파일에 data내용 저장
console.log('dDaySet write end');
});
console.log(dDayWhen[0] + "월 " + dDayWhen[1] + "일에 " + dDayTitle + "이(가) 설정되었습니다.");
msg.reply(dDayWhen[0] + "월 " + dDayWhen[1] + "일에 " + dDayTitle + "이(가) 설정되었습니다.");
} //디데이 설정 end
//디데이 달력 보기
if (command === "디데이보기") {
fs.readdir('./data/dDay', (err, file_list) => { //폴더열기
var fileArr = file_list.toString().split(','); //dDay 배열
fileArr.forEach((el,i) => {
fs.readFile("./data/dDay/"+el, 'utf8', function(err, data) {
msg.reply(el.replace('.txt','') + ' ' + data);
});
});
});
} //디데이 달력 보기 end
})
//디스코드 봇 토큰
client.login(token);