From 53fac17bbcaa2957235b54b6e24e835cabca2033 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sat, 18 Apr 2026 01:01:41 +0000 Subject: fix: Harden startup + SVG input handling --- src/database.gleam | 6 ++---- src/request.gleam | 2 +- src/svg.gleam | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/database.gleam b/src/database.gleam index 5c3d9b2..053bc28 100644 --- a/src/database.gleam +++ b/src/database.gleam @@ -8,11 +8,9 @@ pub type Counter { } pub fn setup(connection) { - let _ = + let assert Ok(_) = sqlight.exec( - "pragma foreign_keys = off; - - create table if not exists tb_count ( + "create table if not exists tb_count ( id integer primary key autoincrement not null unique, name text not null unique, num int not null default (0) diff --git a/src/request.gleam b/src/request.gleam index 82048af..a56780b 100644 --- a/src/request.gleam +++ b/src/request.gleam @@ -45,7 +45,7 @@ pub fn handle(request, connection, image_cache, index_html) { case list.key_find(query, "padding") { Ok(padding) -> case int.parse(padding) { - Ok(n) -> n + Ok(n) -> int.clamp(n, min: 0, max: 32) Error(_) -> 6 } _ -> 6 diff --git a/src/svg.gleam b/src/svg.gleam index f6ab4a4..4014910 100644 --- a/src/svg.gleam +++ b/src/svg.gleam @@ -49,7 +49,7 @@ pub fn xml(image_cache, theme, number, padding) { image_cache, theme, { - let assert Ok(digits) = int.digits(number, 10) + let assert Ok(digits) = int.digits(int.absolute_value(number), 10) let digits_padding = padding - list.length(digits) case digits_padding { -- cgit v1.2.3