This commit adds support for muting and unmuting statuses. When viewing
a status the user can now see whether they've muted the status or not.
A status can only be muted by the user if they own it or are mentioned
in it.
PR: apollo/enbas#47Resolves: apollo/enbas#46
Summary:
This commit updates and enhances poll interaction. From now on users
will interact with a poll via the status that contains it. Direct
interaction with the poll (via the poll's ID) is no longer supported.
This helps resolve an issue where it wasn't possible to find the owner
of the poll when interacting with it directly.
Changes:
- Users can no longer view a poll directly using the Poll ID.
Instead polls can be viewed when viewing statuses or timelines.
- More details about a poll is shown in statuses and timelines.
- Votes are now added to polls via statuses.
- Poll results are hidden unless the following conditions are met.
- The user is the owner of the poll.
- The poll has expired.
- The user has already voted in the poll.
- Enbas can now detect and stop a poll owner from voting in their own
poll.
- When a status is created Enbas will now only print the ID of the
created status instead of the whole thing.
PR: apollo/enbas#43Resolvesapollo/enbas#39
- Show whether a status is a boost, a reply to another status or a
normal post.
- Move the "Created At" field to a new line.
- Show the date and time when a status was boosted.
Improve how ordered and unordered lists are displayed within the
contents of a status by adding indentation when a list item is wrapped.
Changes:
- fix: improve how ordered and unordered lists are displayed in status
and status list views.
- fix: improve how media attachments are displayed in status list views.
- refactor: move the line wrapping and HTML converting functions from
utilities to the internal printer package.
- refactor: the convertHTMLToText now (optionally) applies line
wrapping after conversion.
Add a new internal printer package for printing resources to the screen
or pager.
With the new printer in place, most of the settings such as the pager
command, colour theme, whether or not colour output is disabled, etc
are defined in one place which saves us the trouble of passing an
increasing number of parameters to an increasing number of Display
methods throughout the code base.
The old Displayer interface and associated Display methods in the
model package are removed as this is now handled by the printer.
The format functions in the utilities package has essentially been
rewritten as methods to the Printer type.
Additional changes:
- All indentation when displaying information about resources (e.g.
statuses, instance, accounts) are removed.
- The application's build information now has colour output.