From fa30cb5c1f6cdff7329be426701ef5ed3966b25b Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sun, 24 Jun 2018 21:39:01 +0300 Subject: [PATCH] Move web stuff to web package --- mautrix_telegram/__main__.py | 4 +-- mautrix_telegram/web/__init__.py | 2 ++ mautrix_telegram/web/common/__init__.py | 1 + .../{public => web/common}/auth_api.py | 32 +++++++++--------- .../provisioning/__init__.py} | 0 mautrix_telegram/web/provisioning/spec.yaml | 0 mautrix_telegram/{ => web}/public/__init__.py | 9 ++--- mautrix_telegram/{ => web}/public/favicon.png | Bin mautrix_telegram/{ => web}/public/login.css | 0 .../{ => web}/public/login.html.mako | 0 10 files changed, 23 insertions(+), 25 deletions(-) create mode 100644 mautrix_telegram/web/__init__.py create mode 100644 mautrix_telegram/web/common/__init__.py rename mautrix_telegram/{public => web/common}/auth_api.py (79%) rename mautrix_telegram/{provisioning_api.py => web/provisioning/__init__.py} (100%) create mode 100644 mautrix_telegram/web/provisioning/spec.yaml rename mautrix_telegram/{ => web}/public/__init__.py (96%) rename mautrix_telegram/{ => web}/public/favicon.png (100%) rename mautrix_telegram/{ => web}/public/login.css (100%) rename mautrix_telegram/{ => web}/public/login.html.mako (100%) diff --git a/mautrix_telegram/__main__.py b/mautrix_telegram/__main__.py index 84d01698..9702468f 100644 --- a/mautrix_telegram/__main__.py +++ b/mautrix_telegram/__main__.py @@ -38,8 +38,8 @@ from .bot import init as init_bot from .portal import init as init_portal from .puppet import init as init_puppet from .formatter import init as init_formatter -from .public import PublicBridgeWebsite -from .provisioning_api import ProvisioningAPI +from .web.public import PublicBridgeWebsite +from .web.provisioning import ProvisioningAPI from .context import Context parser = argparse.ArgumentParser( diff --git a/mautrix_telegram/web/__init__.py b/mautrix_telegram/web/__init__.py new file mode 100644 index 00000000..002510e8 --- /dev/null +++ b/mautrix_telegram/web/__init__.py @@ -0,0 +1,2 @@ +from .provisioning import ProvisioningAPI +from .public import PublicBridgeWebsite diff --git a/mautrix_telegram/web/common/__init__.py b/mautrix_telegram/web/common/__init__.py new file mode 100644 index 00000000..ccb0d922 --- /dev/null +++ b/mautrix_telegram/web/common/__init__.py @@ -0,0 +1 @@ +from .auth_api import AuthAPI diff --git a/mautrix_telegram/public/auth_api.py b/mautrix_telegram/web/common/auth_api.py similarity index 79% rename from mautrix_telegram/public/auth_api.py rename to mautrix_telegram/web/common/auth_api.py index ec763452..9502db53 100644 --- a/mautrix_telegram/public/auth_api.py +++ b/mautrix_telegram/web/common/auth_api.py @@ -21,8 +21,8 @@ import logging from telethon.errors import * -from ..commands.auth import enter_password -from ..util import format_duration +from mautrix_telegram.commands.auth import enter_password +from mautrix_telegram.util import format_duration class AuthAPI(abc.ABC): @@ -33,20 +33,20 @@ class AuthAPI(abc.ABC): @abstractmethod def get_login_response(self, status=200, state="", username="", mxid="", message="", error="", - errcode=""): + errcode=""): raise NotImplementedError() async def post_login_phone(self, user, phone): try: await user.client.sign_in(phone or "+123") return self.get_login_response(mxid=user.mxid, state="code", status=200, - message="Code requested successfully.") + message="Code requested successfully.") except PhoneNumberInvalidError: return self.get_login_response(mxid=user.mxid, state="request", status=400, - error="Invalid phone number.") + error="Invalid phone number.") except PhoneNumberUnoccupiedError: return self.get_login_response(mxid=user.mxid, state="request", status=404, - error="That phone number has not been registered.") + error="That phone number has not been registered.") except PhoneNumberFloodError: return self.get_login_response( mxid=user.mxid, state="request", status=429, @@ -59,14 +59,14 @@ class AuthAPI(abc.ABC): f"Please wait for {format_duration(e.seconds)} before trying again.") except PhoneNumberBannedError: return self.get_login_response(mxid=user.mxid, state="request", status=401, - error="Your phone number is banned from Telegram.") + error="Your phone number is banned from Telegram.") except PhoneNumberAppSignupForbiddenError: return self.get_login_response(mxid=user.mxid, state="request", status=401, - error="You have disabled 3rd party apps on your account.") + error="You have disabled 3rd party apps on your account.") except Exception: self.log.exception("Error requesting phone code") return self.get_login_response(mxid=user.mxid, state="request", status=500, - error="Internal server error while requesting code.") + error="Internal server error while requesting code.") async def post_login_code(self, user, code, password_in_data): try: @@ -75,13 +75,13 @@ class AuthAPI(abc.ABC): if user.command_status and user.command_status["action"] == "Login": user.command_status = None return self.get_login_response(mxid=user.mxid, state="logged-in", status=200, - username=user_info.username) + username=user_info.username) except PhoneCodeInvalidError: return self.get_login_response(mxid=user.mxid, state="code", status=403, - error="Incorrect phone code.") + error="Incorrect phone code.") except PhoneCodeExpiredError: return self.get_login_response(mxid=user.mxid, state="code", status=403, - error="Phone code expired.") + error="Phone code expired.") except SessionPasswordNeededError: if not password_in_data: if user.command_status and user.command_status["action"] == "Login": @@ -96,7 +96,7 @@ class AuthAPI(abc.ABC): except Exception: self.log.exception("Error sending phone code") return self.get_login_response(mxid=user.mxid, state="code", status=500, - error="Internal server error while sending code.") + error="Internal server error while sending code.") async def post_login_password(self, user, password): try: @@ -105,11 +105,11 @@ class AuthAPI(abc.ABC): if user.command_status and user.command_status["action"] == "Login (password entry)": user.command_status = None return self.get_login_response(mxid=user.mxid, state="logged-in", status=200, - username=user_info.username) + username=user_info.username) except (PasswordHashInvalidError, PasswordEmptyError): return self.get_login_response(mxid=user.mxid, state="password", status=400, - error="Incorrect password.") + error="Incorrect password.") except Exception: self.log.exception("Error sending password") return self.get_login_response(mxid=user.mxid, state="password", status=500, - error="Internal server error while sending password.") + error="Internal server error while sending password.") diff --git a/mautrix_telegram/provisioning_api.py b/mautrix_telegram/web/provisioning/__init__.py similarity index 100% rename from mautrix_telegram/provisioning_api.py rename to mautrix_telegram/web/provisioning/__init__.py diff --git a/mautrix_telegram/web/provisioning/spec.yaml b/mautrix_telegram/web/provisioning/spec.yaml new file mode 100644 index 00000000..e69de29b diff --git a/mautrix_telegram/public/__init__.py b/mautrix_telegram/web/public/__init__.py similarity index 96% rename from mautrix_telegram/public/__init__.py rename to mautrix_telegram/web/public/__init__.py index 60e22fd6..c08b1bc6 100644 --- a/mautrix_telegram/public/__init__.py +++ b/mautrix_telegram/web/public/__init__.py @@ -20,13 +20,8 @@ import asyncio import pkg_resources import logging -from telethon.errors import * - -from ..user import User -from ..commands.auth import enter_password -from ..util import format_duration - -from .auth_api import AuthAPI +from ...user import User +from ..common import AuthAPI class PublicBridgeWebsite(AuthAPI): diff --git a/mautrix_telegram/public/favicon.png b/mautrix_telegram/web/public/favicon.png similarity index 100% rename from mautrix_telegram/public/favicon.png rename to mautrix_telegram/web/public/favicon.png diff --git a/mautrix_telegram/public/login.css b/mautrix_telegram/web/public/login.css similarity index 100% rename from mautrix_telegram/public/login.css rename to mautrix_telegram/web/public/login.css diff --git a/mautrix_telegram/public/login.html.mako b/mautrix_telegram/web/public/login.html.mako similarity index 100% rename from mautrix_telegram/public/login.html.mako rename to mautrix_telegram/web/public/login.html.mako