Commit Graph

339 Commits

Author SHA1 Message Date
Ivan Habunek 12d682591b
Fix command descriptions 2022-11-18 08:28:15 +01:00
Giuseppe Bilotta e171578878 Implement following/followers list retrieval 2022-11-18 08:23:12 +01:00
Ivan Habunek 44a30b44d8
Add toot (un)bookmarking
fixes #204
2022-11-17 06:32:12 +01:00
Ivan Habunek ec16ba0bbf
Bump version, add changelog 2022-11-12 09:21:00 +01:00
Ivan Habunek e318581dd1
Don't break if poll doesn't have an expiry date 2022-11-12 07:55:25 +01:00
Ivan Habunek 24cfa48dea
Change how toot is entered in editor
This approach allows posting lines which start with a #.
2022-11-12 07:29:08 +01:00
Lars Kellogg-Stedman 5c2f9dcf7c Add a suffix to temporary files when composing toot in an editor
This enable suffix-based configuration in your editor when editing toots.

Closes #219
2022-11-11 15:08:25 +01:00
K 89585b6761
Use v2 endpoint for account search 2022-11-09 16:46:24 +01:00
Josh Soref 67bea207cd
Spelling fixes (#215)
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-09 14:24:48 +01:00
Andy Loven 3315a87463 Local time in toot timeline 2022-11-08 07:11:26 +01:00
Evan Smith 8b274eeaa1 Normalise usernames when searching 2022-11-08 07:10:49 +01:00
Ivan Habunek dad08d5b40
Prepare release 0.28.0 2021-08-28 21:19:43 +02:00
Sandra Snan 9e046b6d86
Add --content-type option to toot post 2021-08-28 21:08:44 +02:00
Ivan Habunek a3eb5dca24
Allow piping the password to login_cli
This is useful for testing where entering a password manually is not
possible.
2021-08-28 20:36:10 +02:00
Stacy Harper 6115cea43e
Prevent toot timeline to break when piped to extenal programs
Toot timeline try to ask the user to continue in the next page. This
doesn't works if the command is piped to any other software.

We stop the query in the first loop when not in a tty context. The
command should be called with the expected item count in this case.
2021-08-28 20:14:30 +02:00
ansuz ec097886d8
Support adding description to media 2021-08-28 18:47:07 +02:00
Ivan Habunek 7e0da50603
Add option for scheduling tweets 2021-08-28 17:39:31 +02:00
alex wennerberg 0b6d4a9e87
Add mentions-only parameter to notifications command 2021-07-29 10:08:58 +02:00
Sandra Snan d884379f2e
Allow string status and list ids
Favourites and reblogs also use this id and it's sometimes strings.
2020-09-29 10:06:18 +02:00
Ivan Habunek 62d7855fc0
Remove curses app, replaced by tui 2020-09-29 10:04:57 +02:00
Sandra Snan 103bc43c26
Reply to non-int, and also longer posts, Pleroma style 2020-09-01 16:11:12 +02:00
Ivan Habunek 957eec6f40
Bump version, add to changelog 2020-06-15 21:08:39 +02:00
Ivan Habunek ad272f521b
Fix timeline generator to respect --instance option
Access the anon public & tag timelines in this case. This makes it
possible to see those timelines without being logged in.
2020-06-15 21:08:02 +02:00
Eyal Sawady bf168be87d
Fix crash on empty timeline 2020-05-20 08:26:09 +02:00
Ivan Habunek 3829a57909
Add --reverse option to notifications
fixes #151
2020-05-11 13:51:07 +02:00
Denis Laxalde 3efa330d69
Display a message in footer upon [P]in action
And clear the message after 5s.
2020-05-11 13:21:00 +02:00
Denis Laxalde 4d1fa837a1
Let <Esc> move back to "home" timeline
When not in overlay mode, we handle <Esc> key press to get back to the
"home" timeline. This allows to navigate quickly from another timeline
to the home one, without getting through the "go to" menu.
2020-05-11 13:21:00 +02:00
Denis Laxalde 69f110b474
Make [P]in action toggle save of hashtag timeline
If currently viewed timeline is saved, [P] unsaves it.
2020-05-11 13:20:59 +02:00
Denis Laxalde 3e11153640
Add a [P]in action to save a hashtag timeline
This goes along with the ability to "go to" a saved hashtag timeline.

We need to pass the "local" flag down build_timeline() method so that
this is also saved. Note that we cannot save both a local and a
federated timeline for the same hashtag: I'm not sure it's worth
supporting both options?
2020-05-11 13:20:54 +02:00
Denis Laxalde 949b5552ca
Sort keys when saving JSON config
This helps keeping changes minimal when rewritting from the program.
2020-05-11 13:20:08 +02:00
Denis Laxalde 9d3d38552e
Display saved timelines in "goto" menu
We introduce "saved timelines" as a new entry in configuration file. For
now, we only save whether the timeline is local or not. Timeline save is
not implemented yet, only retrieval from config file and display is
handled at the moment. Saved timelines in the goto menu.
2020-05-11 13:20:07 +02:00
Ivan Habunek 3b5769acc0
Use authorized get to fetch public and tag timelines
Some servers require authorization for viewing "public" timelines, and
since currently toot always requires auth for this it's not required to
support anon access to timelines.

fixes #168
2020-05-11 12:59:50 +02:00
Ivan Habunek ad96143ee0
Censor authorization header value in logs 2020-05-11 12:46:27 +02:00
Ivan Habunek bc96cf7eea
Bump version, add changelog 2020-04-15 14:28:17 +02:00
Ivan Habunek 8b9ca7e243
Don't show links window if no links are found 2020-04-15 14:12:30 +02:00
Denis Laxalde 28e1281187 Add an action to display status links and open them
We add a new [L]inks action that opens an overlay window with links
found in the content of selected status. Links are selectable and upon
click/enter we open the web browser at link's URL.
2020-04-15 14:11:31 +02:00
Ivan Habunek 5fc46d0cfc
Fix datetime parsing on python 3.5
datetime.astimezone supports native datetimes only since python 3.6

fixes #162
2020-04-15 14:01:23 +02:00
Finn O'leary a6e76e0bcb Fix VISIBILITY_OPTIONS
Reorder Visibility Options to be from "most visible" to "least visible",
and swap the definitions of "private" and "unlisted" to match the actual
visibility that results from those actions.
2020-01-26 10:19:24 +01:00
Ivan Habunek a958573d8d
Bump version, changelog 2020-01-23 13:24:49 +01:00
Denis Laxalde 690a91ce04 Fall back to "username" when "display_name" is unset
We add a "username" field to Author entity, this is then used when
displaying the "reblogged by" information when respective account has no
display name.
2020-01-22 08:13:48 +01:00
Ivan Habunek 1b2a9c4198
Bump version, changelog 2020-01-21 09:38:17 +01:00
Ivan Habunek 6d18fd55a1
Quote hahtags before including them in an URL
Fixes searching by hashtag which include the #.

issue #134
2020-01-21 09:04:03 +01:00
Ivan Habunek 60efc13338
Implement character count indicator when composing
Attempts to load max char count from the server on init.

issue #121
2020-01-03 09:15:11 +01:00
Ivan Habunek 0fed933123
Fix typo 2020-01-02 10:34:00 +01:00
Ivan Habunek b6749fb0f1
Require auth for toot tui 2020-01-02 10:21:58 +01:00
Ivan Habunek d595cc5140
Don't use fstrings to keep support with python<3.7
fixes #131
2019-09-23 16:51:04 +02:00
Ivan Habunek cf78cd20ac
Upgrade to v2 search endpoint 2019-09-22 22:08:04 +02:00
Ivan Habunek 35e03a13b1 Simplify access to reblogged status data
Adds two properties to `Status` entity:
* `reblog` - contains the reblogged Status or None if not a reblog
* `original`- contains the reblogged Status or self if not a reblog

Anywhere where you wish to show a reblogged status's property when it's
a reblog, or the base status proprety if not a reblog, use
`status.original.<property>`.
2019-09-22 18:56:03 +02:00
Ivan Habunek bc6e43376a
Bump version, add changelog 2019-09-18 21:57:55 +02:00
Denis Laxalde 9623219959 Include mentions and replied-to account in compose text
We add a "mentions" attribute to Status. Then when composing a reply, we
fill the edit text of the compose box with the account name of status
being replied to and possibly include mentions at the bottom of the edit
text. Initial cursor position is set after replied account name.
2019-09-18 21:42:55 +02:00
Kai Zhang a76f4ae815 Set urwid global encoding to UTF-8
so that many characters can be displayed
2019-09-18 21:41:02 +02:00
Denis Laxalde 9fb52fb0a1 Try to use media's text_url if present
This field is sometimes provides and gives a shortened URL which is
easier to click on in a terminal.
2019-09-13 12:54:08 +02:00
Denis Laxalde a8774fc9ea Indicate if status is a reblog in timeline
This is different from the "reblogged" yellow icon already displayed on
the left of account name which indicates if own status got reblogged.
This one indicates if displayed status is a reblog.
2019-09-12 10:48:04 +02:00
Denis Laxalde e06478a798 Use original account information for reblogged statuses
Otherwise, we get the account name of reblogger in the timeline.
2019-09-12 10:48:04 +02:00
Ivan Habunek 5343319333
Improve config dir location
On Windows store config in roaming appdata.
2019-09-08 15:06:35 +02:00
Ivan Habunek 130ef9a608 Remove legacy configuration file handling 2019-09-08 14:36:37 +02:00
Your Name 7fc39379c9
Check for existance of key in dictionary
as well as non-null value to avoid uncaught KeyError

re: issue #116
2019-09-07 23:20:50 +02:00
Denis Laxalde 9d0d1b2dd7
Make "view" action work for reblogged statuses
When the status is a reblog, the URL of the original toot should be used
as the one of reblog is null.

We add a "url" attribute to Status class storing computed URL.
2019-09-06 16:01:04 +02:00
Rasmus Lindroth 3a56243878
Escape closes timeline
As Escape does the same as Q when closing the app and overlays, it should do the same with timelines
2019-09-06 15:51:32 +02:00
Ivan Habunek 367ced2eef
Don't use ANSI color codes when not desired
Which is when not supported by terminal or when not in a tty.
2019-09-06 15:03:47 +02:00
Ivan Habunek 1d3ff87ffa
TUI: Implement deleting own status messages 2019-09-04 16:16:16 +02:00
Ivan Habunek 7309e5bb53
Bump version 2019-09-04 08:39:18 +02:00
Ivan Habunek e310482cb6
Fix date parsing bug
issue #114
2019-09-04 08:36:12 +02:00
Ivan Habunek 70faf47c91
Bump version 2019-09-03 16:31:47 +02:00
Denis Laxalde efbaf9e706
Indicate if status is a reply in timeline of TUI 2019-09-03 15:40:50 +02:00
Ivan Habunek cf01cb9014
Cleanup palette slightly 2019-09-03 15:40:49 +02:00
Ivan Habunek 05972fc6fa
Show application used to post status 2019-09-03 15:40:49 +02:00
Ivan Habunek 7e04ad55c6
Add links to help overlay 2019-09-03 15:40:49 +02:00
Ivan Habunek 3a11e470fb
Extract overlays from app.py 2019-09-03 15:40:49 +02:00
Ivan Habunek c1f518765c
Fix missing padding 2019-09-03 15:40:49 +02:00
Ivan Habunek d5a2cc27ed
Add help 2019-09-03 15:40:48 +02:00
Ivan Habunek 41f997199a
Add padding to status details 2019-09-03 15:40:48 +02:00
Ivan Habunek 51afcf7e34
Add goto hash timeline 2019-09-03 15:40:48 +02:00
Ivan Habunek 350138324b
Add basic timeline switching 2019-09-03 15:40:48 +02:00
Ivan Habunek 07e6c372bc
Prepare for context menu 2019-09-03 15:40:48 +02:00
Ivan Habunek 1dce948166
Show content warning in status details 2019-09-03 15:40:47 +02:00
Ivan Habunek 85ceb8b11f
Update docs to replace curses with tui 2019-09-03 15:40:47 +02:00
Ivan Habunek 98b783836a
Mark toot curses as deprecated 2019-09-03 15:40:47 +02:00
Ivan Habunek 7f6f128f38
Show media in image viewer 2019-09-03 15:40:47 +02:00
Ivan Habunek 31462fe6f8
Implement replies 2019-09-03 15:40:46 +02:00
Ivan Habunek 9c74c1d9e6
Housekeeping 2019-09-03 15:40:46 +02:00
Ivan Habunek ab1fc6961b
Show media in status details 2019-09-03 15:40:46 +02:00
Ivan Habunek 5213eb1835
Focus status after posting 2019-09-03 15:40:46 +02:00
Ivan Habunek 4deccee754
Decouple Timeline and TUI, use signals instead 2019-09-03 15:40:46 +02:00
Ivan Habunek 1a8c515922
Implement thread (status context) view 2019-09-03 15:40:46 +02:00
Ivan Habunek 5ec8d9411d
Propagate visibility when posting status 2019-09-03 15:40:45 +02:00
Ivan Habunek 672bb5d008
Add reply, reblog and favourite counters 2019-09-03 15:40:45 +02:00
Ivan Habunek db76b004cf
Simplify linebox rendering in status details 2019-09-03 15:40:45 +02:00
Ivan Habunek f6fcb2a821
Timeline: add divider, move columns, boost icon 2019-09-03 15:40:45 +02:00
Ivan Habunek 9784fb8eb5
Don't crash if no url present 2019-09-03 15:40:45 +02:00
Ivan Habunek 871e2bc960
Render polls 2019-09-03 15:40:45 +02:00
Ivan Habunek 9aadec6cfb
Add option to set status visibility 2019-09-03 15:40:44 +02:00
Ivan Habunek 4f30c177d6
Ditch status index list for now
Simplifies things, makes update_status slightly slower, but no biggie.
2019-09-03 15:40:44 +02:00
Ivan Habunek 366e9382d3
Implement posting statuses 2019-09-03 15:40:44 +02:00
Ivan Habunek b95aca964f
Show an intro screen while loading initial toots 2019-09-03 15:40:44 +02:00
Ivan Habunek fb14c262e0
Show exception stack trace on error 2019-09-03 15:40:44 +02:00
Ivan Habunek 372976b1b2
Overhaul async actions, implement boost and reblog 2019-09-03 15:40:43 +02:00
Ivan Habunek 2349173a45
Tweaks 2019-09-03 15:40:43 +02:00
Ivan Habunek 2be8cb8438
Show status source 2019-09-03 15:40:43 +02:00
Ivan Habunek 2d8199646f
Boosted by improvements 2019-09-03 15:40:43 +02:00