Open Source DiscordJS V14 Hava Durumu - CollectAPI

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 :)



image.png

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();
    }
};

 
böyle şeyler lazım oluyor bana varsa böyle şeyler vxrrickxr ekleyip atabilirmisin
 

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt