watch, I did somethning wrong, right?
This commit is contained in:
parent
0cf3e90a7a
commit
482ada0bcd
2 changed files with 73 additions and 7 deletions
|
@ -93,6 +93,14 @@ export async function GetStatus(ID) {
|
||||||
.then((response) => response.json());
|
.then((response) => response.json());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function GetContexts(ID) {
|
||||||
|
if (Token == null || TokenType == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return await fetch(localStorage.getItem(Variables.MastodonWebsite) + "/api/v1/statuses/" + ID + "/context", {method: "GET", headers: {"Authorization": TokenType + " " + Token}})
|
||||||
|
.then((response) => response.json());
|
||||||
|
}
|
||||||
|
|
||||||
// Get your own account by verifying your credentials.
|
// Get your own account by verifying your credentials.
|
||||||
export async function GetOwnAccount() {
|
export async function GetOwnAccount() {
|
||||||
if (Token == null || TokenType == null) {
|
if (Token == null || TokenType == null) {
|
||||||
|
|
|
@ -114,9 +114,9 @@ async function GetPost() {
|
||||||
let NumberOfThreads = 0;
|
let NumberOfThreads = 0;
|
||||||
let TemporaryPost = post;
|
let TemporaryPost = post;
|
||||||
while (TemporaryPost.in_reply_to_id != null) {
|
while (TemporaryPost.in_reply_to_id != null) {
|
||||||
TemporaryPost = await MastodonReplylFunction(NumberOfThreads, TemporaryPost.in_reply_to_id);
|
TemporaryPost = await MastodonThreadFunction(NumberOfThreads, TemporaryPost.in_reply_to_id);
|
||||||
ThreadedPost.push(TemporaryPost);
|
ThreadedPost.push(TemporaryPost);
|
||||||
// Any replies? Give them the thing :3
|
// Any posts? Give them the thing :3
|
||||||
for (let i of document.getElementsByClassName(NumberOfThreads)) {
|
for (let i of document.getElementsByClassName(NumberOfThreads)) {
|
||||||
let TempID = NumberOfThreads;
|
let TempID = NumberOfThreads;
|
||||||
i.onclick = (event) => {
|
i.onclick = (event) => {
|
||||||
|
@ -125,6 +125,20 @@ async function GetPost() {
|
||||||
}
|
}
|
||||||
NumberOfThreads += 1;
|
NumberOfThreads += 1;
|
||||||
}
|
}
|
||||||
|
// Replies, anyone?
|
||||||
|
let Context = await GetContexts(post.id);
|
||||||
|
for (let i of Context.descendants) {
|
||||||
|
TemporaryPost = await MastodonReplyFunction(NumberOfThreads, i);
|
||||||
|
ThreadedPost.push(TemporaryPost);
|
||||||
|
// Any posts? Give them the thing :3
|
||||||
|
for (let j of document.getElementsByClassName(NumberOfThreads)) {
|
||||||
|
let TempID = NumberOfThreads;
|
||||||
|
j.onclick = (event) => {
|
||||||
|
SetThreadPost(ThreadedPost[TempID], j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
NumberOfThreads += 1;
|
||||||
|
}
|
||||||
} else if (website == "Bluesky") {
|
} else if (website == "Bluesky") {
|
||||||
// Check for a reblog.
|
// Check for a reblog.
|
||||||
if (post.hasOwnProperty("reason") && post.reason.$type == "app.bsky.feed.defs#reasonRepost") {
|
if (post.hasOwnProperty("reason") && post.reason.$type == "app.bsky.feed.defs#reasonRepost") {
|
||||||
|
@ -157,9 +171,9 @@ async function GetPost() {
|
||||||
let NumberOfThreads = 0;
|
let NumberOfThreads = 0;
|
||||||
let TemporaryPost = post;
|
let TemporaryPost = post;
|
||||||
while (TemporaryPost.hasOwnProperty("reply")) {
|
while (TemporaryPost.hasOwnProperty("reply")) {
|
||||||
TemporaryPost = await BlueskyReplyFunction(NumberOfThreads, TemporaryPost.reply.parent);
|
TemporaryPost = await BlueskyThreadFunction(NumberOfThreads, TemporaryPost.reply.parent);
|
||||||
ThreadedPost.push(TemporaryPost);
|
ThreadedPost.push(TemporaryPost);
|
||||||
// Any replies? Give them the thing :3
|
// Any posts? Give them the thing :3
|
||||||
for (let i of document.getElementsByClassName(NumberOfThreads)) {
|
for (let i of document.getElementsByClassName(NumberOfThreads)) {
|
||||||
let TempID = NumberOfThreads;
|
let TempID = NumberOfThreads;
|
||||||
i.onclick = (event) => {
|
i.onclick = (event) => {
|
||||||
|
@ -173,8 +187,8 @@ async function GetPost() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Because of repeat code, we can put it into it's own function. Hell, more of a thread can be added later.
|
// Because of repeat code, we can put it into it's own function. It grabs posts "above" it.
|
||||||
async function MastodonReplylFunction(Id, post) {
|
async function MastodonThreadFunction(Id, post) {
|
||||||
let OtherPost = await MastodonAPI.GetStatus(post);
|
let OtherPost = await MastodonAPI.GetStatus(post);
|
||||||
let ShitHTML = "<header> <h1 class=\"Handle " + Id + "\"> " + OtherPost.account.acct + "</h1> <h2 class=\"Origin " + Id + "\"> " + website + "</h2> </header> <p class=\"PostText " + Id + "\"></p> <div class=\"Images " + Id + "\"></div> <hr/>";
|
let ShitHTML = "<header> <h1 class=\"Handle " + Id + "\"> " + OtherPost.account.acct + "</h1> <h2 class=\"Origin " + Id + "\"> " + website + "</h2> </header> <p class=\"PostText " + Id + "\"></p> <div class=\"Images " + Id + "\"></div> <hr/>";
|
||||||
document.getElementsByTagName("body")[0].insertAdjacentHTML("afterbegin", ShitHTML);
|
document.getElementsByTagName("body")[0].insertAdjacentHTML("afterbegin", ShitHTML);
|
||||||
|
@ -191,7 +205,25 @@ async function MastodonReplylFunction(Id, post) {
|
||||||
return OtherPost;
|
return OtherPost;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function BlueskyReplyFunction(Id, post) {
|
async function MastodonReplyFunction(Id, post) {
|
||||||
|
let OtherPost = await MastodonAPI.GetStatus(post);
|
||||||
|
let ShitHTML = "<header> <h1 class=\"Handle " + Id + "\"> " + OtherPost.account.acct + "</h1> <h2 class=\"Origin " + Id + "\"> " + website + "</h2> </header> <p class=\"PostText " + Id + "\"></p> <div class=\"Images " + Id + "\"></div> <hr/>";
|
||||||
|
document.getElementsByTagName("body")[0].insertAdjacentHTML("beforeend", ShitHTML);
|
||||||
|
if (OtherPost.spoiler_text != "") {
|
||||||
|
document.getElementsByClassName("PostText " + Id)[0].innerHTML = "WARNING: " + OtherPost.spoiler_text;
|
||||||
|
} else {
|
||||||
|
document.getElementsByClassName("PostText " + Id)[0].innerHTML = OtherPost.content;
|
||||||
|
if (OtherPost.media_attachments.length != 0) {
|
||||||
|
for (let i of OtherPost.media_attachments) {
|
||||||
|
ApplyMedia(i, document.getElementsByClassName("Images " + Id));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return OtherPost;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Because of repeat code, we can put it into it's own function. It grabs posts "above" it.
|
||||||
|
async function BlueskyThreadFunction(Id, post) {
|
||||||
let OtherPost = await BlueskyAPI.GetPosts([post.uri]);
|
let OtherPost = await BlueskyAPI.GetPosts([post.uri]);
|
||||||
OtherPost = OtherPost.posts[0];
|
OtherPost = OtherPost.posts[0];
|
||||||
let ShitHTML = "<header> <h1 class=\"Handle " + Id + "\"> " + OtherPost.author.handle + "</h1> <h2 class=\"Origin " + Id + "\"> " + website + "</h2> </header> <p class=\"PostText " + Id + "\"></p> <div class=\"Images " + Id + "\"></div> <hr/>";
|
let ShitHTML = "<header> <h1 class=\"Handle " + Id + "\"> " + OtherPost.author.handle + "</h1> <h2 class=\"Origin " + Id + "\"> " + website + "</h2> </header> <p class=\"PostText " + Id + "\"></p> <div class=\"Images " + Id + "\"></div> <hr/>";
|
||||||
|
@ -217,6 +249,32 @@ async function BlueskyReplyFunction(Id, post) {
|
||||||
return OtherPost;
|
return OtherPost;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function BlueskyReplyFunction(Id, post) {
|
||||||
|
let OtherPost = await BlueskyAPI.GetPosts([post.uri]);
|
||||||
|
OtherPost = OtherPost.posts[0];
|
||||||
|
let ShitHTML = "<header> <h1 class=\"Handle " + Id + "\"> " + OtherPost.author.handle + "</h1> <h2 class=\"Origin " + Id + "\"> " + website + "</h2> </header> <p class=\"PostText " + Id + "\"></p> <div class=\"Images " + Id + "\"></div> <hr/>";
|
||||||
|
document.getElementsByTagName("body")[0].insertAdjacentHTML("beforeend", ShitHTML);
|
||||||
|
Text = BlueskyAPI.ApplyFacets(OtherPost.record, OtherPost.record.text);
|
||||||
|
Text = Text.replace(/\r?\n|\r/g, "<br/>");
|
||||||
|
// Sensitive topic :3
|
||||||
|
if (OtherPost.record.hasOwnProperty("labels") && OtherPost.record.labels.length != 0) {
|
||||||
|
document.getElementsByClassName("PostText " + Id)[0].innerHTML = "LABELS APPLIED: ";
|
||||||
|
for (let lab of OtherPost.value.labels.values) {
|
||||||
|
document.getElementsByClassName("PostText " + Id)[0].innerHTML += lab.val + " ";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
document.getElementsByClassName("PostText " + Id)[0].innerHTML = Text;
|
||||||
|
if (OtherPost.record.hasOwnProperty("embed")) {
|
||||||
|
ApplyMedia(OtherPost.record.embed, document.getElementsByClassName("Images " + Id)[0], OtherPost.author.did);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Get the reply and make it make sense.
|
||||||
|
if (OtherPost.record.hasOwnProperty("reply")) {
|
||||||
|
OtherPost.reply = OtherPost.record.reply;
|
||||||
|
}
|
||||||
|
return OtherPost;
|
||||||
|
}
|
||||||
|
|
||||||
// Applyers. Essentially applies a thing to an operation.
|
// Applyers. Essentially applies a thing to an operation.
|
||||||
// Finds any associated media and applies it to the post.
|
// Finds any associated media and applies it to the post.
|
||||||
async function ApplyMedia(Media, Element, Author = undefined) {
|
async function ApplyMedia(Media, Element, Author = undefined) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue