-
Notifications
You must be signed in to change notification settings - Fork 0
/
clfu.js
119 lines (118 loc) · 3.86 KB
/
clfu.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
const clfu = require("commandlinefu");
const formatObject = require("../utils/format").clfuObject;
const formatArray = require("../utils/format").clfuArray;
const prefix = require("../utils/prefix");
module.exports = {
name: "clfu",
description: `Get random snippets from commandlinefu.com. Available args: \`random\`, \`popular\`, \`search:$yoursearch\`.\nEx: \`${prefix}clfu search:grep\`\nDefault to private mode (bot will PM you). To use public mode (also known as 'spam mode'), pass \`--public\` as second argument.\nEx: \`${prefix}clfu popular --public\``,
async execute(msg, args) {
if (args.length === 0) {
msg.author.send(`${this.description} `);
}
else if ((args.length === 1)) {
// private mode
if (args[0] === "random") {
await clfu()
.then(res => {
msg.author.send(formatObject(res));
});
}
else if (args[0] === "popular") {
await clfu("popular")
.then(res => {
const { output1, output2, output3 } = { ...formatArray(res) };
msg.author.send(output1)
.then(() => output2.length > 0
?
msg.author.send(output2)
.then(() =>
output3.length > 0
?
msg.author.send(output3)
:
null
)
.catch(e => e)
: null
);
});
}
else if (args[0].includes("search:")) {
const input = args[0].split("search:")[1];
await clfu(`search:${input}`)
.then(res => {
const { output1, output2, output3 } = { ...formatArray(res) };
msg.author.send(output1)
.then(() => output2.length > 0
?
msg.author.send(output2)
.then(() =>
output3.length > 0
?
msg.author.send(output3)
:
null
)
.catch(e => e)
: null
);
});
}
}
else if ((args.length === 2) && ((args[1] === "--public") || (args[1] === "-p"))) {
// public mode
if (args[0] === "random") {
await clfu()
.then(res => {
msg.channel.send(formatObject(res));
});
}
else if (args[0] === "popular") {
await clfu("popular")
.then(res => {
const { output1, output2, output3 } = { ...formatArray(res) };
msg.channel.send(output1)
.then(() => output2.length > 0
?
msg.channel.send(output2)
.then(() =>
output3.length > 0
?
msg.channel.send(output3)
:
null
)
.catch(e => e)
: null
);
});
}
else if (args[0].includes("search:")) {
const input = args[0].split("search:")[1];
await clfu(`search:${input}`)
.then(res => {
const { output1, output2, output3 } = { ...formatArray(res) };
if(output1){
msg.channel.send(output1)
.then(() => output2.length > 0
?
msg.channel.send(output2)
.then(() =>
output3.length > 0
?
msg.channel.send(output3)
:
null
)
.catch(e => e)
: null
);
}
else{
msg.channel.send(`No results found for \`${input}\` in clfu database!`);
}
});
}
}
}
};