mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-03-03 10:45:52 +03:00
Support interactively signing in as a bot
This commit is contained in:
parent
ac5f8da50c
commit
a50d013ee6
|
@ -16,7 +16,7 @@ class AuthMethods(MessageParseMethods, UserMethods):
|
||||||
|
|
||||||
def start(
|
def start(
|
||||||
self,
|
self,
|
||||||
phone=lambda: input('Please enter your phone: '),
|
phone=lambda: input('Please enter your phone (or bot token): '),
|
||||||
password=lambda: getpass.getpass('Please enter your password: '),
|
password=lambda: getpass.getpass('Please enter your password: '),
|
||||||
*,
|
*,
|
||||||
bot_token=None, force_sms=False, code_callback=None,
|
bot_token=None, force_sms=False, code_callback=None,
|
||||||
|
@ -45,7 +45,8 @@ class AuthMethods(MessageParseMethods, UserMethods):
|
||||||
Args:
|
Args:
|
||||||
phone (`str` | `int` | `callable`):
|
phone (`str` | `int` | `callable`):
|
||||||
The phone (or callable without arguments to get it)
|
The phone (or callable without arguments to get it)
|
||||||
to which the code will be sent.
|
to which the code will be sent. If a bot-token-like
|
||||||
|
string is given, it will be used as such instead.
|
||||||
|
|
||||||
password (`callable`, optional):
|
password (`callable`, optional):
|
||||||
The password for 2 Factor Authentication (2FA).
|
The password for 2 Factor Authentication (2FA).
|
||||||
|
@ -119,14 +120,21 @@ class AuthMethods(MessageParseMethods, UserMethods):
|
||||||
if await self.is_user_authorized():
|
if await self.is_user_authorized():
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
if not bot_token:
|
||||||
|
# Turn the callable into a valid phone number (or bot token)
|
||||||
|
while callable(phone):
|
||||||
|
value = phone()
|
||||||
|
if ':' in value:
|
||||||
|
# Bot tokens have 'user_id:access_hash' format
|
||||||
|
bot_token = value
|
||||||
|
break
|
||||||
|
|
||||||
|
phone = utils.parse_phone(value) or phone
|
||||||
|
|
||||||
if bot_token:
|
if bot_token:
|
||||||
await self.sign_in(bot_token=bot_token)
|
await self.sign_in(bot_token=bot_token)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
# Turn the callable into a valid phone number
|
|
||||||
while callable(phone):
|
|
||||||
phone = utils.parse_phone(phone()) or phone
|
|
||||||
|
|
||||||
me = None
|
me = None
|
||||||
attempts = 0
|
attempts = 0
|
||||||
two_step_detected = False
|
two_step_detected = False
|
||||||
|
|
Loading…
Reference in New Issue
Block a user