<?php
// Fonctions pour pinger un flux RSS
function pingPubSubHubbub($rss_url) {
    $hub_url = 'https://pubsubhubbub.appspot.com/';
    $data = http_build_query([
        'hub.mode' => 'publish',
        'hub.url' => $rss_url
    ]);

    $options = [
        'http' => [
            'method'  => 'POST',
            'header'  => 'Content-Type: application/x-www-form-urlencoded',
            'content' => $data
        ]
    ];
    $context = stream_context_create($options);
    $result = file_get_contents($hub_url, false, $context);

    return $result !== false ? "✅ PubSubHubbub OK" : "❌ PubSubHubbub Échec";
}

function pingGoogleRPC($rss_url) {
    $rpc_url = 'http://blogsearch.google.com/ping/RPC2';
    $xml = "<?xml version=\"1.0\"?>
    <methodCall>
      <methodName>weblogUpdates.ping</methodName>
      <params>
        <param><value><string>TonSite</string></value></param>
        <param><value><string>{$rss_url}</string></value></param>
      </params>
    </methodCall>";

    $options = [
        'http' => [
            'method'  => 'POST',
            'header'  => "Content-Type: text/xml\r\n",
            'content' => $xml
        ]
    ];
    $context = stream_context_create($options);
    $result = file_get_contents($rpc_url, false, $context);

    return $result !== false ? "✅ RPC Google OK" : "❌ RPC Google Échec";
}

// Traitement du formulaire
if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['rss_urls'])) {
    $urls = explode("\n", $_POST['rss_urls']);
    $urls = array_map('trim', $urls);
    $urls = array_filter($urls);

    echo "<h2>Résultats des pings :</h2><ul>";

    foreach ($urls as $url) {
        $url = filter_var($url, FILTER_VALIDATE_URL);
        if ($url) {
            echo "<li><strong>{$url}</strong><br>";
            echo pingPubSubHubbub($url) . " | " . pingGoogleRPC($url) . "</li><br>";
        } else {
            echo "<li><strong>URL invalide détectée : Ignorée</strong></li>";
        }
    }

    echo "</ul>";
}
?>

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Multi Ping RSS en Formulaire</title>
</head>
<body style="font-family: Arial, sans-serif; background: #f2f2f2; padding: 30px;">
    <h2>Envoyer un ou plusieurs flux RSS à pinger</h2>
    <form method="post" action="">
        <label for="rss_urls">Collez vos URL de flux RSS (une par ligne) :</label><br><br>
        <textarea name="rss_urls" id="rss_urls" rows="10" cols="80" placeholder="https://www.site1.com/rss.xml&#10;https://www.site2.com/rss.xml" required style="padding: 10px;"></textarea><br><br>
        <button type="submit" style="padding: 10px 20px;">Lancer les Pings</button>
    </form>
</body>
</html>
