This commit is contained in:
derpystuff 2022-10-09 23:22:17 +02:00
parent 7107108cbe
commit 974f5c6a53
5 changed files with 72 additions and 1 deletions

View file

@ -0,0 +1,55 @@
const { createEmbed } = require('../../../labscore/utils/embed')
const { editOrReply } = require('../../../labscore/utils/message')
const { STATICS } = require('../../../labscore/utils/statics')
const { weather } = require('../../../labscore/api');
const { pill, icon } = require('../../../labscore/utils/markdown');
module.exports = {
name: 'weather',
label: 'query',
metadata: {
description: 'Weather information.',
examples: ['weather Berlin'],
category: 'search',
usage: 'weather <location>'
},
run: async (context, args) => {
context.triggerTyping();
if(!args.query) return editOrReply(context, {embeds:[createEmbed("warning", context, `Missing Parameter (location).`)]})
try{
let data = await weather(context, args.query)
data = data.response.body
let e = createEmbed("default", context, {
description: `**${data.name}** ${pill(data.temperature.celcius.main)} ${pill(data.temperature.fahrenheit.main)}\n*${data.display.name}, ${data.display.description}*`,
fields: [{
name: `${icon("upvote")} Maximum Temperature`,
value: `${pill(data.temperature.celcius.max)} ${pill(data.temperature.fahrenheit.max)}\n\n${icon("downvote")} **Minimum Temperature**\n${pill(data.temperature.celcius.min)} ${pill(data.temperature.fahrenheit.min)}`,
inline: true
},{
name: `Humidity`,
value: `${pill(data.misc.humidity)}\n\n**Felt Temperature**\n${pill(data.temperature.celcius.feels_like)} ${pill(data.temperature.fahrenheit.feels_like)}`,
inline: true
},{
name: `Wind Speed`,
value: `${pill(data.wind.speed)}\n\n**Wind Direction**\n${pill(data.wind.degree + '°')}`,
inline: false
}],
thumbnail: {
url: data.display.icon
},
footer: {
iconUrl: STATICS.openweathermap,
text: `OpenWeatherMap • ${context.application.name}`
}
})
return editOrReply(context, {embeds: [e]})
}catch(e){
console.log(e)
return editOrReply(context, {embeds:[createEmbed("warning", context, `No weather data available for given location.`)]})
}
},
};