mirror of
https://github.com/arthur-pbty/xiao.git
synced 2026-06-03 23:36:43 +02:00
@@ -14,8 +14,7 @@ module.exports = class DoomsdayClockCommand extends Command {
|
||||
|
||||
async run(msg) {
|
||||
try {
|
||||
const { raw } = await snekfetch.get('https://thebulletin.org/timeline');
|
||||
const text = raw.toString();
|
||||
const { text } = await snekfetch.get('https://thebulletin.org/timeline');
|
||||
const time = text.match(/IT IS (.+) MINUTES TO MIDNIGHT/)[0];
|
||||
const desc = text.match(/<div class="body-text"><span class="timeline-year">(.+)<\/span>: (.+)<\/div>/);
|
||||
return msg.say(stripIndents`
|
||||
|
||||
@@ -33,8 +33,8 @@ module.exports = class TodayInHistoryCommand extends Command {
|
||||
async run(msg, { month, day }) {
|
||||
const date = month && day ? `/${month}/${day}` : '';
|
||||
try {
|
||||
const { raw } = await snekfetch.get(`http://history.muffinlabs.com/date${date}`);
|
||||
const body = JSON.parse(raw.toString());
|
||||
const { text } = await snekfetch.get(`http://history.muffinlabs.com/date${date}`);
|
||||
const body = JSON.parse(text);
|
||||
const events = body.data.Events;
|
||||
const event = events[Math.floor(Math.random() * events.length)];
|
||||
const embed = new MessageEmbed()
|
||||
@@ -47,7 +47,7 @@ module.exports = class TodayInHistoryCommand extends Command {
|
||||
event.links.map(link => `[${link.title}](${link.link.replace(/\)/g, '%29')})`).join(', '));
|
||||
return msg.embed(embed);
|
||||
} catch (err) {
|
||||
if (err.statusCode === 404 || err.statusCode === 500) return msg.say('Invalid date.');
|
||||
if (err.status === 404 || err.status === 500) return msg.say('Invalid date.');
|
||||
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,14 +66,13 @@ module.exports = class GoogleFeudCommand extends Command {
|
||||
}
|
||||
|
||||
async fetchSuggestions(question) {
|
||||
const { raw } = await snekfetch
|
||||
const { text } = await snekfetch
|
||||
.get('https://suggestqueries.google.com/complete/search')
|
||||
.query({
|
||||
client: 'firefox',
|
||||
q: question
|
||||
});
|
||||
const suggestions = JSON.parse(raw.toString())[1]
|
||||
.filter(suggestion => suggestion.toLowerCase() !== question.toLowerCase());
|
||||
const suggestions = JSON.parse(text)[1].filter(suggestion => suggestion.toLowerCase() !== question.toLowerCase());
|
||||
if (!suggestions.length) return null;
|
||||
return suggestions.map(suggestion => suggestion.toLowerCase().replace(question.toLowerCase(), '').trim());
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ module.exports = class OsuSignatureCommand extends Command {
|
||||
|
||||
async run(msg, { user, color }) {
|
||||
try {
|
||||
const { body, raw } = await snekfetch
|
||||
const { body, text } = await snekfetch
|
||||
.get('https://lemmmy.pw/osusig/sig.php')
|
||||
.query({
|
||||
colour: color,
|
||||
@@ -48,7 +48,7 @@ module.exports = class OsuSignatureCommand extends Command {
|
||||
onlineindicator: '',
|
||||
xpbar: ''
|
||||
});
|
||||
if (raw.toString().includes('<b>Warning</b>')) return msg.say('Could not find any results.');
|
||||
if (text.includes('<b>Warning</b>')) return msg.say('Could not find any results.');
|
||||
return msg.say({ files: [{ attachment: body, name: 'osu-signature.png' }] });
|
||||
} catch (err) {
|
||||
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
||||
|
||||
@@ -20,10 +20,10 @@ module.exports = class NumberFactCommand extends Command {
|
||||
|
||||
async run(msg, { number }) {
|
||||
try {
|
||||
const { raw } = await snekfetch.get(`http://numbersapi.com/${number}`);
|
||||
return msg.say(raw.toString());
|
||||
const { text } = await snekfetch.get(`http://numbersapi.com/${number}`);
|
||||
return msg.say(text);
|
||||
} catch (err) {
|
||||
if (err.statusCode === 404) return msg.say('Could not find any results.');
|
||||
if (err.status === 404) return msg.say('Could not find any results.');
|
||||
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,8 +37,8 @@ module.exports = class RedditCommand extends Command {
|
||||
⬇ ${post.downs}
|
||||
`);
|
||||
} catch (err) {
|
||||
if (err.statusCode === 403) return msg.say('This subreddit is private.');
|
||||
if (err.statusCode === 404) return msg.say('Could not find any results.');
|
||||
if (err.status === 403) return msg.say('This subreddit is private.');
|
||||
if (err.status === 404) return msg.say('Could not find any results.');
|
||||
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ module.exports = class GitHubCommand extends Command {
|
||||
new Date(body.updated_at).toDateString(), true);
|
||||
return msg.embed(embed);
|
||||
} catch (err) {
|
||||
if (err.statusCode === 404) return msg.say('Could not find any results.');
|
||||
if (err.status === 404) return msg.say('Could not find any results.');
|
||||
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,13 +21,13 @@ module.exports = class GoogleAutofillCommand extends Command {
|
||||
|
||||
async run(msg, { query }) {
|
||||
try {
|
||||
const { raw } = await snekfetch
|
||||
const { text } = await snekfetch
|
||||
.get('https://suggestqueries.google.com/complete/search')
|
||||
.query({
|
||||
client: 'firefox',
|
||||
q: query
|
||||
});
|
||||
const data = JSON.parse(raw.toString())[1];
|
||||
const data = JSON.parse(text)[1];
|
||||
if (!data.length) return msg.say('Could not find any results.');
|
||||
return msg.say(data.join('\n'));
|
||||
} catch (err) {
|
||||
|
||||
@@ -33,7 +33,7 @@ module.exports = class GravatarCommand extends Command {
|
||||
});
|
||||
return msg.say({ files: [{ attachment: body, name: `${hash}.jpg` }] });
|
||||
} catch (err) {
|
||||
if (err.statusCode === 404) return msg.say('Could not find any results.');
|
||||
if (err.status === 404) return msg.say('Could not find any results.');
|
||||
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@ module.exports = class HTTPCatCommand extends Command {
|
||||
|
||||
async run(msg, { code }) {
|
||||
try {
|
||||
const { body, raw } = await snekfetch.get(`https://http.cat/${code}.jpg`);
|
||||
if (raw.toString().startsWith('<!DOCTYPE html>')) return msg.say('Could not find any results.');
|
||||
const { body, text } = await snekfetch.get(`https://http.cat/${code}.jpg`);
|
||||
if (text.startsWith('<!DOCTYPE html>')) return msg.say('Could not find any results.');
|
||||
return msg.say({ files: [{ attachment: body, name: `${code}.jpg` }] });
|
||||
} catch (err) {
|
||||
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
||||
|
||||
@@ -30,7 +30,7 @@ module.exports = class ITunesCommand extends Command {
|
||||
|
||||
async run(msg, { country, query }) {
|
||||
try {
|
||||
const { raw } = await snekfetch
|
||||
const { text } = await snekfetch
|
||||
.get('https://itunes.apple.com/search')
|
||||
.query({
|
||||
term: query,
|
||||
@@ -40,7 +40,7 @@ module.exports = class ITunesCommand extends Command {
|
||||
explicit: msg.channel.nsfw ? 'yes' : 'no',
|
||||
country
|
||||
});
|
||||
const body = JSON.parse(raw.toString());
|
||||
const body = JSON.parse(text);
|
||||
if (!body.results.length) return msg.say('Could not find any results.');
|
||||
const data = body.results[0];
|
||||
const embed = new MessageEmbed()
|
||||
@@ -59,7 +59,7 @@ module.exports = class ITunesCommand extends Command {
|
||||
data.primaryGenreName, true);
|
||||
return msg.embed(embed);
|
||||
} catch (err) {
|
||||
if (err.statusCode === 400) {
|
||||
if (err.status === 400) {
|
||||
return msg.reply('Invalid country code. Refer to <https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes>.');
|
||||
}
|
||||
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
||||
|
||||
@@ -28,10 +28,10 @@ module.exports = class MyAnimeListAnimeCommand extends Command {
|
||||
|
||||
async run(msg, { query }) {
|
||||
try {
|
||||
const { raw } = await snekfetch
|
||||
const { text } = await snekfetch
|
||||
.get(`https://${MAL_USERNAME}:${MAL_PASSWORD}@myanimelist.net/api/anime/search.xml`)
|
||||
.query({ q: query });
|
||||
const body = await xml(raw.toString());
|
||||
const body = await xml(text);
|
||||
const data = body.anime.entry[0];
|
||||
const embed = new MessageEmbed()
|
||||
.setColor(0x2D54A2)
|
||||
|
||||
@@ -28,10 +28,10 @@ module.exports = class MyAnimeListMangaCommand extends Command {
|
||||
|
||||
async run(msg, { query }) {
|
||||
try {
|
||||
const { raw } = await snekfetch
|
||||
const { text } = await snekfetch
|
||||
.get(`https://${MAL_USERNAME}:${MAL_PASSWORD}@myanimelist.net/api/manga/search.xml`)
|
||||
.query({ q: query });
|
||||
const body = await xml(raw.toString());
|
||||
const body = await xml(text);
|
||||
const data = body.manga.entry[0];
|
||||
const embed = new MessageEmbed()
|
||||
.setColor(0x2D54A2)
|
||||
|
||||
@@ -40,14 +40,14 @@ module.exports = class NeopetCommand extends Command {
|
||||
|
||||
async run(msg, { pet, mood }) {
|
||||
try {
|
||||
const { raw } = await snekfetch
|
||||
const { text } = await snekfetch
|
||||
.get('http://www.sunnyneo.com/petimagefinder.php')
|
||||
.query({
|
||||
name: pet,
|
||||
size: 5,
|
||||
mood: moods[mood]
|
||||
});
|
||||
const link = raw.toString().match(/http:\/\/pets\.neopets\.com\/cp\/.+\.png/);
|
||||
const link = text.match(/http:\/\/pets\.neopets\.com\/cp\/.+\.png/);
|
||||
if (!link) return msg.say('Could not find any results.');
|
||||
return msg.say(link[0]);
|
||||
} catch (err) {
|
||||
|
||||
@@ -41,24 +41,22 @@ module.exports = class NeopetItemCommand extends Command {
|
||||
}
|
||||
|
||||
async fetchItem(query) {
|
||||
const { raw } = await snekfetch
|
||||
const { text } = await snekfetch
|
||||
.get('https://items.jellyneo.net/search/')
|
||||
.query({
|
||||
name: query,
|
||||
name_type: 3
|
||||
});
|
||||
const text = raw.toString();
|
||||
const id = text.match(/\/item\/([0-9]+)/);
|
||||
if (!id) return null;
|
||||
const price = text.match(/([0-9,]+) (NP|NC)/);
|
||||
const url = `https://items.jellyneo.net/item/${id[1]}/`;
|
||||
const details = await snekfetch.get(url);
|
||||
const rawDetails = details.raw.toString();
|
||||
return {
|
||||
id: id[1],
|
||||
url,
|
||||
name: rawDetails.match(/<h1>(.+)<\/h1>/)[1],
|
||||
details: rawDetails.match(/<em>(.+)<\/em>/)[1],
|
||||
name: details.text.match(/<h1>(.+)<\/h1>/)[1],
|
||||
details: details.text.match(/<em>(.+)<\/em>/)[1],
|
||||
image: `https://items.jellyneo.net/assets/imgs/items/${id[1]}.gif`,
|
||||
price: price ? Number.parseInt(price[1].replace(/,/g, ''), 10) : null,
|
||||
currency: price ? price[2] : null
|
||||
|
||||
@@ -55,7 +55,7 @@ module.exports = class NPMCommand extends Command {
|
||||
maintainers.join(', '));
|
||||
return msg.embed(embed);
|
||||
} catch (err) {
|
||||
if (err.statusCode === 404) return msg.say('Could not find any results.');
|
||||
if (err.status === 404) return msg.say('Could not find any results.');
|
||||
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ module.exports = class PokedexCommand extends Command {
|
||||
.setThumbnail(`https://www.serebii.net/sunmoon/pokemon/${id}.png`);
|
||||
return msg.embed(embed);
|
||||
} catch (err) {
|
||||
if (err.statusCode === 404) return msg.say('Could not find any results.');
|
||||
if (err.status === 404) return msg.say('Could not find any results.');
|
||||
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,8 +34,8 @@ module.exports = class RottenTomatoesCommand extends Command {
|
||||
if (!search.body.movies.length) return msg.say('Could not find any results.');
|
||||
const find = search.body.movies.find(m => m.name.toLowerCase() === query.toLowerCase()) || search.body.movies[0];
|
||||
const urlID = find.url.replace('/m/', '');
|
||||
const { raw } = await snekfetch.get(`https://www.rottentomatoes.com/api/private/v1.0/movies/${urlID}`);
|
||||
const body = JSON.parse(raw.toString());
|
||||
const { text } = await snekfetch.get(`https://www.rottentomatoes.com/api/private/v1.0/movies/${urlID}`);
|
||||
const body = JSON.parse(text);
|
||||
const criticS = body.ratingSummary.allCritics;
|
||||
const audienceS = body.ratingSummary.audience;
|
||||
const embed = new MessageEmbed()
|
||||
|
||||
@@ -22,7 +22,7 @@ module.exports = class SafebooruCommand extends Command {
|
||||
|
||||
async run(msg, { query }) {
|
||||
try {
|
||||
const { raw } = await snekfetch
|
||||
const { text } = await snekfetch
|
||||
.get('https://safebooru.org/index.php')
|
||||
.query({
|
||||
page: 'dapi',
|
||||
@@ -32,7 +32,6 @@ module.exports = class SafebooruCommand extends Command {
|
||||
tags: query,
|
||||
limit: 200
|
||||
});
|
||||
const text = raw.toString();
|
||||
if (!text) return msg.say('Could not find any results.');
|
||||
const body = JSON.parse(text);
|
||||
const data = body[Math.floor(Math.random() * body.length)];
|
||||
|
||||
@@ -41,7 +41,7 @@ module.exports = class TumblrCommand extends Command {
|
||||
data.ask ? 'Yes' : 'No', true);
|
||||
return msg.embed(embed);
|
||||
} catch (err) {
|
||||
if (err.statusCode === 404) return msg.say('Could not find any results.');
|
||||
if (err.status === 404) return msg.say('Could not find any results.');
|
||||
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,8 +54,8 @@ module.exports = class TwitterCommand extends Command {
|
||||
body.status ? body.status.text : 'None');
|
||||
return msg.embed(embed);
|
||||
} catch (err) {
|
||||
if (err.statusCode === 401) await this.fetchToken();
|
||||
if (err.statusCode === 404) return msg.say('Could not find any results.');
|
||||
if (err.status === 401) await this.fetchToken();
|
||||
if (err.status === 404) return msg.say('Could not find any results.');
|
||||
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@
|
||||
"pg": "^6.4.2",
|
||||
"pg-hstore": "^2.3.2",
|
||||
"sequelize": "^4.34.0",
|
||||
"snekfetch": "^4.0.0-rc.0",
|
||||
"snekfetch": "^3.6.4",
|
||||
"uws": "^9.14.0",
|
||||
"xml2js": "^0.4.19",
|
||||
"zlib-sync": "^0.1.4"
|
||||
|
||||
Reference in New Issue
Block a user