From 91ae50911ed55e07820a75a6152f26b3ac83d56a Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sat, 24 Mar 2018 16:32:21 +0200 Subject: [PATCH] Fix Telethon 0.18.1 compatibility. Fixes #96 --- mautrix_telegram/__main__.py | 4 ++-- mautrix_telegram/abstract_user.py | 2 +- mautrix_telegram/bot.py | 9 ++++----- mautrix_telegram/commands/auth.py | 2 +- mautrix_telegram/commands/handler.py | 2 +- mautrix_telegram/commands/portal.py | 2 +- mautrix_telegram/commands/telegram.py | 8 ++++---- mautrix_telegram/formatter/from_matrix.py | 20 ++++++-------------- mautrix_telegram/formatter/from_telegram.py | 18 +++++------------- mautrix_telegram/portal.py | 8 ++++---- mautrix_telegram/public/__init__.py | 2 +- mautrix_telegram/puppet.py | 4 ++-- mautrix_telegram/tgclient.py | 8 ++++---- mautrix_telegram/user.py | 6 +++--- mautrix_telegram/util/file_transfer.py | 7 ++++--- requirements/3.5.txt | 2 +- requirements/base.txt | 1 + setup.py | 5 +++-- 18 files changed, 48 insertions(+), 62 deletions(-) diff --git a/mautrix_telegram/__main__.py b/mautrix_telegram/__main__.py index f23e18b9..71710ef0 100644 --- a/mautrix_telegram/__main__.py +++ b/mautrix_telegram/__main__.py @@ -22,7 +22,7 @@ import asyncio import sqlalchemy as sql from sqlalchemy import orm -from telethon_aio.sessions import AlchemySessionContainer +from alchemysession import AlchemySessionContainer from mautrix_appservice import AppService from .base import Base @@ -70,7 +70,7 @@ if args.generate_registration: sys.exit(0) if config["appservice.debug"]: - telethon_log = logging.getLogger("telethon_aio") + telethon_log = logging.getLogger("telethon") telethon_log.addHandler(handler) telethon_log.setLevel(logging.DEBUG) log.setLevel(logging.DEBUG) diff --git a/mautrix_telegram/abstract_user.py b/mautrix_telegram/abstract_user.py index 4199b5d2..fe75b0d8 100644 --- a/mautrix_telegram/abstract_user.py +++ b/mautrix_telegram/abstract_user.py @@ -17,7 +17,7 @@ import platform import os -from telethon_aio.tl.types import * +from telethon.tl.types import * from mautrix_appservice import MatrixRequestError from .tgclient import MautrixTelegramClient diff --git a/mautrix_telegram/bot.py b/mautrix_telegram/bot.py index 5f868f0b..02ef656a 100644 --- a/mautrix_telegram/bot.py +++ b/mautrix_telegram/bot.py @@ -18,10 +18,10 @@ from typing import Awaitable, Callable import logging import re -from telethon_aio.tl.types import * -from telethon_aio.tl.functions.messages import GetChatsRequest, GetFullChatRequest -from telethon_aio.tl.functions.channels import GetChannelsRequest, GetParticipantRequest -from telethon_aio.errors import ChannelInvalidError, ChannelPrivateError +from telethon.tl.types import * +from telethon.tl.functions.messages import GetChatsRequest, GetFullChatRequest +from telethon.tl.functions.channels import GetChannelsRequest, GetParticipantRequest +from telethon.errors import ChannelInvalidError, ChannelPrivateError from .abstract_user import AbstractUser from .db import BotChat @@ -29,7 +29,6 @@ from . import puppet as pu, portal as po, user as u config = None - ReplyFunc = Callable[[str], Awaitable[Message]] diff --git a/mautrix_telegram/commands/auth.py b/mautrix_telegram/commands/auth.py index 0e4fabab..57dba518 100644 --- a/mautrix_telegram/commands/auth.py +++ b/mautrix_telegram/commands/auth.py @@ -16,7 +16,7 @@ # along with this program. If not, see . import asyncio -from telethon_aio.errors import * +from telethon.errors import * from . import command_handler from .. import puppet as pu diff --git a/mautrix_telegram/commands/handler.py b/mautrix_telegram/commands/handler.py index 77fbe9a6..6e8f9335 100644 --- a/mautrix_telegram/commands/handler.py +++ b/mautrix_telegram/commands/handler.py @@ -17,7 +17,7 @@ import markdown import logging -from telethon_aio.errors import FloodWaitError +from telethon.errors import FloodWaitError from ..util import format_duration diff --git a/mautrix_telegram/commands/portal.py b/mautrix_telegram/commands/portal.py index f1e01aa5..82e83f9f 100644 --- a/mautrix_telegram/commands/portal.py +++ b/mautrix_telegram/commands/portal.py @@ -16,7 +16,7 @@ # along with this program. If not, see . import asyncio -from telethon_aio.errors import * +from telethon.errors import * from mautrix_appservice import MatrixRequestError from .. import portal as po diff --git a/mautrix_telegram/commands/telegram.py b/mautrix_telegram/commands/telegram.py index 34e81c0a..7b2859b6 100644 --- a/mautrix_telegram/commands/telegram.py +++ b/mautrix_telegram/commands/telegram.py @@ -14,10 +14,10 @@ # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from telethon_aio.errors import * -from telethon_aio.tl.types import User as TLUser -from telethon_aio.tl.functions.messages import ImportChatInviteRequest, CheckChatInviteRequest -from telethon_aio.tl.functions.channels import JoinChannelRequest +from telethon.errors import * +from telethon.tl.types import User as TLUser +from telethon.tl.functions.messages import ImportChatInviteRequest, CheckChatInviteRequest +from telethon.tl.functions.channels import JoinChannelRequest from .. import puppet as pu, portal as po from . import command_handler diff --git a/mautrix_telegram/formatter/from_matrix.py b/mautrix_telegram/formatter/from_matrix.py index 9ee7ead0..f3e54a38 100644 --- a/mautrix_telegram/formatter/from_matrix.py +++ b/mautrix_telegram/formatter/from_matrix.py @@ -22,20 +22,12 @@ import math import re import logging -from telethon_aio.tl.types import (MessageEntityMention, - InputMessageEntityMentionName, MessageEntityEmail, - MessageEntityUrl, MessageEntityTextUrl, MessageEntityBold, - MessageEntityItalic, MessageEntityCode, MessageEntityPre, - MessageEntityBotCommand, MessageEntityHashtag, - MessageEntityMentionName, InputUser) - -try: - from telethon_aio.tl.types import TypeMessageEntity -except ImportError: - TypeMessageEntity = Union[ - MessageEntityMention, MessageEntityHashtag, MessageEntityBotCommand, MessageEntityUrl, - MessageEntityEmail, MessageEntityBold, MessageEntityItalic, MessageEntityCode, - MessageEntityPre, MessageEntityTextUrl, MessageEntityMentionName] +from telethon.tl.types import (MessageEntityMention, + InputMessageEntityMentionName, MessageEntityEmail, + MessageEntityUrl, MessageEntityTextUrl, MessageEntityBold, + MessageEntityItalic, MessageEntityCode, MessageEntityPre, + MessageEntityBotCommand, MessageEntityHashtag, + MessageEntityMentionName, InputUser, TypeMessageEntity) from ..context import Context from .. import user as u, puppet as pu, portal as po diff --git a/mautrix_telegram/formatter/from_telegram.py b/mautrix_telegram/formatter/from_telegram.py index 4cd6de00..022d7497 100644 --- a/mautrix_telegram/formatter/from_telegram.py +++ b/mautrix_telegram/formatter/from_telegram.py @@ -24,19 +24,11 @@ except ImportError: import logging import re -from telethon_aio.tl.types import (MessageEntityMention, MessageEntityMentionName, - MessageEntityEmail, MessageEntityUrl, MessageEntityTextUrl, - MessageEntityBold, MessageEntityItalic, MessageEntityCode, - MessageEntityPre, MessageEntityBotCommand, Message, PeerChannel, - MessageEntityHashtag) - -try: - from telethon_aio.tl.types import TypeMessageEntity -except ImportError: - TypeMessageEntity = Union[ - MessageEntityMention, MessageEntityHashtag, MessageEntityBotCommand, MessageEntityUrl, - MessageEntityEmail, MessageEntityBold, MessageEntityItalic, MessageEntityCode, - MessageEntityPre, MessageEntityTextUrl, MessageEntityMentionName] +from telethon.tl.types import (MessageEntityMention, MessageEntityMentionName, + MessageEntityEmail, MessageEntityUrl, MessageEntityTextUrl, + MessageEntityBold, MessageEntityItalic, MessageEntityCode, + MessageEntityPre, MessageEntityBotCommand, Message, PeerChannel, + MessageEntityHashtag, TypeMessageEntity) from mautrix_appservice import MatrixRequestError from mautrix_appservice.intent_api import IntentAPI diff --git a/mautrix_telegram/portal.py b/mautrix_telegram/portal.py index 1b030bca..f573f5dc 100644 --- a/mautrix_telegram/portal.py +++ b/mautrix_telegram/portal.py @@ -25,10 +25,10 @@ import re import magic -from telethon_aio.tl.functions.messages import * -from telethon_aio.tl.functions.channels import * -from telethon_aio.errors.rpc_error_list import * -from telethon_aio.tl.types import * +from telethon.tl.functions.messages import * +from telethon.tl.functions.channels import * +from telethon.errors.rpc_error_list import * +from telethon.tl.types import * from mautrix_appservice import MatrixRequestError, IntentError from .db import Portal as DBPortal, Message as DBMessage diff --git a/mautrix_telegram/public/__init__.py b/mautrix_telegram/public/__init__.py index 8a4d9e8d..307bed2c 100644 --- a/mautrix_telegram/public/__init__.py +++ b/mautrix_telegram/public/__init__.py @@ -20,7 +20,7 @@ import asyncio import pkg_resources import logging -from telethon_aio.errors import * +from telethon.errors import * from ..user import User from ..commands.auth import enter_password diff --git a/mautrix_telegram/puppet.py b/mautrix_telegram/puppet.py index de00a107..75660906 100644 --- a/mautrix_telegram/puppet.py +++ b/mautrix_telegram/puppet.py @@ -18,8 +18,8 @@ from difflib import SequenceMatcher import re import logging -from telethon_aio.tl.types import UserProfilePhoto -from telethon_aio.errors.rpc_error_list import LocationInvalidError +from telethon.tl.types import UserProfilePhoto +from telethon.errors.rpc_error_list import LocationInvalidError from .db import Puppet as DBPuppet from . import util diff --git a/mautrix_telegram/tgclient.py b/mautrix_telegram/tgclient.py index 2257530d..8c1cc660 100644 --- a/mautrix_telegram/tgclient.py +++ b/mautrix_telegram/tgclient.py @@ -16,10 +16,10 @@ # along with this program. If not, see . from io import BytesIO -from telethon_aio import TelegramClient -from telethon_aio.tl.functions.messages import SendMessageRequest, SendMediaRequest -from telethon_aio.tl.types import * -from telethon_aio.extensions.markdown import parse as parse_md +from telethon import TelegramClient +from telethon.tl.functions.messages import SendMessageRequest, SendMediaRequest +from telethon.tl.types import * +from telethon.extensions.markdown import parse as parse_md class MautrixTelegramClient(TelegramClient): diff --git a/mautrix_telegram/user.py b/mautrix_telegram/user.py index 2af7d46a..32362a68 100644 --- a/mautrix_telegram/user.py +++ b/mautrix_telegram/user.py @@ -18,9 +18,9 @@ import logging import asyncio import re -from telethon_aio.tl.types import * -from telethon_aio.tl.types.contacts import ContactsNotModified -from telethon_aio.tl.functions.contacts import GetContactsRequest, SearchRequest +from telethon.tl.types import * +from telethon.tl.types.contacts import ContactsNotModified +from telethon.tl.functions.contacts import GetContactsRequest, SearchRequest from mautrix_appservice import MatrixRequestError from .db import User as DBUser, Contact as DBContact diff --git a/mautrix_telegram/util/file_transfer.py b/mautrix_telegram/util/file_transfer.py index a1424987..b046248b 100644 --- a/mautrix_telegram/util/file_transfer.py +++ b/mautrix_telegram/util/file_transfer.py @@ -21,6 +21,7 @@ import logging import magic from sqlalchemy.exc import IntegrityError, InvalidRequestError from sqlalchemy.orm.exc import FlushError + try: from PIL import Image except ImportError: @@ -34,9 +35,9 @@ try: except ImportError: VideoFileClip = random = string = os = mimetypes = None -from telethon_aio.tl.types import (Document, FileLocation, InputFileLocation, - InputDocumentFileLocation, PhotoSize, PhotoCachedSize) -from telethon_aio.errors import LocationInvalidError +from telethon.tl.types import (Document, FileLocation, InputFileLocation, + InputDocumentFileLocation, PhotoSize, PhotoCachedSize) +from telethon.errors import LocationInvalidError from ..db import TelegramFile as DBTelegramFile diff --git a/requirements/3.5.txt b/requirements/3.5.txt index 5d2171b8..c8848418 100644 --- a/requirements/3.5.txt +++ b/requirements/3.5.txt @@ -1,2 +1,2 @@ -r base.txt -git+https://github.com/tulir/telethon-asyncio@asyncio-3.5#egg=telethon_aio +git+https://github.com/tulir/telethon-asyncio@asyncio-3.5#egg=telethon diff --git a/requirements/base.txt b/requirements/base.txt index 6e955265..7633fb52 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,3 +6,4 @@ SQLAlchemy alembic Markdown future-fstrings +telethon-session-sqlalchemy diff --git a/setup.py b/setup.py index 03c977b8..e5573181 100644 --- a/setup.py +++ b/setup.py @@ -33,10 +33,11 @@ setuptools.setup( "ruamel.yaml>=0.15.35,<0.16", "future-fstrings>=0.4.2", "python-magic>=0.4.15,<0.5", - "telethon-aio>=0.18,<0.19" if sys.version_info >= (3, 6) else "telethon-aio-git", + "telethon-aio==0.18.1" if sys.version_info >= (3, 6) else "telethon-aio-git", + "telethon-session-sqlalchemy>=0.1,<0.2", ], dependency_links=[ - "https://github.com/tulir/telethon-asyncio/tarball/9b389cfb4b6d3876e9661c23507f17e96897e4b0#egg=telethon-aio-git-0.18.0+1" + "https://github.com/tulir/telethon-asyncio/tarball/f4fa3278185f823dc1dceb34604529246cb6a4c8#egg=telethon-aio-git-0.18.1+1" ], extras_require=extras,