5 Commits

12 changed files with 1931 additions and 721 deletions
+4
View File
@@ -25,6 +25,10 @@ temp/
# Fichiers de cache # Fichiers de cache
cache/ cache/
# Artefacts de documentation générés (docs/generate-readme-pdf.sh)
README.html
README.pdf
# Dossier pour les images d'annonces (tout ignorer sauf .gitkeep) # Dossier pour les images d'annonces (tout ignorer sauf .gitkeep)
uploads/* uploads/*
!uploads/.gitkeep !uploads/.gitkeep
+1682 -615
View File
File diff suppressed because it is too large Load Diff
+58
View File
@@ -0,0 +1,58 @@
<!-- Injected by Asciidoctor when generating the print/PDF HTML variant.
Usage: asciidoctor -a docinfodir=docs -a docinfo=shared README.adoc -o README-print.html
Fixes color-emoji rendering in headless Chromium and adapts the layout for print. -->
<style>
/* Font stacks with an explicit emoji fallback. "Noto Color Emoji" must be
installed system-wide (package: fonts-noto-color-emoji). */
* {
font-family: "Noto Sans", "Noto Color Emoji", sans-serif !important;
}
pre, code, kbd, samp {
font-family: "Noto Sans Mono", "Noto Color Emoji", monospace !important;
}
@media print {
/* The left-floating TOC is screen-only; bring it back into the flow */
#header, #toc {
position: static !important;
width: auto !important;
max-width: none !important;
float: none !important;
height: auto !important;
overflow: visible !important;
}
#content {
margin: 0 !important;
padding: 0 !important;
max-width: none !important;
}
body {
margin: 0;
font-size: 10pt;
line-height: 1.35;
}
/* Keep headings with their content, break tables between rows only */
h1, h2, h3, h4, h5, h6 {
page-break-after: avoid;
}
tr, td, th, .admonitionblock, .imageblock {
page-break-inside: avoid;
}
/* Long code listings may overflow the page width: allow wrapping */
pre {
white-space: pre-wrap;
word-wrap: break-word;
}
img {
max-width: 100%;
}
/* Links are not clickable in a PDF: keep them readable, not blue */
a {
color: inherit;
text-decoration: none;
}
a[href^="http"]::after {
content: "";
}
}
</style>
+69
View File
@@ -0,0 +1,69 @@
#!/usr/bin/env bash
# Generate the documentation export(s) from README.adoc.
#
# docs/generate-readme-pdf.sh # README.html + README.pdf
# docs/generate-readme-pdf.sh --html # README.html only
# docs/generate-readme-pdf.sh --pdf # README.pdf only
#
# Both outputs land in the project root and are Git-ignored.
#
# Requirements:
# - asciidoctor (e.g. gem install asciidoctor)
# - chromium (headless PDF rendering)
# - fonts-noto-color-emoji (color emoji in the PDF)
#
# Why Chromium instead of asciidoctor-pdf (used by the VSCodium extension)?
# Its Prawn engine cannot embed color-emoji fonts (CBDT/COLR), so emoji
# disappear. Chromium handles them fine as long as "Noto Color Emoji"
# is installed. The docs/docinfo.html stylesheet (emoji fallback + print
# rules) is injected only for this build, via Asciidoctor's docinfo
# mechanism, and adapts the layout for print (TOC in flow, table/page
# breaks, wrapped code listings).
set -euo pipefail
cd "$(dirname "$0")/.."
MODE="${1:---all}"
HTML_OUT="README.html"
PDF_OUT="README.pdf"
build_html() {
asciidoctor -b html5 -a docinfodir=docs -a docinfo=shared README.adoc -o "$1"
echo "HTML generated: $1"
}
build_pdf() {
# Resolve to an absolute path for the file:// URL
local html_path="$1"
[[ "$html_path" != /* ]] && html_path="$PWD/$html_path"
chromium --headless --disable-gpu --no-sandbox \
--no-pdf-header-footer \
--print-to-pdf="$PDF_OUT" \
"file://$html_path"
echo "PDF generated: $PDF_OUT"
}
case "$MODE" in
--html)
build_html "$HTML_OUT"
;;
--pdf)
TMP_HTML="$(mktemp --suffix=.html)"
trap 'rm -f "$TMP_HTML"' EXIT
build_html "$TMP_HTML" >/dev/null
build_pdf "$TMP_HTML"
;;
--all)
build_html "$HTML_OUT"
build_pdf "$HTML_OUT"
;;
-h|--help)
sed -n '2,10p' "$0"
exit 0
;;
*)
echo "Usage: $0 [--html|--pdf|--all]" >&2
exit 1
;;
esac
+12 -12
View File
@@ -1,6 +1,6 @@
<?php <?php
/** /**
* Page de dons - Template d'exemple * Page de dons - Template d'exemple pour ANNU KUTE CED
* Support via LiberaPay, Ko-fi et Stripe * Support via LiberaPay, Ko-fi et Stripe
* *
* Pour personnaliser cette page : * Pour personnaliser cette page :
@@ -58,7 +58,7 @@ $stripeMonthlyLinks = defined('STRIPE_MONTHLY_LINKS') ? STRIPE_MONTHLY_LINKS : [
<!-- PERSONNALISEZ: Titre et description de votre page de dons --> <!-- PERSONNALISEZ: Titre et description de votre page de dons -->
<title>Soutenir <?php echo ORGANIZATION_NAME; ?> - Dons</title> <title>Soutenir <?php echo ORGANIZATION_NAME; ?> - Dons</title>
<meta name="description" content="Soutenez <?php echo ORGANIZATION_NAME; ?> par un don. Chaque contribution compte pour maintenir notre plateforme indépendante."> <meta name="description" content="Soutenez <?php echo ORGANIZATION_NAME; ?> par un don. Chaque contribution compte pour maintenir le hub multimédia du podcast.">
<!-- Styles --> <!-- Styles -->
<link rel="stylesheet" href="css/styles.css?v=<?php echo filemtime('css/styles.css'); ?>"> <link rel="stylesheet" href="css/styles.css?v=<?php echo filemtime('css/styles.css'); ?>">
@@ -75,7 +75,7 @@ $stripeMonthlyLinks = defined('STRIPE_MONTHLY_LINKS') ? STRIPE_MONTHLY_LINKS : [
<!-- Open Graph Meta Tags --> <!-- Open Graph Meta Tags -->
<meta property="og:title" content="Soutenir <?php echo ORGANIZATION_NAME; ?>"> <meta property="og:title" content="Soutenir <?php echo ORGANIZATION_NAME; ?>">
<meta property="og:description" content="Soutenez <?php echo ORGANIZATION_NAME; ?> par un don et aidez-nous à maintenir notre plateforme indépendante."> <meta property="og:description" content="Soutenez <?php echo ORGANIZATION_NAME; ?> par un don et aidez-nous à maintenir le hub multimédia du podcast.">
<meta property="og:image" content="<?php echo 'https://' . $_SERVER['HTTP_HOST'] . '/img/logo.png'; ?>"> <meta property="og:image" content="<?php echo 'https://' . $_SERVER['HTTP_HOST'] . '/img/logo.png'; ?>">
<meta property="og:url" content="<?php echo 'https://' . $_SERVER['HTTP_HOST'] . '/dons.php'; ?>"> <meta property="og:url" content="<?php echo 'https://' . $_SERVER['HTTP_HOST'] . '/dons.php'; ?>">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
@@ -118,7 +118,7 @@ $stripeMonthlyLinks = defined('STRIPE_MONTHLY_LINKS') ? STRIPE_MONTHLY_LINKS : [
<section class="donation-hero"> <section class="donation-hero">
<div class="donation-hero-content"> <div class="donation-hero-content">
<h1><i class="fas fa-heart"></i> Soutenir <?php echo ORGANIZATION_NAME; ?></h1> <h1><i class="fas fa-heart"></i> Soutenir <?php echo ORGANIZATION_NAME; ?></h1>
<p class="hero-subtitle">Votre soutien est essentiel pour maintenir notre plateforme indépendante</p> <p class="hero-subtitle">Votre soutien est essentiel pour maintenir le hub multimédia du podcast</p>
</div> </div>
</section> </section>
@@ -128,14 +128,14 @@ $stripeMonthlyLinks = defined('STRIPE_MONTHLY_LINKS') ? STRIPE_MONTHLY_LINKS : [
<div class="donation-message"> <div class="donation-message">
<!-- PERSONNALISEZ: Votre message de don --> <!-- PERSONNALISEZ: Votre message de don -->
<h2>Pourquoi nous soutenir ?</h2> <h2>Pourquoi nous soutenir ?</h2>
<p><?php echo SITE_NAME; ?> est une plateforme multimédia indépendante. <p><?php echo SITE_NAME; ?> est le hub multimédia du podcast ANNU KUTE CED.
Vos dons nous permettent de :</p> Vos dons nous permettent de :</p>
<ul> <ul>
<!-- PERSONNALISEZ: Vos objectifs --> <!-- PERSONNALISEZ: Vos objectifs -->
<li><i class="fas fa-server"></i> Maintenir nos serveurs et notre infrastructure</li> <li><i class="fas fa-server"></i> Maintenir nos serveurs et notre infrastructure</li>
<li><i class="fas fa-shield-alt"></i> Préserver notre indépendance et notre souveraineté numérique</li> <li><i class="fas fa-microphone-alt"></i> Poursuivre la production et la diffusion du podcast</li>
<li><i class="fas fa-tools"></i> Développer de nouvelles fonctionnalités</li> <li><i class="fas fa-tools"></i> Développer de nouvelles fonctionnalités pour le hub</li>
<li><i class="fas fa-users"></i> Soutenir la création de contenu libre et accessible</li> <li><i class="fas fa-users"></i> Soutenir la création de contenu libre et accessible sur le Fédivers</li>
</ul> </ul>
<p><strong>Chaque don, même petit, fait la différence !</strong></p> <p><strong>Chaque don, même petit, fait la différence !</strong></p>
</div> </div>
@@ -256,14 +256,14 @@ $stripeMonthlyLinks = defined('STRIPE_MONTHLY_LINKS') ? STRIPE_MONTHLY_LINKS : [
<p>Maintenir nos serveurs, notre plateforme et nos outils numériques représente des coûts mensuels importants.</p> <p>Maintenir nos serveurs, notre plateforme et nos outils numériques représente des coûts mensuels importants.</p>
</div> </div>
<div class="info-card"> <div class="info-card">
<i class="fas fa-tools"></i> <i class="fas fa-microphone-alt"></i>
<h4>Maintenance & Développement</h4> <h4>Production du podcast</h4>
<p>Assurer la sécurité, les mises à jour et l'évolution de nos outils technologiques demande un investissement constant.</p> <p>Vos contributions nous aident à assurer la régularité et la qualité des épisodes d'ANNU KUTE CED.</p>
</div> </div>
<div class="info-card"> <div class="info-card">
<i class="fas fa-shield-alt"></i> <i class="fas fa-shield-alt"></i>
<h4>Indépendance Numérique</h4> <h4>Indépendance Numérique</h4>
<p>Vos dons nous permettent de rester indépendants des plateformes commerciales et de préserver notre souveraineté numérique.</p> <p>Vos dons nous permettent de rester indépendants des plateformes commerciales et de préserver notre souveraineté numérique sur le Fédivers.</p>
</div> </div>
</div> </div>
</section> </section>
+23 -24
View File
@@ -1,16 +1,16 @@
<?php <?php
/** /**
* Configuration par défaut de FEDIVERSE OKI * Configuration par défaut d'ANNU KUTE CED
* *
* Ce fichier contient les paramètres de configuration par défaut. * Ce fichier contient les paramètres de configuration par défaut.
* Il est utilisé pour initialiser les variables non définies dans config.local.php. * Il est utilisé pour initialiser les variables non définies dans config.local.php.
*/ */
if (!defined('APP_HOST_NAME')) define('APP_HOST_NAME', 'fediverse.o-k-i.net'); if (!defined('APP_HOST_NAME')) define('APP_HOST_NAME', 'annukuteced.buzz');
if (!defined('ORGANIZATION_SHORT_NAME')) define('ORGANIZATION_SHORT_NAME', 'OKI'); if (!defined('ORGANIZATION_SHORT_NAME')) define('ORGANIZATION_SHORT_NAME', 'ANNU KUTE CED');
if (!defined('ORGANIZATION_NAME')) define('ORGANIZATION_NAME', 'ORGANISATION KA INTERNATIONALE'); if (!defined('ORGANIZATION_NAME')) define('ORGANIZATION_NAME', 'ANNU KUTE CED');
// Configuration de base - ces valeurs seront utilisées si elles ne sont pas définies dans config.local.php // Configuration de base - ces valeurs seront utilisées si elles ne sont pas définies dans config.local.php
if (!defined('PEERTUBE_URL')) define('PEERTUBE_URL', 'https://gade.o-k-i.net'); if (!defined('PEERTUBE_URL')) define('PEERTUBE_URL', 'https://gade.o-k-i.net');
@@ -61,8 +61,8 @@ if (!defined('MASTODON_MAX_POST_SHOW')) define('MASTODON_MAX_POST_SHOW', '10');
// if (!defined('MASTODON_S3_MEDIA_URL')) define('MASTODON_S3_MEDIA_URL', 'https://s3.eu-central-003.backblazeb2.com'); // if (!defined('MASTODON_S3_MEDIA_URL')) define('MASTODON_S3_MEDIA_URL', 'https://s3.eu-central-003.backblazeb2.com');
// Informations du site // Informations du site
if (!defined('SITE_NAME')) define('SITE_NAME', 'FEDIVERSE OKI'); if (!defined('SITE_NAME')) define('SITE_NAME', 'ANNU KUTE CED');
if (!defined('SITE_DESCRIPTION')) define('SITE_DESCRIPTION', 'Plateforme multimedia indépendante'); if (!defined('SITE_DESCRIPTION')) define('SITE_DESCRIPTION', 'Hub multimédia du podcast ANNU KUTE CED');
if (!defined('SITE_LOGO')) define('SITE_LOGO', 'img/logo.png'); if (!defined('SITE_LOGO')) define('SITE_LOGO', 'img/logo.png');
if (!defined('SITE_FAVICON')) define('SITE_FAVICON', 'img/favicon.png'); if (!defined('SITE_FAVICON')) define('SITE_FAVICON', 'img/favicon.png');
@@ -76,13 +76,13 @@ if (!defined('X_URL')) define('X_URL', '#');
if (!defined('INSTAGRAM_URL')) define('INSTAGRAM_URL', '#'); if (!defined('INSTAGRAM_URL')) define('INSTAGRAM_URL', '#');
if (!defined('YOUTUBE_URL')) define('YOUTUBE_URL', '#'); if (!defined('YOUTUBE_URL')) define('YOUTUBE_URL', '#');
if (!defined('TIKTOK_URL')) define('TIKTOK_URL', '#'); if (!defined('TIKTOK_URL')) define('TIKTOK_URL', '#');
if (!defined('MASTODON_URL')) define('MASTODON_URL', 'https://bokante.o-k-i.net/@admin'); if (!defined('MASTODON_URL')) define('MASTODON_URL', 'https://bokante.o-k-i.net/@cedric');
// Contacts // Contacts
if (!defined('CONTACT_EMAIL')) define('CONTACT_EMAIL', 'kontak.o-k-i.net'); if (!defined('CONTACT_EMAIL')) define('CONTACT_EMAIL', 'kontak@o-k-i.net');
// Mentions légales // Mentions légales
if (!defined('LEGAL_COPYRIGHT')) define('LEGAL_COPYRIGHT', 'OKI'); if (!defined('LEGAL_COPYRIGHT')) define('LEGAL_COPYRIGHT', 'ANNU KUTE CED');
if (!defined('LEGAL_WEBMASTER_NAME')) define('LEGAL_WEBMASTER_NAME', 'Cédric Famibelle-Pronzola'); if (!defined('LEGAL_WEBMASTER_NAME')) define('LEGAL_WEBMASTER_NAME', 'Cédric Famibelle-Pronzola');
if (!defined('LEGAL_WEBMASTER_EMAIL')) define('LEGAL_WEBMASTER_EMAIL', 'contact@cedric-pronzola.dev'); if (!defined('LEGAL_WEBMASTER_EMAIL')) define('LEGAL_WEBMASTER_EMAIL', 'contact@cedric-pronzola.dev');
if (!defined('LEGAL_HOST_NAME')) define('LEGAL_HOST_NAME', 'o2Switch'); if (!defined('LEGAL_HOST_NAME')) define('LEGAL_HOST_NAME', 'o2Switch');
@@ -92,8 +92,8 @@ if (!defined('LEGAL_HOST_ADDRESS')) define('LEGAL_HOST_ADDRESS', '222 boulevard
if (!defined('LEGAL_CONTACT_EMAIL')) define('LEGAL_CONTACT_EMAIL', 'kontak@o-k-i.net'); if (!defined('LEGAL_CONTACT_EMAIL')) define('LEGAL_CONTACT_EMAIL', 'kontak@o-k-i.net');
if (!defined('LEGAL_LICENSE')) define('LEGAL_LICENSE', 'GNU Affero General Public License version 3 (AGPL-V3)'); if (!defined('LEGAL_LICENSE')) define('LEGAL_LICENSE', 'GNU Affero General Public License version 3 (AGPL-V3)');
if (!defined('LEGAL_LICENSE_URL')) define('LEGAL_LICENSE_URL', 'https://www.gnu.org/licenses/agpl-3.0.html'); if (!defined('LEGAL_LICENSE_URL')) define('LEGAL_LICENSE_URL', 'https://www.gnu.org/licenses/agpl-3.0.html');
if (!defined('LEGAL_SOURCE_CODE_URL')) define('LEGAL_SOURCE_CODE_URL', 'https://codeberg.org/OKI/fediverse.o-k-i.net'); if (!defined('LEGAL_SOURCE_CODE_URL')) define('LEGAL_SOURCE_CODE_URL', 'https://labola.o-k-i.net/cedric/annu-kute-ced');
if (!defined('LEGAL_SERVICE_DESCRIPTION')) define('LEGAL_SERVICE_DESCRIPTION', 'est une plateforme multimédia indépendante.'); if (!defined('LEGAL_SERVICE_DESCRIPTION')) define('LEGAL_SERVICE_DESCRIPTION', 'est le hub multimédia du podcast ANNU KUTE CED.');
// Fonctionnalités // Fonctionnalités
define('ENABLE_SEARCH', true); define('ENABLE_SEARCH', true);
@@ -109,13 +109,13 @@ if (!defined('CACHE_DURATION')) define('CACHE_DURATION', 3600); // En secondes (
// Type de contenu à afficher dans la section hero // Type de contenu à afficher dans la section hero
// Options: 'live' (direct PeerTube), 'playlist' (playlist audio/vidéo), 'video' (vidéo unique), 'none' (masquer) // Options: 'live' (direct PeerTube), 'playlist' (playlist audio/vidéo), 'video' (vidéo unique), 'none' (masquer)
if (!defined('HERO_TYPE')) define('HERO_TYPE', 'live'); if (!defined('HERO_TYPE')) define('HERO_TYPE', 'video');
// Configuration pour le direct (HERO_TYPE = 'live') // Configuration pour le direct (HERO_TYPE = 'live')
if (!defined('LIVE_ACCOUNT_NAME')) define('LIVE_ACCOUNT_NAME', 'admin'); if (!defined('LIVE_ACCOUNT_NAME')) define('LIVE_ACCOUNT_NAME', 'annu_kute_ced');
// Configuration pour une vidéo unique (HERO_TYPE = 'video') // Configuration pour une vidéo unique (HERO_TYPE = 'video')
if (!defined('HERO_VIDEO_ID')) define('HERO_VIDEO_ID', '1aJ2u9euwF9fWKQhFxwFio'); if (!defined('HERO_VIDEO_ID')) define('HERO_VIDEO_ID', 'fDE6tvQMXRuBpE4eDDS7kj');
if (!defined('HERO_VIDEO_TITLE')) define('HERO_VIDEO_TITLE', 'Vidéo de présentation'); if (!defined('HERO_VIDEO_TITLE')) define('HERO_VIDEO_TITLE', 'Vidéo de présentation');
// Configuration pour les playlists (HERO_TYPE = 'playlist') // Configuration pour les playlists (HERO_TYPE = 'playlist')
@@ -148,7 +148,7 @@ if (!defined('CASTOPOD_URL')) define('CASTOPOD_URL', 'https://kute.o-k-i.net');
// Format: ['slug1', 'slug2', 'slug3'] // Format: ['slug1', 'slug2', 'slug3']
// Les épisodes de tous les podcasts seront mélangés et triés par date // Les épisodes de tous les podcasts seront mélangés et triés par date
if (!defined('CASTOPOD_PODCAST_SLUGS')) { if (!defined('CASTOPOD_PODCAST_SLUGS')) {
define('CASTOPOD_PODCAST_SLUGS', ['joukawouve']); define('CASTOPOD_PODCAST_SLUGS', ['annu_kute_cedric']);
} }
// Nombre d'épisodes à afficher (total, tous podcasts confondus) // Nombre d'épisodes à afficher (total, tous podcasts confondus)
@@ -173,21 +173,21 @@ if (!defined('TAG_SHORT')) define('TAG_SHORT', 'short');
// Hashtags importants à afficher dans la sidebar, footer et menu mobile // Hashtags importants à afficher dans la sidebar, footer et menu mobile
if (!defined('IMPORTANT_TAGS')) { if (!defined('IMPORTANT_TAGS')) {
define('IMPORTANT_TAGS', [ define('IMPORTANT_TAGS', [
'Chlordécone', 'ANNUKUTECED',
'RCI', 'podcast',
'Mé67', 'fediverse',
'Traduction', 'audio',
'fediverse' 'vidéo'
]); ]);
} }
// Hashtags populaires à afficher sur la page d'accueil // Hashtags populaires à afficher sur la page d'accueil
if (!defined('POPULAR_TAGS')) { if (!defined('POPULAR_TAGS')) {
define('POPULAR_TAGS', [ define('POPULAR_TAGS', [
'podcast',
'annukuteced',
'fediverse', 'fediverse',
'guadeloupe', 'audio'
'Gaza',
'Arte'
]); ]);
} }
@@ -284,4 +284,3 @@ if (!defined('NEXT_LIVE_DATE')) define('NEXT_LIVE_DATE', '');
// Chemin vers l'image d'annonce du prochain live (relatif à la racine du site) // Chemin vers l'image d'annonce du prochain live (relatif à la racine du site)
// Exemple: 'uploads/next-live.jpg' // Exemple: 'uploads/next-live.jpg'
if (!defined('NEXT_LIVE_IMAGE')) define('NEXT_LIVE_IMAGE', 'uploads/next-live.jpg'); if (!defined('NEXT_LIVE_IMAGE')) define('NEXT_LIVE_IMAGE', 'uploads/next-live.jpg');
?>
+50 -42
View File
@@ -1,6 +1,6 @@
<?php <?php
/** /**
* Configuration locale pour l'instance de PeerTube * Configuration locale pour l'instance ANNU KUTE CED
* *
* Ce fichier est un exemple de configuration locale. * Ce fichier est un exemple de configuration locale.
* Pour l'utiliser: * Pour l'utiliser:
@@ -10,18 +10,20 @@
* Note: config.local.php ne doit pas être versionné dans git * Note: config.local.php ne doit pas être versionné dans git
*/ */
define('APP_HOST_NAME', 'fediverse.o-k-i.net'); define('APP_HOST_NAME', 'annukuteced.buzz');
// define('ORGANIZATION_SHORT_NAME', 'OKI'); // define('ORGANIZATION_SHORT_NAME', 'ANNU KUTE CED');
// define('ORGANIZATION_NAME', 'ORGANISATION KA INTERNATIONALE'); // define('ORGANIZATION_NAME', 'ANNU KUTE CED');
// ========================================= // =========================================
// Configuration de l'API PeerTube // Configuration de l'API PeerTube
// ========================================= // =========================================
// URL de l'API PeerTube (obligatoire) // URL de l'API PeerTube (obligatoire)
// define('PEERTUBE_URL', 'https://votre-instance.fr'); // Par défaut, le hub utilise la chaîne GADE du podcast :
// define('PEERTUBE_DISPLAY_NAME', 'votre-instance.fr'); // https://gade.o-k-i.net/c/annu_kute_ced/videos
// define('PEERTUBE_URL', 'https://gade.o-k-i.net');
// define('PEERTUBE_DISPLAY_NAME', 'gade.o-k-i.net');
// Clé d'API PeerTube (optionnelle) // Clé d'API PeerTube (optionnelle)
// define('API_KEY', 'votre_cle_api'); // define('API_KEY', 'votre_cle_api');
@@ -38,56 +40,58 @@ define('APP_HOST_NAME', 'fediverse.o-k-i.net');
// define('HERO_TYPE', 'live'); // define('HERO_TYPE', 'live');
// Configuration pour le direct (HERO_TYPE = 'live') // Configuration pour le direct (HERO_TYPE = 'live')
// define('LIVE_ACCOUNT_NAME', 'admin'); // Le compte PeerTube du podcast est 'annu_kute_ced'
// define('LIVE_ACCOUNT_NAME', 'annu_kute_ced');
// Configuration pour une vidéo unique (HERO_TYPE = 'video') // Configuration pour une vidéo unique (HERO_TYPE = 'video')
// ID de la vidéo (extrait de l'URL: https://gade.o-k-i.net/w/VIDEO_ID) // ID de la vidéo (extrait de l'URL: https://gade.o-k-i.net/w/VIDEO_ID)
// define('HERO_VIDEO_ID', '1aJ2u9euwF9fWKQhFxwFio'); // define('HERO_VIDEO_ID', 'fDE6tvQMXRuBpE4eDDS7kj');
// Titre de la vidéo (optionnel, pour l'accessibilité) // Titre de la vidéo (optionnel, pour l'accessibilité)
// define('HERO_VIDEO_TITLE', 'Vidéo de présentation'); // define('HERO_VIDEO_TITLE', 'Vidéo de présentation');
// Configuration pour les playlists (HERO_TYPE = 'playlist') // Configuration pour les playlists (HERO_TYPE = 'playlist')
// Type de plateforme: 'peertube', 'funkwhale', 'castopod' // Type de plateforme: 'peertube', 'funkwhale', 'castopod'
// define('PLAYLIST_PLATFORM', 'peertube'); // define('PLAYLIST_PLATFORM', 'castopod');
// URL de base de la plateforme de playlist // URL de base de la plateforme de playlist
// define('PLAYLIST_INSTANCE_URL', 'https://votre-instance.fr'); // define('PLAYLIST_INSTANCE_URL', 'https://kute.o-k-i.net');
// ID de la playlist à afficher // ID de la playlist à afficher
// define('PLAYLIST_ID', 'votre-playlist-uuid'); // Pour Castopod, utilisez le slug du podcast précédé de @ :
// define('PLAYLIST_ID', '@annu_kute_cedric');
// Titre de la playlist (optionnel, sinon récupéré via API) // Titre de la playlist (optionnel, sinon récupéré via API)
// define('PLAYLIST_TITLE', 'Ma Playlist'); // define('PLAYLIST_TITLE', 'ANNU KUTE CED');
// Description de la playlist (optionnel) // Description de la playlist (optionnel)
// define('PLAYLIST_DESCRIPTION', 'Description de la playlist'); // define('PLAYLIST_DESCRIPTION', 'Tous les épisodes du podcast ANNU KUTE CED');
// ========================================= // =========================================
// Filtres et tags // Filtres et tags
// ========================================= // =========================================
// Tag pour les vidéos sur l'indépendance // Tag pour les vidéos sur l'indépendance
// define('TAG_INDEPENDENCE', 'indépendance'); // define('TAG_INDEPENDANCE', 'indépendance');
// Tag pour les shorts // Tag pour les shorts
// define('TAG_SHORT', 'short'); // define('TAG_SHORT', 'short');
// Hashtags importants à afficher dans la sidebar, footer et menu mobile // Hashtags importants à afficher dans la sidebar, footer et menu mobile
define('IMPORTANT_TAGS', [ define('IMPORTANT_TAGS', [
'Chlordécone', 'ANNUKUTECED',
'RCI', 'podcast',
'Mé67', 'fediverse',
'Traduction', 'audio',
'fediverse' 'vidéo'
]); ]);
// Hashtags populaires à afficher sur la page d'accueil // Hashtags populaires à afficher sur la page d'accueil
define('POPULAR_TAGS', [ define('POPULAR_TAGS', [
'podcast',
'annukuteced',
'fediverse', 'fediverse',
'guadeloupe', 'audio'
'Gaza',
'Arte'
]); ]);
// Durée maximale des shorts en secondes // Durée maximale des shorts en secondes
@@ -163,10 +167,10 @@ define('PRIORITY_CATEGORIES', [
// ========================================= // =========================================
// Nom du site // Nom du site
// define('SITE_NAME', 'FEDIVERSE OKI'); // define('SITE_NAME', 'ANNU KUTE CED');
// Description du site // Description du site
// define('SITE_DESCRIPTION', 'Plateforme multimedia indépendante'); // define('SITE_DESCRIPTION', 'Hub multimédia du podcast ANNU KUTE CED');
// Logo du site // Logo du site
// define('SITE_LOGO', 'img/logo.png'); // define('SITE_LOGO', 'img/logo.png');
@@ -198,14 +202,15 @@ define('PRIORITY_CATEGORIES', [
// define('TIKTOK_URL', 'https://tiktok.com/@votrecompte'); // define('TIKTOK_URL', 'https://tiktok.com/@votrecompte');
// URL du compte Mastodon // URL du compte Mastodon
// define('MASTODON_URL', 'https://bokante.o-k-i.net/@admin'); // Compte BOKANTE du podcast : https://bokante.o-k-i.net/@cedric
// define('MASTODON_URL', 'https://bokante.o-k-i.net/@cedric');
// ========================================= // =========================================
// Contact // Contact
// ========================================= // =========================================
// Email de contact // Email de contact
// define('CONTACT_EMAIL', 'contact@votredomaine.com'); // define('CONTACT_EMAIL', 'kontak@o-k-i.net');
// ========================================= // =========================================
// Fonctionnalités // Fonctionnalités
@@ -235,7 +240,8 @@ define('PRIORITY_CATEGORIES', [
// ========================================= // =========================================
// URL de l'instance Mastodon // URL de l'instance Mastodon
// define('MASTODON_INSTANCE_URL', 'https://mastodon.social'); // Instance BOKANTE : https://bokante.o-k-i.net
// define('MASTODON_INSTANCE_URL', 'https://bokante.o-k-i.net');
// Format de date pour l'affichage des posts // Format de date pour l'affichage des posts
// define('MASTODON_DATE_FORMAT', 'fr-FR'); // define('MASTODON_DATE_FORMAT', 'fr-FR');
@@ -261,7 +267,7 @@ define('PRIORITY_CATEGORIES', [
// Mentions légales // Mentions légales
// ========================================= // =========================================
// define('LEGAL_COPYRIGHT', 'OKI'); // define('LEGAL_COPYRIGHT', 'ANNU KUTE CED');
// define('LEGAL_WEBMASTER_NAME', 'Cédric Famibelle-Pronzola'); // define('LEGAL_WEBMASTER_NAME', 'Cédric Famibelle-Pronzola');
// define('LEGAL_WEBMASTER_EMAIL', 'contact@cedric-pronzola.dev'); // define('LEGAL_WEBMASTER_EMAIL', 'contact@cedric-pronzola.dev');
// define('LEGAL_HOST_NAME', 'o2Switch'); // define('LEGAL_HOST_NAME', 'o2Switch');
@@ -271,8 +277,9 @@ define('PRIORITY_CATEGORIES', [
// define('LEGAL_CONTACT_EMAIL', 'kontak@o-k-i.net'); // define('LEGAL_CONTACT_EMAIL', 'kontak@o-k-i.net');
// define('LEGAL_LICENSE', 'GNU Affero General Public License version 3 (AGPL-V3)'); // define('LEGAL_LICENSE', 'GNU Affero General Public License version 3 (AGPL-V3)');
// define('LEGAL_LICENSE_URL', 'https://www.gnu.org/licenses/agpl-3.0.html'); // define('LEGAL_LICENSE_URL', 'https://www.gnu.org/licenses/agpl-3.0.html');
// define('LEGAL_SOURCE_CODE_URL', 'https://codeberg.org/OKI/fediverse.o-k-i.net'); // Source du fork sur LaBola
// define('LEGAL_SERVICE_DESCRIPTION', ' est une plateforme multimédia indépendante.'); // define('LEGAL_SOURCE_CODE_URL', 'https://labola.o-k-i.net/cedric/annu-kute-ced');
// define('LEGAL_SERVICE_DESCRIPTION', ' est le hub multimédia du podcast ANNU KUTE CED.');
// ========================================= // =========================================
// Système de compte à rebours / maintenance // Système de compte à rebours / maintenance
@@ -314,14 +321,15 @@ define('WORDPRESS_ENABLED', false);
// define('CASTOPOD_ENABLED', true); // define('CASTOPOD_ENABLED', true);
// URL de l'instance Castopod // URL de l'instance Castopod
// Instance KUTE : https://kute.o-k-i.net
// define('CASTOPOD_URL', 'https://kute.o-k-i.net'); // define('CASTOPOD_URL', 'https://kute.o-k-i.net');
// Liste des slugs de podcasts à afficher (tableau) // Liste des slugs de podcasts à afficher (tableau)
// Le podcast ANNU KUTE CED est accessible via : https://kute.o-k-i.net/@annu_kute_cedric
// Le feed RSS est : https://kute.o-k-i.net/@annu_kute_cedric/feed
// Les épisodes de tous les podcasts seront mélangés et triés par date // Les épisodes de tous les podcasts seront mélangés et triés par date
// define('CASTOPOD_PODCAST_SLUGS', [ // define('CASTOPOD_PODCAST_SLUGS', [
// 'joukawouve', // 'annu_kute_cedric'
// 'cspcc',
// 'radyobokaz'
// ]); // ]);
// Nombre d'épisodes à afficher (total, tous podcasts confondus) // Nombre d'épisodes à afficher (total, tous podcasts confondus)
@@ -386,26 +394,26 @@ define('WORDPRESS_ENABLED', false);
// define('DONATION_CURRENCY', 'EUR'); // define('DONATION_CURRENCY', 'EUR');
// ========================================= // =========================================
// Texte de présentation du mouvement // Texte de présentation du podcast
// ========================================= // =========================================
// Titre de la section de présentation (par défaut: "À propos") // Titre de la section de présentation (par défaut: "À propos")
// define('MOVEMENT_TITLE', 'Notre mouvement'); // define('MOVEMENT_TITLE', 'Le podcast ANNU KUTE CED');
// Premier paragraphe de description (pour désactiver le bloc de présentation, commentez cette ligne) // Premier paragraphe de description (pour désactiver le bloc de présentation, commentez cette ligne)
// define('MOVEMENT_DESCRIPTION', 'Nous sommes une association à but non lucratif dédiée à la promotion de nos langues et au traitement de l\'actualité.'); // define('MOVEMENT_DESCRIPTION', 'ANNU KUTE CED est un podcast diffusé sur le Fédivers.');
// Deuxième paragraphe de description (optionnel) // Deuxième paragraphe de description (optionnel)
// define('MOVEMENT_DESCRIPTION_2', 'Parallèlement, nous proposons des alternatives aux géants du numérique comme les GAFAM, en privilégiant l\'utilisation de logiciels libres.'); // define('MOVEMENT_DESCRIPTION_2', 'Retrouvez nos épisodes sur Castopod, nos vidéos sur PeerTube et nos actualités sur Mastodon.');
// Image du mouvement à afficher dans la section de présentation // Image du podcast à afficher dans la section de présentation
// define('MOVEMENT_IMAGE', 'img/movement_presentation.png'); // define('MOVEMENT_IMAGE', 'img/movement_presentation.png');
// Texte alternatif pour l'image du mouvement (accessibilité) // Texte alternatif pour l'image (accessibilité)
// define('MOVEMENT_IMAGE_ALT', 'Texte alternatif pour l\'image du mouvement'); // define('MOVEMENT_IMAGE_ALT', 'Logo du podcast ANNU KUTE CED');
// Légende de l'image (peut contenir du HTML simple comme <br>) // Légende de l'image (peut contenir du HTML simple comme <br>)
// define('MOVEMENT_CAPTION', 'Légende de l\'image'); // define('MOVEMENT_CAPTION', 'ANNU KUTE CED');
// ========================================= // =========================================
@@ -419,7 +427,7 @@ define('WORDPRESS_ENABLED', false);
// define('NEXT_LIVE_TITLE', 'Prochain live'); // define('NEXT_LIVE_TITLE', 'Prochain live');
// Description de l'annonce du prochain live // Description de l'annonce du prochain live
// define('NEXT_LIVE_DESCRIPTION', 'Rejoignez-nous pour notre prochain live !'); // define('NEXT_LIVE_DESCRIPTION', 'Rejoignez-nous pour le prochain enregistrement d\'ANNU KUTE CED !');
// Date du prochain live (format: Y-m-d H:i:s) // Date du prochain live (format: Y-m-d H:i:s)
// define('NEXT_LIVE_DATE', '2025-10-11 10:00:00'); // define('NEXT_LIVE_DATE', '2025-10-11 10:00:00');
+1 -1
View File
@@ -664,7 +664,7 @@ function getCastopodEpisodes($castopodUrl = null, $podcastSlugs = null, $count =
} }
$castopodUrl = $castopodUrl ?? CASTOPOD_URL; $castopodUrl = $castopodUrl ?? CASTOPOD_URL;
$podcastSlugs = $podcastSlugs ?? (defined('CASTOPOD_PODCAST_SLUGS') ? CASTOPOD_PODCAST_SLUGS : ['joukawouve']); $podcastSlugs = $podcastSlugs ?? (defined('CASTOPOD_PODCAST_SLUGS') ? CASTOPOD_PODCAST_SLUGS : ['annu_kute_cedric']);
$count = $count ?? CASTOPOD_EPISODES_COUNT; $count = $count ?? CASTOPOD_EPISODES_COUNT;
// Convertir en tableau si c'est une chaîne unique (rétrocompatibilité) // Convertir en tableau si c'est une chaîne unique (rétrocompatibilité)
+13 -8
View File
@@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mentions Légales - FEDIVERSE OKI</title> <title>Mentions Légales - ANNU KUTE CED</title>
<link rel="stylesheet" href="css/styles.css?v=<?php echo filemtime('css/styles.css'); ?>"> <link rel="stylesheet" href="css/styles.css?v=<?php echo filemtime('css/styles.css'); ?>">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.1/css/all.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.1/css/all.min.css">
@@ -16,18 +16,18 @@
<meta name="theme-color" content="#ffffff"> <meta name="theme-color" content="#ffffff">
<!-- Open Graph Meta Tags --> <!-- Open Graph Meta Tags -->
<meta property="og:title" content="Mentions Légales - FEDIVERSE OKI"> <meta property="og:title" content="Mentions Légales - ANNU KUTE CED">
<meta property="og:description" content="Consultez les mentions légales de FEDIVERSE OKI. Informations légales, conditions d'utilisation et politique de confidentialité de notre plateforme multimédia."> <meta property="og:description" content="Consultez les mentions légales d'ANNU KUTE CED. Informations légales, conditions d'utilisation et politique de confidentialité du hub multimédia du podcast.">
<meta property="og:image" content="<?php echo 'https://' . $_SERVER['HTTP_HOST'] . '/img/logo.png'; ?>"> <meta property="og:image" content="<?php echo 'https://' . $_SERVER['HTTP_HOST'] . '/img/logo.png'; ?>">
<meta property="og:url" content="<?php echo 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>"> <meta property="og:url" content="<?php echo 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:site_name" content="FEDIVERSE OKI"> <meta property="og:site_name" content="ANNU KUTE CED">
<meta property="og:locale" content="fr_FR"> <meta property="og:locale" content="fr_FR">
<!-- Twitter Card Meta Tags --> <!-- Twitter Card Meta Tags -->
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Mentions Légales - FEDIVERSE OKI"> <meta name="twitter:title" content="Mentions Légales - ANNU KUTE CED">
<meta name="twitter:description" content="Consultez les mentions légales de FEDIVERSE OKI. Informations légales, conditions d'utilisation et politique de confidentialité de notre plateforme multimédia."> <meta name="twitter:description" content="Consultez les mentions légales d'ANNU KUTE CED. Informations légales, conditions d'utilisation et politique de confidentialité du hub multimédia du podcast.">
<meta name="twitter:image" content="<?php echo 'https://' . $_SERVER['HTTP_HOST'] . '/img/logo.png'; ?>"> <meta name="twitter:image" content="<?php echo 'https://' . $_SERVER['HTTP_HOST'] . '/img/logo.png'; ?>">
<!-- Script pour éviter le flash en mode sombre --> <!-- Script pour éviter le flash en mode sombre -->
@@ -58,7 +58,7 @@
<!-- Section Mentions Légales --> <!-- Section Mentions Légales -->
<div class="section-header"> <div class="section-header">
<div class="section-logo"> <div class="section-logo">
<img src="img/logo.png" alt="FEDIVERSE OKI"> <img src="img/logo.png" alt="ANNU KUTE CED">
</div> </div>
<h2 class="section-title">Mentions Légales</h2> <h2 class="section-title">Mentions Légales</h2>
</div> </div>
@@ -73,6 +73,7 @@
<h3 class="info-header">2. Description du service</h3> <h3 class="info-header">2. Description du service</h3>
<p class="info-text"> <p class="info-text">
<strong><?php echo SITE_NAME; ?></strong> <?php echo LEGAL_SERVICE_DESCRIPTION; ?> <strong><?php echo SITE_NAME; ?></strong> <?php echo LEGAL_SERVICE_DESCRIPTION; ?>
Le site agrège les contenus du podcast disponibles sur PeerTube, Castopod et Mastodon.
</p> </p>
<h3 class="info-header">3. Responsabilité des utilisateurs</h3> <h3 class="info-header">3. Responsabilité des utilisateurs</h3>
@@ -184,7 +185,11 @@
</p> </p>
<p class="info-text"> <p class="info-text">
Le code source de ce site est disponible sur Codeberg : <a href="<?php echo LEGAL_SOURCE_CODE_URL; ?>" target="_blank" rel="noopener noreferrer"><?php echo LEGAL_SOURCE_CODE_URL; ?></a> Le code source de ce site est disponible sur LaBola : <a href="<?php echo LEGAL_SOURCE_CODE_URL; ?>" target="_blank" rel="noopener noreferrer"><?php echo LEGAL_SOURCE_CODE_URL; ?></a>
</p>
<p class="info-text">
<strong>ANNU KUTE CED</strong> est un fork de <strong>FEDIVERSE OKI</strong>, développé par l'ORGANISATION KA INTERNATIONALE (OKI) sous licence AGPL-V3. Le fork est maintenu par le propriétaire du dépôt <em>cedric</em> (Cédric Famibelle-Pronzola), en accord avec la licence d'origine.
</p> </p>
<h3 class="info-header">9. Icônes et marques tierces</h3> <h3 class="info-header">9. Icônes et marques tierces</h3>
+1 -1
View File
@@ -22,4 +22,4 @@ Disallow: /conf/
Disallow: /cache/ Disallow: /cache/
# Sitemap # Sitemap
Sitemap: https://VOTRE-DOMAINE/sitemap.xml Sitemap: https://annukuteced.buzz/sitemap.xml
+4 -4
View File
@@ -1,7 +1,7 @@
{ {
"name": "FEDIVERSE OKI - ORGANISATION KA INTERNATIONALE", "name": "ANNU KUTE CED - Hub multimédia du podcast",
"short_name": "FEDIVERSE OKI", "short_name": "ANNU KUTE CED",
"description": "Plateforme multimédia indépendante", "description": "Hub multimédia du podcast ANNU KUTE CED",
"start_url": "/", "start_url": "/",
"display": "standalone", "display": "standalone",
"background_color": "#ffffff", "background_color": "#ffffff",
@@ -40,4 +40,4 @@
"lang": "fr", "lang": "fr",
"scope": "/", "scope": "/",
"prefer_related_applications": false "prefer_related_applications": false
} }
+14 -14
View File
@@ -1,70 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url> <url>
<loc>https://VOTRE-DOMAINE/</loc> <loc>https://annukuteced.buzz/</loc>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
<priority>1.0</priority> <priority>1.0</priority>
</url> </url>
<url> <url>
<loc>https://VOTRE-DOMAINE/index</loc> <loc>https://annukuteced.buzz/index</loc>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
<priority>1.0</priority> <priority>1.0</priority>
</url> </url>
<url> <url>
<loc>https://VOTRE-DOMAINE/index.php</loc> <loc>https://annukuteced.buzz/index.php</loc>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
<priority>1.0</priority> <priority>1.0</priority>
</url> </url>
<url> <url>
<loc>https://VOTRE-DOMAINE/direct</loc> <loc>https://annukuteced.buzz/direct</loc>
<changefreq>hourly</changefreq> <changefreq>hourly</changefreq>
<priority>0.9</priority> <priority>0.9</priority>
</url> </url>
<url> <url>
<loc>https://VOTRE-DOMAINE/direct.php</loc> <loc>https://annukuteced.buzz/direct.php</loc>
<changefreq>hourly</changefreq> <changefreq>hourly</changefreq>
<priority>0.9</priority> <priority>0.9</priority>
</url> </url>
<url> <url>
<loc>https://VOTRE-DOMAINE/mentions-legales</loc> <loc>https://annukuteced.buzz/mentions-legales</loc>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.3</priority> <priority>0.3</priority>
</url> </url>
<url> <url>
<loc>https://VOTRE-DOMAINE/mentions-legales.php</loc> <loc>https://annukuteced.buzz/mentions-legales.php</loc>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.3</priority> <priority>0.3</priority>
</url> </url>
<url> <url>
<loc>https://VOTRE-DOMAINE/recherche</loc> <loc>https://annukuteced.buzz/recherche</loc>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://VOTRE-DOMAINE/recherche.php</loc> <loc>https://annukuteced.buzz/recherche.php</loc>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://VOTRE-DOMAINE/categories</loc> <loc>https://annukuteced.buzz/categories</loc>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://VOTRE-DOMAINE/categories.php</loc> <loc>https://annukuteced.buzz/categories.php</loc>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://VOTRE-DOMAINE/video</loc> <loc>https://annukuteced.buzz/video</loc>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>0.7</priority> <priority>0.7</priority>
</url> </url>
<url> <url>
<loc>https://VOTRE-DOMAINE/video.php</loc> <loc>https://annukuteced.buzz/video.php</loc>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>0.7</priority> <priority>0.7</priority>
</url> </url>
<!-- Les pages dynamiques comme categories.php?id=X et video.php?id=X ne sont pas incluses <!-- Les pages dynamiques comme categories.php?id=X et video.php?id=X ne sont pas incluses
car elles dépendent des contenus disponibles sur l'instance PeerTube --> car elles dépendent des contenus disponibles sur l'instance PeerTube -->
</urlset> </urlset>