mm-telegram 0.0.5__py3-none-any.whl → 0.0.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
mm_telegram/__init__.py CHANGED
@@ -1 +1,2 @@
1
- from .simple_message import send_telegram_message as send_telegram_message
1
+ from .simple_message import async_send_message as async_send_message
2
+ from .simple_message import send_message as send_message
@@ -1,10 +1,11 @@
1
1
  import time
2
2
 
3
+ import anyio
3
4
  import pydash
4
- from mm_std import Err, Ok, Result, hr
5
+ from mm_std import Err, Ok, Result, ahr, hr
5
6
 
6
7
 
7
- def send_telegram_message(bot_token: str, chat_id: int, message: str, long_message_delay: int = 3) -> Result[list[int]]:
8
+ def send_message(bot_token: str, chat_id: int, message: str, long_message_delay: int = 3) -> Result[list[int]]:
8
9
  messages = _split_string(message, 4096)
9
10
  responses = []
10
11
  result = []
@@ -29,5 +30,30 @@ def send_telegram_message(bot_token: str, chat_id: int, message: str, long_messa
29
30
  return Ok(result, data={"responses": responses})
30
31
 
31
32
 
33
+ async def async_send_message(bot_token: str, chat_id: int, message: str, long_message_delay: int = 3) -> Result[list[int]]:
34
+ messages = _split_string(message, 4096)
35
+ responses = []
36
+ result = []
37
+ while True:
38
+ text = messages.pop(0)
39
+ params = {"chat_id": chat_id, "text": text}
40
+ res = await ahr(f"https://api.telegram.org/bot{bot_token}/sendMessage", method="post", params=params)
41
+ responses.append(res.json)
42
+ if res.error is not None:
43
+ return Err(res.error, data={"last_res": res.to_dict(), "responses": responses})
44
+
45
+ message_id = pydash.get(res.json, "result.message_id")
46
+ if message_id:
47
+ result.append(message_id)
48
+ else:
49
+ return Err("unknown_response", data={"last_res": res.to_dict(), "responses": responses})
50
+
51
+ if len(messages):
52
+ await anyio.sleep(long_message_delay)
53
+ else:
54
+ break
55
+ return Ok(result, data={"responses": responses})
56
+
57
+
32
58
  def _split_string(text: str, chars_per_string: int) -> list[str]:
33
59
  return [text[i : i + chars_per_string] for i in range(0, len(text), chars_per_string)]
@@ -1,5 +1,5 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mm-telegram
3
- Version: 0.0.5
3
+ Version: 0.0.7
4
4
  Requires-Python: >=3.12
5
- Requires-Dist: mm-std>=0.3.7
5
+ Requires-Dist: mm-std>=0.3.13
@@ -0,0 +1,6 @@
1
+ mm_telegram/__init__.py,sha256=Lt7dNthxAyeswHnf72il9uFGq1c083CA9c8OCRZU0jY,126
2
+ mm_telegram/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ mm_telegram/simple_message.py,sha256=bKhKHcDlXghnxhDtg46U30HFw9gYTd0hyK5ay7heUww,2171
4
+ mm_telegram-0.0.7.dist-info/METADATA,sha256=IqMckz5PIa9tRNN2MUWxbvPMH7yp5Ft_bGKsE2tLQXE,109
5
+ mm_telegram-0.0.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
6
+ mm_telegram-0.0.7.dist-info/RECORD,,
@@ -1,6 +0,0 @@
1
- mm_telegram/__init__.py,sha256=5Q9z-kyvLHgp70L4aChMy2fsVwn_2hRqqE_-tbl99Us,75
2
- mm_telegram/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- mm_telegram/simple_message.py,sha256=lwbB5TgI726cy_Fl4y-FvOwokp7KoHhDazY-quGeIfs,1185
4
- mm_telegram-0.0.5.dist-info/METADATA,sha256=ITHc7Q_jHiHg93Bkf_2T5nv7I9DZLhL-h_lBJ1rpk5g,108
5
- mm_telegram-0.0.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
6
- mm_telegram-0.0.5.dist-info/RECORD,,