def handle(self, *args, **options):
     
     # flickr_user_fetch_photos_complete.delay(None, '88034992@N00')
     
     flickr_users = FlickrUser.objects.filter(initial_fetch_completed=False)
     # users_to_update = []
     # 
     for flickr_user in flickr_users:
         self.stdout.write("Scheduling %s for an update\n" % (flickr_user.username))
         
         fetch_photos_for_flickr_user.delay(None, flickr_user.nsid)
         
         fetch_contacts_for_flickr_user.delay(flickr_user.nsid)
         process_new_flickr_user.delay(flickr_user.nsid)
         
         # flickr_user.count_contacts = flickr_user.contacts.count()
         # flickr_user.save()
         
         # if flickr_user.date_last_photo_update:            
         #     flickr_user.initial_fetch_completed = True
         #         
         #     self.stdout.write("Setting initial fetch completed for %s\n" % (flickr_user.username))
         #     flickr_user.save()
         # else:
         #     users_to_update.append(flickr_user)
         #     self.stdout.write("Scheduling %s for an update\n" % (flickr_user.username))
     
     self.stdout.write("All Done!\n")
    def handle(self, *args, **options):
        user = FlickrUser.objects.get(nsid=options.get('user'))
        
        rsp = flickr.people.getInfo(user_id=user.nsid,format="json",nojsoncallback="true")
        json = simplejson.loads(rsp)

        if json and json['stat'] == "ok":
            api_user = json['person']
            
            user.count_photos = api_user['photos']['count']['_content']
            user.save()                
            
        fetch_photos_for_flickr_user.delay(None, user.nsid)
        
        self.stdout.write("All Done!\n")
Beispiel #3
0
def flickr_extra_values(sender, user, response, details, **kwargs):
    from urlparse import parse_qs
    access_token = parse_qs(response['access_token'])
    
    #a = flickr_api.AuthHandler(access_token_key = str(access_token['oauth_token'][0]), access_token_secret = str(access_token['oauth_token_secret'][0]))
    #flickr_api.set_auth_handler(a)

    rsp = flickr.people.getInfo(user_id=response['id'],format="json",nojsoncallback="true")
    json = simplejson.loads(rsp)
    
    if json and json['stat'] == "ok":
        api_user = json['person']
        
        try:
          profile = user.get_profile()
        except:
          profile = UserProfile.objects.create(user = user)
        
        flickr_user, created = FlickrUser.objects.get_or_create(
            nsid = response['id'],
            defaults = {
                'username': api_user['username']['_content'],
                'iconserver': api_user['iconserver'],
                'iconfarm': api_user['iconfarm'],
                'count_photos': api_user['photos']['count']['_content'],
            }
        )
        
        profile.flickr_nsid = response['id']
        profile.flickr_username = response['username']
        profile.flickr_fullname = response['fullname']
        profile.flickr_oauth_token = access_token['oauth_token'][0]
        profile.flickr_oauth_token_secret = access_token['oauth_token_secret'][0]
        profile.flickr_user = flickr_user

        profile.save()
        
        if created:
            from photos.tasks import fetch_photos_for_flickr_user
            from flickr.tasks import fetch_contacts_for_flickr_user
            from flickr.tasks import process_new_flickr_user
            
            fetch_photos_for_flickr_user.delay(None, flickr_user.nsid)
            fetch_contacts_for_flickr_user.delay(flickr_user.nsid)
            process_new_flickr_user.delay(flickr_user.nsid)
            
        else:
            flickr_user.username = api_user['username']['_content']
            flickr_user.iconserver = api_user['iconserver']
            flickr_user.iconfarm = api_user['iconfarm']
            
        try:
            flickr_user.realname = api_user['realname']['_content']
        except KeyError:
            flickr_user.realname = None
            
        try:
            flickr_user.path_alias = api_user['path_alias']
        except KeyError:
            flickr_user.path_alias = None

        flickr_user.save()
            
        return True