Move web stuff to web package

This commit is contained in:
Tulir Asokan
2018-06-24 21:39:01 +03:00
parent 5d48040eb8
commit fa30cb5c1f
10 changed files with 23 additions and 25 deletions
+2 -2
View File
@@ -38,8 +38,8 @@ from .bot import init as init_bot
from .portal import init as init_portal from .portal import init as init_portal
from .puppet import init as init_puppet from .puppet import init as init_puppet
from .formatter import init as init_formatter from .formatter import init as init_formatter
from .public import PublicBridgeWebsite from .web.public import PublicBridgeWebsite
from .provisioning_api import ProvisioningAPI from .web.provisioning import ProvisioningAPI
from .context import Context from .context import Context
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
+2
View File
@@ -0,0 +1,2 @@
from .provisioning import ProvisioningAPI
from .public import PublicBridgeWebsite
+1
View File
@@ -0,0 +1 @@
from .auth_api import AuthAPI
@@ -21,8 +21,8 @@ import logging
from telethon.errors import * from telethon.errors import *
from ..commands.auth import enter_password from mautrix_telegram.commands.auth import enter_password
from ..util import format_duration from mautrix_telegram.util import format_duration
class AuthAPI(abc.ABC): class AuthAPI(abc.ABC):
@@ -33,20 +33,20 @@ class AuthAPI(abc.ABC):
@abstractmethod @abstractmethod
def get_login_response(self, status=200, state="", username="", mxid="", message="", error="", def get_login_response(self, status=200, state="", username="", mxid="", message="", error="",
errcode=""): errcode=""):
raise NotImplementedError() raise NotImplementedError()
async def post_login_phone(self, user, phone): async def post_login_phone(self, user, phone):
try: try:
await user.client.sign_in(phone or "+123") await user.client.sign_in(phone or "+123")
return self.get_login_response(mxid=user.mxid, state="code", status=200, return self.get_login_response(mxid=user.mxid, state="code", status=200,
message="Code requested successfully.") message="Code requested successfully.")
except PhoneNumberInvalidError: except PhoneNumberInvalidError:
return self.get_login_response(mxid=user.mxid, state="request", status=400, return self.get_login_response(mxid=user.mxid, state="request", status=400,
error="Invalid phone number.") error="Invalid phone number.")
except PhoneNumberUnoccupiedError: except PhoneNumberUnoccupiedError:
return self.get_login_response(mxid=user.mxid, state="request", status=404, 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: except PhoneNumberFloodError:
return self.get_login_response( return self.get_login_response(
mxid=user.mxid, state="request", status=429, 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.") f"Please wait for {format_duration(e.seconds)} before trying again.")
except PhoneNumberBannedError: except PhoneNumberBannedError:
return self.get_login_response(mxid=user.mxid, state="request", status=401, 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: except PhoneNumberAppSignupForbiddenError:
return self.get_login_response(mxid=user.mxid, state="request", status=401, 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: except Exception:
self.log.exception("Error requesting phone code") self.log.exception("Error requesting phone code")
return self.get_login_response(mxid=user.mxid, state="request", status=500, 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): async def post_login_code(self, user, code, password_in_data):
try: try:
@@ -75,13 +75,13 @@ class AuthAPI(abc.ABC):
if user.command_status and user.command_status["action"] == "Login": if user.command_status and user.command_status["action"] == "Login":
user.command_status = None user.command_status = None
return self.get_login_response(mxid=user.mxid, state="logged-in", status=200, return self.get_login_response(mxid=user.mxid, state="logged-in", status=200,
username=user_info.username) username=user_info.username)
except PhoneCodeInvalidError: except PhoneCodeInvalidError:
return self.get_login_response(mxid=user.mxid, state="code", status=403, return self.get_login_response(mxid=user.mxid, state="code", status=403,
error="Incorrect phone code.") error="Incorrect phone code.")
except PhoneCodeExpiredError: except PhoneCodeExpiredError:
return self.get_login_response(mxid=user.mxid, state="code", status=403, return self.get_login_response(mxid=user.mxid, state="code", status=403,
error="Phone code expired.") error="Phone code expired.")
except SessionPasswordNeededError: except SessionPasswordNeededError:
if not password_in_data: if not password_in_data:
if user.command_status and user.command_status["action"] == "Login": if user.command_status and user.command_status["action"] == "Login":
@@ -96,7 +96,7 @@ class AuthAPI(abc.ABC):
except Exception: except Exception:
self.log.exception("Error sending phone code") self.log.exception("Error sending phone code")
return self.get_login_response(mxid=user.mxid, state="code", status=500, 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): async def post_login_password(self, user, password):
try: try:
@@ -105,11 +105,11 @@ class AuthAPI(abc.ABC):
if user.command_status and user.command_status["action"] == "Login (password entry)": if user.command_status and user.command_status["action"] == "Login (password entry)":
user.command_status = None user.command_status = None
return self.get_login_response(mxid=user.mxid, state="logged-in", status=200, return self.get_login_response(mxid=user.mxid, state="logged-in", status=200,
username=user_info.username) username=user_info.username)
except (PasswordHashInvalidError, PasswordEmptyError): except (PasswordHashInvalidError, PasswordEmptyError):
return self.get_login_response(mxid=user.mxid, state="password", status=400, return self.get_login_response(mxid=user.mxid, state="password", status=400,
error="Incorrect password.") error="Incorrect password.")
except Exception: except Exception:
self.log.exception("Error sending password") self.log.exception("Error sending password")
return self.get_login_response(mxid=user.mxid, state="password", status=500, 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.")
@@ -20,13 +20,8 @@ import asyncio
import pkg_resources import pkg_resources
import logging import logging
from telethon.errors import * from ...user import User
from ..common import AuthAPI
from ..user import User
from ..commands.auth import enter_password
from ..util import format_duration
from .auth_api import AuthAPI
class PublicBridgeWebsite(AuthAPI): class PublicBridgeWebsite(AuthAPI):

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB