Commit graph

27 commits

Author SHA1 Message Date
67067c3463
add missing headers 2024-06-21 23:03:23 +01:00
d77e12df70
add an error for unspecified programs 2024-06-21 22:51:41 +01:00
d933a2dc09
open one or more media attachments 2024-06-21 09:04:46 +01:00
96cf748874
moved download func over to client 2024-06-20 12:31:14 +01:00
cf3b08e726
checkpoint: can now open images from an image viewer 2024-06-20 12:31:14 +01:00
a4872dff46
checkpoint: can now download media from instance 2024-06-20 12:31:14 +01:00
ccdd8b6530
fix: add a new internal printer
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.
2024-06-17 18:59:20 +01:00
b48fac3341
fix: filter out emojis with underscores
When displaying the username also filter out the emojis with
underscores.
2024-06-09 17:24:07 +01:00
db16e4aa16
feat: add pager support
Add support for printing the output of timelines, long statuses, etc to
an external pager of the user's choice.
2024-06-09 15:58:10 +01:00
64ecc90499
refactor: add FullDisplayNameFormat
Add the FullDisplayNameFormat as a replacement for DisplayNameFormat for
displaying the full display name. It uses the builder from the strings
package to reduce the use of fmt.Sprintf.
2024-06-04 20:29:19 +01:00
8e4da7f827
fix: resolve index out of range bug in word wrap
Resolved the index out of range [-1] bug from the word wrap function
by checking the cursors' positions before evaluating the preceding
character.
2024-06-02 14:06:49 +01:00
c6c711c29b
fix: update error handling
Changes:

- Move InvalidListRepliesPolicyError, InvalidTimelineCategory,
  InvalidStatusVisibility and InvalidStatusContentTypeError type to the
  model package.
- Clean up some code in regards to the parsing of the Enum types.
- Clean up the error messages sent back to the user.
- Use colons instead of semicolons when unwrapping error messages.
- Print errors to Standard Error (os.Stderr)
2024-06-02 11:35:43 +01:00
c05cce9154
chore: make the project REUSE compliant 2024-06-02 07:53:13 +01:00
6a799ff5ac
fix: parse HTML lists within a status
Updated the ConvertHTMLToText function to properly parse and convert
both ordered and unordered lists to plain text.
2024-06-01 08:29:45 +01:00
bff1eba972
feat: add NO_COLOR support
Add support for disabling ANSI colour output via the --no-color flag
or the NO_COLOR environment variable. The suggested implementation was
inspired by the standards defined at no-color.org
2024-05-31 21:18:11 +01:00
ca48d1bfce
feat: post a status from a file
Allow users to post a status from a file using the --from-file flag.
If both --content and --from-file flags are used then the --content
flag takes precedence.
2024-05-31 04:18:34 +01:00
e73dbb45ed
feat: add more browser support
Add support for opening links for accounts and statuses in a user's
favourite web browser.

Changes:

- Add browser support if the BROWSER environment variable is set.
- Add support for viewing accounts in the browser.
- Add support for viewing statuses in the browser (if they are publicly
  viewable)
2024-05-29 22:23:51 +01:00
a7e72ac2c4
chore: split utility functions
Split utility functions into separate files.
2024-05-29 18:33:16 +01:00
b89c0358f4
fix: resolve infinite loop issue in wrapLine fn
The wrap line function breaks a line at the position of the last
white space before reaching the line limit, however sometimes a single
word (e.g. a very long url) exceeds the character limit itself which
threw the function into an infinite loop. This commit fixes that by
breaking said word at the last letter before the character limit is
reached.
2024-05-27 00:14:29 +01:00
f3d9d34f3c
fix: content missing when displaying Status
This commit fixes the issue where the contents of a status is not shown
when displayed on screen. For statuses made in GTS the Text field is
populated with the plain text version of the content however this is
unfortunately not the case for Mastodon statuses, therefore the Content
field is used instead and the contents is processed with StripHTMLTags
function to remove the HTML tags before printing.
2024-05-26 15:07:34 +01:00
7a3f2928de
fix: update the StripHTMLTags function
- Do not add an extra space between text tokens.
- Add a line break if the 'br' tag is detected.
2024-05-26 01:18:44 +01:00
5a795c8ae0
refactor: remove dependency on golang.org/x/oauth2
This commit refactors the login flow to a GTS server thanks to an update
in the official GTS documentation.

golang.org/x/oauth2 is no longer needed.

Documentation reference:
- https://docs.gotosocial.org/en/latest/api/authentication/
2024-02-25 06:41:13 +00:00
c39b173cd6
fix: add proper support for multi-line wrapping 2024-02-24 17:46:00 +00:00
a83aaa17f6
feat: add timeline support
Add support for viewing all timeline types (home, public, lists and
tags).
2024-02-24 15:53:29 +00:00
6f1879eeba
fix: use local time for timestamps
Display timestamps such as when a status was created using local time.
2024-02-24 11:22:57 +00:00
427ad5daf5
feat: add bold blue headers 2024-02-24 08:22:24 +00:00
e6ec5c71b6
refactor: implement the Stringer interface
Account, Instance and Status now implement the Stringer interface.
2024-02-23 14:19:12 +00:00