コード例 #1
0
ファイル: tasks.py プロジェクト: maximsch2/flow-dashboard
 def get(self):
     from services.github import GithubClient
     date = self.request.get('date')
     if date:
         date = tools.fromISODate(date).date()
     else:
         date = (datetime.today() - timedelta(days=1)).date()
     users = User.SyncActive('github')
     res = {}
     td_put = []
     for user in users:
         gh_client = GithubClient(user)
         logging.debug("Running SyncGithub cron for %s on %s..." %
                       (user, date))
         if gh_client._can_run():
             commits = gh_client.get_contributions_on_day(date)
             if commits is not None:
                 td = TrackingDay.Create(user, date)
                 td.set_properties({'commits': commits})
                 td_put.append(td)
                 res = td.json()
         else:
             logging.debug("Github updater can't run")
     if td_put:
         ndb.put_multi(td_put)
     self.json_out(res, debug=True)
コード例 #2
0
 def get(self):
     from services.github import GithubClient
     last_date = self.request.get('date')
     if last_date:
         last_date = tools.fromISODate(last_date)
     else:
         last_date = (datetime.today() - timedelta(days=1))
     users = User.SyncActive('github')
     res = {}
     td_put = []
     for user in users:
         gh_client = GithubClient(user)
         if gh_client._can_run():
             date_range = [(last_date - timedelta(days=x)).date()
                           for x in range(self.GH_COMMIT_OVERLAP)]
             logging.debug("Running SyncGithub cron for %s on %s..." %
                           (user, date_range))
             commits_dict = gh_client.get_contributions_on_date_range(
                 date_range)
             if commits_dict is not None:
                 for date, n_commits in commits_dict.items():
                     td = TrackingDay.Create(user, date)
                     td.set_properties({'commits': n_commits})
                     td_put.append(td)
         else:
             logging.debug("Github updater can't run")
     if td_put:
         ndb.put_multi(td_put)
     self.json_out(res)
コード例 #3
0
ファイル: api.py プロジェクト: maximsch2/flow-dashboard
 def update(self, d):
     '''
     Update a single TrackingDay() object with properties
     defined via JSON key(str) -> value(str)
     '''
     date = None
     _date = self.request.get('date')
     if _date:
         date = tools.fromISODate(_date)
     data_json = tools.getJson(self.request.get('data'))  # JSON
     td = TrackingDay.Create(self.user, date)  # Get or create
     if data_json:
         td.set_properties(data_json)
         td.put()
     self.success = True
     self.set_response({'tracking_day': td.json() if td else None})
コード例 #4
0
 def get(self):
     from services.gfit import FitClient
     users = User.SyncActive('gfit')
     res = {}
     date = (datetime.today() - timedelta(days=1)).date()
     for user in users:
         fit_enabled = bool(user.get_integration_prop('gfit_activities'))
         logging.debug("Running SyncFromGoogleFit cron for %s on %s..." %
                       (user, date))
         if fit_enabled:
             fit_client = FitClient(user)
             if fit_client:
                 var_durations = fit_client.aggregate_activity_durations(
                     date)
                 logging.debug(var_durations)
                 if var_durations:
                     td = TrackingDay.Create(user, date)
                     td.set_properties(var_durations)
                     td.put()
         else:
             logging.debug("Fit not authorized")
     self.json_out(res, debug=True)