~ihabunek/toot-discuss

This thread contains a patchset. You're looking at the original emails, but you may wish to use the patch review UI. Review patch
1

[PATCH] Display polls in command line status output, also display your own votes in toot tui poll displays

Details
Message ID
<3b2e4dcf-b434-794d-b8bc-e900fa7f6dc6@mini>
DKIM signature
missing
Download raw message
Patch: +34 -2
These are read only enhancements to the poll display functionality.

diff --git a/toot/output.py b/toot/output.py
index 5804bb5..daee4c6 100644
--- a/toot/output.py
+++ b/toot/output.py
@@ -168,6 +168,7 @@ def print_status(status, width):
     content = reblog['content'] if reblog else status['content']
     media_attachments = reblog['media_attachments'] if reblog else status['media_attachments']
     in_reply_to = status['in_reply_to_id']
    poll = reblog['poll'] if reblog else status['poll']

     time = parse_datetime(status['created_at'])
     time = time.strftime('%Y-%m-%d %H:%M %Z')
@@ -199,6 +200,31 @@ def print_status(status, width):
             for line in wc_wrap(url, width):
                 print_out(line)

    if poll:
        print_out("")
        for idx, option in enumerate(poll["options"]):
            perc = (round(100 * option["votes_count"] / poll["votes_count"])
                if poll["votes_count"] else 0)

            if poll["voted"] and poll["own_votes"] and idx in poll["own_votes"]:
                voted_for = " <yellow>✓<yellow>"
            else:
                voted_for = ""

            print_out(option["title"] + " - {}%".format(perc) + voted_for)

        poll_footer = "Poll · {} votes".format(poll["votes_count"])

        if poll["expired"]:
            poll_footer += " · Closed"

        if poll["expires_at"]:
            expires_at = parse_datetime(poll["expires_at"]).strftime("%Y-%m-%d %H:%M")
            poll_footer += " · Closes on {}".format(expires_at)

        print_out("\n{}".format(poll_footer))


     print_out("\n{}{}{}".format(
         "ID <yellow>{}</yellow>  ".format(status['id']),
         "↲ In reply to <yellow>{}</yellow>  ".format(in_reply_to) if in_reply_to else "",
diff --git a/toot/tui/timeline.py b/toot/tui/timeline.py
index 8faafd4..faf4131 100644
--- a/toot/tui/timeline.py
+++ b/toot/tui/timeline.py
@@ -328,10 +328,16 @@ class StatusDetails(urwid.Pile):
         yield urwid.Text(("link", card["url"]))

     def poll_generator(self, poll):
        for option in poll["options"]:
        for idx, option in enumerate(poll["options"]):
             perc = (round(100 * option["votes_count"] / poll["votes_count"])
                 if poll["votes_count"] else 0)
            yield urwid.Text(option["title"])

            if poll["voted"] and poll["own_votes"] and idx in poll["own_votes"]:
                voted_for = " ✓"
            else:
                voted_for = ""

            yield urwid.Text(option["title"] + voted_for)
             yield urwid.ProgressBar("", "poll_bar", perc)

         status = "Poll · {} votes".format(poll["votes_count"])
Details
Message ID
<62fff45d-4c28-4b97-a7d0-66c404c32442@app.fastmail.com>
In-Reply-To
<3b2e4dcf-b434-794d-b8bc-e900fa7f6dc6@mini> (view parent)
DKIM signature
missing
Download raw message
Thanks, merged.

-- Ivan
Reply to thread Export thread (mbox)