Commit Graph

230 Commits

Author SHA1 Message Date
Daniel Schwarz 0fc2ec12f5
Display images 2024-04-13 08:28:28 +02:00
Luca Matei Pintilie 1d48e64853
Fix version check in case of an empty string
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.
2024-04-06 14:56:54 +02:00
Ivan Habunek 4b17e2e586
Merge pull request #473 from danschwarz/corrupt_link_fix
Added safeguards to prevent crashes when rendering corrupt URLs
2024-03-12 14:54:51 +01:00
Daniel Schwarz 20968fe87f Added safeguards to prevent crashes when rendering corrupt URLs 2024-03-09 13:48:33 -05:00
Ivan Habunek 3420f1466a
Fix type annotation 2024-03-09 12:12:27 +01:00
Ivan Habunek 4d5ac3cc4e
Don't break if status doesn't have edited_at 2024-03-09 10:13:34 +01:00
Daniel Schwarz 0cb2355973 Updated scroll.py to latest updated version from NomadNet
https://github.com/markqvist/NomadNet/blob/master/nomadnet/vendor/Scrollable.py
2024-01-15 21:54:11 -05:00
Daniel Schwarz 593c95ea62 Converted LineBoxes to RoundedLineBoxes that look nicer 2024-01-09 23:36:35 -05:00
Kian-Meng Ang 2d0089893f Fix typos
Found via `codespell -L fo,te,oll`
2024-01-08 02:59:35 +08:00
Ivan Habunek d3d1b0d9a1
Merge pull request #155 from dlax/media-help
Document the [M]edia action
2024-01-04 09:58:14 +01:00
Ivan Habunek fda498d793
Merge pull request #450 from lexiwinter/autoopen-cw
add an option to automatically expand content warnings
2024-01-04 09:47:09 +01:00
Lexi Winter ec48e8eed8 tui: allow editing toots
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.
2024-01-01 14:16:09 +00:00
Lexi Winter 1ed129f5dd tui: add --always-show-sensitive option
When enabled, this option expands toots with content warnings
automatically, instead of requiring the user to press 'S'.
2023-12-31 18:54:56 +00:00
Lexi Winter f394d78c1e tui: keep CW note after opening toot
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).
2023-12-31 18:46:01 +00:00
Lexi Winter 5dd53b1b9c tui: honour user's default visibility preference
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().
2023-12-31 18:20:47 +00:00
Ivan Habunek 4e55fba15e
Merge pull request #452 from lexiwinter/timeline-reply-fix
tui: fix display glitch for reply icon in timeline
2023-12-31 18:23:01 +01:00
Lexi Winter d0f05c7ad9 tui: show edit date in toot view
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.
2023-12-31 16:51:02 +00:00
Lexi Winter 741a306c69 tui: fix display glitch for reply icon in timeline
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.
2023-12-31 16:20:03 +00:00
Ivan Habunek d9c6bf79c8
Fix urwid stalling until input received
fixes #364
2023-12-19 11:10:49 +01:00
Ivan Habunek f72e4ba844
Move code from toot.tui.base to toot.tui 2023-12-14 11:35:52 +01:00
Ivan Habunek bbf67c6736
Pass tui options through cli options 2023-12-07 19:27:26 +01:00
Ivan Habunek 4dfab69f3b
Add tui command 2023-12-03 13:53:52 +01:00
Ivan Habunek 443f9445b1
Add --json option to account commands 2023-11-21 18:16:37 +01:00
Ivan Habunek 7793d4499a
Add --json option to post command 2023-11-21 16:51:02 +01:00
Ivan Habunek 3530553a06
Add --json option to status and thread commands 2023-11-21 16:51:02 +01:00
Ivan Habunek 9664d71b57
Make get_instance return the response instead of json 2023-11-21 16:50:19 +01:00
Ivan Habunek cd03486a25
Remove unused imports 2023-11-19 12:48:22 +01:00
Ivan Habunek 5a83cd7d3b
Read media viewer from settings 2023-11-19 12:15:26 +01:00
Ivan Habunek ef19449190
Load followed accounts after timeline
This way we don't have to wait for them to load, which may take a while
due to paging.
2023-11-19 09:12:42 +01:00
Ivan Habunek 57cfd41613
Remove old stubs 2023-11-16 11:50:25 +01:00
Ivan Habunek d6ff3cc3a8
Extract url_to_widget, add fallback 2023-11-16 11:46:54 +01:00
Ivan Habunek e5ac82bb01
Add fallback for html_to_widgets
Remove has_urwidgets since we no longer need to worry if we have
urwidgets in the richtext module.
2023-11-16 11:36:18 +01:00
Ivan Habunek f96b1b722c
Move richtext to it's own module
This is the first step towards easier stubbing
2023-11-16 11:12:54 +01:00
Ivan Habunek f50dea1175
Simplify text_to_widget
This was doing double regex matching, calling parse_text was not needed
at all.
2023-11-16 11:09:32 +01:00
Ivan Habunek 073dd3025c
Remove the ContentParser class, use functions instead
It did not help, just added to the indent.
2023-11-06 18:23:35 +01:00
Ivan Habunek a544453338
Remove magic lookup
Having the choice explicit makes the code easier to read.
2023-11-06 18:22:09 +01:00
Ivan Habunek ce6faccb99
Extract render method 2023-11-06 17:43:02 +01:00
Ivan Habunek 2aba3f93f9
Extract block tags 2023-11-06 09:56:12 +01:00
Ivan Habunek a8b4c79716
Eliminate constructor 2023-11-06 09:36:30 +01:00
Ivan Habunek 199a96625b
Extract parsing html 2023-11-04 07:53:40 +01:00
Ivan Habunek a9ef96c31b
Cleanup formatting 2023-11-04 07:26:45 +01:00
Daniel Schwarz 0f39b1087f Support to display a limited set of HTML tags
HTML tag support is aligned with Mastodon 4.2 supported tags.
This code introduces a soft dependency on the urwidgets library.
If urwidgets is not available, HTML tags are still supported,
but hyperlinks are not underlined using the OCS 8 terminal
feature (on supported terminals).
2023-09-22 21:32:19 -04:00
Ivan Habunek 8ff46fd0d0
Remove unused import 2023-07-25 09:36:53 +02:00
Ivan Habunek 8c7bb25184
Fix relative datetimes in TUI 2023-07-25 09:32:17 +02:00
Ivan Habunek afd349f1ab
Remove the monochrome palette
Monochrome colors should be defined as the third color in each tuple
instead.

In monochrome mode it's not possible to set the background so all
highlights can only be done using bold, italics, underline...
2023-07-08 12:33:34 +02:00
Ivan Habunek 0903dae8d3
Read TUI colors from settings 2023-07-08 12:08:06 +02:00
Ivan Habunek 740f7fafd4
Read TUI palette overrides from settings 2023-07-08 12:08:06 +02:00
Ivan Habunek 94b4b35197
Tweak colors 2023-07-08 12:08:06 +02:00
Daniel Schwarz 28a3343761 Added sanity check tests to ensure PALETTE and MONO_PALETTE match
And fixed a bug uncovered by the above tests :)
2023-07-07 18:12:38 -04:00
Ivan Habunek 219225ba8a
Remove named colours
This is a prerequisite for configurable styling, since we don't want to
override "green" style to be yellow and such.
2023-07-07 13:57:19 +02:00