Advertisement
Guest User

Untitled

a guest
May 19th, 2011
523
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.88 KB | None | 0 0
  1. #Поля подлежащие обновлению
  2. FIELDS = (
  3.     'first_name',
  4.     'last_name',
  5.     'nickname',
  6.     'domain',
  7.     'sex',
  8.     'city',
  9.     'country',
  10.     'timezone',
  11.     'photo',
  12.     'photo_medium',
  13.     'photo_big',
  14.     'photo_rec',
  15. )
  16.  
  17. class UpdateProfileMiddleware(object):
  18.  
  19.     def process_request(self, request):
  20.         user = request.user
  21.         if request.user.is_authenticated():
  22.             profile = request.user.profile
  23.         else:
  24.             return None
  25.         if profile.last_update == None or datetime.now() - profile.last_update > settings.UPDATE_TIMEOUT:
  26.             vk = return vkontakte.API(settings.VK_APP_ID, settings.VK_APP_SECRET)
  27.             vk_profile = user.vk_profile
  28.             try:
  29.                 new_data = vk.getProfiles(uids=str(user.username), fields=','.join(FIELDS))[0]
  30.                 for field in FIELDS:
  31.                     if field == 'city':
  32.                         try:
  33.                             setattr(vk_profile,field,City.objects.get(id=new_data[field]))
  34.                         except:
  35.                             pass
  36.                     elif field == 'country':
  37.                         try:
  38.                             setattr(vk_profile,field,Country.objects.get(id=new_data[field]))
  39.                         except:
  40.                             pass
  41.                     elif field == 'first_name' or field == 'last_name' :
  42.                         try:
  43.                             setattr(user,field,new_data[field])
  44.                         except:
  45.                             pass
  46.                     else:
  47.                         try:
  48.                             setattr(vk_profile,field,new_data[field])
  49.                         except:
  50.                             pass
  51.             vk_profile.save()
  52.             user.save()
  53.             profile.last_update = datetime.now()
  54.             profile.save()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement