Toggle navigation
Toggle navigation
This project
Loading...
Sign in
유병우
/
lostark-discord-bot
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
남우성
2022-05-31 21:04:56 +0900
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
98966cd3a5b9ef5a6a5268f8fd9d9ccf0c32278c
98966cd3
2 parents
acd55b22
c485cf4e
Merge branch 'feature/mari' into develop
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
103 additions
and
0 deletions
commands/mari.js
commands/mari.js
0 → 100644
View file @
98966cd
const
{
SlashCommandBuilder
}
=
require
(
'@discordjs/builders'
);
const
{
MessageEmbed
,
MessageActionRow
,
MessageButton
}
=
require
(
'discord.js'
);
const
axios
=
require
(
"axios"
);
const
cheerio
=
require
(
"cheerio"
);
module
.
exports
=
{
data
:
new
SlashCommandBuilder
()
.
setName
(
'마리샵'
)
.
setDescription
(
'현재 마리샵과 이전, 전전의 마리샵의 정보를 조회합니다.'
),
async
execute
(
interaction
)
{
const
itemInfo
=
[];
var
isMaintainence
=
false
;
await
axios
.
get
(
"https://lostark.game.onstove.com"
).
then
(
html
=>
{
const
$
=
cheerio
.
load
(
html
.
data
);
})
const
buttonsRow
=
new
MessageActionRow
()
.
addComponents
(
new
MessageButton
()
.
setCustomId
(
"12time_ago"
)
.
setLabel
(
"전전 마리샵 정보 조회"
)
.
setStyle
(
"SECONDARY"
)
)
.
addComponents
(
new
MessageButton
()
.
setCustomId
(
"6time_ago"
)
.
setLabel
(
"이전 마리샵 정보 조회"
)
.
setStyle
(
"SECONDARY"
)
)
.
addComponents
(
new
MessageButton
()
.
setCustomId
(
"0time_ago"
)
.
setLabel
(
"현재 마리샵 정보 조회"
)
.
setStyle
(
"SECONDARY"
)
);
async
function
getHTML
()
{
try
{
return
await
axios
.
get
(
"https://lostark.game.onstove.com/Shop#mari"
);
}
catch
(
error
)
{
console
.
error
(
error
);
}
};
await
getHTML
().
then
(
html
=>
{
const
$
=
cheerio
.
load
(
html
.
data
);
const
bodyList
=
$
(
"ul.list-items"
).
children
(
"li"
);
bodyList
.
each
(
function
(
i
,
elem
)
{
itemInfo
[
i
]
=
{
name
:
$
(
this
).
find
(
"span.item-name"
).
text
(),
amount
:
$
(
this
).
find
(
"span.amount"
).
text
()};
});
return
itemInfo
;
});
const
embed
=
new
MessageEmbed
()
.
setTitle
(
"마리샵 성장 추천 목록"
)
.
setColor
(
"#FAA8F0"
)
.
setDescription
(
"성장 추천"
);
for
(
idx
=
0
;
idx
<
6
;
idx
++
)
{
embed
.
addField
(
`
${(
itemInfo
[
idx
]).
name
}
`
,
`
${(
itemInfo
[
idx
]).
amount
}
<:bluecrystal:952747773097295932>`
,
true
);
}
embed
.
addField
(
"\u200B"
,
"전투ㆍ생활 추천"
,
false
);
for
(
idx
=
18
;
idx
<
24
;
idx
++
)
{
embed
.
addField
(
`
${(
itemInfo
[
idx
]).
name
}
`
,
`
${(
itemInfo
[
idx
]).
amount
}
<:bluecrystal:952747773097295932>`
,
true
);
}
interaction
.
reply
({
embeds
:
[
embed
],
components
:
[
buttonsRow
],
allowedMentions
:
{
repliedUser
:
false
}});
const
filter
=
(
interaction
)
=>
{
return
interaction
.
customId
===
"12time_ago"
||
"6time_ago"
||
"0time_ago"
;};
const
collector
=
interaction
.
channel
.
createMessageComponentCollector
({
filter
,
time
:
60000
});
collector
.
on
(
"collect"
,
async
(
interaction
)
=>
{
if
(
interaction
.
customId
===
"12time_ago"
)
{
const
embed
=
new
MessageEmbed
()
.
setTitle
(
"마리샵 성장 추천 목록"
)
.
setColor
(
"#FAA8F0"
)
.
setDescription
(
"성장 추천"
);
for
(
idx
=
6
;
idx
<
12
;
idx
++
)
{
embed
.
addField
(
`
${(
itemInfo
[
idx
]).
name
}
`
,
`
${(
itemInfo
[
idx
]).
amount
}
<:bluecrystal:952747773097295932>`
,
true
);
}
embed
.
addField
(
"\u200B"
,
"전투ㆍ생활 추천"
,
false
);
for
(
idx
=
24
;
idx
<
30
;
idx
++
)
{
embed
.
addField
(
`
${(
itemInfo
[
idx
]).
name
}
`
,
`
${(
itemInfo
[
idx
]).
amount
}
<:bluecrystal:952747773097295932>`
,
true
);
}
interaction
.
update
({
embeds
:
[
embed
],
components
:
[
buttonsRow
],
allowedMentions
:
{
repliedUser
:
false
}});
}
else
if
(
interaction
.
customId
===
"6time_ago"
){
const
embed
=
new
MessageEmbed
()
.
setTitle
(
"마리샵 성장 추천 목록"
)
.
setColor
(
"#FAA8F0"
)
.
setDescription
(
"성장 추천"
);
for
(
idx
=
12
;
idx
<
18
;
idx
++
)
{
embed
.
addField
(
`
${(
itemInfo
[
idx
]).
name
}
`
,
`
${(
itemInfo
[
idx
]).
amount
}
<:bluecrystal:952747773097295932>`
,
true
);
}
embed
.
addField
(
"\u200B"
,
"전투ㆍ생활 추천"
,
false
);
for
(
idx
=
30
;
idx
<
36
;
idx
++
)
{
embed
.
addField
(
`
${(
itemInfo
[
idx
]).
name
}
`
,
`
${(
itemInfo
[
idx
]).
amount
}
<:bluecrystal:952747773097295932>`
,
true
);
}
interaction
.
update
({
embeds
:
[
embed
],
components
:
[
buttonsRow
],
allowedMentions
:
{
repliedUser
:
false
}});
}
else
if
(
interaction
.
customId
===
"0time_ago"
){
const
embed
=
new
MessageEmbed
()
.
setTitle
(
"마리샵 성장 추천 목록"
)
.
setColor
(
"#FAA8F0"
)
.
setDescription
(
"성장 추천"
);
for
(
idx
=
0
;
idx
<
6
;
idx
++
)
{
embed
.
addField
(
`
${(
itemInfo
[
idx
]).
name
}
`
,
`
${(
itemInfo
[
idx
]).
amount
}
<:bluecrystal:952747773097295932>`
,
true
);
}
embed
.
addField
(
"\u200B"
,
"전투ㆍ생활 추천"
,
false
);
for
(
idx
=
18
;
idx
<
24
;
idx
++
)
{
embed
.
addField
(
`
${(
itemInfo
[
idx
]).
name
}
`
,
`
${(
itemInfo
[
idx
]).
amount
}
<:bluecrystal:952747773097295932>`
,
true
);
}
interaction
.
update
({
embeds
:
[
embed
],
components
:
[
buttonsRow
],
allowedMentions
:
{
repliedUser
:
false
}});
}
});
},
};
\ No newline at end of file
Please
register
or
login
to post a comment