1
0
mirror of https://github.com/ihabunek/toot.git synced 2024-06-16 06:15:25 +00:00
Commit Graph

234 Commits

Author SHA1 Message Date
Daniel Schwarz
c5414a8e21 Added support for indexed color image rendering; fixes #483
Useful for terminals that do not support truecolor, such
as MacOS Terminal. Requires term-image 0.7.2 or later.
2024-06-07 22:00:57 -04:00
AnonymouX47
1ea2e29e25 fix: Fix iTerm2's title with image support enabled
- Fix: Force support support only for the selected image format.

  If support is forced for `KittyImage`, then `UrwidImageScreen` will
  emit kitty graphics control sequences to delete images upon starting
  and stoping the screen.

iTerm2 (on Mac OS) doesn't eat up APCs (which kitty graphics control
sequences are) as it should, instead it writes them to the screen
and/or to its title bar.
2024-06-04 09:00:44 +01:00
AnonymouX47
b264927da9 refac: tui.images: Optimize image class selection
- Change: Execute image class selection logic once and cache the result.
2024-06-04 08:46:35 +01:00
AnonymouX47
efab6cf556 refac: tui: Optimize image pixel support detection 2024-06-04 08:36:48 +01:00
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