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
Ivan Habunek
dd1b462413
Highlight hashtags
2019-09-03 15:40:43 +02:00
Ivan Habunek
7da2e2dbbc
Handle reblogs
2019-09-03 15:40:43 +02:00
Ivan Habunek
f68f5d5716
Load next when at bottom of list
2019-09-03 15:40:42 +02:00
Ivan Habunek
c99999161d
Render status details
2019-09-03 15:40:42 +02:00
Ivan Habunek
ea1ef6f207
Initial implementation of a TUI using Urwid
2019-09-03 15:40:42 +02:00
Viktor Villainov
616483d78a
Remove double process_response function call
...
since it's called in anon_post already
2019-09-03 09:04:32 +02:00
Ivan Habunek
6f8cd86417
Fix compatibility with py<3.6
2019-08-29 12:46:00 +02:00
Ivan Habunek
73ba70eb83
Create config file with 0600 permissions
...
It contains secrets and should not be readable by others.
fixes #109
2019-08-27 13:20:22 +02:00
Ivan Habunek
d21cad892c
Implement composing tweets using an editor
...
fixes #90
2019-08-22 17:37:24 +02:00
Ivan Habunek
840b2fd476
Set the user agent string to all requests
...
Fixes issue with accessing instances using Cloudfare DDOS protection.
issue #106
2019-08-07 22:58:30 +02:00
Ivan Habunek
e108f370e1
Bump version
2019-08-01 13:25:45 +02:00
Ivan Habunek
a771ca3aa7
Enable attaching multiple media files
...
fixes #67
2019-08-01 12:56:21 +02:00
Ivan Habunek
a7e4f9d888
Add --language option to post command
...
Used to override language detection.
2019-07-30 16:13:29 +02:00
Ivan Habunek
d13fa8685b
Merge pull request #101 from Skehmatics/fix-resize
...
Fix various resize issues
2019-04-25 14:58:08 +02:00
Derek Schmidt
cb3885b20b
Fix #100
...
Using self.panel.hide() without calling
curses.panel.update_panels() before next refresh can really mess
stuff up. As far as I can tell, this was the real cause of #100 .
This changes that call to the Modal's hide method instead, which
will keep this sort of issue from coming up again (hopefully)
2019-04-25 14:46:01 +02:00
Derek Schmidt
5c8f3b5978
Fix crash on window open
...
Missed a call when changing refresh to refresh_text
2019-04-24 21:32:28 -07:00
Derek Schmidt
b9e9eea295
Redaw footer and header after panels
...
Fix left panel overlaping the footer on full_redraws
2019-04-24 16:57:55 -07:00
Derek Schmidt
24421fcb53
Fix resize when modals are visible
...
Use a callback function to allow items farther up in the stack
to have their own resize logic. This also requires a slight
change to the main TimelineApp to stay DRY
2019-04-24 16:57:52 -07:00
Ivan Habunek
aff0c2281f
Improve keystroke handling
2019-04-24 14:05:28 +02:00
Ivan Habunek
c862df8e40
Run curses with 20 statuses per page by default
2019-04-23 14:12:29 +02:00
Ivan Habunek
912e7c8bc4
Nicer header for curses
2019-04-23 13:53:06 +02:00
Ivan Habunek
b9743ba268
Simplify windows setup
2019-04-23 13:31:17 +02:00
Ivan Habunek
92810459c7
Change content warning shortcut to ^W
...
^S will freeze most terminals
2019-04-16 14:37:34 +02:00
Derek Schmidt
747c5a611f
Add posted status / reply to the top of the timeline on submit
2019-04-16 14:21:08 +02:00
Derek Schmidt
2a6206903f
Mention EOT rather than RS
...
In my testing, not all terminal emulators have the same ctrl+enter
key accelerator for the ascii record seperator, so mention EOT
instead but still leave it in for those that might like it better.
2019-04-16 14:21:08 +02:00
Derek Schmidt
5d652754ec
Slightly redesign the modal to be more like a window
...
+ Only do a full draw on init, and just refresh on updates / show
+ Better differenciate "No content" vs "quit"
+ Reset the cursor position when content is cleared
2019-04-16 14:21:08 +02:00
Derek Schmidt
073d340908
Change control scheme to make more sense
...
Ctrl+Enter (or the standard ^D / EOT) to confirm, Escape to quit.
Since we're asking for a raw escape, we also need to tweak the
curses escape detection timeout a little, otherwise the user would
have to wait a whole second for the keystroke to register
2019-04-16 14:21:08 +02:00
Derek Schmidt
45bf2acba1
Default to CW of parent status when replying
2019-04-16 14:21:07 +02:00
Derek Schmidt
7f5c201925
Minor compose window cleanup / misc fixes
...
+ Remove excess padding on width
+ Rename TextModal to EntryModal
+ Remove duplicate delete key handler
+ Redraw when CW modal closes
+ Return empty string rather than None
2019-04-16 14:21:07 +02:00
Derek Schmidt
a367f78cbb
Handle screen position when newline only lines exist
2019-04-16 14:21:07 +02:00
Derek Schmidt
2b3b14c8b7
Impliment a custom textbox-like modal
...
The actual curses provided textbox has issuses with adding
newlines to the toot body when the text wraps to fit,
so I've implimented a basic textbox using draw_lines and an
internal text body (rather than relying on the curses window
contents.
2019-04-16 14:21:07 +02:00
Derek Schmidt
26f49e460e
Make help text less wordy
2019-04-16 14:21:07 +02:00
Derek Schmidt
a641543922
Add basic reply functionality
2019-04-16 14:21:07 +02:00
Derek Schmidt
c7526941d2
Add cw / spolier_text setting within compose window
...
And also make things probably more complicated than neccesary
oops
2019-04-16 14:21:07 +02:00
Derek Schmidt
6bb2f98ad2
Add basic text compose + posting
2019-04-16 14:21:06 +02:00
Ivan Habunek
474d9c432f
Move notification printing to output module
...
Removed sorting, since notifications are already sorted.
2019-04-16 14:12:42 +02:00
Denis Laxalde
204d4d4138
Handle absence of notification in 'notifications' command
2019-02-17 15:02:05 +01:00
Denis Laxalde
6360e4d07d
Add a --clear option to "notifications" command
2019-02-17 14:18:51 +01:00
Denis Laxalde
5174a751f2
Implement "notifications" command
...
The list of notifications is diplayed with each item enclosed within an
horizontal line as for timeline. When a status is involved (when
notification type is "reblog" or "favourite"), we also display the full
status.
Closes #81 .
2019-02-17 14:09:56 +01:00
Ivan Habunek
f7167e0880
Bump version
2019-02-15 14:14:22 +01:00
Ivan Habunek
d224375da4
Consolidate timeline selection arguments
...
toot timeline and toot curses now use the same logic.
2019-02-15 14:13:12 +01:00
Ivan Habunek
abb1b436ca
Fix typo
2019-02-15 14:13:11 +01:00
Ivan Habunek
10595be865
Show full account name in timeline
2019-02-15 14:13:11 +01:00
Denis Laxalde
5a867f2380
Show number of replies/reblogs/favourites in status footer of curses ui
...
When parsing "replies_count" from status data, we allow the field to be
absent as it got added in version 2.5.0 (in constrast with other ones,
added in 0.1.0) as there might be servers with that version around.
2019-02-15 12:55:55 +01:00
Denis Laxalde
4bc963a236
Indicate if status is a reply in left pane of curses ui
2019-02-15 12:47:42 +01:00
Denis Laxalde
3d0c7be1e0
Indicate if status has been favorited in left pane of curses ui
...
Showing a yellow star in the right corner of second line.
2019-02-14 20:39:58 +01:00
Denis Laxalde
41d96249ba
Add favourite/unfavourite actions to curses ui
2019-02-14 20:21:48 +01:00
Ivan Habunek
d7cc97d2c7
Tweaks to status boosting in curses app
2019-02-14 18:04:05 +01:00
Denis Laxalde
c6bc4a695f
Add reblog/unreblog actions to curses ui
...
This is implemented using "b" key to toggle reblog/unreblog based on the
value of "reblogged" field in status data.
2019-02-14 17:58:55 +01:00