From 6bba781c496ad692d1bce21c561abab7e971e061 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Fri, 12 Feb 2016 08:16:26 +0300 Subject: rename the scripts --- track_online.py | 104 -------------------------------------------------------- 1 file changed, 104 deletions(-) delete mode 100644 track_online.py (limited to 'track_online.py') diff --git a/track_online.py b/track_online.py deleted file mode 100644 index 2c6776e..0000000 --- a/track_online.py +++ /dev/null @@ -1,104 +0,0 @@ -# Copyright 2015 Egor Tensin -# This file is licensed under the terms of the MIT License. -# See LICENSE.txt for details. - -import argparse -import logging -import time -import sys - -from api import * - -def format_user(user): - if user.has_last_name(): - return '{} {}'.format(user.get_last_name(), user.get_first_name()) - else: - return '{}'.format(user.get_first_name()) - -def format_user_is_online(user): - return '{} is ONLINE'.format(format_user(user)) - -def format_user_is_offline(user): - return '{} is OFFLINE'.format(format_user(user)) - -def format_user_last_seen(user): - return '{} was last seen at {}'.format(format_user(user), user.get_last_seen()) - -def format_user_went_online(user): - return '{} went ONLINE'.format(format_user(user)) - -def format_user_went_offline(user): - return '{} went OFFLINE'.format(format_user(user)) - -def user_is_offline(user): - logging.info(format_user_is_offline(user)) - logging.info(format_user_last_seen(user)) - -def user_went_online(user): - logging.info(format_user_went_online(user)) - -def user_went_offline(user): - logging.info(format_usre_went_offline(user)) - -def print_status(user): - if user.is_online(): - user_is_online(user) - else: - user_is_offline(user) - -def print_status_update(user): - if user.is_online(): - user_went_online(user) - else: - user_went_offline(user) - -def parse_timeout(source): - timeout = int(source) - if timeout < 1: - raise argparse.ArgumentTypeError( - 'please specify a positive number of seconds as refresh timeout') - return timeout - -DEFAULT_TIMEOUT=5 - -def loop_update_status(api, user_ids, timeout=DEFAULT_TIMEOUT): - fields = User.Field.ONLINE, User.Field.LAST_SEEN - users = list(api.users_get(user_ids, fields)) - for user in users: - print_status(user) - while True: - time.sleep(timeout) - updated_users = list(api.users_get(user_ids, fields)) - for i in range(len(updated_users)): - if users[i].is_online() != updated_users[i].is_online(): - users[i] = updated_users[i] - print_status_update(updated_users[i]) - -if __name__ == '__main__': - parser = argparse.ArgumentParser( - description='Track when people go online/offline.') - - parser.add_argument(metavar='UID', dest='user_ids', nargs='+', - help='user IDs or "screen names"') - parser.add_argument('-t', '--timeout', default=DEFAULT_TIMEOUT, - type=parse_timeout, - help='set refresh interval (seconds)') - parser.add_argument('-l', '--log', type=argparse.FileType('w'), - default=sys.stdout, - help='set log file path (stdout by default)') - args = parser.parse_args() - - logging.basicConfig(format='[%(asctime)s] %(message)s', - stream=args.log, - level=logging.INFO, - datefmt='%Y-%m-%d %H:%M:%S') - - api = API(Language.EN) - - try: - loop_update_status(api, args.user_ids, timeout=args.timeout) - except KeyboardInterrupt: - pass - except Exception as e: - logging.exception(e) - sys.exit(1) -- cgit v1.2.3