Draftodon - a Drafts Action Group for Mastodon

Over the last few weeks I have been developing an Action Group to integrate Drafts with Mastodon.

The Action Group should be easy to use and allows you to post or schedule different types of statuses to Mastodon, and includes some helpers for composing posts. You can also reschedule or delete scheduled posts.

Like Draftist and the inspiration from @sylumer’s TADpole / ThoughtAsylum Drafts Library, I implemented this using a javascript file with all the underlying functions and then built the Actions from it.

You can download the Action Group from the Drafts Directory here: Draftodon Action Group

The code and all Action descriptions and instructions are hosted in the GitHub repository here: Draftodon GitHub repository

Make sure you run the Draftodon Setup/Update Action after downloading the Action Group and install the Draftodon.js file.

To start using it, all you need to do is configure your Mastodon instance and user handle in the Draftodon Settings Action, but I suggest to read through the instructions first

If you have any problems setting it up or using it, please let me know.

Also, if you have other use-cases you would like to see in Draftodon, I would be interested to hear about them and try to include them in future versions.

I hope Draftodon is a helpful tool for you and speeds up many of your workflows and processes.

Let me know what you think :slight_smile:

6 Likes

I released v. 1.1

:bug: showCharacterLimit issue fixed (the limit indicator was added multiple times)
:new: visibility added as optional parameter for publishing functions (defaults to “public”)

How to Update:

Update The ActionGroup:
Since I made changes to the Actions themselve, please update the Action Group itself.
Run the “Draftodon Setup / Update” Action and select “Update Draftodon Action Group”

If you don’t want to reconfigure the Draftodon Settings and e.g. insert Mastodon handle Actions - simply delete the new ones and move the ones from the previous version into the newly installed Action Group.

Update the JavaScript File
Run the “Draftodon Setup / Update” Action again and select “Setup / Update Draftodon.js”

You should be ready to go and use the new features :slight_smile: If you miss anything in Draftodon please let me know!

I’m not able to get this working.

I’ve gone through the installation (both in 1.0 and 1.1) and updated the variables for instance and handle and updated the .js script.

I even removed everything and started fresh.

When I try to run the “Post to Mastodon” action, I get a file save dialog

Also, when I try to “schedule draft”

I get “Action Not Found” - “The action specified by the include action step cannot be found”

I am a relatively new pro user, so are there any dependencies or steps that I may have missed?

Hi @Greg sorry that you’ve got issues setting this up…

can you do the following steps to cleanup your installation first and then install it again with some confirmation steps:

  1. remove all Action Groups named Draftodon from Drafts (go to Manage Actions and delete all of them) - and ensure that you don’t have any Actions installed from Draftodon (e.g. use the search for “Draftodon” nothing should appear)
  2. go to iCloud Drive/Drafts/Library/Scripts and delete the file “Draftodon.js”

This should clean your installation - and hopefully its not synced back to your device.

  1. install the latest version of Draftodon from the directory: Draftoton | Drafts Directory
    and ensure that it looks like this in your Drafts Installation:

  2. run the Draftodon Setup / Update Action and select “Setup / Update Draftodon.js”

  3. go to iCloud Drive/Drafts/Library/Scripts and check if the file “Draftodon.js” exists.

now you should be able to e.g. use the “post draft” action


The “Action Not Found” issue was my bad but it should be fixed for all Actions now so this should not occur anymore.

If never seen a file save dialog (and only the Setup Action stores the Draftodon.js file in your directory, other files are not used)

let me know if going through this helped :slight_smile:

That did it. Thanks!!! It was driving me nuts and except for deleting the .js script, was what I had done in the past. You should have received an @mention from me on masto.

Glad it works now!
I have no idea what has happened to you… but sometimes software is weird :smiley:

I am using Ventura and downloaded Draftodon. I followed the instruction to run the Action “Draftodon Setup/Update” and have checked that the Draftodon.js is downloaded. But when I clicked “Draftodon Setting” Action, nothing happened. No prompt or anything. I deleted the Action group and .js file and start over and nothing happened.

I also tried in iOS as well and couldn’t configure the Mastodon instance. Any idea?

Is there some permission I need to give to run .js files?

You need to edit the Draftodon Settings action.
There you’ll find a few „define template“ steps to e.g. define your mastodon instance.

