diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..9be32da Binary files /dev/null and b/favicon.ico differ diff --git a/package.json b/package.json index 7bbfffc..95599aa 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "express-jtw-update-server", + "name": "express-storage-site", "version": "1.0.0", "description": "", "main": "index.js", diff --git a/src/components/header.ts b/src/components/header.ts new file mode 100644 index 0000000..3a1bdd9 --- /dev/null +++ b/src/components/header.ts @@ -0,0 +1,14 @@ +import dotenv from 'dotenv' +dotenv.config() + +const header_string = (page_title: string | boolean, notitle = false, add: string = null) => { + return ` + + ${notitle ? "" : `${process.env.servicename || "File Server"}${page_title ? ` | ${page_title}` : ""}`} + ${/**/""} + ${add ? add : ""} + + ` +} + +export default header_string; \ No newline at end of file diff --git a/src/pages/posts.ts b/src/pages/posts.ts index 0b8bd22..aadc440 100644 --- a/src/pages/posts.ts +++ b/src/pages/posts.ts @@ -162,13 +162,22 @@ async function posts_string(user?: UserSession): Promise { out += `
${title} ${p.visibility == "public" ? "" : `(${p.visibility})`}
- by ${await getUsernameById(p.user_id)} ()

+ by ${await getUsernameById(p.user_id)} ()

${content}
` }; - resolve(out || "No posts yet."); + resolve(out + ` + + ` || "No posts yet."); }); }); } diff --git a/src/pages/register.ts b/src/pages/register.ts index 37bf30c..3990102 100644 --- a/src/pages/register.ts +++ b/src/pages/register.ts @@ -78,20 +78,20 @@ export async function Main(app: Express) { db.run( `INSERT INTO users (username, password_hash) VALUES (?, ?)`, [username, passwordHash], - (err: any) => { - var isnameerror = false; + function (err: any) { if (err) { if (err.message.includes("UNIQUE")) { - isnameerror = true; + return res.send(register_string(`The username ${username} is already taken!`)) } } - if (!isnameerror) - c.log(`User registered: ${username}`); - if (isnameerror) - res.send(register_string(`The username ${username} is already taken!`)) - else - res.redirect(req.query?.next?.toString() ?? "/"); + req.session.user = { + id: this.lastID, + username: username + } + + c.log(`User registered: ${username}`); + res.redirect(req.query?.next?.toString() ?? "/"); } ); } catch (err) { diff --git a/src/pages/upload.ts b/src/pages/upload.ts index d93f3a4..b217dfb 100644 --- a/src/pages/upload.ts +++ b/src/pages/upload.ts @@ -72,11 +72,7 @@ async function files_string(user: UserSession): Promise { out += `
${filect}) ${f.original_name} - uploaded on - - + |
@@ -84,6 +80,17 @@ async function files_string(user: UserSession): Promise { filect++; }); + out += ` + + ` + resolve(out); } ); diff --git a/src/pages/uploads.ts b/src/pages/uploads.ts index 9001984..2cf357b 100644 --- a/src/pages/uploads.ts +++ b/src/pages/uploads.ts @@ -31,6 +31,7 @@ function getUploadByFilename(filename: string): Promise { }) } catch (err) { // if the cb fails somehow + // its not actually somehow it IS possible, like when a user is deleted from the users table or when a file is manually placed in the /uploads directory return null } } diff --git a/src/strings.ts b/src/strings.ts new file mode 100644 index 0000000..17dce8a --- /dev/null +++ b/src/strings.ts @@ -0,0 +1,64 @@ +const p_404 = { + page: "The file you were looking for does not exist on the server." +} + +const p_login = { + title: "Log in", + login: "Log in", + missing_credentials: "Missing username or password!", + wrong_credentials: "Invalid username or password." +} + +const p_posts = { + title: "Posts", + by_user: "by", + new: { + post_title: "Post title:", + post_content: "Post content:", + new_post: "New Post", + visibility: "Visibility:", + public: "Public", + unlisted: "Unlisted", + private: "Private", + font: "Font:", + login: "You must be logged in to create a post.", + + content_placeholder: "...", + post: "Post" + }, + + not_found: "Post not found.", + no_visible: "No posts yet.", + login: `Log in to create posts.`, + delete_post: "Delete Post" +} + +const p_register = { + title: "Registration", + register: "Register", + + name_taken: "The username $(var) is already taken!", + register_disabled: "$(var) does not support account registration." +} + +const p_root = { + existing_session: "Logged in as $(var).", + logout_confirm: "Are you sure you want to log out of $(var)?" +} + +const loc = { + username: "Username", + password: "Password", + + default_title: "File Server", + default_description: "A simple file server built with Express.", + unknown_user: "Unknown", + log_in: "Login", + log_out: "Log out", + register: "Register", + back: "Back", + + p_404, p_login, p_posts, p_register, p_root +} + +export default loc \ No newline at end of file