diff --git a/data/data.json b/data/data.json
index 37101c4..7172056 100644
--- a/data/data.json
+++ b/data/data.json
@@ -1 +1 @@
-{"hitcount":8,"comment_counter":0}
\ No newline at end of file
+{"hitcount":16,"comment_counter":1}
\ No newline at end of file
diff --git a/src/data.js b/src/data.js
index 5a26083..e49df2f 100644
--- a/src/data.js
+++ b/src/data.js
@@ -4,22 +4,18 @@ const require = createRequire(import.meta.url);
const config = require("../config.json")
const fs = require("fs")
-export function getdata(data, key='', value='') {
+export function getdata(data, index=-1) {
if (config["data_storage"] == "json") {
if (data == "posts" || data == 'users' || data == 'comments') {
let result = require(`../data/${data}.json`)
- if (key != '') {
- result.forEach((object, index) => {
- if (object[key] == value) {
- return object
- }
- })
+ if (index != -1) {
+ return result[index]
}
return result
}
- else if (data == "hitcount") {
- let result = fs.readFileSync("../data/hitcount.txt")
+ else if (data == "other_data") {
+ let result = require('../data/data.json') // This file is actually called data.json
return result
}
else {
diff --git a/src/routes/form_actions.js b/src/routes/form_actions.js
index 921a644..ed4ebfc 100644
--- a/src/routes/form_actions.js
+++ b/src/routes/form_actions.js
@@ -23,12 +23,16 @@ router.post("/submit_comment", (req,res) => {
new_comment = {
"name": name,
"content": func.escape_input(req.body.content),
- "id": comments.counter,
- "pubdate": unix_timestamp
+ "id": data.getdata('other_data').comment_counter,
+ "pubdate": unix_timestamp,
+ "postID": req.body.post_index,
};
+ let other_data = data.getdata('other_data')
other_data.comment_counter += 1;
+ let comments = data.getdata('comments')
comments[req.body.post_index].push(new_comment);
fs.writeFileSync(`../data/comments.json`, `${JSON.stringify(comments)}`, 'utf-8');
+ fs.writeFileSync('../data/data.json', JSON.stringify(other_data), 'utf-8');
res.redirect(301,`/post/${req.body.post_index}`)
}); // /submit_comment
diff --git a/src/routes/standard_pages.js b/src/routes/standard_pages.js
index d2e8624..05072d0 100644
--- a/src/routes/standard_pages.js
+++ b/src/routes/standard_pages.js
@@ -29,14 +29,14 @@ router.get("/", (req,res) => {
}); // /
router.get("/user/:username", (req, res) => {
const userID = func.get_userID(req.params.username)
- console.log(data.getdata('users', 'id', userID)[0])
+ let user = data.getdata('users', userID)
if (userID != -1) {
res.render("pages/user",
{
config,
locale,
posts: data.getdata('posts'),
- user: data.getdata('users', 'id', userID),
+ user,
userID: userID,
comments: data.getdata('comments'),
fromUnixTime,
@@ -55,25 +55,27 @@ router.get("/user/:username", (req, res) => {
}); // /user/:username
router.get("/post/:post_index", (req, res) => {
const postID = req.params.post_index
- if (postID > posts.length-1 || posts[postID]["deleted"] == true) {
+ let post = data.getdata('posts', postID)
+
+ if (post["deleted"] == true || post == 1) { // data.getdata returns error code 1 if nothing is available
res.render("partials/message", {
message: locale.post_doesnt_exist,
config,
})
}
- else if (typeof posts[postID]["deleted"] == "undefined" || posts[postID]["deleted"] == false) {
+ else if (typeof post["deleted"] == "undefined" || post["deleted"] == false) {
res.render("pages/post",
{
config,
locale,
- post: posts[postID],
- postID: postID,
- user: users[posts[postID].userID],
- comments: comments.comments[postID],
+ post,
+ postID,
+ user: data.getdata('users', post.userID),
+ comments: data.getdata('comments', postID),
fromUnixTime,
format,
- getUnixTime,
- func,
+ getUnixTime,
+ func,
})
}
else {
@@ -81,6 +83,8 @@ router.get("/post/:post_index", (req, res) => {
res.redirect(301,"/")
}
}); // /post/:post_index
+
+
router.get("/tag/:tag", (req,res) => {
const tag = req.params.tag
res.render("pages/tag",
@@ -88,18 +92,21 @@ router.get("/tag/:tag", (req,res) => {
config,
locale,
tag,
- posts,
- users,
- comments: comments.comments,
- fromUnixTime: fromUnixTime,
- format: format,
- getUnixTime: getUnixTime,
- func,
+ posts: data.getdata('posts'),
+ users: data.getdata('users'),
+ comments: data.getdata('comments'),
+ fromUnixTime,
+ format,
+ getUnixTime,
+ func,
})
}); // /tag/:tag
-router.get("/comment/:commentID", (req,res) => {
+router.get("/comment/:postID-:commentID", (req,res) => {
const commentID = req.params.commentID;
- const comment = func.get_comment(commentID)
+ const postID = req.params.postID;
+
+ let posts_comments = data.getdata('comments', postID)
+ let comment = posts_comments[commentID]
if (comment == -1) {
res.render("partials/message", {
config,
@@ -109,15 +116,14 @@ router.get("/comment/:commentID", (req,res) => {
else {
res.render("pages/comment",
{
- config: config,
+ config,
locale,
- post: posts[comment["id"]],
- users,
comment,
- fromUnixTime: fromUnixTime,
- format: format,
- getUnixTime: getUnixTime,
- func,
+ postID,
+ fromUnixTime,
+ format,
+ getUnixTime,
+ func,
})
}
});
diff --git a/src/routes/syndication.js b/src/routes/syndication.js
index cb62337..603532e 100644
--- a/src/routes/syndication.js
+++ b/src/routes/syndication.js
@@ -3,10 +3,6 @@ const config = require('../../config')
const data = require('../data')
const func = require('../functions')
-let users = require('../../data/users.json');
-let posts = require('../../data/posts.json');
-let comments = require('../../data/comments.json');
-
const router = express.Router();
////////////////////// SYNDICATION ////////////////////////
diff --git a/views/partials/comment.ejs b/views/partials/comment.ejs
index f8b0433..d8491df 100644
--- a/views/partials/comment.ejs
+++ b/views/partials/comment.ejs
@@ -1,3 +1,5 @@
-<%= comment.name %> <%= func.unix_time_to_date_format(comment.pubdate) %> No. <%= comment.id %>:
+<%= comment.name %>
+<%= func.unix_time_to_date_format(comment.pubdate) %>
+No. <%= postID %>-<%= comment.id %>:
<%- func.render_comment(comment.content) %>