1from allauth.socialaccount.providers.base import ProviderAccount 2from allauth.socialaccount.providers.oauth2.provider import OAuth2Provider 3 4 5class BaiduAccount(ProviderAccount): 6 def get_profile_url(self): 7 return "http://www.baidu.com/p/" + self.account.extra_data.get('uname') 8 9 def get_avatar_url(self): 10 return ( 11 'http://tb.himg.baidu.com/sys/portraitn/item/' + 12 self.account.extra_data.get('portrait')) 13 14 def to_str(self): 15 dflt = super(BaiduAccount, self).to_str() 16 return self.account.extra_data.get('uname', dflt) 17 18 19class BaiduProvider(OAuth2Provider): 20 id = 'baidu' 21 name = 'Baidu' 22 account_class = BaiduAccount 23 24 def extract_uid(self, data): 25 return data['uid'] 26 27 def extract_common_fields(self, data): 28 return dict(username=data.get('uid'), 29 name=data.get('uname')) 30 31 32provider_classes = [BaiduProvider] 33