From b9c39b6a6d79c1fb2672026ed13bef0f0679d517 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Apr 13 2016 22:27:31 +0000 Subject: [PATCH 1/3] Let's ignore error when importing preferences This happens if the library used locally is outdated compared to the one in prod. Let's just ignore this. --- diff --git a/hubs/widgets/feed.py b/hubs/widgets/feed.py index de793f5..92b0773 100755 --- a/hubs/widgets/feed.py +++ b/hubs/widgets/feed.py @@ -74,7 +74,10 @@ def data(session, widget, username, fmn_context): matches = [] preference = get_remote_preference(username, fmn_context) if preference: - preference = rehydrate_preference(preference) + try: + preference = rehydrate_preference(preference) + except ImportError: + pass # The smaller we make this, the faster it is. delta = datetime.timedelta(days=365) From 17da2872e0388cc6d88b83ca4ac84abda4e99db3 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Apr 13 2016 22:27:31 +0000 Subject: [PATCH 2/3] Only return something in the GitHub PR widget if there is a token set --- diff --git a/hubs/widgets/github_pr.py b/hubs/widgets/github_pr.py index 89c8766..24c2dc8 100755 --- a/hubs/widgets/github_pr.py +++ b/hubs/widgets/github_pr.py @@ -27,21 +27,25 @@ template = templating.environment.get_template('templates/github_pr.html') help="Github Organization or username") def data(session, widget, display_number, organization): log.info("Getting GH prs for %r, (%r)" % (organization, display_number)) - token = config['github.oauth_token'] + token = config.get('github.oauth_token') org = organization - repos = hubs.utils.github_repos(token, org) - pulls = sum([ - list(hubs.utils.github_pulls(token, org, repo)) - for repo in repos - ], []) - # Reverse-sort by time (newest-first) - pulls.sort(lambda a, b: cmp(b['timestamp'], a['timestamp'])) - - # Some hints for display - display_number = min(display_number, len(pulls)) - more = len(pulls) - display_number - if more < 0: - more = 0 + pulls = [] + display_number = 0 + more = 0 + if token: + repos = hubs.utils.github_repos(token, org) + pulls = sum([ + list(hubs.utils.github_pulls(token, org, repo)) + for repo in repos + ], []) + # Reverse-sort by time (newest-first) + pulls.sort(lambda a, b: cmp(b['timestamp'], a['timestamp'])) + + # Some hints for display + display_number = min(display_number, len(pulls)) + more = len(pulls) - display_number + if more < 0: + more = 0 return dict( organization=org, From b8a1700f0b2a78723b2b463e5117e49fa7039e43 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Apr 14 2016 18:20:42 +0000 Subject: [PATCH 3/3] Optimization and code style changed as suggested by @sayanchowdhury --- diff --git a/hubs/widgets/github_pr.py b/hubs/widgets/github_pr.py index 24c2dc8..5ee081a 100755 --- a/hubs/widgets/github_pr.py +++ b/hubs/widgets/github_pr.py @@ -42,10 +42,9 @@ def data(session, widget, display_number, organization): pulls.sort(lambda a, b: cmp(b['timestamp'], a['timestamp'])) # Some hints for display - display_number = min(display_number, len(pulls)) - more = len(pulls) - display_number - if more < 0: - more = 0 + len_pulls = len(pulls) + display_number = min(display_number, len_pulls) + more = max(len_pulls - display_number, 0) return dict( organization=org,