function parseDate(date) {
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
return months[date.getUTCMonth()] + ' ' + date.getUTCDate() + ', ' + date.getUTCFullYear() + ' ' + date.toLocaleTimeString();
}
function parseComment(comment) {
const author = data.users[comment.user]
if (author === undefined) {
author = {}
}
const html = `
`
return html
}
function parsePost(post) {
const author = data.users[post.user]
if (author === undefined) {
author = {}
}
const html = `
${post.content.replace(/\n/g,'
')}
${Object.keys(post.likes).length} Likes
Like
Comment
`
return html
}
function getPost(id) {
for (let i = 0; i < data.posts.length; i++) {
if (data.posts[i].id === id) {
return i
}
}
return -1
}
async function like(span) {
const id = parseInt(span.parentElement.parentElement.getAttribute('postid'))
const post = data.posts[getPost(id)]
const current = post.likes[data.user.id]
const response = await postlike(id, !current)
if (response.status != 200) return;
post.likes[data.user.id] = !current
render()
}
async function comment(event) {
event.preventDefault();
const text = event.target.elements.text.value.trim();
if (text.length < 1) return;
const id = parseInt(event.target.parentElement.parentElement.parentElement.getAttribute('postid'))
var index = getPost(id);
if (index === -1) return;
const response = await postcomment(id, text)
if (response.status != 200) return;
event.target.elements.text.value = '';
data.posts[index].comments.push({
user: data.user.id,
content: text
})
render()
}
async function post() {
const text = document.getElementById("text").value.trim()
const error = document.getElementsByClassName('error')[0]
if (text.length < 1) return;
const response = await createpost(text);
if (response.status != 200) {
error.innerHTML = response.msg
return;
}
error.innerHTML = '';
data.posts.unshift({
id: response.msg,
user: data.user.id,
date: Date.now(),
content: text,
likes: [],
comments: []
})
render()
}
function render() {
const html = `
${data.posts.map(p => parsePost(p)).join('')}
`
add(html, 'posts')
const popup = `
`
add(popup, 'popup')
const load = `
${comment.content}