def handle(self, *args, **options): for line in open(options['infile']): line = line.strip().split(options['delimiter']) oh_id = line[0] oh_refresh_token = line[1] github_refresh_token = line[2] if len(OpenHumansMember.objects.filter(oh_id=oh_id)) == 0: oh_member = OpenHumansMember.create( oh_id=oh_id, access_token="mock", refresh_token=oh_refresh_token, expires_in=-3600) oh_member.save() oh_member._refresh_tokens( client_id=settings.OPENHUMANS_CLIENT_ID, client_secret=settings.OPENHUMANS_CLIENT_SECRET) oh_member = OpenHumansMember.objects.get(oh_id=oh_id) github_member = DataSourceMember( access_token="mock", refresh_token=github_refresh_token, token_expires=DataSourceMember.get_expiration(-3600)) github_member.user = oh_member github_member._refresh_tokens( client_id=settings.GITHUB_CLIENT_ID, client_secret=settings.GITHUB_CLIENT_SECRET) process_github.delay(oh_member.oh_id) process_github(oh_member.oh_id)
def handle(self, *args, **options): users = DataSourceMember.objects.all() for github_user in users: if github_user.last_updated < (arrow.now() - timedelta(days=4)): oh_id = github_user.user.oh_id process_github.delay(oh_id) else: print("didn't update {}".format(github_user.moves_id))
def update_data(request): if request.method == "POST" and request.user.is_authenticated: oh_member = request.user.oh_member process_github.delay(oh_member.oh_id) github_member = oh_member.datasourcemember github_member.last_submitted = arrow.now().format() github_member.save() messages.info(request, ("An update of your Github data has been started! " "It can take some minutes before the first data is " "available. Reload this page in a while to find your " "data")) return redirect('/dashboard')
def github_complete(request): """ Receive user from Github source. Store data, start processing. """ logger.debug("Received user returning from Github.") # Exchange code for token. # This creates an OpenHumansMember and associated user account. code = request.GET.get('code', '') ohmember = request.user.oh_member github_member = github_code_to_member(code=code, ohmember=ohmember) if github_member: messages.info(request, "Your Github account has been connected") process_github.delay(ohmember.oh_id) return redirect('/dashboard') logger.debug('Invalid code exchange. User returned to starting page.') messages.info(request, ("Something went wrong, please try connecting your " "Github account again")) return redirect('/dashboard')