⭐ Moe-Counter Compatible Website Hit Counter Written in Gleam mayu.due.moe
hit-counter svg moe
at main 41 lines 836 B view raw
1import cache 2import database 3import gleam/erlang/process 4import mist 5import request 6import simplifile 7import sqlight 8import wisp 9 10pub fn main() { 11 wisp.configure_logger() 12 13 let _ = simplifile.create_directory("./data") 14 let image_cache = cache.load_themes() 15 let index_html = case simplifile.read("index.html") { 16 Ok(content) -> content 17 Error(_) -> { 18 wisp.log_error("Failed to read index.html") 19 20 "" 21 } 22 } 23 24 use connection <- sqlight.with_connection("./data/count.db") 25 26 database.setup(connection) 27 28 let secret_key_base = wisp.random_string(64) 29 let assert Ok(_) = 30 wisp.mist_handler( 31 fn(request) { 32 request.handle(request, connection, image_cache, index_html) 33 }, 34 secret_key_base, 35 ) 36 |> mist.new 37 |> mist.port(3000) 38 |> mist.start_http 39 40 process.sleep_forever() 41}