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