Compare commits

...
Sign in to create a new pull request.

1 commit
main ... main

View file

@ -1,9 +1,9 @@
/// @ 0.19.0
### {
name: "Headmate Hopper"
version: "1.1.0"
author: "@bunnybeam@transfem.social"
description: "Adds a tag containing the name of the selected headmate to the end of all new posts."
version: "1.1.1"
author: "@bunnybeam@transfem.social, @Chloe@catwithaclari.net"
description: "Adds a tag containing the name of the selected headmate to the end of all new posts. Chnages the default like emoji depending on the headmate."
permissions: ["read:account", "write:account"]
config: {
headmates: {
@ -12,6 +12,18 @@
description: "List of headmate names. Separate with commas."
default: "Headmate 1, Headmate 2"
}
default_likes: {
type: "string"
label: "Default Like Emoji list"
description: "Default like emoji for each headmate. Make sure they're in the same order as the headmates! There must be an emoji for every headmate."
default: ":neocat_heart:, :neofox_heart:"
}
default_like: {
type: "string"
label: "Default Like Emoji"
description: "Like emoji to defualt to when headmate is cleared."
default: "❤️"
}
change_name: {
type: "boolean"
label: "Change display name"
@ -85,6 +97,16 @@
return new_list
}
@get_emoji_list() {
let raw_list = Plugin:config.default_likes.split(",")
let new_list = []
each let name, raw_list {
new_list.push(name.trim())
}
return new_list
}
// Check if `text` already contains the headmate tag
@already_tagged(text) {
return text.incl(make_tag_from_name(headmate_name))
@ -120,6 +142,21 @@
return true
}
// Attempt to change defualt emoji. Returns true if successful, false if otherwise.
@change_like_emoji(emoji) {
// Attempt to change emoji
let write_res = Mk:api("i/registry/set", {key: "like", value: emoji, scope: ["client", "base"], domain: "System"})
if write_res != null {
var message = "An unknown error occurred when attempting to edit the default like emoji."
if write_res.info.code == "PERMISSION_DENIED" {
message = "The 'Edit account information' permission must be enabled in order to change your default like emoji."
}
Mk:dialog("Error setting default emoji", message, "error")
return false
}
return true
}
// Select a new headmate name
@select_headmate_name(name) {
if Plugin:config.change_name {
@ -178,16 +215,21 @@ Plugin:register_note_post_interruptor(@(note) {
})
// Register post form actions for each headmate
each let name, get_headmate_list() {
Plugin:register_post_form_action(`Switch to {name}`, @(note, rewrite) {
for (let i, get_headmate_list().len) {
let name = get_headmate_list()[i]
let emoji = get_emoji_list()[i]
Plugin:register_post_form_action(`Switch to {name} {emoji}`, @(note, rewrite) {
select_headmate_name(name)
change_like_emoji(emoji)
if Plugin:config.switch_notif {
Mk:dialog("Switched headmate", `Switched headmate to "{name}".`, "success")
Mk:dialog("Switched headmate", `Switched headmate to "{name} with emoji {emoji}".`, "success")
}
})
}
Plugin:register_post_form_action("Clear headmate", @(note, rewrite) {
select_headmate_name("")
change_like_emoji(Plugin:config.default_like)
if Plugin:config.switch_notif {
Mk:dialog("Switched headmate", "Cleared the current headmate.", "success")
}