HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/aigenerator/venv/lib/python3.12/site-packages/social_core/backends/tumblr.py
"""
Tumblr OAuth1 backend, docs at:
    https://python-social-auth.readthedocs.io/en/latest/backends/tumblr.html
"""

from ..utils import first
from .oauth import BaseOAuth1


class TumblrOAuth(BaseOAuth1):
    name = "tumblr"
    ID_KEY = "name"
    AUTHORIZATION_URL = "http://www.tumblr.com/oauth/authorize"
    REQUEST_TOKEN_URL = "http://www.tumblr.com/oauth/request_token"
    REQUEST_TOKEN_METHOD = "POST"
    ACCESS_TOKEN_URL = "http://www.tumblr.com/oauth/access_token"

    def get_user_id(self, details, response):
        return response["response"]["user"][self.ID_KEY]

    def get_user_details(self, response):
        # http://www.tumblr.com/docs/en/api/v2#user-methods
        user_info = response["response"]["user"]
        data = {"username": user_info["name"]}
        blog = first(lambda blog: blog["primary"], user_info["blogs"])
        if blog:
            data["fullname"] = blog["title"]
        return data

    def user_data(self, access_token):
        return self.get_json(
            "http://api.tumblr.com/v2/user/info", auth=self.oauth_auth(access_token)
        )