Showing
2 changed files
with
80 additions
and
36 deletions
... | @@ -2,7 +2,7 @@ const { SlashCommandBuilder } = require('@discordjs/builders'); | ... | @@ -2,7 +2,7 @@ const { SlashCommandBuilder } = require('@discordjs/builders'); |
2 | const { MessageEmbed } = require('discord.js'); | 2 | const { MessageEmbed } = require('discord.js'); |
3 | const axios = require("axios"); | 3 | const axios = require("axios"); |
4 | const cheerio = require("cheerio"); | 4 | const cheerio = require("cheerio"); |
5 | - | 5 | +const request = require("request-promise"); |
6 | 6 | ||
7 | module.exports = { | 7 | module.exports = { |
8 | data: new SlashCommandBuilder() | 8 | data: new SlashCommandBuilder() |
... | @@ -24,15 +24,7 @@ module.exports = { | ... | @@ -24,15 +24,7 @@ module.exports = { |
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 $ContentList = $("ul.item-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 | 28 | ||
37 | $ContentList.each(function(i, elem){ | 29 | $ContentList.each(function(i, elem){ |
38 | for(var i = 0; i < All_contents.length; i++){ | 30 | for(var i = 0; i < All_contents.length; i++){ |
... | @@ -42,20 +34,12 @@ module.exports = { | ... | @@ -42,20 +34,12 @@ module.exports = { |
42 | } | 34 | } |
43 | }) | 35 | }) |
44 | 36 | ||
45 | - let island_print = ""; | 37 | + const $Bosscontent = $('div.main-inner-box ul.item-list').children('li'.list); |
46 | - for(var i = 0; i < info_island.length; i++){ | 38 | + $Bosscontent.each(function(i, elem){ |
47 | - let rewordImage = ""; | 39 | + if($(this).find("h4.item-title").text() == "모아케"){ |
48 | - if(info_island[i].reword === "카드"){ | 40 | + info_contents.push("필드 보스"); |
49 | - rewordImage = "<:cardpack:976389392702791710>" | 41 | + } |
50 | - } else if(info_island[i].reword === "골드"){ | 42 | + }) |
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 | 43 | ||
60 | let content_print = ""; | 44 | let content_print = ""; |
61 | 45 | ||
... | @@ -67,16 +51,48 @@ module.exports = { | ... | @@ -67,16 +51,48 @@ module.exports = { |
67 | content_print = "오늘은 이용가능한 컨텐츠가 없어요"; | 51 | content_print = "오늘은 이용가능한 컨텐츠가 없어요"; |
68 | } | 52 | } |
69 | 53 | ||
70 | - const termembed = new MessageEmbed() | 54 | + //api 출처: 로학원생 |
71 | - .setColor('#008B8B') | 55 | + url = "http://152.70.248.4:5000/adventureisland/"; |
72 | - .setTitle('프로키온의 나침반') | ||
73 | - .setDescription(`오늘 이용가능한 컨텐츠 정보`) | ||
74 | - .addFields( | ||
75 | - {name: "모험섬", value: island_print, inline: true}, | ||
76 | - {name: "오늘의 콘텐츠", value: content_print, inline: true} | ||
77 | - ) | ||
78 | 56 | ||
79 | - interaction.reply({ embeds: [termembed], allowedMentions: {repliedUser: false} }); | 57 | + request(url, function(err, res, body){ |
58 | + if(err){ | ||
59 | + throw err; | ||
60 | + } | ||
61 | + let island_data = JSON.parse(body); | ||
62 | + | ||
63 | + for(var i = 0; i < island_data.Island.length; i++){ | ||
64 | + info_island[i] = { | ||
65 | + name : island_data.Island[i].Name, | ||
66 | + reward : island_data.Island[i].Reward | ||
67 | + } | ||
68 | + } | ||
69 | + }).then(function(){ | ||
70 | + let island_print = ""; | ||
71 | + for(var i = 0; i < info_island.length; i++){ | ||
72 | + let rewardImage = ""; | ||
73 | + if(info_island[i].reward === "카드"){ | ||
74 | + rewardImage = "<:cardpack:976389392702791710>" | ||
75 | + } else if(info_island[i].reward === "골드"){ | ||
76 | + rewardImage = "<:golds:976389688132788245>" | ||
77 | + } else if(info_island[i].reward === "주화"){ | ||
78 | + rewardImage = "<:piratecoin:976389403662508092>" | ||
79 | + } else if(info_island[i].reward === "실링"){ | ||
80 | + rewardImage = "<:shillings:976389357558710292>" | ||
81 | + } | ||
82 | + island_print += `${info_island[i].name}: ${info_island[i].reward} ${rewardImage}\n`; | ||
83 | + } | ||
84 | + | ||
85 | + const compassembed = new MessageEmbed() | ||
86 | + .setColor('#008B8B') | ||
87 | + .setTitle('프로키온의 나침반') | ||
88 | + .setDescription(`오늘 이용가능한 컨텐츠 정보`) | ||
89 | + .addFields( | ||
90 | + {name: "모험섬", value: island_print, inline: true}, | ||
91 | + {name: "오늘의 콘텐츠", value: content_print, inline: true} | ||
92 | + ) | ||
93 | + | ||
94 | + interaction.reply({ embeds: [compassembed], allowedMentions: {repliedUser: false} }); | ||
95 | + }) | ||
80 | }) | 96 | }) |
81 | }, | 97 | }, |
82 | }; | 98 | }; | ... | ... |
... | @@ -11,7 +11,29 @@ module.exports ={ | ... | @@ -11,7 +11,29 @@ module.exports ={ |
11 | .addStringOption((option) => | 11 | .addStringOption((option) => |
12 | option.setName('클래스') | 12 | option.setName('클래스') |
13 | .setDescription('각인 정보를 알고싶은 직업') | 13 | .setDescription('각인 정보를 알고싶은 직업') |
14 | - .setRequired(true)), | 14 | + .setRequired(true) |
15 | + .addChoices({ name: '디스트로이어', value: '디스트로이어'}) | ||
16 | + .addChoices({ name: '버서커', value: '버서커'}) | ||
17 | + .addChoices({ name: '워로드', value: '워로드'}) | ||
18 | + .addChoices({ name: '홀리나이트', value: '홀리나이트'}) | ||
19 | + .addChoices({ name: '기공사', value: '기공사'}) | ||
20 | + .addChoices({ name: '배틀마스터', value: '배틀마스터'}) | ||
21 | + .addChoices({ name: '스트라이커', value: '스트라이커'}) | ||
22 | + .addChoices({ name: '인파이터', value: '인파이터'}) | ||
23 | + .addChoices({ name: '창술사', value: '창술사'}) | ||
24 | + .addChoices({ name: '건슬리어', value: '건슬리어'}) | ||
25 | + .addChoices({ name: '데빌헌터', value: '데빌헌터'}) | ||
26 | + .addChoices({ name: '블래스터', value: '블래스터'}) | ||
27 | + .addChoices({ name: '스카우터', value: '스카우터'}) | ||
28 | + .addChoices({ name: '호크아이', value: '호크아이'}) | ||
29 | + .addChoices({ name: '바드', value: '바드'}) | ||
30 | + .addChoices({ name: '서머너', value: '서머너'}) | ||
31 | + .addChoices({ name: '소서리스', value: '소서리스'}) | ||
32 | + .addChoices({ name: '아르카나', value: '아르카나'}) | ||
33 | + .addChoices({ name: '데모닉', value: '데모닉'}) | ||
34 | + .addChoices({ name: '리퍼', value: '리퍼'}) | ||
35 | + .addChoices({ name: '블레이드', value: '블레이드'}) | ||
36 | + .addChoices({ name: '도화가', value: '도화가'})), | ||
15 | async execute(interaction){ | 37 | async execute(interaction){ |
16 | const class_name = interaction.options.getString('클래스'); | 38 | const class_name = interaction.options.getString('클래스'); |
17 | 39 | ||
... | @@ -41,7 +63,6 @@ module.exports ={ | ... | @@ -41,7 +63,6 @@ module.exports ={ |
41 | case '리퍼' : job_number = 6; class_number = 3; break; | 63 | case '리퍼' : job_number = 6; class_number = 3; break; |
42 | case '블레이드' : job_number = 6; class_number = 4; break; | 64 | case '블레이드' : job_number = 6; class_number = 4; break; |
43 | case '도화가' : job_number = 7; class_number = 2; break; | 65 | case '도화가' : job_number = 7; class_number = 2; break; |
44 | - default: interaction.reply('올바른 직업명을 입력해주세요!'); return; | ||
45 | } | 66 | } |
46 | const tempembed = new MessageEmbed() | 67 | const tempembed = new MessageEmbed() |
47 | .setColor('#F7819F') | 68 | .setColor('#F7819F') |
... | @@ -53,7 +74,14 @@ module.exports ={ | ... | @@ -53,7 +74,14 @@ module.exports ={ |
53 | const page = await browser.newPage(); | 74 | const page = await browser.newPage(); |
54 | await page.goto('https://loawa.com/rank'); | 75 | await page.goto('https://loawa.com/rank'); |
55 | 76 | ||
56 | - await page.click(`#contents > article > form > div > div:nth-child(${job_number}) > div > div:nth-child(2) > div > label:nth-child(${class_number}) > span`); | 77 | + if(job_number ==7 && class_number ==2){ |
78 | + let button = await page.$(`#contents > article > form > div > div:nth-child(7) > div > div:nth-child(2) > div > label.checkbox-group.server-width > span`); | ||
79 | + await button.evaluate(b => b.click()); | ||
80 | + } else{ | ||
81 | + let button = await page.$(`#contents > article > form > div > div:nth-child(${job_number}) > div > div:nth-child(2) > div > label:nth-child(${class_number}) > span`); | ||
82 | + await button.evaluate(b => b.click()); | ||
83 | + } | ||
84 | + | ||
57 | await page.waitForSelector('#contents > article > table > tbody > tr:nth-child(20) > td:nth-child(11) > a > svg > path'); | 85 | await page.waitForSelector('#contents > article > table > tbody > tr:nth-child(20) > td:nth-child(11) > a > svg > path'); |
58 | await page.waitForTimeout(1000); | 86 | await page.waitForTimeout(1000); |
59 | 87 | ... | ... |
-
Please register or login to post a comment