Pleasant3131
Gold Üye
- Katılım
- 16 Ocak 2024
- Mesajlar
- 205
- Beğeniler
- 23
CollectAPI ile yapılmış bir hava durumu sistemi.
Düzenlemeniz gereken yer sadece api key kısmıdır.
Api ile alakalı hava durumu bilgileri yanlış veya eksik olabilir deneyenler olursa bildirirseniz sevinirim ona göre apiyi değiştiriz
JavaScript:
const Discord = require('discord.js');
const https = require('https');
module.exports = {
name: "havadurumu",
description: "Belirtilen sehir için hava durumu bilgisini saglar",
options: [
{
name: "sehir",
description: "Hava durumunu ögrenmek istediğiniz sehir",
type: 3,
required: true
}
],
run: async (pleasant_client, pleasant_interaction) => {
const pleasantsehir = pleasant_interaction.options.getString('sehir');
const options = {
method: "GET",
hostname: "api.collectapi.com",
port: null,
path: `/weather/getWeather?data.lang=tr&data.city=${encodeURIComponent(pleasantsehir)}`,
headers: {
"content-type": "application/json",
"authorization": ""
}
};
const req = https.request(options, (res) => {
let chunks = [];
res.on("data", (chunk) => {
chunks.push(chunk);
});
res.on("end", () => {
if (res.statusCode === 401) {
return pleasant_interaction.reply('API anahtarınız geçersiz');
}
const body = Buffer.concat(chunks);
try {
const data = JSON.parse(body.toString());
if (!data || !data.result || data.result.length === 0) {
return pleasant_interaction.reply('Hava durumu verileri alınamadı');
}
const weather = data.result[0];
const weatherEmbed = new Discord.EmbedBuilder()
.setTitle(`${pleasantsehir} Hava Durumu`)
.setColor('#3498db')
.addFields(
{ name: '🌞 Sıcaklık', value: `${weather.degree} °C`, inline: true },
{ name: '🌅 Hissedilen Sıcaklık', value: `Min: ${weather.min} °C, Max: ${weather.max} °C`, inline: true },
{ name: '💧 Nem', value: `${weather.humidity}%`, inline: true },
{ name: '📅 Tarih', value: `${weather.date}`, inline: true }
)
.setThumbnail(weather.icon);
pleasant_interaction.reply({ embeds: [weatherEmbed] });
} catch (error) {
console.error('JSON parse hatası:', error);
pleasant_interaction.reply('Bir hata oluştu. Lütfen daha sonra tekrar deneyin');
}
});
});
req.on("error", (error) => {
console.error('Hata:', error);
pleasant_interaction.reply('Bir hata oluştu. Lütfen daha sonra tekrar deneyin.');
});
req.end();
}
};