Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Поля подлежащие обновлению
- FIELDS = (
- 'first_name',
- 'last_name',
- 'nickname',
- 'domain',
- 'sex',
- 'city',
- 'country',
- 'timezone',
- 'photo',
- 'photo_medium',
- 'photo_big',
- 'photo_rec',
- )
- class UpdateProfileMiddleware(object):
- def process_request(self, request):
- user = request.user
- if request.user.is_authenticated():
- profile = request.user.profile
- else:
- return None
- if profile.last_update == None or datetime.now() - profile.last_update > settings.UPDATE_TIMEOUT:
- vk = return vkontakte.API(settings.VK_APP_ID, settings.VK_APP_SECRET)
- vk_profile = user.vk_profile
- try:
- new_data = vk.getProfiles(uids=str(user.username), fields=','.join(FIELDS))[0]
- for field in FIELDS:
- if field == 'city':
- try:
- setattr(vk_profile,field,City.objects.get(id=new_data[field]))
- except:
- pass
- elif field == 'country':
- try:
- setattr(vk_profile,field,Country.objects.get(id=new_data[field]))
- except:
- pass
- elif field == 'first_name' or field == 'last_name' :
- try:
- setattr(user,field,new_data[field])
- except:
- pass
- else:
- try:
- setattr(vk_profile,field,new_data[field])
- except:
- pass
- vk_profile.save()
- user.save()
- profile.last_update = datetime.now()
- profile.save()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement