From 0d733500b8a5e94eafc31b45a9015220d85ea8c2 Mon Sep 17 00:00:00 2001 From: arf20 Date: Sun, 28 Apr 2024 05:02:52 +0200 Subject: Add discord webhook announce --- config.php.example | 3 ++- publishannouncement.php | 30 +++++++++++++++++++++++++++--- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/config.php.example b/config.php.example index ef5d0d1..e25f427 100644 --- a/config.php.example +++ b/config.php.example @@ -13,7 +13,8 @@ define('MAIL_USER', 'user'); define('MAIL_PASSWORD', 'password'); define('MAIL_FROM', 'system@example.com'); -define('MAIL_ANNOUNCE_ADDRESS', 'announce@example.com'); +define('ANNOUNCE_MAIL', 'announce@example.com'); +define('ANNOUNCE_DISCORD', 'https://discord.com/api/webhooks/thing'); define('DOMAIN', 'dash.example.com'); diff --git a/publishannouncement.php b/publishannouncement.php index 76c934a..1225670 100644 --- a/publishannouncement.php +++ b/publishannouncement.php @@ -34,15 +34,39 @@ $users = $result->fetch_all(MYSQLI_ASSOC); // POST actions if ($_SERVER["REQUEST_METHOD"] == "POST") { - /* Send email */ - $mailer->addAddress(MAIL_ANNOUNCE_ADDRESS); + // Send email + $mailer->addAddress(ANNOUNCE_MAIL); $mailer->addReplyTo(getuserbyid($id)["email"]); $mailer->Subject = "[ARFNET Announcement] ".$_POST["subject"]; $mailer->Body = $_POST["body"]; if (!$mailer->send()) { echo 'Mailer Error [ask arf20]: ' . $mailer->ErrorInfo; - } else header("location: ".$_SERVER['SCRIPT_NAME']); + } + + // Send discord message + if (defined("ANNOUNCE_DISCORD")) { + echo "discord "; + $json_data = json_encode([ + "content" => "@everyone \nSubject: ".$_POST["subject"]."\n".$_POST["body"] + ], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + + $ch = curl_init(ANNOUNCE_DISCORD); + curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json')); + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($ch, CURLOPT_HEADER, 0); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + $response = curl_exec($ch); + curl_close($ch); + + if ($response == false) { + echo 'Curl Error [ask arf20]: ' . $response; + } else echo "ok
"; + } + + die(); } -- cgit v1.2.3