Showing
2 changed files
with
96 additions
and
0 deletions
commands/compass.js
0 → 100644
1 | +const { SlashCommandBuilder } = require('@discordjs/builders'); | ||
2 | +const { MessageEmbed } = require('discord.js'); | ||
3 | +const axios = require("axios"); | ||
4 | +const cheerio = require("cheerio"); | ||
5 | + | ||
6 | + | ||
7 | +module.exports = { | ||
8 | + data: new SlashCommandBuilder() | ||
9 | + .setName('나침반') | ||
10 | + .setDescription('오늘 이용가능한 프로키온의 나침반 스케줄 정보를 조회합니다.'), | ||
11 | + async execute(interaction) { | ||
12 | + const getHtml = async() => { | ||
13 | + try { | ||
14 | + return await axios.get("https://www.loawa.com/") | ||
15 | + } catch (error){ | ||
16 | + console.error(error); | ||
17 | + } | ||
18 | + } | ||
19 | + | ||
20 | + await getHtml() | ||
21 | + .then(html => { | ||
22 | + const $ = cheerio.load(html.data); | ||
23 | + | ||
24 | + let info_island = []; | ||
25 | + let info_contents = []; | ||
26 | + let All_contents = ["유령선", "카오스게이트", "필드 보스"]; | ||
27 | + const $IslandList = $("ul.today-quest-list").children("li.list"); | ||
28 | + const $ContentList = $("ul.item-list").children("li.list"); | ||
29 | + | ||
30 | + $IslandList.each(function(i, elem){ | ||
31 | + info_island[i] = { | ||
32 | + name : $(this).find('h4.island-name span').text(), | ||
33 | + reword : $(this).find('h5.lang-text').text() | ||
34 | + } | ||
35 | + }) | ||
36 | + | ||
37 | + $ContentList.each(function(i, elem){ | ||
38 | + for(var i = 0; i < All_contents.length; i++){ | ||
39 | + if($(this).find("h4.item-title span").text() === All_contents[i]){ | ||
40 | + info_contents.push($(this).find("h4.item-title span").text()); | ||
41 | + } | ||
42 | + } | ||
43 | + }) | ||
44 | + | ||
45 | + let island_print = ""; | ||
46 | + for(var i = 0; i < info_island.length; i++){ | ||
47 | + let rewordImage = ""; | ||
48 | + if(info_island[i].reword === "카드"){ | ||
49 | + rewordImage = "<:cardpack:976389392702791710>" | ||
50 | + } else if(info_island[i].reword === "골드"){ | ||
51 | + rewordImage = "<:golds:976389688132788245>" | ||
52 | + } else if(info_island[i].reword === "주화"){ | ||
53 | + rewordImage = "<:piratecoin:976389403662508092>" | ||
54 | + } else if(info_island[i].reword === "실링"){ | ||
55 | + rewordImage = "<:shillings:976389357558710292>" | ||
56 | + } | ||
57 | + island_print += `${info_island[i].name}: ${info_island[i].reword} ${rewordImage}\n`; | ||
58 | + } | ||
59 | + | ||
60 | + let content_print = ""; | ||
61 | + | ||
62 | + for(var i = 0; i < info_contents.length; i++){ | ||
63 | + content_print += `${info_contents[i]}\n`; | ||
64 | + } | ||
65 | + | ||
66 | + if(!content_print){ | ||
67 | + content_print = "오늘은 이용가능한 컨텐츠가 없어요"; | ||
68 | + } | ||
69 | + | ||
70 | + const termembed = new MessageEmbed() | ||
71 | + .setColor('#008B8B') | ||
72 | + .setTitle('프로키온의 나침반') | ||
73 | + .setDescription(`오늘 이용가능한 컨텐츠 정보`) | ||
74 | + .addFields( | ||
75 | + {name: "모험섬", value: island_print, inline: true}, | ||
76 | + {name: "오늘의 콘텐츠", value: content_print, inline: true} | ||
77 | + ) | ||
78 | + | ||
79 | + interaction.reply({ embeds: [termembed], allowedMentions: {repliedUser: false} }); | ||
80 | + }) | ||
81 | + }, | ||
82 | +}; |
... | @@ -21,7 +21,12 @@ module.exports = { | ... | @@ -21,7 +21,12 @@ module.exports = { |
21 | .addField('/도움 <명령어>', '명령어 상세 설명', true) | 21 | .addField('/도움 <명령어>', '명령어 상세 설명', true) |
22 | .addField('/마리샵', '마리샵 정보 조회', true) | 22 | .addField('/마리샵', '마리샵 정보 조회', true) |
23 | .addField('/정보 <닉네임>', '전투정보실 조회', true) | 23 | .addField('/정보 <닉네임>', '전투정보실 조회', true) |
24 | +<<<<<<< HEAD | ||
24 | .addField('/로아와 <닉네임>', '로아와 조회', true); | 25 | .addField('/로아와 <닉네임>', '로아와 조회', true); |
26 | +======= | ||
27 | + .addField('/로아와 <닉네임>', '로아와 조회', true) | ||
28 | + .addField('/나침반', '금일 스케줄 조회', true); | ||
29 | +>>>>>>> feature/compass | ||
25 | await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}}); | 30 | await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}}); |
26 | } else if(helpCommand === "도움") { | 31 | } else if(helpCommand === "도움") { |
27 | const helpEmbed = new MessageEmbed() | 32 | const helpEmbed = new MessageEmbed() |
... | @@ -47,6 +52,15 @@ module.exports = { | ... | @@ -47,6 +52,15 @@ module.exports = { |
47 | .setTitle(`/로아와 <닉네임> 사용방법`) | 52 | .setTitle(`/로아와 <닉네임> 사용방법`) |
48 | .setDescription(`<닉네임>에 해당하는 캐릭터의 로아와 정보를 브라우저로 엽니다.`); | 53 | .setDescription(`<닉네임>에 해당하는 캐릭터의 로아와 정보를 브라우저로 엽니다.`); |
49 | await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}}); | 54 | await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}}); |
55 | +<<<<<<< HEAD | ||
56 | +======= | ||
57 | + } else if(helpCommand === "나침반"){ | ||
58 | + const helpEmbed = new MessageEmbed() | ||
59 | + .setColor('#0099ff') | ||
60 | + .setTitle(`/나침반 사용방법`) | ||
61 | + .setDescription(`금일 이용가능한 모험섬과 콘텐츠 정보를 제공합니다.`); | ||
62 | + await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}}); | ||
63 | +>>>>>>> feature/compass | ||
50 | } else { | 64 | } else { |
51 | await interaction.reply("해당 명령어는 없습니다."); | 65 | await interaction.reply("해당 명령어는 없습니다."); |
52 | } | 66 | } | ... | ... |
-
Please register or login to post a comment