diff --git a/tg_publish.py b/tg_publish.py index 3bdd85e..52fd2e4 100644 --- a/tg_publish.py +++ b/tg_publish.py @@ -255,7 +255,7 @@ def _edit_caption_sync(edit_caption_url, chat_id, message_id, caption, timeout): chat_id: ID чата/канала message_id: ID сообщения для редактирования caption: Новый текст caption - timeout: Кортеж (connect_timeout, read_timeout) или число для общего таймаута + timeout: Кортеж (connect_timeout, read_timeout, write_timeout) или (connect_timeout, read_timeout) или число Returns: requests.Response объект @@ -268,10 +268,24 @@ def _edit_caption_sync(edit_caption_url, chat_id, message_id, caption, timeout): 'parse_mode': 'HTML' } + # Преобразуем timeout в формат, который принимает requests + # requests принимает либо число, либо кортеж (connect, read) + if isinstance(timeout, tuple): + if len(timeout) >= 3: + # Используем максимальный из read и write timeout + connect_timeout, read_timeout, write_timeout = timeout[0], timeout[1], timeout[2] + requests_timeout = (connect_timeout, max(read_timeout, write_timeout)) + elif len(timeout) == 2: + requests_timeout = timeout + else: + requests_timeout = timeout[0] + else: + requests_timeout = timeout + response = requests.post( edit_caption_url, json=data, - timeout=timeout + timeout=requests_timeout ) return response @@ -292,7 +306,7 @@ def _edit_text_sync(edit_text_url, chat_id, message_id, text, timeout): chat_id: ID чата/канала message_id: ID сообщения для редактирования text: Новый текст сообщения - timeout: Кортеж (connect_timeout, read_timeout) или число для общего таймаута + timeout: Кортеж (connect_timeout, read_timeout, write_timeout) или (connect_timeout, read_timeout) или число Returns: requests.Response объект @@ -306,10 +320,24 @@ def _edit_text_sync(edit_text_url, chat_id, message_id, text, timeout): 'disable_web_page_preview': True } + # Преобразуем timeout в формат, который принимает requests + # requests принимает либо число, либо кортеж (connect, read) + if isinstance(timeout, tuple): + if len(timeout) >= 3: + # Используем максимальный из read и write timeout + connect_timeout, read_timeout, write_timeout = timeout[0], timeout[1], timeout[2] + requests_timeout = (connect_timeout, max(read_timeout, write_timeout)) + elif len(timeout) == 2: + requests_timeout = timeout + else: + requests_timeout = timeout[0] + else: + requests_timeout = timeout + response = requests.post( edit_text_url, json=data, - timeout=timeout + timeout=requests_timeout ) return response