Ejemplo n.º 1
0
def save_open_profile(user, open_profile, amqp_headers=None):
    from twitter.models import TwitterProfile
    from registration.utils import copy_avatar_from_url_to_profile, is_sso_email
    if not open_profile:
        return
    p_type = open_profile['profile_type']
    user_profile = user.get_profile()
    if p_type in settings.INSTALLED_APPS:
        if p_type == 'twitter':
            profile = user_profile.twitter_profile
            created = False
            if not profile:
                profile = TwitterProfile(user_profile=user_profile)
                created = True
            profile.created = created
            profile.screen_name = open_profile['screen_name']
            profile.appuser_id = unicode(open_profile['appuser_id'])
            profile.access_token = open_profile['access_token']
            profile.save(amqp_headers=amqp_headers)
            # If user doesn't have a first and last name, set them from the open_profile
            user_changed = False
            if not user.first_name:
                user.first_name = open_profile['first_name']
                user_changed = True
            if not user.last_name:
                user.last_name = open_profile['last_name']
                user_changed = True
            if user_changed:
                user.save()
            if not user_profile.avatar_medium and 'profile_image_url' in open_profile:
                # grab twitter profile image
                url = open_profile['profile_image_url']
                copy_avatar_from_url_to_profile(url, user_profile, commit=True)
            return profile
    return None
Ejemplo n.º 2
0
def add_twitter_acct(request):
	twat = TwitterProfile()
	if request.method == 'POST':
		twatForm = TwitterForm(request.POST, instance=twat)
		if twatForm.is_valid():
			try:
				twits = TwitterProfile.objects.all()
			except Exception, e:
				print e
			# Check to make sure username does not already exist in database
			for twit in twits:
				if twit.user_name == twat.user_name:
					if not twit.active:
						twit.Activate()
					print "user_name already in database"
			try:
				twat.save()
			except Exception, e:
				print e
			return redirect('dashboard.views.dashboard')
Ejemplo n.º 3
0
def save_open_profile(user, open_profile, amqp_headers=None):
    from twitter.models import TwitterProfile
    from registration.utils import copy_avatar_from_url_to_profile, is_sso_email

    if not open_profile:
        return
    p_type = open_profile["profile_type"]
    user_profile = user.get_profile()
    if p_type in settings.INSTALLED_APPS:
        if p_type == "twitter":
            profile = user_profile.twitter_profile
            created = False
            if not profile:
                profile = TwitterProfile(user_profile=user_profile)
                created = True
            profile.created = created
            profile.screen_name = open_profile["screen_name"]
            profile.appuser_id = unicode(open_profile["appuser_id"])
            profile.access_token = open_profile["access_token"]
            profile.save(amqp_headers=amqp_headers)
            # If user doesn't have a first and last name, set them from the open_profile
            user_changed = False
            if not user.first_name:
                user.first_name = open_profile["first_name"]
                user_changed = True
            if not user.last_name:
                user.last_name = open_profile["last_name"]
                user_changed = True
            if user_changed:
                user.save()
            if not user_profile.avatar_medium and "profile_image_url" in open_profile:
                # grab twitter profile image
                url = open_profile["profile_image_url"]
                copy_avatar_from_url_to_profile(url, user_profile, commit=True)
            return profile
    return None
Ejemplo n.º 4
0
def thanks(request, redirect_url='user_timeline'):

    """A user gets redirected here after hitting Twitter and authorizing your app to use their data.

    This is the view that stores the tokens you want
    for querying data. Pay attention to this.

    """
    # Now that we've got the magic tokens back from Twitter, we need to exchange
    # for permanent ones and store them...
    oauth_token = request.session['request_token']['oauth_token']
    oauth_token_secret = request.session['request_token']['oauth_token_secret']
    twitter = Twython(settings.TWITTER_KEY, settings.TWITTER_SECRET,
                      oauth_token, oauth_token_secret)

    # Retrieve the tokens we want...
    authorized_tokens = twitter.get_authorized_tokens(request.GET['oauth_verifier'])

    # If they already exist, grab them, login and redirect to a page displaying stuff.
    try:
        user = User.objects.get(username=authorized_tokens['screen_name'])
        try:
            user_twitter_profile = TwitterProfile.objects.get(user=user)
        except TwitterProfile.DoesNotExist:
            profile = TwitterProfile()
            profile.user = user
            profile.oauth_token = authorized_tokens['oauth_token']
            profile.oauth_secret = authorized_tokens['oauth_token_secret']
            profile.save()
    except User.DoesNotExist:
        # We mock a creation here; no email, password is just the token, etc.
        user = User.objects.create_user(authorized_tokens['screen_name'], "fjdsfn" + authorized_tokens['screen_name'] + ".com", authorized_tokens['oauth_token_secret'])
        profile = TwitterProfile()
        profile.user = user
        profile.oauth_token = authorized_tokens['oauth_token']
        profile.oauth_secret = authorized_tokens['oauth_token_secret']
        profile.save()

    user = authenticate(
        username=authorized_tokens['screen_name'],
        password=authorized_tokens['oauth_token_secret']
    )
    # login(request, user)
    request.session['twitterprofile'] = user
    return HttpResponseRedirect(redirect_url)