From 8fff995bd09b99de2758788d10dd20d7ace85d2b Mon Sep 17 00:00:00 2001 From: bingus_violet Date: Sat, 6 Jul 2024 21:56:39 -0500 Subject: [PATCH 1/2] Organize backend --- .gitignore | 3 +- expressHandler.js | 23 +++++++++++ fileManager.js | 30 +++++++++++++++ index.js | 97 +---------------------------------------------- pageUpdater.js | 66 ++++++++++++++++++++++++++++++++ 5 files changed, 122 insertions(+), 97 deletions(-) create mode 100644 expressHandler.js create mode 100644 fileManager.js create mode 100644 pageUpdater.js diff --git a/.gitignore b/.gitignore index 48e99b1..1d5d8e5 100644 --- a/.gitignore +++ b/.gitignore @@ -130,5 +130,4 @@ dist .yarn/install-state.gz .pnp.* -data -static/index.html \ No newline at end of file +data \ No newline at end of file diff --git a/expressHandler.js b/expressHandler.js new file mode 100644 index 0000000..741d4f5 --- /dev/null +++ b/expressHandler.js @@ -0,0 +1,23 @@ +const express = require("express"), +paths = require("./fileManager.js"), +pageUpdater = require("./pageUpdater.js"), +path = require("path"), +fs = require("fs") + +const PORT = process.env.PORT || 8080 + +var app = express() + +app.use(express.static(paths.static)) + +app.get("/", (req, res) => { + res.send(pageUpdater.root()) +}) + +app.get('/post/:post*', (req, res) => { + res.send(pageUpdater.blogPost(req)) +}) + +app.listen(PORT, () => { + console.log("Violet's Limbo is now listening on port: " + PORT) +}) \ No newline at end of file diff --git a/fileManager.js b/fileManager.js new file mode 100644 index 0000000..9ee915b --- /dev/null +++ b/fileManager.js @@ -0,0 +1,30 @@ +const chokidar = require("chokidar"), +path = require("path"), +fs = require("fs"), +EventEmitter = require("events").EventEmitter + +var dataPath = path.join(__dirname, 'data') +var postsPath = path.join(dataPath, 'posts') +var staticPath = path.join(__dirname, 'static') + +var reqPaths = [dataPath, postsPath] + +for (var i = 0; i < reqPaths.length; i++) { + var p = reqPaths[i] + if (!fs.existsSync(p)) { + fs.mkdirSync(p) + } +} + +module.exports = { + data: dataPath, + posts: postsPath, + static: staticPath, + emitter: new EventEmitter() +} + +var watcher = chokidar.watch(dataPath) + +watcher + .on('change', module.exports.emitter.emit) + .on('add', module.exports.emitter.emit) \ No newline at end of file diff --git a/index.js b/index.js index d95bc9a..ec50904 100644 --- a/index.js +++ b/index.js @@ -1,101 +1,8 @@ const express = require("express"), -chokidar = require("chokidar"), fs = require("fs"), -path = require("path"), -showdown = require("showdown"), -mkthtml = new showdown.Converter() +path = require("path") -mkthtml.setFlavor("github") - -const PORT = process.env.PORT || 8080 - -var dataPath = path.join(__dirname, 'data') -var postsPath = path.join(dataPath, 'posts') -var staticPath = path.join(__dirname, 'static') - -var watcher = chokidar.watch(dataPath) - -var app = express() - -app.use(express.static(staticPath)) - -var reqPaths = [dataPath, postsPath] - -for (var i = 0; i < reqPaths.length; i++) { - var p = reqPaths[i] - if (!fs.existsSync(p)) { - fs.mkdirSync(p) - } -} - -app.listen(PORT, () => { - console.log("Violet's Limbo is now listening on: " + PORT) -}) - -function pageUpdate() { - var data = JSON.parse(fs.readFileSync(path.join(dataPath, 'data.json'))) - var postsArray = data.posts - - var html = "" - - for (var i = 0; i < postsArray.length; i++) { - var addedHTML = "" - var post = postsArray[i] - - - addedHTML += - `
- -

${post.name}

-

${post.desc}

-

Path: /post/${post.path}

-
-
` - - html += addedHTML - } - - var html = fs.readFileSync(path.join(__dirname, 'resources/mainPage.html')).toString().replace('{POSTS}', html) - - fs.writeFileSync(path.join(staticPath, 'index.html'), html) -} - -pageUpdate() - -watcher - .on('change', pageUpdate) - .on('add', pageUpdate) - -app.get('/post/:post*', (req, res) => { - var postName = req.params.post - - var data = JSON.parse(fs.readFileSync(path.join(dataPath, 'data.json'))) - var postsArray = data.posts - - for (let index = 0; index < postsArray.length; index++) { - const post = postsArray[index]; - - if (post.path == postName) { - postContent = mkthtml.makeHtml(fs.readFileSync(path.join(postsPath, post.path)).toString()) - - var html = fs.readFileSync(path.join(__dirname, 'resources/postPage.html')).toString() - - html = html.replace('{POST}', postContent) - html = html.replace('{POST_TITLE}', post.name) - - res.send(html) - return - } - } - - var html = fs.readFileSync(path.join(__dirname, 'resources/postPage.html')).toString() - html = html.replace("{POST_TITLE}", "Not found!") - html = html.replace("{POST}", "

Couldn't find this post... Maybe try clearing your cache? Violet's Limbo is currently going through alot of backend changes, so expect things to break!

") - res.send(html) - - return - -}) +require("./expressHandler.js") process.on('uncaughtException', (err, origin) => { fs.writeSync( diff --git a/pageUpdater.js b/pageUpdater.js new file mode 100644 index 0000000..71a7b35 --- /dev/null +++ b/pageUpdater.js @@ -0,0 +1,66 @@ +const fs = require("fs"), +path = require("path"), +showdown = require("showdown"), +paths = require("./fileManager.js"), +mkthtml = new showdown.Converter() + +mkthtml.setFlavor("github") + +module.exports = { + root: () => { + var data = JSON.parse(fs.readFileSync(path.join(paths.data, 'data.json'))) + var postsArray = data.posts + + var html = "" + + for (var i = 0; i < postsArray.length; i++) { + var addedHTML = "" + var post = postsArray[i] + + + addedHTML += + `
+ +

${post.name}

+

${post.desc}

+

Path: /post/${post.path}

+
+
` + + html += addedHTML + } + + html = fs.readFileSync(path.join(__dirname, 'resources/mainPage.html')).toString().replace('{POSTS}', html) + + return html + }, + blogPost: (req) => { + var postName = req.params.post + + var data = JSON.parse(fs.readFileSync(path.join(paths.data, 'data.json'))) + var postsArray = data.posts + + for (let index = 0; index < postsArray.length; index++) { + const post = postsArray[index]; + + if (post.path == postName) { + postContent = mkthtml.makeHtml(fs.readFileSync(path.join(paths.posts, post.path)).toString()) + + var html = fs.readFileSync(path.join(__dirname, 'resources/postPage.html')).toString() + + html = html.replace('{POST}', postContent) + html = html.replace('{POST_TITLE}', post.name) + + // res.send(html) + return html + } + } + + var html = fs.readFileSync(path.join(__dirname, 'resources/postPage.html')).toString() + html = html.replace("{POST_TITLE}", "Not found!") + html = html.replace("{POST}", "

Couldn't find this post... Maybe try clearing your cache? Violet's Limbo is currently going through alot of backend changes, so expect things to break!

") + // res.send(html) + + return html + } +} \ No newline at end of file From 277aa945277cd460bccadf549ddd25cfad151a1f Mon Sep 17 00:00:00 2001 From: bingus_violet Date: Sat, 6 Jul 2024 22:26:22 -0500 Subject: [PATCH 2/2] obliterate --- api.js | 5 + exposer.js | 52 ++++++++ expressHandler.js | 23 ---- index.js | 2 +- package-lock.json | 24 +++- package.json | 3 +- pageUpdater.js | 66 ---------- resources/mainPage.html | 25 ---- resources/postPage.html | 18 --- ...code-sans-expanded-v11-latin-regular.woff2 | Bin 23400 -> 0 bytes static/fonts/rubik-v28-latin-regular.woff2 | Bin 18856 -> 0 bytes .../source-code-pro-v23-latin-regular.woff2 | Bin 11048 -> 0 bytes static/style.css | 124 ------------------ 13 files changed, 83 insertions(+), 259 deletions(-) create mode 100644 api.js create mode 100644 exposer.js delete mode 100644 expressHandler.js delete mode 100644 pageUpdater.js delete mode 100644 resources/mainPage.html delete mode 100644 resources/postPage.html delete mode 100644 static/fonts/encode-sans-expanded-v11-latin-regular.woff2 delete mode 100644 static/fonts/rubik-v28-latin-regular.woff2 delete mode 100644 static/fonts/source-code-pro-v23-latin-regular.woff2 delete mode 100644 static/style.css diff --git a/api.js b/api.js new file mode 100644 index 0000000..f773aab --- /dev/null +++ b/api.js @@ -0,0 +1,5 @@ +const app = require("./exposer.js").app + +app.get("/*", (req, res) => { + res.send("

Sorry! Blog is undergoing large changes. Check back later!

Like... alot later.") +}) \ No newline at end of file diff --git a/exposer.js b/exposer.js new file mode 100644 index 0000000..3f7ebb2 --- /dev/null +++ b/exposer.js @@ -0,0 +1,52 @@ +const express = require("express"), +paths = require("./fileManager.js") +path = require("path"), +fs = require("fs"), +WebSocket = require("ws") + +const PORT = process.env.PORT || 8080 + +var app = express() + +app.use(express.static(paths.data)) + +app.listen(PORT, () => { + console.log("Violet's Limbo is now listening on port: " + PORT) +}) + +var sockets = [] + +wsServer = WebSocket.Server; +let server = require('http').createServer() +wsServer = new wsServer({ + server: server, + perMessageDeflate: false +}) +server.on('request', app) + +wsServer.on("connection", function connection(socket) { + socket.on('message', function message(data) { + data = JSON.parse(data) + if (data.type == "ping") { + for (let index = 0; index < sockets.length; index++) { + const socketData = sockets[index]; + if (socketData.socket == socket) { + sockets[index].lastPing = Date.now() + } + } + + socket.send(`{"op": 3}`) + } else { + console.log(data) + } + }) + + sockets.push({ socket, lastPing: Date.now() }) +}) + + +module.exports = { + app: app +} + +require("./api.js") \ No newline at end of file diff --git a/expressHandler.js b/expressHandler.js deleted file mode 100644 index 741d4f5..0000000 --- a/expressHandler.js +++ /dev/null @@ -1,23 +0,0 @@ -const express = require("express"), -paths = require("./fileManager.js"), -pageUpdater = require("./pageUpdater.js"), -path = require("path"), -fs = require("fs") - -const PORT = process.env.PORT || 8080 - -var app = express() - -app.use(express.static(paths.static)) - -app.get("/", (req, res) => { - res.send(pageUpdater.root()) -}) - -app.get('/post/:post*', (req, res) => { - res.send(pageUpdater.blogPost(req)) -}) - -app.listen(PORT, () => { - console.log("Violet's Limbo is now listening on port: " + PORT) -}) \ No newline at end of file diff --git a/index.js b/index.js index ec50904..18d42bd 100644 --- a/index.js +++ b/index.js @@ -2,7 +2,7 @@ const express = require("express"), fs = require("fs"), path = require("path") -require("./expressHandler.js") +require("./exposer.js") process.on('uncaughtException', (err, origin) => { fs.writeSync( diff --git a/package-lock.json b/package-lock.json index b480755..c981df9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,8 @@ "dependencies": { "chokidar": "^3.5.3", "express": "^4.18.2", - "showdown": "^2.1.0" + "showdown": "^2.1.0", + "ws": "^8.18.0" } }, "node_modules/accepts": { @@ -848,6 +849,27 @@ "engines": { "node": ">= 0.8" } + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } } } } diff --git a/package.json b/package.json index 4bfe6b8..2b4bb12 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "dependencies": { "chokidar": "^3.5.3", "express": "^4.18.2", - "showdown": "^2.1.0" + "showdown": "^2.1.0", + "ws": "^8.18.0" } } diff --git a/pageUpdater.js b/pageUpdater.js deleted file mode 100644 index 71a7b35..0000000 --- a/pageUpdater.js +++ /dev/null @@ -1,66 +0,0 @@ -const fs = require("fs"), -path = require("path"), -showdown = require("showdown"), -paths = require("./fileManager.js"), -mkthtml = new showdown.Converter() - -mkthtml.setFlavor("github") - -module.exports = { - root: () => { - var data = JSON.parse(fs.readFileSync(path.join(paths.data, 'data.json'))) - var postsArray = data.posts - - var html = "" - - for (var i = 0; i < postsArray.length; i++) { - var addedHTML = "" - var post = postsArray[i] - - - addedHTML += - `

- -

${post.name}

-

${post.desc}

-

Path: /post/${post.path}

-
-
` - - html += addedHTML - } - - html = fs.readFileSync(path.join(__dirname, 'resources/mainPage.html')).toString().replace('{POSTS}', html) - - return html - }, - blogPost: (req) => { - var postName = req.params.post - - var data = JSON.parse(fs.readFileSync(path.join(paths.data, 'data.json'))) - var postsArray = data.posts - - for (let index = 0; index < postsArray.length; index++) { - const post = postsArray[index]; - - if (post.path == postName) { - postContent = mkthtml.makeHtml(fs.readFileSync(path.join(paths.posts, post.path)).toString()) - - var html = fs.readFileSync(path.join(__dirname, 'resources/postPage.html')).toString() - - html = html.replace('{POST}', postContent) - html = html.replace('{POST_TITLE}', post.name) - - // res.send(html) - return html - } - } - - var html = fs.readFileSync(path.join(__dirname, 'resources/postPage.html')).toString() - html = html.replace("{POST_TITLE}", "Not found!") - html = html.replace("{POST}", "

Couldn't find this post... Maybe try clearing your cache? Violet's Limbo is currently going through alot of backend changes, so expect things to break!

") - // res.send(html) - - return html - } -} \ No newline at end of file diff --git a/resources/mainPage.html b/resources/mainPage.html deleted file mode 100644 index b5fa166..0000000 --- a/resources/mainPage.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - Violet's Limbo - - - - - -

Home

-

Violet's Limbo

-
-

Violet's Limbo is... my blog! I talk about game design, development, and whatever else comes to mind!

-

Enjoy my bad opinions!


-

Posts:

- {POSTS} -
- - \ No newline at end of file diff --git a/resources/postPage.html b/resources/postPage.html deleted file mode 100644 index 61845d7..0000000 --- a/resources/postPage.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Violet's Limbo - - - - -

Home

-

{POST_TITLE}

-
-
- {POST} -
- - \ No newline at end of file diff --git a/static/fonts/encode-sans-expanded-v11-latin-regular.woff2 b/static/fonts/encode-sans-expanded-v11-latin-regular.woff2 deleted file mode 100644 index dbdfcebcd5bfa89b098b15c2b849a000d1008a05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23400 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�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 W$$#HZ=85%R)&-qsFyLiiU;qF@46Gyo diff --git a/static/fonts/rubik-v28-latin-regular.woff2 b/static/fonts/rubik-v28-latin-regular.woff2 deleted file mode 100644 index ac6ff6829dae9da06678d1a471f198ad247ea171..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18856 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