This commit is contained in:
Iliyan Angelov
2025-09-14 23:24:25 +03:00
commit c67067a2a4
71311 changed files with 6800714 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
from allauth.socialaccount.providers.base import ProviderAccount
from allauth.socialaccount.providers.oauth.provider import OAuthProvider
class EvernoteAccount(ProviderAccount):
def get_profile_url(self):
return None
def get_avatar_url(self):
return None
class EvernoteProvider(OAuthProvider):
id = "evernote"
name = "Evernote"
account_class = EvernoteAccount
def extract_uid(self, data):
return str(data["edam_userId"])
def extract_common_fields(self, data):
return data
provider_classes = [EvernoteProvider]

View File

@@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from allauth.socialaccount.tests import OAuthTestsMixin
from allauth.tests import MockedResponse, TestCase
from .provider import EvernoteProvider
class EvernoteTests(OAuthTestsMixin, TestCase):
provider_id = EvernoteProvider.id
def get_mocked_response(self):
return []
def get_access_token_response(self):
return MockedResponse(
200,
"oauth_token=S%3Ds1%3AU%3D9876%3AE%3D999999b0c50%3AC%3D14c1f89dd18%3AP%3D81%3AA%3Dpennersr%3AV%3D2%3AH%3Ddeadf00dd2d6aba7b519923987b4bf77&oauth_token_secret=&edam_shard=s1&edam_userId=591969&edam_expires=1457994271824&edam_noteStoreUrl=https%3A%2F%2Fsandbox.evernote.com%2Fshard%2Fs1%2Fnotestore&edam_webApiUrlPrefix=https%3A%2F%2Fsandbox.evernote.com%2Fshard%2Fs1%2F", # noqa
{"content-type": "text/plain"},
)

View File

@@ -0,0 +1,6 @@
from allauth.socialaccount.providers.oauth.urls import default_urlpatterns
from .provider import EvernoteProvider
urlpatterns = default_urlpatterns(EvernoteProvider)

View File

@@ -0,0 +1,37 @@
from __future__ import absolute_import
from datetime import datetime
from allauth.socialaccount import app_settings
from allauth.socialaccount.providers.oauth.views import (
OAuthAdapter,
OAuthCallbackView,
OAuthLoginView,
)
from .provider import EvernoteProvider
class EvernoteOAuthAdapter(OAuthAdapter):
provider_id = EvernoteProvider.id
settings = app_settings.PROVIDERS.get(provider_id, {})
request_token_url = "https://%s/oauth" % (
settings.get("EVERNOTE_HOSTNAME", "sandbox.evernote.com")
)
access_token_url = "https://%s/oauth" % (
settings.get("EVERNOTE_HOSTNAME", "sandbox.evernote.com")
)
authorize_url = "https://%s/OAuth.action" % (
settings.get("EVERNOTE_HOSTNAME", "sandbox.evernote.com")
)
def complete_login(self, request, app, token, response):
token.expires_at = datetime.fromtimestamp(
int(response["edam_expires"]) / 1000.0
)
extra_data = response
return self.get_provider().sociallogin_from_response(request, extra_data)
oauth_login = OAuthLoginView.adapter_view(EvernoteOAuthAdapter)
oauth_callback = OAuthCallbackView.adapter_view(EvernoteOAuthAdapter)