Haberler

ppf news

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

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

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 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;

})();