Don’t change the name of the template tags, change the content. E.g. for the mastodon instance you need to change the „UNDEFINED“ into e.g. „mastodon.social“

Running the settings action does not display anything - this action is used in many other actions to avoid having to type it into every action again

1 Like

I don’t see any mention of this in the setup instructions. Where is that explained.

Might it be better to use credentials to store this sort of data?

I wonder if you could also support multiple sets?

Everywhere I’ve seen it mentioned, it has been referred to as “Draftodon”, except for in the directory and subsequently when installed into Drafts, where its actual name shows as “Draftoton”. Is this intentional, or a typo?

2023-02-18-17.19.06@2x

added it to the instructions - thanks. Was on my list to improve anyways :slight_smile:

I use credentials to store the data but somewhere the user needs to define the instance so Drafts can authenticate and store the corresponding credential.
The mastodon instance and user handle is not sensitive :wink:

I have this on my next steps list. It should work already but that’s difficult to set up and I want to improve that.

Thanks for the typo mention :joy: I’ll try to fix that :man_facepalming:t3:

Data stored in credentials does not have to be only for sensitive information.

The other template tags in the settings are defaulted configuration for operation, but the handle & instance seem to be data for the user’s account, which are data for use in authentication, and so even fit within the general description for the intended purpose of credentials.

Credentials are service tokens and authentication information stored by Drafts for reuse.

If you included them as credential data, you could then prompt for it on first run. Switching accounts I think (I have not fully worked through the code required) should then come down to having the actions written to reference accessing a particular named set of credentials.

Just a suggestion in the hope that it might save you some future headaches.

Yes I guess you’re right @sylumer - I could just ask for the credentials when running one of the actions the first time… could really ease a few things up :+1:t3:

Thanks for the suggestion

What is Mastodon handler? I don’t think it’s just my email as there’s no where I have to key in my password nor do I see a prompt from Mastodon to allow a 3rd party app to connect. So, I’m still stuck after editing the Draftodon Settings (sorry for the trouble but I’m not understanding how to proceed)

This is from the action description of the Draftodon settings action:

Mastodon instance & handle

  • mastodon_instance: your mastodon instance e.g. mastodon.social; Default: UNDEFINED
  • mastodon_handle: your mastodon user handle on the defined instance e.g. @FlohGro for @FlohGro@mastodon.social; Default: UNDEFINED

So if you are on the instance mastodon.social and your handle there would be „belgarion“ then you would use „mastodon.social“ as mastodon_instance and „@belgarion“ as user handle.

The user handle is not that important right now it just identifies the credential that draft stores…

You will see a prompt to authenticate with mastodon when you run the first action that needs them. You can e.g. run the action „show scheduled posts“ and it will ask you to authenticate - nothing will be posted to your account with this action

Thanks. I edit and didn’t work.
I had to delete the Action Group, re-download it (and I see you put examples into the template, instead of UNDEFINED, thanks for that!!). After the re-download, it works like a charm! Thanks.

1 Like

I updated my Drafts Action Group „Draftodon“ to use Drafts with Mastodon

New in this version:

:person_juggling:t3: multiple accounts support
You can now use Draftodon with multiple Mastodon accounts! Just follow the instructions provided in the repository to set it up: Draftodon/Draftodon Instructions.md at main · FlohGro-dev/Draftodon · GitHub

Don’t have multiple accounts? you won’t notice any difference :+1:

:leftwards_arrow_with_hook: reply to status action
Do you want to write a response in Drafts because you need to think about it for a bit or just to don’t get lost in your timeline?
Simply paste the URL of the status into the first line of the draft, write your response, and run the action. It’s that easy!

and some :pinching_hand:t3: minor improvements for authentication issues

:link: Download and Installation

  • temporarily save your settings of the “Draftodon Settings” action in a draft
  • Update your Action Group (or download it the first time) from the Action Directory Draftodon | Drafts Directory
  • run the “Draftodon Setup/Update” action and select “Setup/Update Draftodon.js” which will update the JavaScript file in your Scripts folder
  • Reconfigure your settings and you’re ready to go

I’d also love to hear your feedback and suggestions for future updates. Feel free to open an issue on our GitHub repository, reach out on Mastodon or reply here i n this thread.