diff --git a/baked.c b/baked.c index d16ff89..d13b42c 100644 --- a/baked.c +++ b/baked.c @@ -18,6 +18,7 @@ INCBIN(favicon_ico, "./etc/favicon.ico"); #if MY_DEBUG INCBIN(hotreload_js, "./etc/hotreload.js"); #endif +INCBIN(me_jpg, "./etc/me.jpg"); INCBIN(blog_welcome_md, "./blog/welcome.md"); INCBIN(blog_weird_page_md, "./blog/weird-page.md"); @@ -48,6 +49,7 @@ void init_baked_resources(void) #if MY_DEBUG add_baked_resource("hotreload.js", hotreload_js_data, hotreload_js_size); #endif + add_baked_resource("me.jpg", me_jpg_data, me_jpg_size); add_baked_resource("blog-welcome.md", blog_welcome_md_data, blog_welcome_md_size); add_baked_resource("blog-weird-page.md", blog_weird_page_md_data, blog_weird_page_md_size); add_baked_resource("blog-curious-case-of-gebs.md", blog_curious_case_of_gebs_md_data, blog_curious_case_of_gebs_md_size); diff --git a/baked.h b/baked.h index 2074884..b666522 100644 --- a/baked.h +++ b/baked.h @@ -15,6 +15,7 @@ INCBIN_EXTERN(favicon_ico); #if MY_DEBUG INCBIN_EXTERN(hotreload_js); #endif +INCBIN_EXTERN(me_jpg); INCBIN_EXTERN(blog_welcome_md); INCBIN_EXTERN(blog_weird_page_md); diff --git a/build.c b/build.c index 829077a..71a180a 100644 --- a/build.c +++ b/build.c @@ -37,6 +37,8 @@ int main(int argc, char ** argv) "./etc/hotreload.js", "./etc/simple.css", + "./etc/favicon.ico", + "./etc/me.jpg", "./blog/welcome.md", "./blog/weird-page.md", diff --git a/etc/hotreload.js b/etc/hotreload.js index 34b1dd7..97e3aec 100644 --- a/etc/hotreload.js +++ b/etc/hotreload.js @@ -18,38 +18,7 @@ async function fetch_build_id() return json.build_id; } -(async function() { - build_id = await fetch_build_id(); -})(); - - -const asyncIntervals = []; - -const runAsyncInterval = async (cb, interval, intervalIndex) => { - await cb(); - if (asyncIntervals[intervalIndex]) { - setTimeout(() => runAsyncInterval(cb, interval, intervalIndex), interval); - } -}; - -const setAsyncInterval = (cb, interval) => { - if (cb && typeof cb === "function") { - const intervalIndex = asyncIntervals.length; - asyncIntervals.push(true); - runAsyncInterval(cb, interval, intervalIndex); - return intervalIndex; - } else { - throw new Error('Callback must be a function'); - } -}; - -const clearAsyncInterval = (intervalIndex) => { - if (asyncIntervals[intervalIndex]) { - asyncIntervals[intervalIndex] = false; - } -}; - -setAsyncInterval(async function () { +setInterval(async function() { let new_build_id = await fetch_build_id(); if (build_id !== new_build_id) { location.reload(true); diff --git a/etc/me.jpg b/etc/me.jpg new file mode 100644 index 0000000..ad0e0f0 Binary files /dev/null and b/etc/me.jpg differ diff --git a/main.c b/main.c index 545ccc2..c439db3 100644 --- a/main.c +++ b/main.c @@ -92,6 +92,7 @@ void event_handler(struct mg_connection *conn, int ev, void *ev_data) sb.items, result->body.count ); + printf("%s\n", reply); mg_printf(conn, "%s", reply); mg_send(conn, result->body.items, result->body.count); } @@ -103,12 +104,13 @@ void init_route_hashtable(void) shdefault(route_hashtable, &route_page_not_found); shput(route_hashtable, "/", &route_home); shput(route_hashtable, "/page-missing", &route_page_not_found); - shput(route_hashtable, "/simple.css", &route_simple_css); + shput(route_hashtable, "/simple.css", &route_simple_css); shput(route_hashtable, "/favicon.ico", &route_favicon); #if MY_DEBUG shput(route_hashtable, "/hotreload.js", &route_hotreload_js); shput(route_hashtable, "/build-id", &route_build_id); #endif + shput(route_hashtable, "/me.jpg", &route_me_jpg); shput(route_hashtable, "/blog", &route_blog); void put_blogs(Baked_Resource *resource) diff --git a/routes.c b/routes.c index eb6eeed..4ce1aff 100644 --- a/routes.c +++ b/routes.c @@ -158,6 +158,24 @@ ROUTE_HANDLER(simple_css) make_text(result, "css", 200, sb.items); } +ROUTE_HANDLER(me_jpg) +{ + char path[PATH_MAX] = {0}; + if (!get_baked_resource_path("me.jpg", path, sizeof(path))) { + make_internal_server_error(result); + return; + } + + String_Builder sb = {0}; + defer { sb_free(&sb); } + if (!sb_read_file(&sb, path)) { + make_internal_server_error(result); + return; + } + + make_binary(result, "image/jpeg", 200, sb.items, sb.count); +} + ROUTE_HANDLER(favicon) { char path[PATH_MAX] = {0}; @@ -172,7 +190,6 @@ ROUTE_HANDLER(favicon) make_internal_server_error(result); return; } - sb_finish(&sb); make_binary(result, "image/x-icon", 200, sb.items, sb.count); } diff --git a/routes.h b/routes.h index 3976c70..3a5f7d5 100644 --- a/routes.h +++ b/routes.h @@ -33,6 +33,7 @@ typedef struct { ROUTE_HANDLER(page_not_found); ROUTE_HANDLER(simple_css); ROUTE_HANDLER(favicon); +ROUTE_HANDLER(me_jpg); #if MY_DEBUG ROUTE_HANDLER(hotreload_js); ROUTE_HANDLER(build_id); diff --git a/tmpls/home.html b/tmpls/home.html index c0c1e22..158147b 100644 --- a/tmpls/home.html +++ b/tmpls/home.html @@ -52,6 +52,9 @@ +
+ literally me +