남우성

Create guide command

...@@ -4,5 +4,52 @@ const axios = require("axios"); ...@@ -4,5 +4,52 @@ const axios = require("axios");
4 const cheerio = require("cheerio"); 4 const cheerio = require("cheerio");
5 5
6 module.exports ={ 6 module.exports ={
7 + data: new SlashCommandBuilder()
8 + .setName('공략')
9 + .setDescription('로스트아크 인벤의 군단장 레이드 공략 글 정보를 소개합니다.')
10 + .addStringOption((option) =>
11 + option.setName('레이드')
12 + .setDescription('군단장 레이드 이름')
13 + .setRequired(true)),
14 + async execute(interaction){
15 + const rade_name = interaction.options.getString('레이드');
16 +
17 + const getHtml = async() => {
18 + try {
19 + return await axios.get("https://lostark.inven.co.kr/")
20 + } catch (error){
21 + console.error(error);
22 + }
23 + }
24 +
25 + await getHtml()
26 + .then(html => {
27 + const $ = cheerio.load(html.data);
28 +
29 + const $radeList = $("div.menu_item01 div.item_body ul.list").children("li.row");
30 +
31 + let rade_info = [];
32 + let rade_url = [];
33 +
34 + $radeList.each(function(i, elem){
35 + if($(this).text().indexOf(rade_name) != -1){
36 + rade_info.push($(this).text());
37 + rade_url.push($(this).find('a').attr('href'));
38 + }
39 + })
40 +
41 + let rade_print = "";
42 +
43 + for(var i = 0; i < rade_info.length; i++){
44 + rade_print += `[${rade_info[i]}](${rade_url[i]})\n`;
45 + }
46 +
47 + const guideembed = new MessageEmbed()
48 + .setColor('#6FF3E0')
49 + .setTitle("공략 정보")
50 + .setDescription(rade_print)
7 51
52 + interaction.reply({ embeds: [guideembed], allowedMentions: {repliedUser: false} });
53 + })
54 + }
8 } 55 }
...\ No newline at end of file ...\ No newline at end of file
......