김건우

Merge branch 'feature/ranking' into 'master'

Add ranking function



See merge request !1
...@@ -19,7 +19,7 @@ const { getVideoID } = require('ytdl-core'); ...@@ -19,7 +19,7 @@ const { getVideoID } = require('ytdl-core');
19 //로그인 콘솔 출력 19 //로그인 콘솔 출력
20 client.on("ready", () => { 20 client.on("ready", () => {
21 console.log(`Logged in as ${client.user.tag}!`) 21 console.log(`Logged in as ${client.user.tag}!`)
22 - client.user.setPresence({ game: { name: "챗봇 상태메시지 적는곳"}, status: "online"}) 22 + client.user.setPresence({ game: { name: "상메뭐로하지"}, status: "online"})
23 }); 23 });
24 24
25 25
...@@ -89,6 +89,15 @@ client.on("message", msg => { ...@@ -89,6 +89,15 @@ client.on("message", msg => {
89 //공부시간 출력 89 //공부시간 출력
90 msg.reply(studyHours + "시간 " + studyMinutes + "분 공부하였습니다."); 90 msg.reply(studyHours + "시간 " + studyMinutes + "분 공부하였습니다.");
91 console.log(studyHours + "h " + studyMinutes + "m"); 91 console.log(studyHours + "h " + studyMinutes + "m");
92 +
93 + //studyTime 기록
94 + var fileName = "data/studyTime/" + msg.author.id + ".txt";
95 + var appendData = String(studyHours) + "." + String(studyMinutes) + " ";
96 + fs.appendFile(fileName, appendData, function(err) {
97 + if (err) throw err;
98 + console.log('The "data to append" was appended to file!');
99 + });
100 +
92 }); 101 });
93 //공부시간 출력하였으면 공부시작 적은 파일 삭제. 102 //공부시간 출력하였으면 공부시작 적은 파일 삭제.
94 try { 103 try {
...@@ -99,6 +108,9 @@ client.on("message", msg => { ...@@ -99,6 +108,9 @@ client.on("message", msg => {
99 } 108 }
100 } 109 }
101 110
111 +
112 +
113 +
102 } catch (error) { 114 } catch (error) {
103 //(공부시작을 하지 않은 경우) 115 //(공부시작을 하지 않은 경우)
104 if (error.code === "ENOENT") { 116 if (error.code === "ENOENT") {
...@@ -112,6 +124,29 @@ client.on("message", msg => { ...@@ -112,6 +124,29 @@ client.on("message", msg => {
112 124
113 125
114 126
127 + //수정 필요
128 + //공부시간 순위
129 + if (command === '순위') {
130 + fs.readdir('./data/studyTime', (err, file_list) => { //폴더열기
131 + var fileArr = file_list.toString().split(','); //studyTime 배열
132 + fileArr.forEach((el,i) => {
133 + fs.readFile("./data/studyTime/"+el, 'utf8', function(err, data) {
134 + data = data.slice(0,-1);
135 + var timeDiv = data.toString().split(' ');
136 + var sumHours = 0;
137 + var sumMinutes = 0;
138 + timeDiv.forEach((j,k) => { // j형식 = ~.@ ( ~는 시, @는 분)
139 + var timeData = j.toString().split('.');
140 + sumHours += Number(timeData[0]);
141 + sumMinutes += Number(timeData[1]);
142 + });
143 + msg.reply("\n<@" + el.replace('.txt','') + "> 님은 총" + sumHours + "시간 " + sumMinutes + "분 공부하였습니다.")
144 + });
145 + });
146 + });
147 + }
148 +
149 +
115 150
116 151
117 152
...@@ -197,6 +232,8 @@ client.on("message", msg => { ...@@ -197,6 +232,8 @@ client.on("message", msg => {
197 232
198 233
199 // 음악재생 234 // 음악재생
235 +
236 +
200 if (command === "음악") { 237 if (command === "음악") {
201 if (msg.member.voice.channel) { 238 if (msg.member.voice.channel) {
202 msg.member.voice.channel.join() 239 msg.member.voice.channel.join()
...@@ -237,13 +274,14 @@ client.on("message", msg => { ...@@ -237,13 +274,14 @@ client.on("message", msg => {
237 const play = connection.play(ytdl("https://www.youtube.com/watch?v="+results[0].id)); 274 const play = connection.play(ytdl("https://www.youtube.com/watch?v="+results[0].id));
238 play.on('start', () => { 275 play.on('start', () => {
239 //내용 추가 필요 276 //내용 추가 필요
240 - }) 277 + });
241 console.log(results[0].title); 278 console.log(results[0].title);
242 msg.reply(results[0].title + " 을 재생한다!"); 279 msg.reply(results[0].title + " 을 재생한다!");
243 - }) 280 + });
244 - 281 + }).catch(err => {
245 - }) 282 + console.error(err);
246 - .catch(console.log); 283 + return msg.member.voice.channel.leave();
284 + });
247 } else { 285 } else {
248 msg.reply("먼저 보이스채널에 입장해주세요."); 286 msg.reply("먼저 보이스채널에 입장해주세요.");
249 } 287 }
......
1 +0.0 0.0
...\ No newline at end of file ...\ No newline at end of file
1 +0.0
...\ No newline at end of file ...\ No newline at end of file