chore: Update npm dependencies and package-lock.json
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
108
views/cgu.ejs
Normal file
108
views/cgu.ejs
Normal file
@@ -0,0 +1,108 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
|
||||
<link rel="icon" href="https://cdn.dinawo.fr/public/assets/homelab_logo.png"/>
|
||||
<title>Conditions Générales d'Utilisation - Raphael Bot</title>
|
||||
<style>
|
||||
.breadcrumb {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.breadcrumb a {
|
||||
color: #4f46e5;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.breadcrumb a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="bg-gray-100 text-gray-800 font-sans p-8">
|
||||
|
||||
<div class="max-w-3xl mx-auto">
|
||||
|
||||
<!-- Conditions Générales d'Utilisation pour le Bot Raphael -->
|
||||
<div class="mb-8">
|
||||
<h2 class="text-2xl font-bold mb-4">Conditions Générales d'Utilisation - Raphael Bot</h2>
|
||||
<div class="breadcrumb">
|
||||
<a href="/legal" class="text-blue-500">Accueil</a> >
|
||||
<span>Conditions Générales d'Utilisation</span>
|
||||
</div>
|
||||
<p class="mb-4">
|
||||
Les présentes Conditions Générales d'Utilisation (CGU) encadrent l’utilisation de Raphael Bot sur la plateforme Discord et d'autres plateformes où il est déployé.
|
||||
</p>
|
||||
<ol class="list-decimal list-inside">
|
||||
|
||||
<li class="mb-6">
|
||||
<strong>Acceptation des conditions</strong>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li class="mb-2">
|
||||
<strong>1.1 Acceptation.</strong> En utilisant Raphael Bot, vous acceptez pleinement et sans réserve les présentes CGU. Si vous n'acceptez pas ces conditions, vous ne pouvez pas utiliser Raphael Bot.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>1.2 Modification.</strong> Myaxrin Labs se réserve le droit de modifier les CGU à tout moment. Les modifications seront effectives dès leur publication. Il est de votre responsabilité de consulter régulièrement les CGU pour être informé des changements.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="mb-6">
|
||||
<strong>Utilisation du service</strong>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li class="mb-2">
|
||||
<strong>2.1 Accès.</strong> Vous êtes responsable de l'accès à Raphael Bot via votre compte Discord et des activités qui en découlent.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>2.2 Restrictions.</strong> Vous vous engagez à utiliser Raphael Bot conformément aux lois applicables et aux présentes CGU, sans nuire aux droits des autres utilisateurs ni interférer avec le bon fonctionnement du service.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="mb-6">
|
||||
<strong>Propriété intellectuelle</strong>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li class="mb-2">
|
||||
<strong>3.1 Droits.</strong> Raphael Bot et tout contenu associé sont protégés par des droits de propriété intellectuelle. Vous acceptez de respecter ces droits et de ne pas reproduire, modifier, ou distribuer le contenu sans autorisation.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="mb-6">
|
||||
<strong>Responsabilité</strong>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li class="mb-2">
|
||||
<strong>4.1 Limitation.</strong> En aucun cas, Myaxrin Labs ne peut être tenu responsable des dommages directs, indirects, spéciaux, consécutifs ou punitifs résultant de l'utilisation ou de l'incapacité d'utiliser Raphael Bot.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="mb-6">
|
||||
<strong>Dispositions diverses</strong>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li class="mb-2">
|
||||
<strong>5.1 Intégralité de l'accord.</strong> Les présentes CGU constituent l'intégralité de l'accord entre vous et Myaxrin Labs concernant l'utilisation de Raphael Bot.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>5.2 Droit applicable.</strong> Les CGU sont régies par les lois françaises. En cas de litige, les tribunaux français seront seuls compétents.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
<p class="mb-4">
|
||||
<strong>Dernière mise à jour :</strong> [04/07/2024]
|
||||
</p>
|
||||
<p class="mt-4">
|
||||
<strong>EN UTILISANT RAPHAEL BOT, VOUS RECONNAISSEZ AVOIR LU ET COMPRIS LES TERMES ET CONDITIONS DE NOS CONDITIONS GÉNÉRALES D'UTILISATION. SI VOUS N'ACCEPTEZ PAS CES TERMES, N'UTILISEZ PAS RAPHAEL BOT.</strong>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
455
views/commands.ejs
Normal file
455
views/commands.ejs
Normal file
@@ -0,0 +1,455 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Julianum - Présentation de Raphael</title>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script>
|
||||
tailwind.config = {
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
primary: '#7289DA',
|
||||
secondary: '#99AAB5',
|
||||
dark: '#23272A',
|
||||
blurple: '#5865F2',
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap');
|
||||
|
||||
body {
|
||||
font-family: 'Poppins', sans-serif;
|
||||
background: rgb(2,0,36);
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.gradient-text {
|
||||
background-clip: text;
|
||||
-webkit-background-clip: text;
|
||||
color: transparent;
|
||||
background-image: radial-gradient(circle, rgba(238,174,202,1) 0%, rgba(148,187,233,1) 100%);
|
||||
}
|
||||
|
||||
.glass {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
backdrop-filter: blur(10px);
|
||||
border-radius: 10px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
.discord-button {
|
||||
background-color: #5865F2;
|
||||
color: white;
|
||||
padding: 10px 20px;
|
||||
border-radius: 28px;
|
||||
font-weight: bold;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.discord-button:hover {
|
||||
background-color: #4752C4;
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 5px 15px rgba(88, 101, 242, 0.4);
|
||||
}
|
||||
|
||||
.command-card {
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.command-card:hover {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0 5px 15px rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.modal {
|
||||
display: none;
|
||||
position: fixed;
|
||||
z-index: 1000;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
background-color: rgba(0,0,0,0.4);
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
background-color: #23272A;
|
||||
margin: 15% auto;
|
||||
padding: 20px;
|
||||
border: 1px solid #888;
|
||||
width: 80%;
|
||||
max-width: 600px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.close {
|
||||
color: #aaa;
|
||||
float: right;
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.close:hover,
|
||||
.close:focus {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.copy-animation {
|
||||
animation: pulse 0.5s;
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0% { transform: scale(1); }
|
||||
50% { transform: scale(1.1); }
|
||||
100% { transform: scale(1); }
|
||||
}
|
||||
|
||||
.success-message {
|
||||
position: fixed;
|
||||
bottom: 20px;
|
||||
right: 20px;
|
||||
background-color: #4CAF50;
|
||||
color: white;
|
||||
padding: 16px;
|
||||
border-radius: 4px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.success-message.show {
|
||||
display: block;
|
||||
animation: fadeIn 0.5s, fadeOut 0.5s 2.5s;
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from {opacity: 0;}
|
||||
to {opacity: 1;}
|
||||
}
|
||||
|
||||
@keyframes fadeOut {
|
||||
from {opacity: 1;}
|
||||
to {opacity: 0;}
|
||||
}
|
||||
|
||||
.category-button {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.category-button:hover {
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.category-button.active {
|
||||
background-color: #5865F2;
|
||||
}
|
||||
|
||||
/* Styles pour le drawer */
|
||||
.drawer {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: -300px;
|
||||
width: 300px;
|
||||
height: 100vh;
|
||||
background-color: rgba(31, 41, 55, 0.95);
|
||||
transition: right 0.3s ease-in-out;
|
||||
z-index: 1000;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.drawer.active {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.drawer-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
display: none;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.drawer-overlay.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.drawer-content {
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.drawer-close {
|
||||
position: absolute;
|
||||
top: 1rem;
|
||||
right: 1rem;
|
||||
font-size: 1.5rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.drawer a {
|
||||
display: block;
|
||||
padding: 0.5rem 0;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.command-card {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.command-card::after {
|
||||
content: "Cliquez pour plus d'infos";
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: rgba(88, 101, 242, 0.3); /* Less aggressive color */
|
||||
font-size: 0.8rem; /* Reduced size */ color: white;
|
||||
padding: 0.5rem;
|
||||
text-align: center;
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
}
|
||||
|
||||
.command-card:hover::after {
|
||||
opacity: 0.8;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="bg-dark text-gray-200">
|
||||
<header class="bg-gray-900 p-4 sticky top-0 z-50 glass">
|
||||
<div class="container mx-auto flex justify-between items-center">
|
||||
<h1 class="text-2xl font-bold gradient-text">Julianum</h1>
|
||||
<nav class="hidden md:flex space-x-4">
|
||||
<a href="/" class="hover:text-primary transition-colors">Accueil</a>
|
||||
<a href="/bot/feathures" class="hover:text-primary transition-colors">Fonctionnalités</a>
|
||||
<a href="/bot/commands" class="hover:text-primary transition-colors">Commandes</a>
|
||||
</nav>
|
||||
<button id="drawer-button" class="md:hidden text-white focus:outline-none">
|
||||
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16m-7 6h7"></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div id="drawer-overlay" class="drawer-overlay"></div>
|
||||
<div id="drawer" class="drawer">
|
||||
<div class="drawer-content">
|
||||
<span id="drawer-close" class="drawer-close">×</span>
|
||||
<nav class="flex flex-col space-y-4">
|
||||
<a href="/" class="hover:text-primary transition-colors">Accueil</a>
|
||||
<a href="/bot/feathures" class="hover:text-primary transition-colors">Fonctionnalités</a>
|
||||
<a href="/bot/commands" class="hover:text-primary transition-colors">Commandes</a>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section id="home" class="py-24 px-4">
|
||||
<div class="container mx-auto text-center">
|
||||
<h1 class="text-5xl font-bold mb-6 gradient-text">Raphael, votre bot Discord polyvalent</h1>
|
||||
<p class="text-xl mb-10 max-w-2xl mx-auto">Gérez et modérez votre serveur Discord avec des commandes administratives puissantes</p>
|
||||
<a href="https://discord.com/oauth2/authorize?client_id=1232794371213230201" class="discord-button inline-block">
|
||||
Inviter Raphael
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="commands" class="py-24 px-4">
|
||||
<div class="container mx-auto">
|
||||
<h2 class="text-4xl font-bold mb-12 text-center gradient-text">Commandes</h2>
|
||||
<div class="mb-8">
|
||||
<input type="text" id="searchInput" placeholder="Rechercher une commande..." class="w-full p-2 rounded bg-gray-700 text-white">
|
||||
</div>
|
||||
<div class="mb-8 flex flex-wrap justify-center gap-4">
|
||||
<button class="category-button glass px-4 py-2 rounded-full active" data-category="all">🔍 Toutes</button>
|
||||
<button class="category-button glass px-4 py-2 rounded-full" data-category="moderation">🛡️ Modération</button>
|
||||
<button class="category-button glass px-4 py-2 rounded-full" data-category="utility">🔧 Utilitaire</button>
|
||||
<button class="category-button glass px-4 py-2 rounded-full" data-category="fun">🎉 Fun</button>
|
||||
<button class="category-button glass px-4 py-2 rounded-full" data-category="admin">👑 Administration</button>
|
||||
</div>
|
||||
<div id="commandList" class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="commandModal" class="modal">
|
||||
<div class="modal-content">
|
||||
<span class="close">×</span>
|
||||
<h2 id="modalTitle" class="text-2xl font-bold mb-4"></h2>
|
||||
<p id="modalDescription" class="mb-4"></p>
|
||||
<p id="modalUsage" class="mb-4"></p>
|
||||
<button id="copyCommand" class="bg-blurple hover:bg-blue-600 text-white font-bold py-2 px-4 rounded">
|
||||
Copier la commande
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="successMessage" class="success-message">
|
||||
Commande copiée avec succès !
|
||||
</div>
|
||||
|
||||
<footer class="py-12 px-4 bg-gray-900 text-center">
|
||||
<p>© 2024 Julianum. Tous droits réservés.</p>
|
||||
</footer>
|
||||
<script>
|
||||
function saveSelectedCategory(category) {
|
||||
localStorage.setItem('selectedCategory', category);
|
||||
}
|
||||
|
||||
function getSelectedCategory() {
|
||||
return localStorage.getItem('selectedCategory') || 'all';
|
||||
}
|
||||
|
||||
function applySelectedCategory() {
|
||||
const savedCategory = getSelectedCategory();
|
||||
categoryButtons.forEach(button => {
|
||||
if (button.dataset.category === savedCategory) {
|
||||
button.classList.add('active');
|
||||
} else {
|
||||
button.classList.remove('active');
|
||||
}
|
||||
});
|
||||
filterCommands();
|
||||
}
|
||||
|
||||
const commands = [
|
||||
{ name: "ban", description: "Bannir un membre", usage: "!ban @utilisateur raison", category: "moderation" },
|
||||
{ name: "kick", description: "Expulser un membre", usage: "!kick @utilisateur raison", category: "moderation" },
|
||||
{ name: "mute", description: "Mettre un membre en sourdine", usage: "!mute @utilisateur durée raison", category: "moderation" },
|
||||
{ name: "clear", description: "Effacer un nombre spécifié de messages", usage: "!clear nombre", category: "moderation" },
|
||||
{ name: "botinfo", description: "Afficher les informations du bot", usage: "!botinfo", category: "utility" },
|
||||
{ name: "userinfo", description: "Afficher les informations d'un utilisateur", usage: "!userinfo @utilisateur", category: "utility" },
|
||||
{ name: "help", description: "Afficher les commandes disponibles", usage: "!help [commande]", category: "utility" },
|
||||
{ name: "ping", description: "Vérifier la latence du bot", usage: "!ping", category: "utility" },
|
||||
{ name: "joke", description: "Raconter une blague", usage: "!joke", category: "fun" },
|
||||
{ name: "8ball", description: "Poser une question à la boule magique", usage: "!8ball question", category: "fun" },
|
||||
{ name: "config", description: "Configurer le bot", usage: "!config option valeur", category: "admin" },
|
||||
{ name: "setprefix", description: "Changer le préfixe du bot", usage: "!setprefix nouveau_préfixe", category: "admin" }
|
||||
];
|
||||
|
||||
function displayCommands(filteredCommands) {
|
||||
const commandList = document.getElementById('commandList');
|
||||
commandList.innerHTML = '';
|
||||
filteredCommands.forEach(command => {
|
||||
const commandCard = document.createElement('div');
|
||||
commandCard.className = 'glass p-4 rounded-lg command-card';
|
||||
commandCard.innerHTML = `
|
||||
<span class="font-bold">${getEmojiForCategory(command.category)}</span>: ${command.name}
|
||||
`;
|
||||
commandCard.addEventListener('click', () => openModal(command));
|
||||
commandList.appendChild(commandCard);
|
||||
});
|
||||
}
|
||||
|
||||
function getEmojiForCategory(category) {
|
||||
const emojis = {
|
||||
moderation: '🛡️',
|
||||
utility: '🔧',
|
||||
fun: '🎉',
|
||||
admin: '👑'
|
||||
};
|
||||
return emojis[category] || '❓';
|
||||
}
|
||||
|
||||
function openModal(command) {
|
||||
const modal = document.getElementById('commandModal');
|
||||
const modalTitle = document.getElementById('modalTitle');
|
||||
const modalDescription = document.getElementById('modalDescription');
|
||||
const modalUsage = document.getElementById('modalUsage');
|
||||
const copyButton = document.getElementById('copyCommand');
|
||||
|
||||
modalTitle.textContent = command.name;
|
||||
modalDescription.textContent = command.description;
|
||||
modalUsage.textContent = `Usage: ${command.usage}`;
|
||||
modal.style.display = 'block';
|
||||
|
||||
copyButton.onclick = () => {
|
||||
navigator.clipboard.writeText(command.usage);
|
||||
copyButton.classList.add('copy-animation');
|
||||
setTimeout(() => copyButton.classList.remove('copy-animation'), 500);
|
||||
showSuccessMessage();
|
||||
};
|
||||
}
|
||||
|
||||
function showSuccessMessage() {
|
||||
const successMessage = document.getElementById('successMessage');
|
||||
successMessage.classList.add('show');
|
||||
setTimeout(() => {
|
||||
successMessage.classList.remove('show');
|
||||
}, 3000);
|
||||
}
|
||||
|
||||
document.querySelector('.close').onclick = () => {
|
||||
document.getElementById('commandModal').style.display = 'none';
|
||||
};
|
||||
|
||||
window.onclick = (event) => {
|
||||
const modal = document.getElementById('commandModal');
|
||||
if (event.target == modal) {
|
||||
modal.style.display = 'none';
|
||||
}
|
||||
};
|
||||
|
||||
const searchInput = document.getElementById('searchInput');
|
||||
const categoryButtons = document.querySelectorAll('.category-button');
|
||||
|
||||
function filterCommands() {
|
||||
const searchTerm = searchInput.value.toLowerCase();
|
||||
const activeCategory = document.querySelector('.category-button.active').dataset.category;
|
||||
const filteredCommands = commands.filter(command =>
|
||||
command.name.toLowerCase().includes(searchTerm) &&
|
||||
(activeCategory === 'all' || command.category === activeCategory)
|
||||
);
|
||||
displayCommands(filteredCommands);
|
||||
}
|
||||
|
||||
searchInput.addEventListener('input', filterCommands);
|
||||
|
||||
categoryButtons.forEach(button => {
|
||||
button.addEventListener('click', () => {
|
||||
categoryButtons.forEach(btn => btn.classList.remove('active'));
|
||||
button.classList.add('active');
|
||||
saveSelectedCategory(button.dataset.category);
|
||||
filterCommands();
|
||||
});
|
||||
});
|
||||
|
||||
document.addEventListener('DOMContentLoaded', applySelectedCategory);
|
||||
|
||||
displayCommands(commands);
|
||||
|
||||
const drawerButton = document.getElementById('drawer-button');
|
||||
const drawer = document.getElementById('drawer');
|
||||
const drawerOverlay = document.getElementById('drawer-overlay');
|
||||
const drawerClose = document.getElementById('drawer-close');
|
||||
|
||||
function toggleDrawer() {
|
||||
drawer.classList.toggle('active');
|
||||
drawerOverlay.classList.toggle('active');
|
||||
}
|
||||
|
||||
drawerButton.addEventListener('click', toggleDrawer);
|
||||
drawerClose.addEventListener('click', toggleDrawer);
|
||||
drawerOverlay.addEventListener('click', toggleDrawer);
|
||||
|
||||
document.querySelectorAll('.command-card').forEach(card => {
|
||||
card.addEventListener('click', () => {
|
||||
const command = card.getAttribute('data-command');
|
||||
alert(`Vous avez cliqué sur la commande : ${command}. Ici, vous pouvez ajouter plus d'informations sur cette commande.`);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
245
views/feathures.ejs
Normal file
245
views/feathures.ejs
Normal file
@@ -0,0 +1,245 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Julianum - Présentation de Raphael</title>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/gsap.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/ScrollTrigger.min.js"></script>
|
||||
<script>
|
||||
tailwind.config = {
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
primary: '#7289DA',
|
||||
secondary: '#99AAB5',
|
||||
dark: '#23272A',
|
||||
blurple: '#5865F2',
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap');
|
||||
|
||||
body {
|
||||
font-family: 'Poppins', sans-serif;
|
||||
background: rgb(2,0,36);
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.gradient-text {
|
||||
background-clip: text;
|
||||
-webkit-background-clip: text;
|
||||
color: transparent;
|
||||
background-image: radial-gradient(circle, rgba(238,174,202,1) 0%, rgba(148,187,233,1) 100%);
|
||||
}
|
||||
|
||||
.glass {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
backdrop-filter: blur(10px);
|
||||
border-radius: 10px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
.discord-button {
|
||||
background-color: #5865F2;
|
||||
color: white;
|
||||
padding: 10px 20px;
|
||||
border-radius: 28px;
|
||||
font-weight: bold;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.discord-button:hover {
|
||||
background-color: #4752C4;
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 5px 15px rgba(88, 101, 242, 0.4);
|
||||
}
|
||||
|
||||
/* Styles pour le drawer */
|
||||
.drawer {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: -300px;
|
||||
width: 300px;
|
||||
height: 100vh;
|
||||
background-color: rgba(31, 41, 55, 0.95);
|
||||
transition: right 0.3s ease-in-out;
|
||||
z-index: 1000;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.drawer.active {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.drawer-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
display: none;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.drawer-overlay.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.drawer-content {
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.drawer-close {
|
||||
position: absolute;
|
||||
top: 1rem;
|
||||
right: 1rem;
|
||||
font-size: 1.5rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.drawer a {
|
||||
display: block;
|
||||
padding: 0.5rem 0;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="bg-dark text-gray-200">
|
||||
<header class="bg-gray-900 p-4 sticky top-0 z-50 glass">
|
||||
<div class="container mx-auto flex justify-between items-center">
|
||||
<h1 class="text-2xl font-bold gradient-text">Julianum</h1>
|
||||
<nav class="hidden md:flex space-x-4">
|
||||
<a href="/" class="hover:text-primary transition-colors">Accueil</a>
|
||||
<a href="/bot/feathures" class="hover:text-primary transition-colors">Fonctionnalités</a>
|
||||
<a href="/bot/commands" class="hover:text-primary transition-colors">Commandes</a>
|
||||
</nav>
|
||||
<button id="drawer-button" class="md:hidden text-white focus:outline-none">
|
||||
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16m-7 6h7"></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div id="drawer-overlay" class="drawer-overlay"></div>
|
||||
<div id="drawer" class="drawer">
|
||||
<div class="drawer-content">
|
||||
<span id="drawer-close" class="drawer-close">×</span>
|
||||
<nav class="flex flex-col space-y-4">
|
||||
<a href="/" class="hover:text-primary transition-colors">Accueil</a>
|
||||
<a href="/bot/feathures" class="hover:text-primary transition-colors">Fonctionnalités</a>
|
||||
<a href="/bot/commands" class="hover:text-primary transition-colors">Commandes</a>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<section id="home" class="py-24 px-4">
|
||||
<div class="container mx-auto text-center">
|
||||
<h1 class="text-5xl font-bold mb-6 gradient-text">Raphael, votre bot Discord polyvalent</h1>
|
||||
<p class="text-xl mb-10 max-w-2xl mx-auto">Gérez et modérez votre serveur Discord avec des commandes administratives puissantes</p>
|
||||
<a href="https://discord.com/oauth2/authorize?client_id=1232794371213230201" class="discord-button inline-block">
|
||||
Inviter Raphael
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="commands" class="py-24 px-4">
|
||||
<div class="container mx-auto">
|
||||
<h2 class="text-4xl font-bold mb-12 text-center gradient-text">Fonctionnalités</h2>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">🛠️</span>: Bannir un membre
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">🗡️</span>: Gérer les rapports de blocage
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">📊</span>: Afficher les informations du bot
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">🪄</span>: Effacer un nombre spécifié de messages
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">🤖</span>: Obtenir l'image d'un emoji personnalisé
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">🦾</span>: Générer une chaîne aléatoire
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">⌨️</span>: Afficher les commandes disponibles
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">👋</span>: Obtenir le lien d'invitation du bot
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">🗡️</span>: Expulser un membre
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">⌨️</span>: Envoyer un message privé à un utilisateur spécifique
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">🛡️</span>: Mettre un membre en sourdine
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">🗡️</span>: Gérer les 'nr'
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">🗡️</span>: Gérer les notes de mise à jour
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">🪛</span>: Afficher les notes de mise à jour du bot
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">🪄</span>: Supprimer toutes les invitations du serveur
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">📝</span>: Créer un rapport
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">⌨️</span>: Rechercher un utilisateur
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">👨💻</span>: Afficher l'avatar et les informations d'un utilisateur
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">📝</span>: Configurer le bot
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<footer class="py-12 px-4 bg-gray-900 text-center">
|
||||
<p>© 2024 Julianum. Tous droits réservés.</p>
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
const drawerButton = document.getElementById('drawer-button');
|
||||
const drawer = document.getElementById('drawer');
|
||||
const drawerOverlay = document.getElementById('drawer-overlay');
|
||||
const drawerClose = document.getElementById('drawer-close');
|
||||
|
||||
function toggleDrawer() {
|
||||
drawer.classList.toggle('active');
|
||||
drawerOverlay.classList.toggle('active');
|
||||
}
|
||||
|
||||
drawerButton.addEventListener('click', toggleDrawer);
|
||||
drawerClose.addEventListener('click', toggleDrawer);
|
||||
drawerOverlay.addEventListener('click', toggleDrawer);
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
270
views/index.ejs
Normal file
270
views/index.ejs
Normal file
@@ -0,0 +1,270 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Julianum - Présentation de Raphael</title>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/gsap.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/ScrollTrigger.min.js"></script>
|
||||
<script>
|
||||
tailwind.config = {
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
primary: '#7289DA',
|
||||
secondary: '#99AAB5',
|
||||
dark: '#23272A',
|
||||
blurple: '#5865F2',
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap');
|
||||
|
||||
body {
|
||||
font-family: 'Poppins', sans-serif;
|
||||
background: rgb(2,0,36);
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.gradient-text {
|
||||
background-clip: text;
|
||||
-webkit-background-clip: text;
|
||||
color: transparent;
|
||||
background-image: radial-gradient(circle, rgba(238,174,202,1) 0%, rgba(148,187,233,1) 100%);
|
||||
}
|
||||
|
||||
.glass {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
backdrop-filter: blur(10px);
|
||||
border-radius: 10px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
.discord-button {
|
||||
background-color: #5865F2;
|
||||
color: white;
|
||||
padding: 10px 20px;
|
||||
border-radius: 28px;
|
||||
font-weight: bold;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.discord-button:hover {
|
||||
background-color: #4752C4;
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 5px 15px rgba(88, 101, 242, 0.4);
|
||||
}
|
||||
|
||||
.feature-card {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.feature-card:hover {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
#features, #commands {
|
||||
display: block !important;
|
||||
visibility: visible !important;
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
/* Styles pour le drawer */
|
||||
.drawer {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: -300px;
|
||||
width: 300px;
|
||||
height: 100vh;
|
||||
background-color: rgba(31, 41, 55, 0.95);
|
||||
transition: right 0.3s ease-in-out;
|
||||
z-index: 1000;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.drawer.active {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.drawer-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
display: none;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.drawer-overlay.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.drawer-content {
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.drawer-close {
|
||||
position: absolute;
|
||||
top: 1rem;
|
||||
right: 1rem;
|
||||
font-size: 1.5rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.drawer a {
|
||||
display: block;
|
||||
padding: 0.5rem 0;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="bg-dark text-gray-200">
|
||||
<header class="bg-gray-900 p-4 sticky top-0 z-50 glass">
|
||||
<div class="container mx-auto flex justify-between items-center">
|
||||
<h1 class="text-2xl font-bold gradient-text">Julianum</h1>
|
||||
<nav class="hidden md:flex space-x-4">
|
||||
<a href="/" class="hover:text-primary transition-colors">Accueil</a>
|
||||
<a href="/bot/feathures" class="hover:text-primary transition-colors">Fonctionnalités</a>
|
||||
<a href="/bot/commands" class="hover:text-primary transition-colors">Commandes</a>
|
||||
</nav>
|
||||
<button id="drawer-button" class="md:hidden text-white focus:outline-none">
|
||||
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16m-7 6h7"></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div id="drawer-overlay" class="drawer-overlay"></div>
|
||||
<div id="drawer" class="drawer">
|
||||
<div class="drawer-content">
|
||||
<span id="drawer-close" class="drawer-close">×</span>
|
||||
<nav class="flex flex-col space-y-4">
|
||||
<a href="/" class="hover:text-primary transition-colors">Accueil</a>
|
||||
<a href="/bot/feathures" class="hover:text-primary transition-colors">Fonctionnalités</a>
|
||||
<a href="/bot/commands" class="hover:text-primary transition-colors">Commandes</a>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section id="home" class="py-24 px-4">
|
||||
<div class="container mx-auto text-center">
|
||||
<h1 class="text-5xl font-bold mb-6 gradient-text">Raphael, votre bot Discord polyvalent</h1>
|
||||
<p class="text-xl mb-10 max-w-2xl mx-auto">Gérez et modérez votre serveur Discord avec des commandes administratives puissantes</p>
|
||||
<a href="https://discord.com/oauth2/authorize?client_id=1232794371213230201" class="discord-button inline-block">
|
||||
Inviter Raphael
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="features" class="py-24 px-4 bg-gray-900">
|
||||
<div class="container mx-auto">
|
||||
<h2 class="text-4xl font-bold mb-12 text-center gradient-text">Fonctionnalités de Raphael</h2>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
|
||||
<div class="glass p-6 rounded-lg shadow-lg feature-card">
|
||||
<div class="text-4xl mb-4">🛠️</div>
|
||||
<h3 class="text-xl font-semibold mb-2">Modération avancée</h3>
|
||||
<p>Bannissez, expulsez, et gérez efficacement votre serveur.</p>
|
||||
</div>
|
||||
<div class="glass p-6 rounded-lg shadow-lg feature-card">
|
||||
<div class="text-4xl mb-4">📊</div>
|
||||
<h3 class="text-xl font-semibold mb-2">Statistiques détaillées</h3>
|
||||
<p>Obtenez des informations précises sur votre bot et vos utilisateurs.</p>
|
||||
</div>
|
||||
<div class="glass p-6 rounded-lg shadow-lg feature-card">
|
||||
<div class="text-4xl mb-4">🪄</div>
|
||||
<h3 class="text-xl font-semibold mb-2">Outils pratiques</h3>
|
||||
<p>Nettoyez les messages, gérez les invitations, et bien plus encore.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center mt-10">
|
||||
<button id="showAllFeatures" class="text-primary hover:underline">Voir toutes les fonctionnalités</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="commands" class="py-24 px-4">
|
||||
<div class="container mx-auto">
|
||||
<h2 class="text-4xl font-bold mb-12 text-center gradient-text">Commandes principales</h2>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">ban</span>: 🛠️ Bannir un membre
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">kick</span>: 🚪 Expulser un membre
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">purge</span>: 🧹 Nettoyer le chat
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">stats</span>: 📊 Voir les statistiques du bot
|
||||
</div>
|
||||
<div class="glass p-4 rounded-lg hover:bg-gray-700 transition-all">
|
||||
<span class="font-bold">invite</span>: 🪄 Obtenir le lien d'invitation du bot
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center mt-10">
|
||||
<button id="showAllCommands" class="text-primary hover:underline">Voir toutes les commandes</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer class="py-12 px-4 bg-gray-900 text-center">
|
||||
<p>© 2024 Myaxrin Labs. Tous droits réservés.</p><br>
|
||||
<a href="/legal" class="discord-button inline-block">
|
||||
Documents légaux
|
||||
</a>
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
const drawerButton = document.getElementById('drawer-button');
|
||||
const drawer = document.getElementById('drawer');
|
||||
const drawerOverlay = document.getElementById('drawer-overlay');
|
||||
const drawerClose = document.getElementById('drawer-close');
|
||||
|
||||
function toggleDrawer() {
|
||||
drawer.classList.toggle('active');
|
||||
drawerOverlay.classList.toggle('active');
|
||||
}
|
||||
|
||||
drawerButton.addEventListener('click', toggleDrawer);
|
||||
drawerClose.addEventListener('click', toggleDrawer);
|
||||
drawerOverlay.addEventListener('click', toggleDrawer);
|
||||
|
||||
document.getElementById('showAllFeatures').addEventListener('click', function() {
|
||||
window.location.href = '/bot/feathures';
|
||||
});
|
||||
|
||||
document.getElementById('showAllCommands').addEventListener('click', function() {
|
||||
window.location.href = '/bot/commands';
|
||||
});
|
||||
// JavaScript pour l'animation GSAP
|
||||
gsap.registerPlugin(ScrollTrigger);
|
||||
|
||||
gsap.from(".feature-card", {
|
||||
opacity: 0,
|
||||
y: 100,
|
||||
stagger: 0.2,
|
||||
duration: 1,
|
||||
scrollTrigger: {
|
||||
trigger: ".feature-card",
|
||||
start: "top 80%",
|
||||
end: "bottom 60%",
|
||||
scrub: true
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
179
views/legal.ejs
Normal file
179
views/legal.ejs
Normal file
@@ -0,0 +1,179 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Julianum - Présentation de Raphael</title>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/gsap.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/ScrollTrigger.min.js"></script>
|
||||
<script>
|
||||
tailwind.config = {
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
primary: '#7289DA',
|
||||
secondary: '#99AAB5',
|
||||
dark: '#23272A',
|
||||
blurple: '#5865F2',
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap');
|
||||
|
||||
body {
|
||||
font-family: 'Poppins', sans-serif;
|
||||
background: rgb(2,0,36);
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.gradient-text {
|
||||
background-clip: text;
|
||||
-webkit-background-clip: text;
|
||||
color: transparent;
|
||||
background-image: radial-gradient(circle, rgba(238,174,202,1) 0%, rgba(148,187,233,1) 100%);
|
||||
}
|
||||
|
||||
.glass {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
backdrop-filter: blur(10px);
|
||||
border-radius: 10px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
.discord-button {
|
||||
background-color: #5865F2;
|
||||
color: white;
|
||||
padding: 10px 20px;
|
||||
border-radius: 28px;
|
||||
font-weight: bold;
|
||||
transition: all 0.3s ease;
|
||||
margin-right: 10px; /* Ajoute un espace à droite de chaque bouton */
|
||||
font-size: 18px; /* Augmente la taille de la police */
|
||||
}
|
||||
|
||||
.discord-button:hover {
|
||||
background-color: #4752C4;
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 5px 15px rgba(88, 101, 242, 0.4);
|
||||
}
|
||||
|
||||
/* Styles pour le drawer */
|
||||
.drawer {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: -300px;
|
||||
width: 300px;
|
||||
height: 100vh;
|
||||
background-color: rgba(31, 41, 55, 0.95);
|
||||
transition: right 0.3s ease-in-out;
|
||||
z-index: 1000;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.drawer.active {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.drawer-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
display: none;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.drawer-overlay.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.drawer-content {
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.drawer-close {
|
||||
position: absolute;
|
||||
top: 1rem;
|
||||
right: 1rem;
|
||||
font-size: 1.5rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.drawer a {
|
||||
display: block;
|
||||
padding: 0.5rem 0;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="bg-dark text-gray-200">
|
||||
<header class="bg-gray-900 p-4 sticky top-0 z-50 glass">
|
||||
<div class="container mx-auto flex justify-between items-center">
|
||||
<h1 class="text-2xl font-bold gradient-text">Julianum</h1>
|
||||
<nav class="hidden md:flex space-x-4">
|
||||
<a href="/" class="hover:text-primary transition-colors">Accueil</a>
|
||||
<a href="/bot/feathures" class="hover:text-primary transition-colors">Fonctionnalités</a>
|
||||
<a href="/bot/commands" class="hover:text-primary transition-colors">Commandes</a>
|
||||
</nav>
|
||||
<button id="drawer-button" class="md:hidden text-white focus:outline-none">
|
||||
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16m-7 6h7"></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div id="drawer-overlay" class="drawer-overlay"></div>
|
||||
<div id="drawer" class="drawer">
|
||||
<div class="drawer-content">
|
||||
<span id="drawer-close" class="drawer-close">×</span>
|
||||
<nav class="flex flex-col space-y-4">
|
||||
<a href="/" class="hover:text-primary transition-colors">Accueil</a>
|
||||
<a href="/bot/feathures" class="hover:text-primary transition-colors">Fonctionnalités</a>
|
||||
<a href="/bot/commands" class="hover:text-primary transition-colors">Commandes</a>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section id="home" class="py-24 px-4">
|
||||
<div class="container mx-auto text-center">
|
||||
<h1 class="text-5xl font-bold mb-6 gradient-text">Raphael, votre bot Discord polyvalent</h1>
|
||||
<p class="text-xl mb-10 max-w-2xl mx-auto">Nos différents documents légaux</p>
|
||||
<a href="/legal/privacy" class="discord-button inline-block">
|
||||
Politique de confidentialité
|
||||
</a>
|
||||
<a href="/legal/cgu" class="discord-button inline-block sm:mt-4">
|
||||
Conditions générales d'utilisation
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
<script>
|
||||
|
||||
|
||||
const drawerButton = document.getElementById('drawer-button');
|
||||
const drawer = document.getElementById('drawer');
|
||||
const drawerOverlay = document.getElementById('drawer-overlay');
|
||||
const drawerClose = document.getElementById('drawer-close');
|
||||
|
||||
function toggleDrawer() {
|
||||
drawer.classList.toggle('active');
|
||||
drawerOverlay.classList.toggle('active');
|
||||
}
|
||||
|
||||
drawerButton.addEventListener('click', toggleDrawer);
|
||||
drawerClose.addEventListener('click', toggleDrawer);
|
||||
drawerOverlay.addEventListener('click', toggleDrawer);
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
113
views/privacy.ejs
Normal file
113
views/privacy.ejs
Normal file
@@ -0,0 +1,113 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
|
||||
<link rel="icon" href=""/>
|
||||
<title>Politique de confidentialité - Raphael Bot</title>
|
||||
<style>
|
||||
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap');
|
||||
|
||||
body {
|
||||
font-family: 'Poppins', sans-serif;
|
||||
background: rgb(2,0,36);
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.breadcrumb {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.breadcrumb a {
|
||||
color: #4f46e5;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.breadcrumb a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="bg-gray-100 text-gray-800 font-sans p-8">
|
||||
|
||||
<div class="max-w-3xl mx-auto">
|
||||
|
||||
<!-- Politique de confidentialité pour le Bot Raphael -->
|
||||
<div class="mb-8">
|
||||
<h2 class="text-2xl font-bold mb-4">Politique de confidentialité - Raphael Bot</h2>
|
||||
<div class="breadcrumb">
|
||||
<a href="/legal" class="text-blue-500">Accueil</a> >
|
||||
<span>Politique de confidentialité</span>
|
||||
</div>
|
||||
<p class="mb-4">
|
||||
Les présentes conditions encadrent l’utilisation des données recueillies par Raphael Bot, incluant son utilisation sur Discord et sur d’autres plateformes.
|
||||
</p>
|
||||
<ol class="list-decimal list-inside">
|
||||
|
||||
<li class="mb-6">
|
||||
<strong>Collecte des données</strong>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li class="mb-2">
|
||||
<strong>1.1 Données collectées.</strong> Raphael Bot collecte les données nécessaires à son fonctionnement, les données d’utilisation, et les données personnelles lorsque nécessaire.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>1.2 Utilisation des Données.</strong> Les données collectées sont utilisées pour fournir et améliorer les services de Raphael Bot, notamment pour personnaliser l'expérience de l'utilisateur et pour permettre le bon fonctionnement des fonctionnalités.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="mb-6">
|
||||
<strong>Sécurité des données</strong>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li class="mb-2">
|
||||
<strong>2.1 Protection des données.</strong> Raphael Bot s'engage à protéger les données collectées et à mettre en œuvre des mesures de sécurité appropriées pour éviter tout accès non autorisé, divulgation, altération ou destruction des données.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>2.2 Services Myaxrin.</strong> Les services Myaxrin Cloud sont utilisés pour l'hébergement des données de Raphael Bot, tandis que Myaxrin Nexus est utilisé pour renforcer la sécurité et la protection des données.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="mb-6">
|
||||
<strong>Partage des données</strong>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li class="mb-2">
|
||||
<strong>3.1 Partage nécessaire.</strong> Les données peuvent être partagées avec des tiers dans la mesure nécessaire pour fournir les services de Raphael Bot ou lorsque requis par la loi.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="mb-6">
|
||||
<strong>Cookies et technologies similaires</strong>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li class="mb-2">
|
||||
<strong>4.1 Utilisation des cookies.</strong> Raphael Bot utilise des cookies et des technologies similaires pour améliorer l'expérience de l'utilisateur, pour analyser les tendances, administrer le site, suivre les mouvements des utilisateurs autour du site, et collecter des informations démographiques sur notre base d'utilisateurs dans son ensemble.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="mb-6">
|
||||
<strong>Modifications de la Politique de confidentialité</strong>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li class="mb-2">
|
||||
<strong>5.1 Modifications.</strong> Raphael Bot se réserve le droit de modifier sa Politique de confidentialité à tout moment. Les utilisateurs seront notifiés de toute modification via une annonce sur le site ou par un avis envoyé directement à leur compte Discord. L'utilisation continue de Raphael Bot après de telles modifications constitue votre consentement à ces modifications.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
<p class="mb-4">
|
||||
<strong>Dernière mise à jour :</strong> [04/07/2024]
|
||||
</p>
|
||||
<p class="mt-4">
|
||||
<strong>EN UTILISANT RAPHAEL BOT, VOUS RECONNAISSEZ AVOIR LU ET COMPRIS LES TERMES ET CONDITIONS DE NOTRE POLITIQUE DE CONFIDENTIALITÉ. SI VOUS N'ACCEPTEZ PAS CES TERMES, N'UTILISEZ PAS RAPHAEL BOT.</strong>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user