- Move the build and application information to the internal info
package.
- Move the user agent and redirect URI string to the internal client
package.
- Created generic Error types to remove the need to import the errors
package.
- Used the generic Error types in place of the single use custom Error
types that have no fields.
- Created new Error types where necessary.
PR: #50
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
Summary:
- Created a custom CLI schema for Enbas which will act as the Source
of Truth for code and document generation.
- Created a code generator which uses the schema to generate the
executor definitions and code in the internal usage package.
Changes:
- Created the Enbas CLI schema as the Source of Truth for Enbas.
- Created the code generator that generates the executor
definitions and code in the usage package.
- Regenerated the executor definitions using the code generator.
- Moved the custom flag value types to the new internal flag
package.
- Created a new flag value type for the bool pointer to replace the
flag.BoolFunc() used for the sensitive and no-color flags.
- Moved the version and build variables to the new internal version
package to simplify the version executor.
- Created a new usage package and moved the usage functions there.
- Changed the type of the account-name flag from string to the
internal StringSliceValue type.
- 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.
This commit adds integration to external image viewers and video players
to allow users to view image and video attachments.
Enbas creates a cache directory where the media is downloaded to before
opening the external program for viewing.
Users can view one or more media attachments from a single status.
Now that muting and unmuting accounts are now supported in GoToSocial
(as of version 0.16.0) Enbas can now allow users to do that.
Users can also see a list of accounts that they've muted.
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.