2021-02-17 15:24:33 +02:00
|
|
|
const fetch = require('node-fetch');
|
|
|
|
const boxen = require('boxen');
|
|
|
|
const link = require('terminal-link');
|
|
|
|
const semver = require('semver');
|
2021-04-22 00:02:21 +03:00
|
|
|
const { format } = require('leekslazylogger-fastify');
|
2021-02-17 15:24:33 +02:00
|
|
|
|
|
|
|
let { version: current } = require('../package.json');
|
|
|
|
|
|
|
|
module.exports = async client => {
|
|
|
|
if (!client.config.update_notice) return;
|
2021-03-03 12:57:28 +02:00
|
|
|
const json = await (await fetch('https://api.github.com/repos/discord-tickets/bot/releases')).json();
|
2021-02-17 15:24:33 +02:00
|
|
|
const update = json[0];
|
|
|
|
|
|
|
|
let latest = semver.coerce(update.tag_name);
|
|
|
|
|
|
|
|
if (!semver.valid(latest)) return;
|
|
|
|
|
|
|
|
if (semver.lt(current, latest)) {
|
|
|
|
client.log.notice(client.log.f(`There is an update available for Discord Tickets (${current} -> ${update.tag_name})`));
|
|
|
|
|
2021-04-22 00:02:21 +03:00
|
|
|
let lines = [
|
|
|
|
`&6You are currently using &c${current}&6, the latest is &a${update.tag_name}&6.`,
|
|
|
|
`&6Download "&f${update.name}&6" from`,
|
|
|
|
link('&6the GitHub releases page', 'https://github.com/discord-tickets/bot/releases/')
|
|
|
|
];
|
2021-02-17 15:24:33 +02:00
|
|
|
|
|
|
|
console.log(
|
2021-04-22 00:02:21 +03:00
|
|
|
boxen(format(lines.join('\n')), {
|
2021-02-17 15:24:33 +02:00
|
|
|
padding: 1,
|
|
|
|
margin: 1,
|
|
|
|
align: 'center',
|
|
|
|
borderColor: 'yellow',
|
|
|
|
borderStyle: 'round'
|
|
|
|
})
|
|
|
|
);
|
|
|
|
}
|
|
|
|
};
|