meow
This commit is contained in:
parent
b52ac3409b
commit
4c8f925d94
11 changed files with 644 additions and 44 deletions
|
@ -28,6 +28,7 @@
|
|||
"globals": "^15.0.0",
|
||||
"prettier": "^3.3.2",
|
||||
"prettier-plugin-svelte": "^3.2.6",
|
||||
"sass-embedded": "^1.80.6",
|
||||
"svelte": "^5.0.0",
|
||||
"svelte-check": "^4.0.0",
|
||||
"tailwindcss": "^3.4.9",
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
@import 'tailwindcss/base';
|
||||
@import 'tailwindcss/components';
|
||||
@import 'tailwindcss/utilities';
|
BIN
revampdashboard/src/lib/splash/img/logo.png
Normal file
BIN
revampdashboard/src/lib/splash/img/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
BIN
revampdashboard/src/lib/splash/img/squint.png
Normal file
BIN
revampdashboard/src/lib/splash/img/squint.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
13
revampdashboard/src/lib/styles/app.scss
Normal file
13
revampdashboard/src/lib/styles/app.scss
Normal file
|
@ -0,0 +1,13 @@
|
|||
@use 'tailwindcss/base.css';
|
||||
@use 'tailwindcss/components.css';
|
||||
@use 'tailwindcss/utilities.css';
|
||||
@use 'reset.scss';
|
||||
|
||||
body {
|
||||
font: normal 18px/1.5 sans-serif;
|
||||
font-family: system, -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", sans-serif;
|
||||
display: block;
|
||||
|
||||
@apply bg-gray-900;
|
||||
@apply text-gray-300;
|
||||
}
|
31
revampdashboard/src/lib/styles/reset.scss
Normal file
31
revampdashboard/src/lib/styles/reset.scss
Normal file
|
@ -0,0 +1,31 @@
|
|||
/* Box sizing rules */
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* Remove default padding */
|
||||
ul,
|
||||
ol {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
/* Inherit fonts for inputs and buttons */
|
||||
input,
|
||||
button,
|
||||
textarea,
|
||||
select {
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
/* Remove all animations and transitions for people that prefer not to see them */
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
* {
|
||||
animation-duration: 0.01ms !important;
|
||||
animation-iteration-count: 1 !important;
|
||||
transition-duration: 0.01ms !important;
|
||||
scroll-behavior: auto !important;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
<script lang="ts">
|
||||
import '../app.css';
|
||||
import '$lib/styles/app.scss';
|
||||
let { children } = $props();
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1,2 +1,159 @@
|
|||
<h1>Welcome to SvelteKit</h1>
|
||||
<p>Visit <a href="https://svelte.dev/docs/kit">svelte.dev/docs/kit</a> to read the documentation</p>
|
||||
<script lang="ts">
|
||||
import logo from '$lib/splash/img/logo.png';
|
||||
</script>
|
||||
|
||||
<div class="splash">
|
||||
<div id="error"></div>
|
||||
<div class="wrapper">
|
||||
<div class="logo-column">
|
||||
<img class="logo" src={logo} alt="ZappyZep Logo" />
|
||||
</div>
|
||||
<div class="info-column">
|
||||
<h1>ZappyZep</h1>
|
||||
<div class="description">
|
||||
ZappyZep is a private moderation bot for Discord, designed with large servers and reliability in mind.
|
||||
</div>
|
||||
<div class="actions">
|
||||
<a class="btn" href="/new/dashboard">Dashboard</a>
|
||||
<a class="btn" href="/new/docs">Documentation</a>
|
||||
</div>
|
||||
<ul class="links">
|
||||
<li>
|
||||
<a href="https://github.com/Dragory/ZeppelinBot">Zeppelin Source</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://discord.com/invite/w8njuNu">Discord</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.patreon.com/zeppelinbot">Patreon</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/new/privacy-policy">Privacy Policy</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style lang="scss">
|
||||
.splash {
|
||||
width: 100vw;
|
||||
min-height: 100vh;
|
||||
|
||||
background-color: #7289da;
|
||||
background-image: linear-gradient(225deg, #7289da 0%, #5d70b4 100%);
|
||||
color: #fff;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
|
||||
& a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
& .wrapper {
|
||||
flex: 0 0 auto;
|
||||
|
||||
width: 800px;
|
||||
max-width: 100%;
|
||||
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
|
||||
& .logo-column {
|
||||
flex: 0 0 auto;
|
||||
padding: 24px;
|
||||
}
|
||||
|
||||
& .info-column {
|
||||
flex: 1 1 100%;
|
||||
max-width: 448px;
|
||||
padding: 24px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
& .logo {
|
||||
width: 300px;
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
& h1 {
|
||||
font-size: 80px;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
& .description {
|
||||
color: #f1f5ff;
|
||||
}
|
||||
|
||||
& .actions {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
|
||||
margin-top: 8px;
|
||||
|
||||
& .btn {
|
||||
margin: 12px;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
padding: 8px 24px;
|
||||
border: 1px solid #fff;
|
||||
border-radius: 4px;
|
||||
transition: all 120ms ease-in-out;
|
||||
background-color: hsla(0, 0%, 100%, 0.05);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
& .links {
|
||||
list-style: none;
|
||||
display: flex;
|
||||
font-size: 14px;
|
||||
justify-content: center;
|
||||
|
||||
margin-top: 12px;
|
||||
|
||||
& li {
|
||||
padding: 0 16px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
& li:first-child {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
& li:last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
& li:not(:first-child)::before {
|
||||
display: block;
|
||||
content: ' ';
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
border-radius: 50%;
|
||||
background-color: rgb(226, 232, 253);
|
||||
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
& a {
|
||||
color: rgb(226, 232, 253);
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
141
revampdashboard/src/routes/privacy-policy/+page.svelte
Normal file
141
revampdashboard/src/routes/privacy-policy/+page.svelte
Normal file
|
@ -0,0 +1,141 @@
|
|||
<div class="privacy-policy">
|
||||
<div class="wrapper">
|
||||
<h1>Zeppelin Privacy Policy</h1>
|
||||
|
||||
<h2>Zeppelin overview</h2>
|
||||
<p>
|
||||
Zeppelin is a moderation bot for Discord that allows server staff to
|
||||
carry out moderator actions (warn, mute, kick, ban, clean messages, view
|
||||
user information, etc.),
|
||||
keep records of infractions, perform automated actions ("automod", e.g.
|
||||
message filtering), post detailed logs on logging channels, and set up
|
||||
systems such as reaction roles.
|
||||
The bot also includes a web dashboard that server administrators can log
|
||||
in to through Discord OAuth.
|
||||
</p>
|
||||
<p>
|
||||
Zeppelin's source code (what we base on) is available at
|
||||
<a href="https://github.com/ZeppelinBot/Zeppelin">
|
||||
https://github.com/ZeppelinBot/Zeppelin
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<h2>Stored data</h2>
|
||||
<p>
|
||||
When Zeppelin is used by a server, the following categories data can be
|
||||
stored by the bot.
|
||||
The specific categories of data saved for each server depends on how the
|
||||
server has configured Zeppelin.
|
||||
</p>
|
||||
<ul>
|
||||
<li>Recent messages and username/nickname changes of users engaged on
|
||||
the server
|
||||
</li>
|
||||
<li>Recent bulk deleted messages</li>
|
||||
<li>Basic user information, moderator-entered text, and relevant message
|
||||
archives for infraction records
|
||||
</li>
|
||||
<li>A subset of previously held roles and nickname on the server to be
|
||||
restored when a user rejoins
|
||||
</li>
|
||||
<li>Basic server details of the server using the bot</li>
|
||||
</ul>
|
||||
<p>
|
||||
Additionally, when a user logs in to the web dashboard the following
|
||||
types of data are stored:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Basic Discord user information</li>
|
||||
<li>Time and originating IP address of the login for security audit
|
||||
purposes
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>Data retention</h2>
|
||||
<ul>
|
||||
<li>
|
||||
Recent messages are stored for 24h
|
||||
<ul>
|
||||
<li>Deleted messages within this 24h are cleared 5 minutes after
|
||||
deletion
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>5 most recent usernames and 10 most recent nicknames of users
|
||||
engaged in chat or voice channels are stored for 30 days
|
||||
</li>
|
||||
<li>Archives of bulk-deleted messages are stored for 30 days</li>
|
||||
<li>Infraction record data is kept until the server stops using Zeppelin
|
||||
unless explicitly deleted
|
||||
</li>
|
||||
<li>Roles and nicknames that are restored on rejoin are cleared when the
|
||||
user rejoins
|
||||
</li>
|
||||
<li>User information for users logged in to the bot's web dashboard via
|
||||
Discord OAuth is stored as long as the server uses Zeppelin
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>Data access and deletion requests</h2>
|
||||
<p>
|
||||
To request access to personal data stored about you, or to request its
|
||||
deletion, to the extent permitted by GDPR, please send an email to <a
|
||||
href="mailto:contact@mivir.fi">contact@mivir.fi</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style lang="scss">
|
||||
.privacy-policy {
|
||||
padding: 16px;
|
||||
|
||||
width: 100%;
|
||||
min-height: 100vh;
|
||||
|
||||
background-color: #7289da;
|
||||
background-image: linear-gradient(225deg, #7289da 0%, #5d70b4 100%);
|
||||
color: #fff;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
|
||||
& a {
|
||||
color: #fff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
& .wrapper {
|
||||
flex: 0 0 auto;
|
||||
|
||||
width: 100%;
|
||||
max-width: 800px;
|
||||
}
|
||||
|
||||
& h1 {
|
||||
font-size: 60px;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
& h2 {
|
||||
font-size: 30px;
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
& p {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
& ul {
|
||||
list-style: disc;
|
||||
margin-left: 24px;
|
||||
margin-bottom: 16px;
|
||||
|
||||
& ul {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
|
@ -1,11 +1,19 @@
|
|||
import { defineConfig } from "vitest/config";
|
||||
import { sveltekit } from "@sveltejs/kit/vite";
|
||||
import { defineConfig } from 'vitest/config';
|
||||
import { sveltekit } from '@sveltejs/kit/vite';
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [sveltekit()],
|
||||
plugins: [sveltekit()],
|
||||
|
||||
test: {
|
||||
include: ["src/**/*.{test,spec}.{js,ts}"],
|
||||
},
|
||||
envDir: "..",
|
||||
test: {
|
||||
include: ['src/**/*.{test,spec}.{js,ts}']
|
||||
},
|
||||
envDir: '..',
|
||||
|
||||
css: {
|
||||
preprocessorOptions: {
|
||||
scss: {
|
||||
api: 'modern-compiler'
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue