suicide monday

This commit is contained in:
cirroskais 2024-04-29 09:44:00 -04:00
parent 9c4c5e2171
commit 046521f116
No known key found for this signature in database
GPG key ID: 36FBC361DF481862
5 changed files with 92 additions and 61 deletions

View file

@ -1,49 +1,56 @@
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
provider = "mysql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
provider = "prisma-client-js"
}
model User {
id Int @id @default(autoincrement())
username String @unique
email String @unique
password String
createdAt DateTime @default(now())
lastSeen DateTime @default(now())
settings UserSettings?
uploads Upload[]
sessions Session[]
id Int @id @default(autoincrement())
username String @unique
email String @unique
password String
createdAt DateTime @default(now())
lastSeen DateTime @default(now())
settings UserSettings?
// STORED AS MEGABYTES !!
maxUpload Int @default(100)
uploads Upload[]
sessions Session[]
}
model Session {
id String @id @unique
user User @relation(fields: [userId], references: [id])
userId Int
authorized Boolean
createdAt DateTime @default(now())
expiresAt DateTime
remoteAddress String?
id String @id @unique
user User @relation(fields: [userId], references: [id])
userId Int
authorized Boolean
createdAt DateTime @default(now())
expiresAt DateTime
remoteAddress String?
}
model UserSettings {
id Int @id @default(autoincrement())
user User @relation(fields: [userId], references: [id])
userId Int @unique
id Int @id @default(autoincrement())
user User @relation(fields: [userId], references: [id])
userId Int @unique
newPostsPublic Boolean @default(false)
newPostsPublic Boolean @default(false)
linkToRaw Boolean @default(false)
embedTitle String
embedDescription String
embedColor Int
}
model Upload {
id String @id
id String @id
uploader User @relation(fields: [uploaderId], references: [id])
uploaderId Int
uploader User @relation(fields: [uploaderId], references: [id])
uploaderId Int
fileName String @unique
public Boolean @default(false)
uploaded DateTime @default(now())
fileName String @unique
public Boolean @default(false)
uploaded DateTime @default(now())
}

View file

@ -1,5 +1,4 @@
<script>
import { fade } from 'svelte/transition';
import { Mail, SquareAsterisk, Undo, User, UserPlus } from 'lucide-svelte';
import { toast } from 'svelte-sonner';
import { goto } from '$app/navigation';
@ -10,10 +9,13 @@
import ButtonText from '$lib/components/Inputs/ButtonText.svelte';
import ButtonIcon from '$lib/components/Inputs/ButtonIcon.svelte';
export let callback;
export let callback = () => {};
let disabled = false;
let username, email, password, cpassword;
let username = '',
email = '',
password = '',
cpassword = '';
async function register() {
disabled = true;

View file

@ -0,0 +1,7 @@
/** @type {import("@sveltejs/kit").Load } */
export async function load({ fetch }) {
const response = await fetch('/api/statistics');
const statistics = await response.json();
return { statistics };
}

View file

@ -1,5 +1,6 @@
<script>
import { Upload } from 'lucide-svelte';
import { page } from '$app/stores';
import { user } from '$lib/stores';
@ -11,34 +12,38 @@
user.set(data?.user);
</script>
<div class="w-96 h-[calc(100vh-4.5rem)] flex flex-col gap-2 mx-auto">
<div class="bg-crust w-full mx-auto mt-auto p-2 rounded-lg shadow-lg">
<button class="w-full outline-2 outline-dotted outline-surface2 rounded-sm bg-mantle h-36 flex">
<div class="m-auto text-lg flex text-surface2">
<Upload></Upload>
</div>
</button>
</div>
<div class="bg-crust w-full mx-auto mb-auto p-2 rounded-lg shadow-lg">
<table class="table-auto w-full mx-auto text-sm">
<tbody>
<tr>
<td class="font-bold">Registered Users</td>
<td class="text-right">100</td>
</tr>
<tr>
<td class="font-bold">Files Hosted</td>
<td class="text-right">100 Billion</td>
</tr>
<tr>
<td class="font-bold">File Storage</td>
<td class="text-right">1 TB</td>
</tr>
<tr>
<td class="font-bold">Max Upload Size</td>
<td class="text-right">100 MB</td>
</tr>
</tbody>
</table>
<div class="w-96 h-[calc(100vh-4.5rem)] flex mx-auto">
<div class="my-auto flex flex-col w-full gap-2">
<div>
<h1 class="text-2xl font-bold">Welcome, {$page.data.user.username}.</h1>
<p class="text-overlay1">Your max upload size is <span class="font-bold">100 MB</span>.</p>
</div>
<div class="bg-crust w-full mx-auto p-2 rounded-lg shadow-lg">
<button
class="w-full outline-2 outline-dotted outline-surface2 rounded-sm bg-mantle h-36 flex"
>
<div class="m-auto text-lg flex text-surface2">
<Upload></Upload>
</div>
</button>
</div>
<div class="bg-crust w-full mx-auto mb-auto p-2 rounded-lg shadow-lg">
<table class="table-auto w-full mx-auto text-sm">
<tbody>
<tr>
<td class="font-bold">Registered Users</td>
<td class="text-right">{data?.statistics?.users}</td>
</tr>
<tr>
<td class="font-bold">Files Hosted</td>
<td class="text-right">{data?.statistics?.files}</td>
</tr>
<tr>
<td class="font-bold">File Storage</td>
<td class="text-right">{data?.statistics?.storage}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>

View file

@ -0,0 +1,10 @@
import { json } from '@sveltejs/kit';
/** @type {import("@sveltejs/kit").RequestHandler} */
export async function GET() {
return json({
users: ':3',
files: 'dick',
storage: '100 gigafarts'
});
}