Move printing logic to output - toot - Unnamed repository; edit this file 'description' to name the repository.
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
 (DIR) commit 787e0d28b4cd9d77d7948da80874d17942e9c330
 (DIR) parent dfdad045f00b3faa9679989031d0a4dabe4753ce
 (HTM) Author: Ivan Habunek <ivan@habunek.com>
       Date:   Fri, 29 Dec 2017 14:42:51 +0100
       
       Move printing logic to output
       
       Diffstat:
         toot/commands.py                    |      52 +++----------------------------
         toot/output.py                      |      42 ++++++++++++++++++++++++++++++-
       
       2 files changed, 46 insertions(+), 48 deletions(-)
       ---
 (DIR) diff --git a/toot/commands.py b/toot/commands.py
       @@ -8,10 +8,10 @@ from datetime import datetime
        from itertools import zip_longest
        from getpass import getpass
        from itertools import chain
       -from textwrap import TextWrapper, wrap
       +from textwrap import TextWrapper
        
        from toot import api, config, DEFAULT_INSTANCE, User, App, ConsoleError
       -from toot.output import print_out, print_instance
       +from toot.output import print_out, print_instance, print_account, print_search_results
        
        
        def register_app(instance):
       @@ -213,31 +213,9 @@ def upload(app, user, args):
            print_out("Text URL:     <green>{}</green>".format(response['text_url']))
        
        
       -def _print_accounts(accounts):
       -    if not accounts:
       -        return
       -
       -    print_out("\nAccounts:")
       -    for account in accounts:
       -        print_out("* <green>@{}</green> {}".format(
       -            account['acct'],
       -            account['display_name']
       -        ))
       -
       -
       -def _print_hashtags(hashtags):
       -    if not hashtags:
       -        return
       -
       -    print_out("\nHashtags:")
       -    print_out(", ".join(["<green>#{}</green>".format(t) for t in hashtags]))
       -
       -
        def search(app, user, args):
            response = api.search(app, user, args.query, args.resolve)
       -
       -    _print_accounts(response['accounts'])
       -    _print_hashtags(response['hashtags'])
       +    print_search_results(response)
        
        
        def _do_upload(app, user, file):
       @@ -265,26 +243,6 @@ def _find_account(app, user, account_name):
            raise ConsoleError("Account not found")
        
        
       -def _print_account(account):
       -    print_out("<green>@{}</green> {}".format(account['acct'], account['display_name']))
       -
       -    note = BeautifulSoup(account['note'], "html.parser").get_text()
       -
       -    if note:
       -        print_out("")
       -        print_out("\n".join(wrap(note)))
       -
       -    print_out("")
       -    print_out("ID: <green>{}</green>".format(account['id']))
       -    print_out("Since: <green>{}</green>".format(account['created_at'][:19].replace('T', ' @ ')))
       -    print_out("")
       -    print_out("Followers: <yellow>{}</yellow>".format(account['followers_count']))
       -    print_out("Following: <yellow>{}</yellow>".format(account['following_count']))
       -    print_out("Statuses: <yellow>{}</yellow>".format(account['statuses_count']))
       -    print_out("")
       -    print_out(account['url'])
       -
       -
        def follow(app, user, args):
            account = _find_account(app, user, args.account)
            api.follow(app, user, account['id'])
       @@ -323,12 +281,12 @@ def unblock(app, user, args):
        
        def whoami(app, user, args):
            account = api.verify_credentials(app, user)
       -    _print_account(account)
       +    print_account(account)
        
        
        def whois(app, user, args):
            account = _find_account(app, user, args.account)
       -    _print_account(account)
       +    print_account(account)
        
        
        def instance(app, user, args):
 (DIR) diff --git a/toot/output.py b/toot/output.py
       @@ -4,7 +4,7 @@ import sys
        import re
        
        from textwrap import wrap
       -from toot.utils import format_content
       +from toot.utils import format_content, get_text
        
        START_CODES = {
            'red':     '\033[31m',
       @@ -70,3 +70,43 @@ def print_instance(instance):
                for l in wrap(line.strip()):
                    print(l)
                print()
       +
       +
       +def print_account(account):
       +    print_out("<green>@{}</green> {}".format(account['acct'], account['display_name']))
       +
       +    note = get_text(account['note'])
       +
       +    if note:
       +        print_out("")
       +        print_out("\n".join(wrap(note)))
       +
       +    print_out("")
       +    print_out("ID: <green>{}</green>".format(account['id']))
       +    print_out("Since: <green>{}</green>".format(account['created_at'][:19].replace('T', ' @ ')))
       +    print_out("")
       +    print_out("Followers: <yellow>{}</yellow>".format(account['followers_count']))
       +    print_out("Following: <yellow>{}</yellow>".format(account['following_count']))
       +    print_out("Statuses: <yellow>{}</yellow>".format(account['statuses_count']))
       +    print_out("")
       +    print_out(account['url'])
       +
       +
       +def print_search_results(results):
       +    accounts = results['accounts']
       +    hashtags = results['hashtags']
       +
       +    if accounts:
       +        print_out("\nAccounts:")
       +        for account in accounts:
       +            print_out("* <green>@{}</green> {}".format(
       +                account['acct'],
       +                account['display_name']
       +            ))
       +
       +    if hashtags:
       +        print_out("\nHashtags:")
       +        print_out(", ".join(["<green>#{}</green>".format(t) for t in hashtags]))
       +
       +    if not accounts and not hashtags:
       +        print_out("<yellow>Nothing found</yellow>")