Showing
6 changed files
with
89 additions
and
9 deletions
.gitignore
0 → 100644
1 | +config.json | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -23,7 +23,7 @@ module.exports = { | ... | @@ -23,7 +23,7 @@ module.exports = { |
23 | 23 | ||
24 | let info_island = []; | 24 | let info_island = []; |
25 | let info_contents = []; | 25 | let info_contents = []; |
26 | - let All_contents = ["유령선", "카오스게이트", "필드 보스"]; | 26 | + let All_contents = ["유령선", "카오스 게이트"]; |
27 | const $IslandList = $("ul.today-quest-list").children("li.list"); | 27 | const $IslandList = $("ul.today-quest-list").children("li.list"); |
28 | const $ContentList = $("ul.item-list").children("li.list"); | 28 | const $ContentList = $("ul.item-list").children("li.list"); |
29 | 29 | ... | ... |
commands/guide.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 | +module.exports ={ | ||
7 | + data: new SlashCommandBuilder() | ||
8 | + .setName('공략') | ||
9 | + .setDescription('로스트아크 인벤의 군단장 레이드 공략 글 정보를 소개합니다.') | ||
10 | + .addStringOption((option) => | ||
11 | + option.setName('레이드') | ||
12 | + .setDescription('군단장 레이드 이름') | ||
13 | + .setRequired(true) | ||
14 | + .addChoices({ name: "발탄", value: "발탄"}) | ||
15 | + .addChoices({ name: "비아키스", value: "비아키스"}) | ||
16 | + .addChoices({ name: "쿠크세이튼", value: "쿠크세이튼"}) | ||
17 | + .addChoices({ name: "아브렐슈드", value: "아브렐슈드"})), | ||
18 | + async execute(interaction){ | ||
19 | + const rade_name = interaction.options.getString('레이드'); | ||
20 | + | ||
21 | + const getHtml = async() => { | ||
22 | + try { | ||
23 | + return await axios.get("https://lostark.inven.co.kr/") | ||
24 | + } catch (error){ | ||
25 | + console.error(error); | ||
26 | + } | ||
27 | + } | ||
28 | + | ||
29 | + await getHtml() | ||
30 | + .then(html => { | ||
31 | + const $ = cheerio.load(html.data); | ||
32 | + | ||
33 | + const $radeList = $("div.menu_item01 div.item_body ul.list").children("li.row"); | ||
34 | + | ||
35 | + let rade_info = []; | ||
36 | + let rade_url = []; | ||
37 | + | ||
38 | + $radeList.each(function(i, elem){ | ||
39 | + if($(this).text().indexOf(rade_name) != -1){ | ||
40 | + rade_info.push($(this).text()); | ||
41 | + rade_url.push($(this).find('a').attr('href')); | ||
42 | + } | ||
43 | + }) | ||
44 | + | ||
45 | + let rade_print = ""; | ||
46 | + | ||
47 | + for(var i = 0; i < rade_info.length; i++){ | ||
48 | + rade_print += `[${rade_info[i]}](${rade_url[i]})\n`; | ||
49 | + } | ||
50 | + | ||
51 | + const guideembed = new MessageEmbed() | ||
52 | + .setColor('#6FF3E0') | ||
53 | + .setTitle("공략 정보") | ||
54 | + .setDescription(rade_print) | ||
55 | + | ||
56 | + interaction.reply({ embeds: [guideembed], allowedMentions: {repliedUser: false} }); | ||
57 | + }) | ||
58 | + } | ||
59 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -24,7 +24,9 @@ module.exports = { | ... | @@ -24,7 +24,9 @@ module.exports = { |
24 | .addField('/정보 <닉네임>', '전투정보실 조회', true) | 24 | .addField('/정보 <닉네임>', '전투정보실 조회', true) |
25 | .addField('/로아와 <닉네임>', '로아와 조회', true) | 25 | .addField('/로아와 <닉네임>', '로아와 조회', true) |
26 | .addField('/나침반', '금일 스케줄 조회', true) | 26 | .addField('/나침반', '금일 스케줄 조회', true) |
27 | - .addField('/용어 <단어>', '로스트아크 용어 설명', true); | 27 | + .addField('/용어 <단어>', '로스트아크 용어 설명', true) |
28 | + .addField('/각인 <클래스>', '클래스 별 각인 분석 정보 제공', true) | ||
29 | + .addField('/공략 <레이드>', '군단장 레이드 공략 글 정보 제공', true); | ||
28 | await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}}); | 30 | await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}}); |
29 | } else if(helpCommand === "도움") { | 31 | } else if(helpCommand === "도움") { |
30 | const helpEmbed = new MessageEmbed() | 32 | const helpEmbed = new MessageEmbed() |
... | @@ -65,9 +67,21 @@ module.exports = { | ... | @@ -65,9 +67,21 @@ module.exports = { |
65 | } else if(helpCommand === "용어"){ | 67 | } else if(helpCommand === "용어"){ |
66 | const helpEmbed = new MessageEmbed() | 68 | const helpEmbed = new MessageEmbed() |
67 | .setColor('#0099ff') | 69 | .setColor('#0099ff') |
68 | - .setTitle(`/용어 사용방법`) | 70 | + .setTitle(`/용어 <단어> 사용방법`) |
69 | .setDescription(`<단어>에 해당하는 로스트아크 용어 설명을 제공합니다.`); | 71 | .setDescription(`<단어>에 해당하는 로스트아크 용어 설명을 제공합니다.`); |
70 | await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}}); | 72 | await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}}); |
73 | + } else if(helpCommand === "각인"){ | ||
74 | + const helpEmbed = new MessageEmbed() | ||
75 | + .setColor('#0099ff') | ||
76 | + .setTitle(`/각인 <클래스> 사용방법`) | ||
77 | + .setDescription(`<클래스>에 해당하는 로아와 상위 20명의 각인 정보를 분석하고 제공합니다.`); | ||
78 | + await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}}); | ||
79 | + } else if(helpCommand === "공략") { | ||
80 | + const helpEmbed = new MessageEmbed() | ||
81 | + .setColor('#0099ff') | ||
82 | + .setTitle(`/공략 <레이드> 사용방법`) | ||
83 | + .setDescription(`<레이드>에 해당하는 로스트아크 인벤 사이트의 공략 글 정보를 제공합니다.`); | ||
84 | + await interaction.reply({embeds: [helpEmbed], allowedMentions: {repliedUser: false}}); | ||
71 | } else { | 85 | } else { |
72 | await interaction.reply("해당 명령어는 없습니다."); | 86 | await interaction.reply("해당 명령어는 없습니다."); |
73 | } | 87 | } | ... | ... |
config.json
deleted
100644 → 0
... | @@ -20,11 +20,22 @@ const rest = new REST({ version: "9" }).setToken(token); | ... | @@ -20,11 +20,22 @@ const rest = new REST({ version: "9" }).setToken(token); |
20 | (async () => { | 20 | (async () => { |
21 | guildIds.map(async (guildId) => { | 21 | guildIds.map(async (guildId) => { |
22 | try { | 22 | try { |
23 | - await rest.put(Routes.applicationGuildCommands(clientId, guildId), {body: commands}); | 23 | + await rest.put(Routes.applicationGuildCommands(clientId, guildId), {body: {}}); |
24 | console.log(`${guildId} 서버 성공`); | 24 | console.log(`${guildId} 서버 성공`); |
25 | } | 25 | } |
26 | catch (error) { | 26 | catch (error) { |
27 | console.error(error); | 27 | console.error(error); |
28 | } | 28 | } |
29 | }); | 29 | }); |
30 | + | ||
31 | + try { | ||
32 | + await rest.put( | ||
33 | + Routes.applicationCommands(clientId), | ||
34 | + { body: commands }, | ||
35 | + ); | ||
36 | + console.log('글로벌 커맨드 등록 성공'); | ||
37 | + } catch (error) { | ||
38 | + console.error(error); | ||
39 | + } | ||
40 | + | ||
30 | })(); | 41 | })(); |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment