diff --git a/HTML/setting.html b/HTML/setting.html index 31e0001..23b5e1d 100644 --- a/HTML/setting.html +++ b/HTML/setting.html @@ -4,6 +4,7 @@ The Fediverse + @@ -11,6 +12,8 @@

Setting

Just go back. It ain't ready yet...

+

Toggle Local

+

Toggle Remote

OK

diff --git a/JS/ActivityPub.js b/JS/ActivityPub.js index c5b389d..26566bc 100644 --- a/JS/ActivityPub.js +++ b/JS/ActivityPub.js @@ -1,8 +1,18 @@ -export async function GetPublicTimelineContent() { - var Timeline = await fetch("https://wetdry.world/api/v1/timelines/public?limit=12") - .then((response) => response.json()); - for (let i in Timeline) { - Timeline[i] = Timeline[i].content; +export async function GetPublicTimeline(Local = false, Remote = false) { + let Timeline; + if (Local == true && Remote == true) { + console.log("Don't set both Local and Remote timelines to true."); + } + + if (Local == true) { + Timeline = await fetch("https://wetdry.world/api/v1/timelines/public?limit=12&local=true") + .then((response) => response.json()); + } else if (Remote == true) { + Timeline = await fetch("https://wetdry.world/api/v1/timelines/public?limit=12&remote=true") + .then((response) => response.json()); + } else { + Timeline = await fetch("https://wetdry.world/api/v1/timelines/public?limit=12") + .then((response) => response.json()); } return Timeline; } diff --git a/JS/index.js b/JS/index.js index 227318b..a4511a4 100644 --- a/JS/index.js +++ b/JS/index.js @@ -20,9 +20,9 @@ const BackgroundMusic = new Audio("Audio/soft-piano-music-312509.mp3"); // Update a timer function UpdateTime() { - var TimeNow = new Date(); - var Hour = TimeNow.getHours(); - var Minute = TimeNow.getMinutes(); + let TimeNow = new Date(); + let Hour = TimeNow.getHours(); + let Minute = TimeNow.getMinutes(); var WebsiteTime = document.getElementsByClassName("Time")[0] WebsiteTime.innerHTML = ""; @@ -98,11 +98,25 @@ ArrowsButton[0].onclick = (event) => { PosterContainerUpdate(); } +// ActivityPub integration async function PosterContainerUpdate() { - var Content = await ActivityPub.GetPublicTimelineContent(); - var CenterContainer = document.getElementsByClassName("PostContainer")[1].children; + // Cookies for the public timelines + let LocalCookie = document.cookie.split("; ").find((row) => row.startsWith("Local="))?.split("=")[1]; + var LocalTrue = (LocalCookie === 'true'); + let RemoteCookie = document.cookie.split("; ").find((row) => row.startsWith("Remote="))?.split("=")[1]; + var RemoteTrue = (RemoteCookie === 'true'); + + let Timeline = await ActivityPub.GetPublicTimeline(LocalTrue, RemoteTrue); + let Content = []; + let Users = []; + for (let i in Timeline) { + Content[i] = Timeline[i].content; + Users[i] = Timeline[i].account.username; + } + let CenterContainer = document.getElementsByClassName("PostContainer")[1].children; for (let i in CenterContainer) { CenterContainer[i].getElementsByClassName("PostContent")[0].innerHTML = Content[i]; + CenterContainer[i].getElementsByClassName("Username")[0].innerHTML = Users[i]; } } diff --git a/JS/setting.js b/JS/setting.js new file mode 100644 index 0000000..e658806 --- /dev/null +++ b/JS/setting.js @@ -0,0 +1,20 @@ +let LocalButton = document.getElementsByClassName("Local")[0]; +let RemoteButton = document.getElementsByClassName("Remote")[0]; + +LocalButton.onclick = (event) => { + // Toggle the cookie + if (document.cookie.split(";").some((item) => item.trim().startsWith("Local="))) { + document.cookie = "Local=true;samesite=strict;path=/;expires=Thu, 01 Jan 1970 00:00:00 GMT;"; + } else { + document.cookie = "Local=true;samesite=strict;path=/;"; + } +} + +RemoteButton.onclick = (event) => { + // Toggle the cookie + if (document.cookie.split(";").some((item) => item.trim().startsWith("Remote="))) { + document.cookie = "Remote=true;samesite=strict;path=/;expires=Thu, 01 Jan 1970 00:00:00 GMT;"; + } else { + document.cookie = "Remote=true;samesite=strict;path=/;"; + } +}