IPost/js/search.js
2025-04-29 00:29:00 +02:00

96 lines
2.8 KiB
JavaScript

const valuetoText = {
user: 'Username',
post: 'Post',
}
function changed() {
document.getElementById('selector').placeholder =
valuetoText[document.getElementById('type').value]
}
async function getJSON(url) {
return (await fetch(url)).json()
}
async function submit() {
const type = document.getElementById('type').value
const selector = document.getElementById('selector').value
document.getElementById('output').innerHTML = ''
const res = await getJSON(`/api/search?type=${type}&selector=${selector}`)
//document.getElementById("output").innerHTML = res
console.log(res)
for (let i = 0; i < res.length; i++) {
let obj = res[i]
if (type === 'user') {
createPost(
decodeURIComponent(obj.User_Name || ''),
decodeURIComponent(obj.User_Bio || 'wow such empty'),
0
)
} else {
createPost(
decodeURIComponent(obj.post_user_name),
decodeURIComponent(obj.post_text),
obj.post_time,
obj.post_special_text,
obj.post_id
)
}
}
}
function keydown(event) {
if (event.key === 'Enter') {
event.preventDefault()
submit()
}
}
function spacerTextNode() {
return document.createTextNode(' | ')
}
function createPost(username, text, time, specialtext, postid) {
if (!specialtext) specialtext = ''
const newDiv = document.createElement('div')
const newP = document.createElement('p')
const newA = document.createElement('a')
const newSpan2 = document.createElement('span')
const newSpan3 = document.createElement('span')
const newUsername = document.createTextNode(username)
let timedate = new Date(time)
time = timedate
time = time.toString()
time = time.split(' ')
time =
time[0] + ' ' + time[1] + ' ' + time[2] + ' ' + time[3] + ' ' + time[4]
if (
timedate ===
'Thu Jan 01 1970 01:00:00 GMT+0100 (Central European Standard Time)'
)
time = ''
const newTime = document.createTextNode(time)
const newSpecialText = document.createTextNode(specialtext)
newDiv.classList.add('result')
newSpan3.classList.add('specialtext')
newA.appendChild(newUsername)
newA.href = `/users/${username}`
newSpan2.appendChild(newTime)
newSpan3.appendChild(newSpecialText)
newP.appendChild(newA)
if (time !== '') newP.appendChild(spacerTextNode())
newP.appendChild(newSpan2)
if (specialtext !== '' && time !== '') newP.appendChild(spacerTextNode())
newP.appendChild(newSpan3)
newDiv.appendChild(newP)
newDiv.innerHTML += filterPost(text) // skipqc
newDiv.id = postid
document.getElementById('output').appendChild(newDiv)
}