From 8c386c67014e7e0324c70e357e26c64a2e895300 Mon Sep 17 00:00:00 2001 From: CatAClock Date: Fri, 30 May 2025 17:06:06 -0700 Subject: [PATCH] fuck man tags good enough --- JS/BlueskyAPI.js | 10 +++++++--- JS/MastodonAPI.js | 2 +- JS/post.js | 40 ++++++++++++++++++++++++++++++++-------- 3 files changed, 40 insertions(+), 12 deletions(-) diff --git a/JS/BlueskyAPI.js b/JS/BlueskyAPI.js index 0fe93a7..78422e5 100644 --- a/JS/BlueskyAPI.js +++ b/JS/BlueskyAPI.js @@ -115,7 +115,7 @@ export async function GetRecord(Repo, Collection, RKey) { // Creators // This creates a post. Requires the DID of the account and the Text for the record. -export async function CreatePost(DID, Text, ContentWarning = undefined, ReplyID = undefined, RootID = undefined) { +export async function CreatePost(DID, Text, ContentWarning = undefined, Tags = [], ReplyID = undefined, RootID = undefined) { if (Token == null) { return ""; } @@ -146,15 +146,19 @@ export async function CreatePost(DID, Text, ContentWarning = undefined, ReplyID } }; } + // Tags + if (Tags.length != 0) { + Record.tags = Tags; + } let body = await CreateRecord(DID, "app.bsky.feed.post", Record, undefined); if (body.hasOwnProperty("error") && body.error == "InvalidRequest") { let matches = body.message.match(/(\d+)/); Record.text = Text.slice(0, matches[0] - 1); body = await CreateRecord(DID, "app.bsky.feed.post", Record, undefined); if (ReplyID != undefined && RootID != undefined) { - await CreatePost(DID, Text.slice(matches[0] - 1, Text.length), ContentWarning, body, body); + await CreatePost(DID, Text.slice(matches[0] - 1, Text.length), ContentWarning, Tags, body, body); } else { - await CreatePost(DID, Text.slice(matches[0] - 1, Text.length), ContentWarning, body, RootID); + await CreatePost(DID, Text.slice(matches[0] - 1, Text.length), ContentWarning, Tags, body, RootID); } } return body; diff --git a/JS/MastodonAPI.js b/JS/MastodonAPI.js index 2ff7395..ae3b1c2 100644 --- a/JS/MastodonAPI.js +++ b/JS/MastodonAPI.js @@ -126,7 +126,7 @@ export async function CreateStatus(Text, Visibility = "public", SpoilerText = un request = fetch(enFetchThing, {method: "POST", headers: {"Authorization": TokenType + " " + Token}}); body = await request.then((response) => response.json()); if (ReplyID != undefined) { - await CreateReplyStatus(Text.slice(matches[0] - 1, SpoilerText, Text.length), Visibility, body.id); + await CreateReplyStatus(Text.slice(matches[0] - 1, Text.length), Visibility, SpoilerText, body.id); } } return body; diff --git a/JS/post.js b/JS/post.js index edd3040..c470b00 100644 --- a/JS/post.js +++ b/JS/post.js @@ -33,7 +33,18 @@ async function Post() { // Mastodon posting. if (localStorage.getItem(Variables.MastodonAccessToken) != null) { let TempVisible; - let TempText = Text + "

" + TagsInputArea.value; + // Adding tags + let TempText = Text + "

"; + let Tags = TagsInputArea.value.split(";"); + for (let i of Tags) { + while (i[0] == " ") { + i = i.substring(1, i.length); + } + if (i[0] != "#") { + i = "#" + i; + } + TempText += i + " "; + } switch(Visible) { case "Public": TempVisible = "public"; @@ -60,7 +71,7 @@ async function Post() { return; } else if (website == "All") { if (WarningInputArea.value == "") { - await MastodonAPI.CreateStatus(TempText, TempVisible); + await MastodonAPI.CreateStatus(TempText, TempVisible, undefined); } else { await MastodonAPI.CreateStatus(TempText, TempVisible, WarningInputArea.value); } @@ -69,6 +80,19 @@ async function Post() { // Bluesky posting. if (localStorage.getItem(Variables.BlueskyAccessToken) != null) { let TempVisible; + // Adding tags + let Tags = TagsInputArea.value.split(";"); + let TagsTemp = []; + for (let i of Tags) { + while (i[0] == " ") { + i = i.substring(1, i.length); + } + if (i[0] != "#") { + i = "#" + i; + } + TagsTemp.push(i); + } + Tags = TagsTemp; switch(Visible) { case "Public": TempVisible = undefined; @@ -87,16 +111,16 @@ async function Post() { let Post; if (JSON.parse(localStorage.getItem("post")).hasOwnProperty("reply")) { if (WarningInputArea.value == "") { - Post = await BlueskyAPI.CreatePost(localStorage.getItem(Variables.BlueskyDID), Text, undefined, JSON.parse(localStorage.getItem("post")).post, JSON.parse(localStorage.getItem("post")).reply.root); + Post = await BlueskyAPI.CreatePost(localStorage.getItem(Variables.BlueskyDID), Text, undefined, Tags, JSON.parse(localStorage.getItem("post")).post, JSON.parse(localStorage.getItem("post")).reply.root); } else { - Post = await BlueskyAPI.CreatePost(localStorage.getItem(Variables.BlueskyDID), Text, WarningInputArea.value, JSON.parse(localStorage.getItem("post")).post, JSON.parse(localStorage.getItem("post")).reply.root); + Post = await BlueskyAPI.CreatePost(localStorage.getItem(Variables.BlueskyDID), Text, WarningInputArea.value, Tags, JSON.parse(localStorage.getItem("post")).post, JSON.parse(localStorage.getItem("post")).reply.root); } await BlueskyAPI.CreateThreadGate(localStorage.getItem(Variables.BlueskyDID), Post.uri, TempVisible); } else { if (WarningInputArea.value == "") { - Post = await BlueskyAPI.CreatePost(localStorage.getItem(Variables.BlueskyDID), Text, undefined, JSON.parse(localStorage.getItem("post")).post, JSON.parse(localStorage.getItem("post")).post); + Post = await BlueskyAPI.CreatePost(localStorage.getItem(Variables.BlueskyDID), Text, undefined, Tags, JSON.parse(localStorage.getItem("post")).post, JSON.parse(localStorage.getItem("post")).post); } else { - Post = await BlueskyAPI.CreatePost(localStorage.getItem(Variables.BlueskyDID), Text, WarningInputArea.value, JSON.parse(localStorage.getItem("post")).post, JSON.parse(localStorage.getItem("post")).post); + Post = await BlueskyAPI.CreatePost(localStorage.getItem(Variables.BlueskyDID), Text, WarningInputArea.value, Tags, JSON.parse(localStorage.getItem("post")).post, JSON.parse(localStorage.getItem("post")).post); } await BlueskyAPI.CreateThreadGate(localStorage.getItem(Variables.BlueskyDID), Post.uri, TempVisible); } @@ -107,9 +131,9 @@ async function Post() { } else if (website == "All") { let Post; if (WarningInputArea.value == "") { - Post = await BlueskyAPI.CreatePost(localStorage.getItem(Variables.BlueskyDID), Text); + Post = await BlueskyAPI.CreatePost(localStorage.getItem(Variables.BlueskyDID), Text, undefined, Tags); } else { - Post = await BlueskyAPI.CreatePost(localStorage.getItem(Variables.BlueskyDID), Text, WarningInputArea.value); + Post = await BlueskyAPI.CreatePost(localStorage.getItem(Variables.BlueskyDID), Text, WarningInputArea.value, Tags); } await BlueskyAPI.CreateThreadGate(localStorage.getItem(Variables.BlueskyDID), Post.uri, TempVisible); }