From b993f9c9fc61db81223ff4cf013b5e4bd3590132 Mon Sep 17 00:00:00 2001 From: Maxim Mikityanskiy Date: Fri, 19 Jan 2018 00:55:34 +0200 Subject: [PATCH] Better status handling Consider the other statuses (e.g. Recently, LastWeek, LastMonth) as offline and show an approximate time of transitions. --- track/__main__.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/track/__main__.py b/track/__main__.py index 9f9fea8..c260a6d 100644 --- a/track/__main__.py +++ b/track/__main__.py @@ -32,10 +32,18 @@ while True: online = False print(f'User went offline: {utc2localtime(contact.status.was_online).strftime(DATETIME_FORMAT)}') elif last_offline != contact.status.was_online: - print(f'User went online and back offline: {utc2localtime(contact.status.was_online).strftime(DATETIME_FORMAT)}') + if last_offline is not None: + print(f'User went online and back offline: {utc2localtime(contact.status.was_online).strftime(DATETIME_FORMAT)}') + else: + print(f'User went offline: {utc2localtime(contact.status.was_online).strftime(DATETIME_FORMAT)}') last_offline = contact.status.was_online - else: + elif isinstance(contact.status, UserStatusOnline): if online != True: online = True print(f'User went online: {datetime.now().strftime(DATETIME_FORMAT)}') + else: + if online != False: + online = False + print(f'User went offline: around {datetime.now().strftime(DATETIME_FORMAT)}') + last_offline = None sleep(15)