Compare commits

..

7 commits

Author SHA1 Message Date
Mihkel Martin Kasterpalu
96f5157adf Fix deploy? 2025-02-12 06:56:18 +02:00
Mihkel Martin Kasterpalu
87e39fb563 Remove debug and comment from Attcha component 2025-02-12 06:43:47 +02:00
Mihkel Martin Kasterpalu
8761caafd8 Temporarily pin svelte version to fix deploy error 2025-02-12 06:06:11 +02:00
Mihkel Martin Kasterpalu
ed858f5022 Add drizzle output folder to .gitignore 2025-02-12 06:05:00 +02:00
Mihkel Martin Kasterpalu
f00c6f2f4d Remove source from rate limit message 2025-02-12 05:48:41 +02:00
Mihkel Martin Kasterpalu
072bf2c775 Fix deployment error /sw.js not found 2025-02-12 05:48:25 +02:00
Mihkel Martin Kasterpalu
499c497bff reformat files 2025-02-12 05:19:49 +02:00
20 changed files with 384 additions and 386 deletions

1
.gitignore vendored
View file

@ -24,3 +24,4 @@ vite.config.ts.timestamp-*
# SQLite
*.db
drizzle

View file

@ -12,7 +12,8 @@ RUN pnpm i
COPY . .
RUN pnpm run db:push \
RUN pnpm drizzle-kit generate \
&& pnpm drizzle-kit push \
&& pnpm build
@ -23,6 +24,7 @@ WORKDIR /app
COPY --from=build /app/build /app/build
COPY --from=build /app/package.json /app/package.json
COPY --from=build /app/local.db /app/local.db
COPY --from=build /app/drizzle /app/drizzle
RUN npm install --omit=dev --legacy-peer-deps

View file

@ -1,14 +1,10 @@
import { defineConfig } from 'drizzle-kit';
if (!process.env.DATABASE_URL) throw new Error('DATABASE_URL is not set');
export default defineConfig({
schema: './src/lib/server/db/schema.ts',
out: './drizzle',
dialect: 'sqlite',
dbCredentials: {
url: process.env.DATABASE_URL
},
verbose: true,
strict: true,
dialect: 'sqlite'
url: 'local.db'
}
});

View file

@ -13,6 +13,7 @@
"lint": "prettier --check . && eslint .",
"db:push": "drizzle-kit push",
"db:migrate": "drizzle-kit migrate",
"db:generate": "drizzle-kit generate",
"db:studio": "drizzle-kit studio"
},
"devDependencies": {
@ -40,7 +41,7 @@
"prettier": "^3.4.2",
"prettier-plugin-svelte": "^3.3.3",
"prettier-plugin-tailwindcss": "^0.6.10",
"svelte": "^5.19.1",
"svelte": "5.19.9",
"svelte-check": "^4.1.4",
"svelte-dnd-action": "^0.9.55",
"svelte-sonner": "^0.3.28",

View file

@ -24,10 +24,8 @@
<Input type="hidden" bind:value {...props} />
<!-- Configure your `challengeurl` and remove the `test` attribute, see docs: https://altcha.org/docs/website-integration/#using-altcha-widget -->
<altcha-widget
strings={JSON.stringify(estonianStrings)}
debug
challengeurl="/api/altcha"
spamfilter
blockspam

View file

@ -1,6 +1,6 @@
import { drizzle } from 'drizzle-orm/better-sqlite3';
import Database from 'better-sqlite3';
import { env } from '$env/dynamic/private';
if (!env.DATABASE_URL) throw new Error('DATABASE_URL is not set');
const client = new Database(env.DATABASE_URL);
const client = new Database('local.db');
export const db = drizzle(client);

View file

@ -69,7 +69,7 @@ export async function POST({ locals, request }) {
if (!success) {
const timeRemaining = Math.floor((reset - Date.now()) / 1000);
const message = `Võta veits rahulikumalt. API Proovi ${timeRemaining}s pärast uuesti.`;
const message = `Võta veits rahulikumalt. Proovi ${timeRemaining}s pärast uuesti.`;
return json({ error: message }, { status: 429 });
}

View file

@ -50,7 +50,7 @@ export const load: PageServerLoad = async (event) => {
if (!seshSuccess) {
const timeRemaining = Math.floor((seshReset - Date.now()) / 1000);
const message = `Sesh Proovi ${timeRemaining}s pärast uuesti.`;
const message = `Proovi ${timeRemaining}s pärast uuesti.`;
return {
stage: stage,
@ -62,7 +62,7 @@ export const load: PageServerLoad = async (event) => {
if (!ipSuccess) {
const timeRemaining = Math.floor((ipReset - Date.now()) / 1000);
const message = `IP Proovi ${timeRemaining}s pärast uuesti.`;
const message = `Proovi ${timeRemaining}s pärast uuesti.`;
return {
stage: stage,

View file

@ -61,7 +61,7 @@ export const actions: Actions = {
if (!seshSuccess) {
const timeRemaining = Math.floor((seshReset - Date.now()) / 1000);
const message = `Võta veits rahulikumalt. Sesh Proovi ${timeRemaining}s pärast uuesti.`;
const message = `Võta veits rahulikumalt. Proovi ${timeRemaining}s pärast uuesti.`;
if (form.errors.answer) {
form.errors.answer.push(message);
@ -75,7 +75,7 @@ export const actions: Actions = {
if (!ipSuccess) {
const timeRemaining = Math.floor((ipReset - Date.now()) / 1000);
const message = `Võta veits rahulikumalt. IP Proovi ${timeRemaining}s pärast uuesti.`;
const message = `Võta veits rahulikumalt. Proovi ${timeRemaining}s pärast uuesti.`;
if (form.errors.answer) {
form.errors.answer.push(message);
@ -177,7 +177,7 @@ export const actions: Actions = {
if (!seshSuccess) {
const timeRemaining = Math.floor((seshReset - Date.now()) / 1000);
const message = `Võta veits rahulikumalt. Sesh Proovi ${timeRemaining}s pärast uuesti.`;
const message = `Võta veits rahulikumalt. Proovi ${timeRemaining}s pärast uuesti.`;
if (form.errors.question) {
form.errors.question.push(message);
@ -191,7 +191,7 @@ export const actions: Actions = {
if (!ipSuccess) {
const timeRemaining = Math.floor((ipReset - Date.now()) / 1000);
const message = `Võta veits rahulikumalt. IP Proovi ${timeRemaining}s pärast uuesti.`;
const message = `Võta veits rahulikumalt. Proovi ${timeRemaining}s pärast uuesti.`;
if (form.errors.question) {
form.errors.question.push(message);

View file

@ -47,7 +47,7 @@
>Sul on alles {data.user.balance > 0 ? data.user.balance : data.poolSize > 0 ? 0 : 1} küsimust.</Card.Description
>
</Card.Header>
{#if data.user.balance === 0 && (!data.question || data.poolSize > 0)}
{#if data.user.balance === 0 && (data.question || data.poolSize > 0)}
<Card.Content>
<p class="text-sm leading-6">Enne küsimist pead kõigepealt vastama teistele!</p>
</Card.Content>

0
src/service-worker.js Normal file
View file