Haberler

ppf news

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Haberler
// @namespace    http://tampermonkey.net/
// @version      1.5
// @description  ppf news
// @author       pixel berg
// @match        https://pixelplanet.fun/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Stil sınıflarıyla yeni bir buton ekle ve Yardım butonunun altına yerleştir
    const addCustomButton = () => {
        const helpButton = document.querySelector('[title="Yardım"]'); // Yardım butonunu bul

        if (helpButton) {
            const newButton = document.createElement('div');
            newButton.id = 'userAreaButton';
            newButton.className = 'actionbuttons'; // Diğer butonlarla aynı stil
            newButton.setAttribute('role', 'button');
            newButton.setAttribute('tabindex', '-1');
            newButton.setAttribute('title', 'Kullanıcı Alanı');
            newButton.innerHTML = `
                <svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" style="vertical-align: middle;">
                    <circle cx="12" cy="12" r="10" style="fill: #4CAF50;" />
                    <text x="12" y="16" text-anchor="middle" fill="white" font-size="10">U</text>
                </svg>`;

            // Yardım butonunun hemen altına ekle
            helpButton.parentNode.insertBefore(newButton, helpButton.nextSibling);

            // Tıklayınca modal penceresini aç
            newButton.addEventListener('click', showModal);

            // Butonu en sağa kaydır
            newButton.style.position = 'absolute';
            newButton.style.left = '16px';
            newButton.style.top = '37%';
            newButton.style.transform = 'translateY(-50%)';
        }
    };

    // JSON dosyasından haberleri çek
    const fetchNewsFromJson = async () => {
        const JSON_URL = 'http://ppfnews.rf.gd/ahmet.json'; // JSON dosyanızın URL'si

        try {
            const response = await fetch(JSON_URL); // JSON dosyasını çek
            if (!response.ok) throw new Error('Haberler alınamadı.');
            const newsData = await response.json(); // Haber verilerini JSON formatında al

            // Haberi modal içine yerleştir
            const newsContent = document.querySelector('#news-content');
            newsContent.innerHTML = ''; // Mevcut içeriği temizle
            newsData.forEach(article => {
                const articleHTML = `
                    <div class="news-item">
                        <h3>${article.title}</h3>
                        <p>${article.description}</p>
                        <a href="${article.url}" target="_blank">Habere Git</a>
                    </div>
                    <hr>
                `;
                newsContent.innerHTML += articleHTML;
            });
        } catch (error) {
            document.querySelector('#news-content').innerHTML = '<p>Haberler yüklenirken hata oluştu.</p>';
            console.error('Haber çekme hatası:', error);
        }
    };

    // Modal HTML yapısı ve haber verisini göstereceğimiz yer
    const createModal = () => {
        const modalHTML = `
        <div class="modal TEMPLATES show" style="z-index: 9; width: 72%;">
            <h2 class="titleModal"><img src="/PixelyaLOGO.png" alt="" style="width: 1.8rem; padding-right: 5px;">Haberler</h2>
            <div class="modal-topbtn close" role="button" label="close" title="Close" tabindex="-1">✕</div>
            <div class="modal-content">
                <div id="news-content" class="content" style="padding-top: 10px;">
                    <p>Yükleniyor...</p>
                </div>
            </div>
        </div>`;
        return modalHTML;
    };

    // Modalı göster ve haberleri yükle
    const showModal = () => {
        const modalContainer = document.createElement('div');
        modalContainer.innerHTML = createModal();
        document.body.appendChild(modalContainer);

        // Kapatma düğmesine tıklandığında modalı kaldır
        modalContainer.querySelector('.close').addEventListener('click', () => {
            document.body.removeChild(modalContainer);
        });

        // Haberleri JSON dosyasından çek ve göster
        fetchNewsFromJson();
    };

    // Butonu ve modalı ekle
    const init = () => {
        addCustomButton();
    };

    // Sayfa yüklendiğinde başlat
    window.onload = init;

})();