I went with two spaces before and after but feel free to change that
to whatever! Having the visibility printed this way is pretty useful
for us who mostly read posts through the CLI.
Some mastodon implementations (GoToSocial) will return `version: ""`, in
which case checking for the major version won't work.
This is why an extra check has to be added, and default to 0 as the
"major" version.
Add new [E]dit command to the timeline: opens an existing toot to allow
editing it. Since this is more or less the same operation as posting a
new toot, extend the StatusComposer view to support this rather than
implementing a new view.
Add a new api method, fetch_status_source(), to implement the
/api/v1/statuses/{id}/source endpoint used to fetch the original post
text.
Continue to display 'Marked as sensitive' in the toot view even after
the CW has been opened. This matches the behaviour of other clients,
and is useful to see because it might affect whether you want to boost
the toot or not (for example).
Mastodon allows the user to configure a default visibility which should
apply to all clients. This setting is returned by the
/api/v1/preferences method.
Fetch the user preferences when the TUI starts, and use it to set the
default visibility when composing a new toot. The preference can be
overridden by a new command-line option, toot tui --default-visibility=.
If neither the preference nor the option are set, fall back to
get_default_visibility().
When viewing a toot which has been edited, show the edit date.
While here, fix a bug where the '*' edit marker in the timeline wouldn't
show for retoots because it was checking the retoot status instead of
the original status.
In some fonts, "⤶" (U+2936 ARROW POINTING DOWNWARDS THEN CURVING
LEFTWARDS) may be a double-width character. To avoid a display glitch
where this overlaps with the boosted icon, print a space after it.