summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaindropsSys <raindrops@equestria.dev>2024-04-11 23:29:04 +0200
committerRaindropsSys <raindrops@equestria.dev>2024-04-11 23:29:04 +0200
commit9cb95f62c6dc710de66df79611c40b5674587a04 (patch)
tree4abca3167ea87e8d1559240c81eba50ee6b362d0
parent176cb7429f44ea69e3e4c866c529cc19a86b80ba (diff)
downloaddelta-9cb95f62c6dc710de66df79611c40b5674587a04.tar.gz
delta-9cb95f62c6dc710de66df79611c40b5674587a04.tar.bz2
delta-9cb95f62c6dc710de66df79611c40b5674587a04.zip
Updated 7 files and deleted 2 files (automated)
-rw-r--r--includes/header.php6
-rw-r--r--index.php31
-rw-r--r--lang/en.json2
-rw-r--r--lang/fr.json2
-rw-r--r--nickname/change/index.php108
-rw-r--r--nickname/index.php183
-rw-r--r--plus/index.php9
-rw-r--r--plus/subscribe/index.php12
-rw-r--r--version2
9 files changed, 48 insertions, 307 deletions
diff --git a/includes/header.php b/includes/header.php
index c59262e..ca60d9e 100644
--- a/includes/header.php
+++ b/includes/header.php
@@ -54,6 +54,12 @@ if (isset($_GET["__"])) {
$_id = str_replace("/", "-", substr($_GET["__"], 1));
}
+if (isset($_PROFILE) && $_PROFILE["ultra"]) {
+ $_PROFILE["ultra"] = false;
+ $_PROFILE["hadUltra"] = true;
+ saveProfile();
+}
+
?>
<!doctype html>
<html lang="en">
diff --git a/index.php b/index.php
index 280f46f..b6f84c0 100644
--- a/index.php
+++ b/index.php
@@ -14,12 +14,35 @@ $version = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/version");
<br><br>
<h1><?= l("lang_home_greeting") ?> <?= $_PROFILE["nick_name"] ?? $_PROFILE["first_name"] . " " . $_PROFILE["last_name"] ?></h1>
- <?php if ($_SERVER["SERVER_PORT"] === "81"): ?>
- <div class="alert alert-danger">
- <b>This is a development environment.</b> All data is reset with data from production every 60 minutes. Run <code style="color: inherit;"><?= $_SERVER['DOCUMENT_ROOT'] ?>/includes/prod.sh</code> to push this release to production.
- </div>
+ <?php if ($_PROFILE["hadUltra"]): ?>
+ <div class="alert alert-danger">
+ <b>Votre abonnement Delta Ultra a été converti en abonnement Delta Plus.</b> En raison de l'arrêt progressif de Delta, Delta Ultra n'est désormais plus disponible. Votre abonnement a donc été converti en Delta Plus.
+ </div>
<?php endif; ?>
+ <details class="alert alert-danger">
+ <summary>
+ <b>Arrêt progressif de service pour la plate-forme Delta et les services associés</b>
+ </summary>
+
+ <p style="margin-top: 1rem;">Nous avons le regret de vous annoncer la fermeture de Delta le 16 juin 2024, avec une désactivation progressive des fonctionnalités sur les prochains mois à raison d'une fonctionnalité par semaine, ainsi que la migration du contenu vers une plate-forme plus économe (avec cependant moins de contrôle).</p>
+ <ul>
+ <li style="opacity: .25;">31 mars : Retrait de l'offre de support technique gratuit pour les utilisateurs Delta Ultra. Le prix de l'abonnement Delta Ultra sera abaissé à 6 pièces par mois (soit 1,50€ par mois).</li>
+ <li style="opacity: .25;">7 avril : Désactivation de Delta Studio. Le prix de l'abonnement Delta Ultra sera abaissé à 5 pièces par mois (soit 1,25€ par mois).</li>
+ <li style="font-weight: bold;">14 avril : Retrait de Delta Ultra (et par conséquent de l'option de surnom). Les abonnements Delta Ultra en cours de validité seront convertis en abonnements Delta Plus.</li>
+ <li>21 avril : Désactivation de Delta Beta. Étant donné qu'il n'y a, à l'heure actuelle, aucune fonctionnalité expérimentale, la page correspondante est simplement retirée. Le prix de l'abonnement Delta Plus sera abaissé à 3 pièces par mois (soit 0,75€ par mois).</li>
+ <li>28 avril : Activation de l'option d'impression des pages pour tous les utilisateurs de Delta. Le prix de l'abonnement Delta Plus sera abaissé à 2 pièces par mois (soit 0,50€ par mois).</li>
+ <li>5 mai : Retrait de Delta Plus (et par conséquent du badge de profil et des relectures privilégiées). Les abonnements Delta Plus en cours de validité expireront.</li>
+ <li>12 mai : Désactivation de l'option d'aide intégrée. À partir de ce jour, aucun support technique ne sera fourni aux utilisateurs de Delta.</li>
+ <li>19 mai : Retrait du Pass Événements. Les intégrations dans des applications tierces utilisant le Pass Événements cesseront de fonctionner.</li>
+ <li>26 mai : Retrait du système de recherche.</li>
+ <li>2 juin : Désactivation des albums de galerie. Étant donné qu'aucun album n'existe actuellement, la page est simplement retirée.</li>
+ <li>9 juin : Désactivation de toutes les fonctionnalités de modification de Delta. Pour modifier du contenu après cette date, contactez les administrateurs.</li>
+ <li>16 juin : Fermeture définitive de Delta</li>
+ </ul>
+ <div>Si vous avez la moindre question ou le moindre renseignement à nous faire parvenir, utilisez soit <a href="/support/">l'option d'aide de Delta</a>, ou l'adresse <a href="mailto:delta@equestria.dev">delta@equestria.dev</a>.</div>
+ </details>
+
<?php if (str_contains($version, "rc") ||
str_contains($version, "eap") ||
str_contains($version, "beta") ||
diff --git a/lang/en.json b/lang/en.json
index d56e320..5c0f959 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -343,7 +343,7 @@
},
"trial": {
"title": "Get 5 coins free",
- "description": "First time using Delta Plus? You can get 5 coins for free (1 month of Delta Ultra subscription%1)."
+ "description": "First time using Delta Plus? You can get 5 coins for free (1 month of Delta Plus subscription%1)."
},
"notes": [
"Delta Plus is only available for users who are 16 years old or more and without an active account block.",
diff --git a/lang/fr.json b/lang/fr.json
index 1aba543..e46f51f 100644
--- a/lang/fr.json
+++ b/lang/fr.json
@@ -343,7 +343,7 @@
},
"trial": {
"title": "Obtenez 5 pièces gratuitement",
- "description": "Première fois avec Delta Plus ? Vous pouvez obtenir 5 pièces Delta gratuites (1 mois d'abonnement Delta Ultra%1)."
+ "description": "Première fois avec Delta Plus ? Vous pouvez obtenir 5 pièces Delta gratuites (1 mois d'abonnement Delta Plus%1)."
},
"notes": [
"Delta Plus est disponible uniquement aux utilisateurs de 16 ans ou plus et sans blocage de compte.",
diff --git a/nickname/change/index.php b/nickname/change/index.php
deleted file mode 100644
index 9786cbc..0000000
--- a/nickname/change/index.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-
-require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php";
-global $_PROFILE; global $_USER;
-
-if (!isset($_PROFILE["ultra"]) || !$_PROFILE["ultra"]) {
- header("Location: /");
- die();
-}
-
-if (!isset($_GET["name"])) die();
-$name = trim(base64_decode(trim($_GET["name"])));
-
-if (strlen($name) === 0) {
- $_PROFILE["nick_name"] = null;
- saveProfile();
- return;
-}
-
-$valid = true;
-$failed = [];
-
-if (strlen($name) >= 3) {
- $lettersProp = ceil(strlen($name) / 2);
-} else {
- $lettersProp = 1;
-}
-
-if (!(strlen($name) >= 3 && strlen($name) <= 25)) {
- $valid = false;
- $failed[] = "LENGTH";
-}
-
-if (preg_match("/[^\da-z]{2,}/mi", $name) === 1 || preg_match("/[^\da-z]{2,}/mi", $name)) {
- $valid = false;
- $failed[] = "CONSECUTIVE";
-}
-
-if (preg_match_all("/[^\da-z]/mi", $name) > 3) {
- $valid = false;
- $failed[] = "SPECIAL";
-}
-
-if (strlen(preg_replace("/[^\d]/mi", "", $name)) > 4) {
- $valid = false;
- $failed[] = "DIGITS";
-}
-
-if (preg_match("/^[a-z]/mi", $name) == 0) { // Not === because we also want to match 'false'
- $valid = false;
- $failed[] = "START";
-}
-
-if (preg_match("/[a-z\d]$/mi", $name) == 0) { // Not === because we also want to match 'false'
- $valid = false;
- $failed[] = "END";
-}
-
-if (strlen(preg_replace("/[^a-z]/mi", "", $name)) < $lettersProp) {
- $valid = false;
- $failed[] = "LETTERS";
-}
-
-if (!$valid) {
- header("Location: /nickname/?prefill=" . urlencode(pf_utf8_decode($_GET["name"])) . "&invalid=" . implode(",", $failed));
- die();
-}
-
-$users = [];
-
-foreach (array_filter(scandir($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles"), function ($i) {
- return !str_starts_with($i, ".");
-}) as $user) {
- if ($_USER . ".json" !== $user) {
- $data = json_decode(pf_utf8_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles/" . $user)), true);
- $users[] = $data["first_name"] . " " . $data["last_name"];
- $users[] = $data["first_name"];
- if (isset($data["nick_name"]) && strlen(trim($data["nick_name"])) > 0 && isset($data["ultra"]) && $data["ultra"]) $users[] = $data["nick_name"];
- }
-}
-
-foreach (array_filter(scandir($_SERVER['DOCUMENT_ROOT'] . "/includes/data/people"), function ($i) {
- return !str_starts_with($i, ".");
-}) as $user) {
- $data = json_decode(pf_utf8_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/people/" . $user)), true);
- if (!isset($data["delta"]) || $data["delta"] !== $_USER) {
- $users[] = $data["first_name"] . " " . $data["last_name"];
- $users[] = $data["first_name"];
- }
-}
-
-$close = false;
-
-foreach ($users as $user) {
- if (levenshtein($name, $user) < 7) {
- $close = true;
- }
-}
-
-if ($close) {
- header("Location: /nickname/?prefill=" . urlencode(pf_utf8_decode($_GET["name"])) . "&close");
- die();
-}
-
-$_PROFILE["nick_name"] = pf_utf8_encode(str_replace("'", "&apos;", str_replace('"', "&quot;", str_replace("<", "&lt;", str_replace(">", "&gt;", str_replace("&", "&amp;", $name))))));
-saveProfile();
-header("Location: /nickname/?success");
-die(); \ No newline at end of file
diff --git a/nickname/index.php b/nickname/index.php
deleted file mode 100644
index bbf14bc..0000000
--- a/nickname/index.php
+++ /dev/null
@@ -1,183 +0,0 @@
-<?php
-
-$title = "lang_nickname_title";
-require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php";
-
-if (!isset($_PROFILE["ultra"]) || !$_PROFILE["ultra"]) {
- header("Location: /");
- die();
-}
-
-require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/header.php";
-require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php";
-global $_PROFILE; global $_USER;
-
-?>
-
-<style>
- @media (max-width: 900px) {
- #grid {
- grid-template-columns: 1fr !important;
- grid-gap: 0 !important;
- }
-
- #grid > hr {
- display: block !important;
- }
- }
-</style>
-
-<div class="container">
- <br><br>
- <h1><?= l("lang_nickname_title2") ?></h1>
-
- <?php if (isset($_GET["invalid"]) || isset($_GET["close"])): ?>
- <div id="alert" class="alert alert-primary">
- <?php if (isset($_GET["invalid"])): ?><b><?= l("lang_upload_error") ?></b><?= l("lang_nickname_invalid") ?><?php endif; ?>
- <?php if (isset($_GET["close"])): ?><b><?= l("lang_upload_error") ?></b><?= l("lang_nickname_close") ?><?php endif; ?>
- </div>
- <?php endif; ?>
-
- <?php if (isset($_GET["success"])): ?>
- <div id="alert" class="alert alert-success">
- <b><?= l("lang_nickname_done_0") ?></b> <?= l("lang_nickname_done_1") ?>
- </div>
- <?php endif; ?>
-
- <div style="display: grid; grid-template-columns: 1fr 1fr; grid-gap: 20px;" id="grid">
- <div>
- <form onsubmit="checkAndSubmit(); return false;">
- <p>
- <input autofocus name="name" id="name" onkeydown="checkName();" onkeyup="checkName();" autocomplete="false" autocapitalize="false" spellcheck="false" class="form-control" placeholder="<?= "$_PROFILE[first_name] $_PROFILE[last_name]" ?>" value="<?= isset($_GET["prefill"]) ? str_replace('"', '&quot;', base64_decode($_GET["prefill"])) : ($_PROFILE["nick_name"] ?? "") ?>">
- </p>
-
- <button id="confirm-btn" class="btn btn-primary" disabled><?= l("lang_nickname_confirm") ?></button>
- </form>
- </div>
-
- <hr style="display: none;">
-
- <div>
- <p><?= l("lang_nickname_requirements") ?></p>
-
- <ul>
- <li id="condition-0" class="text-success"><?= l("lang_nickname_list_0") ?></li>
- <li id="condition-1" class="text-success"><?= l("lang_nickname_list_1") ?></li>
- <li id="condition-2" class="text-success"><?= l("lang_nickname_list_2") ?></li>
- <li id="condition-3" class="text-success"><?= l("lang_nickname_list_5") ?></li>
- <li id="condition-5" class="text-success"><?= l("lang_nickname_list_3") ?></li>
- <li id="condition-6" class="text-success"><?= l("lang_nickname_list_4") ?></li>
- <li id="condition-4-a" class="text-success"><?= l("lang_nickname_list_6") ?></li>
- <li id="condition-4-b" class="text-success" data-text-original="<?= l("lang_nickname_list_7") ?>"><?= l("lang_nickname_list_7") ?></li>
- </ul>
- </div>
-
- <script>
- window.isValid = false;
-
- function checkName(skip) {
- if (document.getElementById("alert") && !skip) document.getElementById("alert").outerHTML = "";
-
- let isValid = false;
- let lettersProp = 1;
- let name = document.getElementById("name").value.trim();
- document.getElementById("confirm-btn").disabled = true;
-
- if (name.length >= 3) {
- lettersProp = Math.ceil(name.length / 2);
- document.getElementById("condition-4-a").style.display = "none";
- document.getElementById("condition-4-b").style.display = "";
- document.getElementById("condition-4-b").innerText = document.getElementById("condition-4-b").getAttribute("data-text-original").replace("%1", lettersProp);
- } else {
- document.getElementById("condition-4-b").style.display = "none";
- document.getElementById("condition-4-a").style.display = "";
- }
-
- if (name.length === 0) {
- isValid = true;
- } else {
- for (let i of [0, 1, 2, 3, "4-a", "4-b", 5, 6]) {
- document.getElementById("condition-" + i).classList.remove("text-success");
- document.getElementById("condition-" + i).classList.add("text-danger");
- }
-
- isValid = true;
-
- if (name.length >= 3 && name.length <= 25) {
- document.getElementById("condition-0").classList.add("text-success");
- document.getElementById("condition-0").classList.remove("text-danger");
- } else {
- isValid = false;
- }
-
- if (!name.match(/[^\da-z]{2,}/gmi)) {
- document.getElementById("condition-1").classList.add("text-success");
- document.getElementById("condition-1").classList.remove("text-danger");
- } else {
- isValid = false;
- }
-
- if (
- (name.match(/[^\da-z]/gmi) && name.match(/[^\da-z]/gmi).length <= 3) ||
- (!name.match(/[^\da-z]/gmi))
- ) {
- document.getElementById("condition-2").classList.add("text-success");
- document.getElementById("condition-2").classList.remove("text-danger");
- } else {
- isValid = false;
- }
-
- if (name.replace(/[^\d]/gmi, "").length <= 4) {
- document.getElementById("condition-3").classList.add("text-success");
- document.getElementById("condition-3").classList.remove("text-danger");
- } else {
- isValid = false;
- }
-
- if (name.match(/^[a-z]/gmi)) {
- document.getElementById("condition-5").classList.add("text-success");
- document.getElementById("condition-5").classList.remove("text-danger");
- } else {
- isValid = false;
- }
-
- if (name.match(/[a-z\d]$/gmi)) {
- document.getElementById("condition-6").classList.add("text-success");
- document.getElementById("condition-6").classList.remove("text-danger");
- } else {
- isValid = false;
- }
-
- if (name.replace(/[^a-z]/gmi, "").length >= lettersProp) {
- document.getElementById("condition-4-a").classList.add("text-success");
- document.getElementById("condition-4-a").classList.remove("text-danger");
- document.getElementById("condition-4-b").classList.add("text-success");
- document.getElementById("condition-4-b").classList.remove("text-danger");
- } else {
- isValid = false;
- }
- }
-
- if (isValid) {
- document.getElementById("confirm-btn").disabled = false;
- } else {
- document.getElementById("confirm-btn").disabled = true;
- }
-
- return isValid;
- }
-
- function checkAndSubmit() {
- if (checkName()) {
- location.href = "/nickname/change/?name=" + encodeURIComponent(btoa(document.getElementById("name").value.trim()))
- }
- }
-
- checkName(true);
- </script>
- </div>
-
- <br><br>
-</div>
-
-<?php require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/footer.php"; ?> \ No newline at end of file
diff --git a/plus/index.php b/plus/index.php
index 5e7f517..3d93432 100644
--- a/plus/index.php
+++ b/plus/index.php
@@ -37,7 +37,6 @@ $age = (int)(explode(" ", timeAgo($_PROFILE["birth"] ?? "1990-01-01", false, tru
<span style="font-family: 'Josefin Sans', sans-serif; font-weight: bold; font-size: 40px; vertical-align: middle;">Delta</span>
<div id="plus-types" style="display: inline-grid;vertical-align: middle; grid-template-rows: 1fr; grid-gap: 10px;">
<span class="badge badge-plus rounded-pill" style="display: inline-block !important;font-size: 24px; vertical-align: middle; margin-left: 10px;">PLUS</span>
- <span class="badge badge-ultra rounded-pill" style="display: inline-block !important;font-size: 24px; vertical-align: middle; margin-left: 10px;">ULTRA</span>
</div>
</div>
</div>
@@ -106,9 +105,9 @@ $age = (int)(explode(" ", timeAgo($_PROFILE["birth"] ?? "1990-01-01", false, tru
</div>
</div>
- <h2 style="margin-bottom: 20px;margin-top: 30px;"><?= l("lang_plus_perks2") ?></h2>
+ <!--<h2 style="margin-bottom: 20px;margin-top: 30px;"><?= l("lang_plus_perks2") ?></h2>
<div id="plus-grid" style="display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 20px;">
- <!--<div class="promo-wrapper promo-ultra">
+ <div class="promo-wrapper promo-ultra">
<div class="card promo-item">
<div class="card-body">
<img src="/icons/brush.svg" style="width: 48px;"><br>
@@ -136,7 +135,7 @@ $age = (int)(explode(" ", timeAgo($_PROFILE["birth"] ?? "1990-01-01", false, tru
<span><?= str_replace("%2", "<sup>9</sup>", str_replace("%1", "<sup>8</sup>", l("lang_plus_list_0_description"))) ?></span>
</div>
</div>
- </div>-->
+ </div>
<div class="promo-wrapper promo-ultra">
<div class="card promo-item">
@@ -147,7 +146,7 @@ $age = (int)(explode(" ", timeAgo($_PROFILE["birth"] ?? "1990-01-01", false, tru
</div>
</div>
</div>
- </div>
+ </div>-->
<h2 style="margin-bottom: 20px;margin-top: 30px;"><?= l("lang_plus_how") ?></h2>
diff --git a/plus/subscribe/index.php b/plus/subscribe/index.php
index 56eb200..ad44d88 100644
--- a/plus/subscribe/index.php
+++ b/plus/subscribe/index.php
@@ -7,6 +7,10 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/email.php";
$age = (int)(explode(" ", timeAgo($_PROFILE["birth"] ?? "1990-01-01", false, true))[0]);
+if (isset($_GET["plan"]) && $_GET["plan"] === "ultra") {
+ header("Location: ?plan=plus");
+}
+
if ($age < 16) {
header("Location: /");
die();
@@ -217,7 +221,7 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php";
</div>
</div>
- <div class="promo-wrapper promo-ultra">
+ <!--<div class="promo-wrapper promo-ultra">
<div class="card promo-item">
<div class="card-body">
<h4 class="card-title" style="text-align: center; margin-top: 10px;">
@@ -234,9 +238,9 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php";
<li><?= l("lang_plus_list_3_pretty") ?></li>
<li><?= l("lang_plus_list_4_pretty") ?></li>
<li style="color: var(--bs-link-color);"><?= l("lang_plus_list_5_pretty") ?></li>
- <!--<li style="color: var(--bs-link-color);"><?= l("lang_plus_list_0_pretty") ?></li>
+ <li style="color: var(--bs-link-color);"><?= l("lang_plus_list_0_pretty") ?></li>
<li style="color: var(--bs-link-color);"><?= l("lang_plus_list_6_pretty") ?></li>
- <li style="color: var(--bs-link-color);"><?= l("lang_plus_list_7_pretty") ?></li>-->
+ <li style="color: var(--bs-link-color);"><?= l("lang_plus_list_7_pretty") ?></li>
</ul>
<?php if ($_PROFILE["plus"] && $_PROFILE["ultra"]): ?>
@@ -248,7 +252,7 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php";
<div style="margin-top: 10px;" class="small text-muted"><?= $price * 1.25 ?> <?= l("lang_plus_subscribe_coin") ?> · <?= str_replace("%1", coinsToEur($price * 1.25), l("lang_plus_subscribe_monthly")) ?></div>
</div>
</div>
- </div>
+ </div>-->
</div>
<?php endif; ?>
diff --git a/version b/version
index e0a61e6..e61ecd1 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-5.3.4
+5.3.5