diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..0f160b5 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "website"] + path = website + url = https://github.com/enstrayed/website diff --git a/liberals/libnowplaying.js b/liberals/libnowplaying.js index 04c7ce5..0bfb6a2 100644 --- a/liberals/libnowplaying.js +++ b/liberals/libnowplaying.js @@ -60,7 +60,7 @@ async function queryJellyfin() { "artUrl": `${globalConfig.nowplaying.jellyfin.hostPublic}/Items/${response[x].NowPlayingItem.Id}/Images/Primary`, "link": `https://www.last.fm/music/${response[x].NowPlayingItem.Artists[0].replaceAll(" ","+")}/_/${response[x].NowPlayingItem.Name.replaceAll(" ","+")}` }, - "html": `Album Art

I'm listening to

${response[x].NowPlayingItem.Name} by ${response[x].NowPlayingItem.Artists[0]}

from ${response[x].NowPlayingItem.Album ?? `${response[x].NowPlayingItem.Name} (Single)`}

View on Last.fm
` + "html": `Album Art

I'm listening to

${response[x].NowPlayingItem.Name} by ${response[x].NowPlayingItem.Artists[0]}

from ${response[x].NowPlayingItem.Album ?? `${response[x].NowPlayingItem.Name} (Single)`}

View on Last.fm
` } } diff --git a/routes/frontpage.js b/routes/frontpage.js index 30c5524..11fa883 100644 --- a/routes/frontpage.js +++ b/routes/frontpage.js @@ -1,39 +1,65 @@ import { app, globalConfig, fs, globalVersion } from "../index.js" // Get globals from index +import { execSync } from 'child_process' +import { checkToken } from "../liberals/auth.js" +import { logRequest } from "../liberals/logging.js" import { marked } from "marked" var timeSinceLastQuery = Date.now()-10000 var cachedResult = "" -app.get("/static/*", (rreq,rres) => { - rres.sendFile(globalConfig.frontpage.directory+"static/"+rreq.url.replace("/static/","")) -}) - -app.get("/posts/*", (rreq,rres) => { - - if (rreq.url.endsWith(".md")) { - let file = fs.readFileSync("./static/markdownposttemplate.html","utf-8") - file = file.replace("",`https://enstrayed.com${rreq.url}`) - file = file.replaceAll("",rreq.url.replace("/posts/","").slice(9).replace(/-/g," ").replace(".md","")) - file = file.replace("",marked.parse(fs.readFileSync(globalConfig.frontpage.directory+"posts/"+rreq.url.replace("/posts/",""),"utf-8"))) - rres.send(file) - } else { - rres.sendFile(globalConfig.frontpage.directory+"posts/"+rreq.url.replace("/posts/","")) - } - -}) - app.get("/", (rreq, rres) => { if (Date.now() < timeSinceLastQuery+10000) { rres.send(cachedResult) } else { - let indexFile = fs.readFileSync(globalConfig.frontpage.directory+"index.html","utf-8") + let indexFile = fs.readFileSync(process.cwd()+"/website/templates/indextemplate.html","utf-8") cachedResult = indexFile.replace("",parseFiles()).replace("",`API Version ${globalVersion}`) rres.send(cachedResult) } }) +app.get("/static/*", (rreq,rres) => { + rres.sendFile(process.cwd()+"/website/static/"+rreq.url.replace("/static/","")) +}) + +app.get("/favicon.ico", (rreq,rres) => { + rres.sendFile(process.cwd()+"/website/static/") +}) + +app.get("/posts/*", (rreq,rres) => { + + if (rreq.url.endsWith(".md")) { + let file = fs.readFileSync(process.cwd()+"/website/templates/markdownposttemplate.html","utf-8") + file = file.replace("",`https://enstrayed.com${rreq.url}`) + file = file.replaceAll("",rreq.url.replace("/posts/","").slice(9).replace(/-/g," ").replace(".md","")) + file = file.replace("",marked.parse(fs.readFileSync(process.cwd()+"/website/posts/"+rreq.url.replace("/posts/",""),"utf-8"))) + rres.send(file) + } else { + rres.sendFile(process.cwd()+"/website/posts/"+rreq.url.replace("/posts/","")) + } + +}) + +app.post("/api/syncfrontpage", (rreq,rres) => { + checkToken(rreq.query.auth,"fpupdate").then(checkResponse => { + if (checkResponse === true) { + if (rreq.headers["x-github-event"] == "ping") { + rres.sendStatus(200) + } else if (rreq.headers["x-github-event"] == "push") { + execSync("git submodule update --remote") + logRequest(rres,rreq,200,"Synchronized Git submodules") + rres.sendStatus(200) + } else { + logRequest(rres,rreq,400) + rres.sendStatus(400) + } + } else { + rres.sendStatus(401) + } + }) +}) + function parseFiles() { - let files = fs.readdirSync(globalConfig.frontpage.directory+"posts/") + let files = fs.readdirSync(process.cwd()+"/website/posts") let result = "" for (let x in files) { @@ -46,7 +72,7 @@ function parseFiles() { let name = files[x].slice(9).replace(/-/g," ").replace(".html","").replace(".md","") // Strip Date, replace seperator with space & remove file extension - result = `${date} ${name}`+result + result = `
  • ${date} ${name}
  • `+result } return result diff --git a/static/markdownposttemplate.html b/static/markdownposttemplate.html deleted file mode 100644 index cbcf96e..0000000 --- a/static/markdownposttemplate.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - <!--SSR_REPLACE_TITLE--> - - - - - - - - Return to enstrayed.com - - - \ No newline at end of file diff --git a/website b/website new file mode 160000 index 0000000..cbc9fa8 --- /dev/null +++ b/website @@ -0,0 +1 @@ +Subproject commit cbc9fa8878292d0e7c5fcdb861072d22747cf952