Commit Graph

64 Commits

Author SHA1 Message Date
Ivan Habunek 996228d224
Employ wcstring utils to improve rendering 2019-02-14 15:47:40 +01:00
Denis Laxalde 0bf4b2a21a
Fix left column padding in timeline with wide characters
When the left column contains wide characters (which occupy more than
one cell when printed to screen), padding to 30-characters with
"{:30}".format() does not work well. This happens for instance when the
display name contains unicode characters such as emojis.

We fix this by introducing a pad() function in utils module which uses
the wcwidth library (https://pypi.org/project/wcwidth/) to compute the
length of the text for the column. trunc() function is also adjusted to
optionally compute the length of the text to be truncated since, when
called from pad(), we now pre-compute this value.

We update test for timeline rendering so that the display name now
includes an emoji. (Without the fix, the test would not pass as left
column would be misaligned.)
2019-02-14 14:21:53 +01:00
Balazs Nadasdi ee417df60e Status ID + thread view
- Status ID on timeline list view
 - thread command to view a complete thread
   Display order:
    - ancestors
    - status
    - descendants
2019-01-19 19:28:17 +01:00
Denis Laxalde 0f6bd920c3 Replace ' by "'" before parsing HTML
Beautiful will does not parse HTML entities like `'` as we expect
and the previous logic of replacing this *after* HTML parsing occurred
did not produced expected results.

To illustrate this, we change data in "test_timeline" to include a
literal `'` as it sometimes occur in data returned by Mastodon API.
New HTML content is:

    <p>The computer can&apos;t tell you the emotional story [...] </p>

Beautiful will parse this as as:

    <p>The computer can&amp;apost tell you the emotional story [...] </p>

which is not what we expect.

We fix this by replacing `&apos;` *before* HTML parsing by Beautiful.
Since test data in "test_timeline" got updated we also add an extra
assertion checking that part of the content with a literal "'" is
(still) properly rendered.
2019-01-01 23:14:54 +01:00
Ivan Habunek 92435d630c
Add a global --silent flag to silence output
issue #46
2018-06-15 09:02:19 +02:00
Ivan Habunek b3d81c43cc
Tweak timeline output 2018-06-12 11:43:47 +02:00
Ivan Habunek 3f79b76aab
Fix alignment in timeline 2018-06-12 10:52:47 +02:00
Ivan Habunek ceb324e9b0
Move timeline printing code to output.py 2018-06-07 10:27:11 +02:00
Ivan Habunek 177af4fac9
Fix code style 2017-12-30 13:14:37 +01:00
Ivan Habunek 787e0d28b4
Move printing logic to output 2017-12-29 14:42:51 +01:00
Ivan Habunek dfdad045f0
Add instance command 2017-12-29 14:26:40 +01:00
Ivan Habunek 1b86cdd404
Drop support for Python 2
It's hard to maintain both versions, having unicode issues in py2, etc.
2017-12-29 11:31:21 +01:00
Ivan Habunek 39c2cc661d
Rework how colors are shown in the commandline
Add an option to disable colors.

fixes #15
2017-05-08 09:09:20 +02:00
Ivan Habunek 373f26424d
Rework how commands are defined 2017-04-19 14:47:30 +02:00