mirror of
https://github.com/pyrogram/pyrogram
synced 2025-08-29 05:18:10 +00:00
Merge branch 'bot_token_arg' into session_storage
# Conflicts: # pyrogram/client/client.py # pyrogram/client/ext/base_client.py # pyrogram/client/ext/syncer.py
This commit is contained in:
commit
fd5889d69e
@ -27,6 +27,7 @@ import struct
|
|||||||
import tempfile
|
import tempfile
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
|
import warnings
|
||||||
from configparser import ConfigParser
|
from configparser import ConfigParser
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from hashlib import sha256, md5
|
from hashlib import sha256, md5
|
||||||
@ -69,9 +70,8 @@ class Client(Methods, BaseClient):
|
|||||||
|
|
||||||
Args:
|
Args:
|
||||||
session_name (``str``):
|
session_name (``str``):
|
||||||
Name to uniquely identify a session of either a User or a Bot.
|
Name to uniquely identify a session of either a User or a Bot, e.g.: "my_main_account".
|
||||||
For Users: pass a string of your choice, e.g.: "my_main_account".
|
You still can use bot token here, but it will be deprecated in next release.
|
||||||
For Bots: pass your Bot API token, e.g.: "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
|
|
||||||
Note: as long as a valid User session file exists, Pyrogram won't ask you again to input your phone number.
|
Note: as long as a valid User session file exists, Pyrogram won't ask you again to input your phone number.
|
||||||
|
|
||||||
api_id (``int``, *optional*):
|
api_id (``int``, *optional*):
|
||||||
@ -146,6 +146,10 @@ class Client(Methods, BaseClient):
|
|||||||
a new Telegram account in case the phone number you passed is not registered yet.
|
a new Telegram account in case the phone number you passed is not registered yet.
|
||||||
Only applicable for new sessions.
|
Only applicable for new sessions.
|
||||||
|
|
||||||
|
bot_token (``str``, *optional*):
|
||||||
|
Pass your Bot API token to create a bot session, e.g.: "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
|
||||||
|
Only applicable for new sessions.
|
||||||
|
|
||||||
last_name (``str``, *optional*):
|
last_name (``str``, *optional*):
|
||||||
Same purpose as *first_name*; pass a Last Name to avoid entering it manually. It can
|
Same purpose as *first_name*; pass a Last Name to avoid entering it manually. It can
|
||||||
be an empty string: "". Only applicable for new sessions.
|
be an empty string: "". Only applicable for new sessions.
|
||||||
@ -194,6 +198,7 @@ class Client(Methods, BaseClient):
|
|||||||
password: str = None,
|
password: str = None,
|
||||||
recovery_code: callable = None,
|
recovery_code: callable = None,
|
||||||
force_sms: bool = False,
|
force_sms: bool = False,
|
||||||
|
bot_token: str = None,
|
||||||
first_name: str = None,
|
first_name: str = None,
|
||||||
last_name: str = None,
|
last_name: str = None,
|
||||||
workers: int = BaseClient.WORKERS,
|
workers: int = BaseClient.WORKERS,
|
||||||
@ -231,6 +236,7 @@ class Client(Methods, BaseClient):
|
|||||||
self.password = password
|
self.password = password
|
||||||
self.recovery_code = recovery_code
|
self.recovery_code = recovery_code
|
||||||
self.force_sms = force_sms
|
self.force_sms = force_sms
|
||||||
|
self.bot_token = bot_token
|
||||||
self.first_name = first_name
|
self.first_name = first_name
|
||||||
self.last_name = last_name
|
self.last_name = last_name
|
||||||
self.workers = workers
|
self.workers = workers
|
||||||
@ -276,8 +282,13 @@ class Client(Methods, BaseClient):
|
|||||||
raise ConnectionError("Client has already been started")
|
raise ConnectionError("Client has already been started")
|
||||||
|
|
||||||
if self.BOT_TOKEN_RE.match(self.session_name):
|
if self.BOT_TOKEN_RE.match(self.session_name):
|
||||||
|
self.is_bot = True
|
||||||
self.bot_token = self.session_name
|
self.bot_token = self.session_name
|
||||||
self.session_name = self.session_name.split(":")[0]
|
self.session_name = self.session_name.split(":")[0]
|
||||||
|
warnings.warn('\nYou are using a bot token as session name.\n'
|
||||||
|
'It will be deprecated in next update, please use session file name to load '
|
||||||
|
'existing sessions and bot_token argument to create new sessions.',
|
||||||
|
DeprecationWarning, stacklevel=2)
|
||||||
|
|
||||||
self.load_config()
|
self.load_config()
|
||||||
self.load_session()
|
self.load_session()
|
||||||
@ -297,11 +308,12 @@ class Client(Methods, BaseClient):
|
|||||||
if self.bot_token is None:
|
if self.bot_token is None:
|
||||||
self.authorize_user()
|
self.authorize_user()
|
||||||
else:
|
else:
|
||||||
|
self.is_bot = True
|
||||||
self.authorize_bot()
|
self.authorize_bot()
|
||||||
|
|
||||||
self.save_session()
|
self.save_session()
|
||||||
|
|
||||||
if self.bot_token is None:
|
if not self.is_bot:
|
||||||
if self.takeout:
|
if self.takeout:
|
||||||
self.takeout_id = self.send(functions.account.InitTakeoutSession()).id
|
self.takeout_id = self.send(functions.account.InitTakeoutSession()).id
|
||||||
log.warning("Takeout session {} initiated".format(self.takeout_id))
|
log.warning("Takeout session {} initiated".format(self.takeout_id))
|
||||||
|
@ -70,7 +70,7 @@ class BaseClient(SessionStorageMixin):
|
|||||||
|
|
||||||
def __init__(self, session_storage: BaseSessionStorage):
|
def __init__(self, session_storage: BaseSessionStorage):
|
||||||
self.session_storage = session_storage
|
self.session_storage = session_storage
|
||||||
self.bot_token = None
|
self.is_bot = False
|
||||||
|
|
||||||
self.rnd_id = MsgId
|
self.rnd_id = MsgId
|
||||||
self.channels_pts = {}
|
self.channels_pts = {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user