Dear Calckey community, here's my first Plugin I'm introducing this week. You've already seen me talk about it. Try it out for yourself!
The Highlighter Plugin will take a specific word or short phrase and highlight it throughout your timelines. You can customize the colors and turn a sparkle effect off or on.
One thing I'm not sure about is where to store these plugins for public use. They are pretty long to add to a note. Maybe a Calckey page? Most likely they will end up in a git repo, but that's not very user friendly.
Calckey Plugins are an overlooked component of the platform. Mostly because documentation is scarce about them. No more! Here's my first post in a series on plugins, introducing the concept and providing a guide to ensure users can make informed decisions about installing plugins they find in the community....
Listen, do you have lists of lists? Listless for efficiency? The Lister Calckey plugin is made for you. Quickly add users to a list right from a note in just two clicks and improve your efficiency quotas by…some large boring amount. Or just try it for fun....
Finishing up my Calckey Plugins week with a fun one. MFM (Misskey Flavoured Markdown) is quite an expressive art form and a great entry to coding, math, and styling (but having fun and not realizing your'e learning something) 🤫
Here I've created a plugin generator, which writes the AiScript code based on a few pieces of information provided by a user in a form.
extremely meh workaround if your #CalcKey / #FireFish timeline keeps jumping around every time you click on a post:
switch to deck layout
set default navigation method to "open in new window"
now every time you click on a post it'll open up as a psuedo-popup that you can then maximize. and that popup doesn't touch your timeline at all, meaning it'll stay where it is in the background
i wish there was a way to automatically maximize windows. maybe #AiScript can take care of that? no idea
Tonight, I'm introducing a new Calckey Plugin (my first release)!
The Highlighter Plugin will take a specific word or short phrase and highlight it throughout your timelines. You can customize the colors and turn a sparkle effect off or on.
Are your Calckey lists listless? Do you yearn for 25% productivity gains in your everyday Calckey usage? Probably not, but my latest plugin may still be worth a look.
Add accounts to your favorite lists in just two clicks, directly from the timeline. 🖱 Setup is..a thing..but once it's done you're golden.
Does anyone writing #Misskey / #Sharkey Plays (coded in #AiScript) know how to set the privacy/visibility setting of the form in Ui:C:postFormButton? I know I can set a content warning with cw, but I have no idea about setting the default visibility of the note generated by the Play. :Blobhaj_Thinking:
I plan to crudely recreate the "poking" function back in the good 'ol days of #Facebook. What I have in mind is, the user inputs the handle of the user, and then generates a note with Direct visibility to the target handle, a CW containing I poked you! Click to see how to poke back, and then of course the text containing whatever instructions I would write. Shouldn't be too complicated I think.
Sooo I'm sitting in a hotel room kind of bored, decided to poke around with Calckey Pages and AiScript.
I'm not 100% sure this is going to work for y'all...but...try this out. It SHOULD list your own pages that you've created. Right now, there's a bug in Calckey where the pages kind of disappear 👻 after you save.
Would love to know what forgotten trash or treasures you find if it does work! I need some entertainment. 🗑️ 💎
I'm intrigued with #Calckey and #AiScript and have been collecting some information I've found about it around here and there. I have a very muddy idea of the history - can someone help out here?
I see ways to grab data from the Calckey API and use it in AiScript...it's cool...all kinds of interesting things to dream about with that.
But - IS there anyway to utilize it right now? I looked in pages but that doesn't seem to work for me or I'm doing it wrong. Seems like it's the programming language for plugins, too.
My guesses at AiScript history
Misskey had AiScript
Calckey forked from Misskey
Misskey seems to be moving AiScript from Pages to an area called "Misskey Play".
Maybe there is some security concerns or the language isn't well supported now...
What's the future of AiScript for #Calckey? It's so fun to tinker with this stuff.
So I got a code idea stuck in my head and couldn't let it go. I wanted to learn how to create a #Calckey client side plugin using #AiScript. I didn't know what I was getting myself into. 😅 But I did it! Will write up a blog entry soon and share the code.
The plugin highlights and sparkles a specific phrase you identify within all posts, making it easier to identify when a specific topic is being discussed within your timeline.
Continuing my dive into Calckey's Plugins with a "Share to Mastodon" action item. Using the plugin framework, I can add new menu items to various parts of the Calckey UI. And then open a new window to my generated url.
An interesting aspect is that the framework allows access to the Calckey API. Check the end of the post for the developer details if you're so inclined.
This Calckey Plugin allows you to highlight a word or simple phrase in your feed to grab your attention. It adds a background an an optional sparkle effect to the phrase. A single word or short phrase works best.
I wondered what´s "AiScript" in the settings and whether it has anything to do with Artificial Intelligence. Yeah, laugh at me all you want, I laugh with you! 😉
@youronlyone@Catonauts Also kind of off topic but when I was trying to learn the basics of #AiScript and having no luck, I gave in and tried ChatGPT to see what it knew about it. Which was a very confident nothing. I tried feeding it the documentation first and then asking questions but it spit out JavaScript mostly.
Didn't get quite as far as I wanted with a #Calckey#AiScript plugin tonight, but I'm close! This plugin will intake a phrase, then set a background and sparkle effect on the phrase in posts where it is found.
Presenting: Quick send, a Misskey (and forks) plugin! (Tested in Sharkey)
This plugin lets you quickly send notes to select users! :blobcat_spin:
It works by adding users to a send list. Simply click the 3 dots on their profile (either on their profile page, or in the on hover preview), and at the very bottom you'll see an option to add them (or remove them).
Then, on any note, click on the 3 dots, and at the bottom you'll have a button for each user you've added. :neocat_bongo_down:
There are also options for clearing the list, and in the plugin's settings you can tell it to ask for confirmation, or to show a success dialog box.
To install go to settings > plugins > install and paste the source code:
/// @0.18.0
// This is licensed under MIT
### {
name: "Quick send"
version: "1.0.1"
author: "@linuxenjoyer@blahaj.zone"
description: "Send a note to your besties quickly"
permissions: [ "write:notes" ]
config: {
show_success: {
type: "boolean"
label: "Show success dialog"
description: "Makes a dialog pop up saying that it was sent. I'm not exactly sure how to do error handling, this is more to make sure the plugin didn't randomly crash."
default: false
}
ask_confirmation: {
type: "boolean"
label: "Ask for confirmation"
description: "Asks you if your really want to send the post."
default: false
}
}
}
@save(obj) {
Mk:save("user_send_list", obj)
}
@load() {
var ls = Mk:load("user_send_list")
if (ls == null) {
save({})
ls = {}
}
ls
}
// Simple function to format a username
@formatUsername(user) {
var username = `@{user.username}`
if (user.host != null) {
username = `{username}@{user.host}`
}
username
}
@sendNote(note, userId) {
// This is based on blahaj.zone's api-doc (sharkey)
let res = Mk:api("notes/create" {
visibility: "specified"
renoteId: note.id
visibleUserIds: [ userId ]
})
// TODO: Figure out error handling
true
}
@getAction(username, userId) {
@(note) {
var should_send = !Plugin:config.ask_confirmation
if (!should_send) {
should_send = Mk:confirm(`Send post to {user}?` "" "question")
}
if (should_send) {
let ok = sendNote(note, userId)
// This is a little ugly but idrk how to tidy it up
if (ok) {
if (Plugin:config.show_success) {
Mk:dialog(`Sent note to {username}`, "", "success")
}
} else {
Mk:dialog(`There was an error sending the note to {username}`, "", "error")
}
}
}
}
// Underscores bc it's in global scope
let __ls = load()
each (let usr, Obj:keys(__ls)) {
Plugin:register_note_action(`Send to {usr}`, getAction(usr, __ls[usr]))
}
Plugin:register_user_action("Add user to send list", @(user) {
let username = formatUsername(user)
let ls = load()
if (ls[username] != null) {
Mk:dialog(`{username} is already on the send list`, "", "error")
} else {
ls[username] = user.id
save(ls)
Mk:dialog(`Added {username} to the send list!`, "You might have to refresh to see the changes", "success")
}
})
Plugin:register_user_action("Remove user from send list" @(user) {
let username = formatUsername(user)
let ls = load()
if (ls[username] == null) {
Mk:dialog(`{username} is not on the send list`, "", "error")
} else {
ls[username] = null
save(ls)
Mk:dialog(`Removed {username} from the send list!`, "You might have to refresh to see the changes", "success")
}
})
Plugin:register_note_action("Clear user send list" @(note){
if (Mk:confirm("Are you sure you want to clear the list?", "There's no way to undo this", "warning")) {
save({})
Mk:dialog("List cleared", "You might have to refresh to see the changes", "success")
}
})
Plugin:register_user_action("Clear user send list" @(user){
if (Mk:confirm("Are you sure you want to clear the list?", "There's no way to undo this", "warning")) {
save({})
Mk:dialog("List cleared", "You might have to refresh to see the changes", "success")
}
})
It'll ask for permissions to create notes (it needs this to be able to send stuff) :blobcat_code:
If you found it useful or have feature ideas/patches let me know :neocat_melt_reach:
I wish #AiScript was documented somewhere. The play stuff would be a lot easier to work with if I had any idea what functions, syntax, and parameters were without having to look at other plays and guess.
Understanding Calckey Plugins (box464.com)
Calckey Plugins are an overlooked component of the platform. Mostly because documentation is scarce about them. No more! Here's my first post in a series on plugins, introducing the concept and providing a guide to ensure users can make informed decisions about installing plugins they find in the community....
Lister for Calckey (box464.com)
Listen, do you have lists of lists? Listless for efficiency? The Lister Calckey plugin is made for you. Quickly add users to a list right from a note in just two clicks and improve your efficiency quotas by…some large boring amount. Or just try it for fun....
The Highlighter Plugin for Calckey (box464.com)
This Calckey Plugin allows you to highlight a word or simple phrase in your feed to grab your attention. It adds a background an an optional sparkle effect to the phrase. A single word or short phrase works best.