diff options
author | default <nobody@localhost> | 2023-08-14 18:02:20 +0200 |
---|---|---|
committer | default <nobody@localhost> | 2023-08-14 18:02:20 +0200 |
commit | 3f7e3c1d81fef35eada041b7d901974129238dce (patch) | |
tree | 1b5be2a1b9eefe9f76ac95a757eab536a004d04e | |
parent | 16c14060a81d4f7ed6be0bf5f95ca3c77733c18f (diff) |
Unify the instance description text.
-rw-r--r-- | html.c | 13 | ||||
-rw-r--r-- | snac.h | 2 | ||||
-rw-r--r-- | utils.c | 30 | ||||
-rw-r--r-- | xs_mime.h | 55 | ||||
-rw-r--r-- | xs_version.h | 2 |
5 files changed, 47 insertions, 55 deletions
@@ -273,18 +273,7 @@ xs_str *html_instance_header(xs_str *s) s = xs_str_cat(s, "<div class=\"snac-instance-blurb\">\n"); { - xs *s1 = xs_fmt( - "<p><b>%s</b> is a " - "<a href=\"https:/" "/en.wikipedia.org/wiki/Fediverse\">Fediverse</a> " - "instance that uses the " - "<a href=\"https:/" "/en.wikipedia.org/wiki/ActivityPub\">ActivityPub</a> " - "protocol. In other words, users at this host can communicate with people " - "that use software like Mastodon, Pleroma, Friendica, etc. " - "all around the world.</p>\n" - "<p>This server runs the " - "<a href=\"" WHAT_IS_SNAC_URL "\">snac</a> software and there is no " - "automatic sign-up process.</p>\n", - host); + xs *s1 = xs_replace(snac_blurb, "%host%", host); s = xs_str_cat(s, s1); } @@ -271,6 +271,8 @@ int snac_init(const char *_basedir); int adduser(const char *uid); int resetpwd(snac *snac); +extern const char *snac_blurb; + int job_fifo_ready(void); void job_post(const xs_val *job, int urgent); void job_wait(xs_val **job); @@ -62,24 +62,27 @@ static const char *default_css = ".snac-poll-result { margin-left: auto; margin-right: auto; }\n" ; +const char *snac_blurb = + "<p><b>%host%</b> is a <a href=\"https:/" + "/en.wikipedia.org/wiki/Fediverse\">Fediverse</a> " + "instance that uses the <a href=\"https:/" + "/en.wikipedia.org/wiki/ActivityPub\">ActivityPub</a> " + "protocol. In other words, users at this host can communicate with people " + "that use software like Mastodon, Pleroma, Friendica, etc. " + "all around the world.</p>\n" + "<p>This server runs the " + "<a href=\"" WHAT_IS_SNAC_URL "\">snac</a> software and there is no " + "automatic sign-up process.</p>\n" +; + static const char *greeting_html = "<!DOCTYPE html>\n" "<html><head>\n" "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n" "<title>Welcome to %host%</title>\n" "<body style=\"margin: auto; max-width: 50em\">\n" - "<h1>Welcome to %host%</h1>\n" - "<p>This is a <a href=\"https://en.wikipedia.org/wiki/Fediverse\">Fediverse</a> instance\n" - "that uses the <a href=\"https://en.wikipedia.org/wiki/ActivityPub\">ActivityPub</a> protocol.\n" - "In other words, users at this host can communicate with people that use software like\n" - "Mastodon, Pleroma, Friendica, etc. all around the world.</p>\n" - "\n" - "<p>There is no automatic sign up process for this server. If you want to be a part of\n" - "this community, please write an email to %admin_email%\n" - "and ask politely indicating what is your preferred user id (alphanumeric characters\n" - "only).</p>\n" - "\n" - "<p>The following users are already part of this community:</p>\n" + "%blurb%" + "<p>The following users are part of this community:</p>\n" "\n" "%userlist%\n" "\n" @@ -180,7 +183,8 @@ int snac_init(const char *basedir) return 1; } - fwrite(greeting_html, strlen(greeting_html), 1, f); + xs *gh = xs_replace(greeting_html, "%blurb%", snac_blurb); + fwrite(gh, strlen(gh), 1, f); fclose(f); xs *sfn = xs_fmt("%s/style.css", srv_basedir); @@ -4,14 +4,14 @@ #define _XS_MIME -char *xs_mime_by_ext(const char *file); +const char *xs_mime_by_ext(const char *file); #ifdef XS_IMPLEMENTATION /* intentionally brain-dead simple */ struct _mime_info { - char *type; - char *ext; + const char *type; + const char *ext; } mime_info[] = { { "application/json", ".json" }, { "image/gif", ".gif" }, @@ -19,23 +19,23 @@ struct _mime_info { { "image/jpeg", ".jpg" }, { "image/png", ".png" }, { "image/webp", ".webp" }, - { "video/mp4", ".mp4"}, - { "video/mp4", ".mpg4"}, - { "video/mp4", ".m4v"}, - { "video/webm", ".webm"}, - { "video/quicktime", ".mov"}, - { "video/3gpp", ".3gp"}, - { "video/ogg", ".ogv"}, - { "video/flv", ".flv"}, - { "audio/mp3", ".mp3"}, - { "audio/ogg", ".ogg"}, - { "audio/ogg", ".oga"}, - { "audio/ogg", ".opus"}, - { "audio/flac", ".flac"}, - { "audio/wav", ".wav"}, - { "audio/wma", ".wma"}, - { "audio/aac", ".aac"}, - { "audio/aac", ".m4a"}, + { "video/mp4", ".mp4" }, + { "video/mp4", ".mpg4" }, + { "video/mp4", ".m4v" }, + { "video/webm", ".webm" }, + { "video/quicktime", ".mov" }, + { "video/3gpp", ".3gp" }, + { "video/ogg", ".ogv" }, + { "video/flv", ".flv" }, + { "audio/mp3", ".mp3" }, + { "audio/ogg", ".ogg" }, + { "audio/ogg", ".oga" }, + { "audio/ogg", ".opus" }, + { "audio/flac", ".flac" }, + { "audio/wav", ".wav" }, + { "audio/wma", ".wma" }, + { "audio/aac", ".aac" }, + { "audio/aac", ".m4a" }, { "text/css", ".css" }, { "text/html", ".html" }, { "text/plain", ".txt" }, @@ -46,23 +46,20 @@ struct _mime_info { }; -char *xs_mime_by_ext(const char *file) +const char *xs_mime_by_ext(const char *file) /* returns the MIME type by file extension */ { struct _mime_info *mi = mime_info; - char *p = NULL; + xs *lfile = xs_tolower_i(xs_dup(file)); - while (p == NULL && mi->type != NULL) { - if (xs_endswith(file, mi->ext)) - p = mi->type; + while (mi->type != NULL) { + if (xs_endswith(lfile, mi->ext)) + return mi->type; mi++; } - if (p == NULL) - p = "application/octet-stream"; - - return p; + return "application/octet-stream"; } diff --git a/xs_version.h b/xs_version.h index 73c6f47..f7134ad 100644 --- a/xs_version.h +++ b/xs_version.h @@ -1 +1 @@ -/* 5b007ed034f8598be964d72f5becf24b379a7dd8 */ +/* 17cae699036ab791f9bd4e9c1b875b1f808121f0 */ |