Пример #1
0
 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]
         twitter_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)
             twitter_member = DataSourceMember(
                 access_token="mock",
                 refresh_token=twitter_refresh_token,
                 token_expires=DataSourceMember.get_expiration(-3600))
             twitter_member.user = oh_member
             twitter_member._refresh_tokens(
                 client_id=settings.TWITTER_CLIENT_ID,
                 client_secret=settings.TWITTER_CLIENT_SECRET)
             process_twitter.delay(oh_member.oh_id)
             process_twitter(oh_member.oh_id)
Пример #2
0
 def handle(self, *args, **options):
     users = DataSourceMember.objects.all()
     for twitter_user in users:
         if twitter_user.last_updated < (arrow.now() - timedelta(days=4)):
             oh_id = twitter_user.user.oh_id
             process_twitter.delay(oh_id)
         else:
             print("didn't update {}".format(twitter_user.moves_id))
Пример #3
0
def update_data(request):
    if request.method == "POST" and request.user.is_authenticated:
        oh_member = request.user.oh_member
        process_twitter.delay(oh_member.oh_id)
        twitter_member = oh_member.datasourcemember
        twitter_member.last_submitted = arrow.now().format()
        twitter_member.save()
        messages.info(request,
                      ("An update of your Twitter 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')
Пример #4
0
def twitter_complete(request):
    """
    Receive user from Twitter source. Store data, start processing.
    """
    logger.debug("Received user returning from Twitter.")
    # Exchange code for token.
    # This creates an OpenHumansMember and associated user account.
    oauth_verifier = request.GET.get('oauth_verifier', '')
    ohmember = request.user.oh_member
    twitter_member = twitter_code_to_member(oauth_verifier=oauth_verifier,
                                            ohmember=ohmember,
                                            request=request)

    if twitter_member:
        messages.info(request, "Your Twitter account has been connected")
        process_twitter.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 "
                            "Twitter account again"))
    return redirect('/dashboard')