extergram 0.1.0__tar.gz

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.
@@ -0,0 +1,60 @@
1
+ Metadata-Version: 2.4
2
+ Name: extergram
3
+ Version: 0.1.0
4
+ Summary: Простая и удобная библиотека для создания Telegram-ботов.
5
+ Author-email: WinFun15 <tibipocoxzsa@gmail.com>
6
+ Project-URL: Homepage, https://github.com/AAVTIBI1/extergram
7
+ Project-URL: Bug Tracker, https://github.com/AAVTIBI1/extergram/issues
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
13
+ Requires-Python: >=3.8
14
+ Description-Content-Type: text/markdown
15
+ Requires-Dist: requests>=2.25.1
16
+
17
+ # Extergram
18
+
19
+ Простая и удобная библиотека для создания Telegram-ботов на Python.
20
+
21
+ ## Установка
22
+
23
+ \`\`\`bash
24
+ pip install extergram
25
+ \`\`\`
26
+
27
+ ## Пример использования
28
+
29
+ \`\`\`python
30
+ from extergram import Bot, Msg, ButtonsDesign, Markdown
31
+
32
+ # Замените 'YOUR_BOT_TOKEN' на ваш токен
33
+ bot = Bot('YOUR_BOT_TOKEN')
34
+ msg = Msg(bot)
35
+
36
+ # ID чата, куда будет отправлено сообщение
37
+ chat_id = 123456789
38
+
39
+ # Простое сообщение
40
+ msg.send(chat_id, "Привет, мир!")
41
+
42
+ # Сообщение с MarkdownV2
43
+ formatted_text = f"{Markdown.bold('Привет')}, это {Markdown.italic('Extergram')}!"
44
+ msg.send(chat_id, formatted_text, parse_mode='MarkdownV2')
45
+
46
+ # Сообщение с кнопками
47
+ buttons = ButtonsDesign().add_row(
48
+ ButtonsDesign.create_button("Кнопка 1", "callback_1"),
49
+ ButtonsDesign.create_button("Кнопка 2", "callback_2")
50
+ )
51
+ msg.send(chat_id, "Сообщение с кнопками:", reply_markup=buttons)
52
+
53
+ print("Сообщения отправлены!")
54
+ \`\`\`
55
+
56
+ ## Возможности
57
+
58
+ * Простой и интуитивно понятный синтаксис.
59
+ * Встроенная поддержка и автоматическое экранирование для MarkdownV2.
60
+ * Удобный конструктор для создания встроенных клавиатур.
@@ -0,0 +1,44 @@
1
+ # Extergram
2
+
3
+ Простая и удобная библиотека для создания Telegram-ботов на Python.
4
+
5
+ ## Установка
6
+
7
+ \`\`\`bash
8
+ pip install extergram
9
+ \`\`\`
10
+
11
+ ## Пример использования
12
+
13
+ \`\`\`python
14
+ from extergram import Bot, Msg, ButtonsDesign, Markdown
15
+
16
+ # Замените 'YOUR_BOT_TOKEN' на ваш токен
17
+ bot = Bot('YOUR_BOT_TOKEN')
18
+ msg = Msg(bot)
19
+
20
+ # ID чата, куда будет отправлено сообщение
21
+ chat_id = 123456789
22
+
23
+ # Простое сообщение
24
+ msg.send(chat_id, "Привет, мир!")
25
+
26
+ # Сообщение с MarkdownV2
27
+ formatted_text = f"{Markdown.bold('Привет')}, это {Markdown.italic('Extergram')}!"
28
+ msg.send(chat_id, formatted_text, parse_mode='MarkdownV2')
29
+
30
+ # Сообщение с кнопками
31
+ buttons = ButtonsDesign().add_row(
32
+ ButtonsDesign.create_button("Кнопка 1", "callback_1"),
33
+ ButtonsDesign.create_button("Кнопка 2", "callback_2")
34
+ )
35
+ msg.send(chat_id, "Сообщение с кнопками:", reply_markup=buttons)
36
+
37
+ print("Сообщения отправлены!")
38
+ \`\`\`
39
+
40
+ ## Возможности
41
+
42
+ * Простой и интуитивно понятный синтаксис.
43
+ * Встроенная поддержка и автоматическое экранирование для MarkdownV2.
44
+ * Удобный конструктор для создания встроенных клавиатур.
@@ -0,0 +1,15 @@
1
+ from .core import Bot, Msg
2
+ from .ui import ButtonsDesign
3
+ from .utils import Markdown, escape_markdown_v2
4
+
5
+ __version__ = "0.1.0"
6
+ __author__ = "WinFun15"
7
+ __email__ = "tibipocoxzsa@gmail.com"
8
+
9
+ __all__ = [
10
+ "Bot",
11
+ "Msg",
12
+ "ButtonsDesign",
13
+ "Markdown",
14
+ "escape_markdown_v2"
15
+ ]
@@ -0,0 +1,34 @@
1
+ import requests
2
+ import json
3
+ from .ui import ButtonsDesign
4
+ from .utils import escape_markdown_v2
5
+
6
+ class Bot:
7
+ def __init__(self, token: str):
8
+ self.token = token
9
+ self.api_url = f"https://api.telegram.org/bot{self.token}/"
10
+
11
+ def _make_request(self, method: str, params: dict = None):
12
+ response = requests.post(self.api_url + method, json=params)
13
+ response.raise_for_status()
14
+ return response.json()
15
+
16
+ def get_updates(self, offset: int = None, timeout: int = 30):
17
+ params = {'timeout': timeout, 'offset': offset}
18
+ return self._make_request('getUpdates', params)
19
+
20
+ def send_message(self, chat_id: int, text: str, parse_mode: str = None, reply_markup: dict = None):
21
+ params = {'chat_id': chat_id, 'text': text}
22
+ if parse_mode:
23
+ params['parse_mode'] = parse_mode
24
+ if reply_markup:
25
+ params['reply_markup'] = reply_markup
26
+ return self._make_request('sendMessage', params)
27
+
28
+ class Msg:
29
+ def __init__(self, bot: Bot):
30
+ self.bot = bot
31
+
32
+ def send(self, chat_id: int, text: str, parse_mode: str = None, reply_markup: ButtonsDesign = None):
33
+ markup = reply_markup.to_dict() if reply_markup else None
34
+ return self.bot.send_message(chat_id, text, parse_mode, markup)
@@ -0,0 +1,14 @@
1
+ class ButtonsDesign:
2
+ def __init__(self, inline_keyboard: list = None):
3
+ self.keyboard = inline_keyboard if inline_keyboard else []
4
+
5
+ def add_row(self, *buttons):
6
+ self.keyboard.append(list(buttons))
7
+ return self
8
+
9
+ def to_dict(self):
10
+ return {"inline_keyboard": self.keyboard}
11
+
12
+ @staticmethod
13
+ def create_button(text: str, callback_data: str):
14
+ return {"text": text, "callback_data": callback_data}
@@ -0,0 +1,26 @@
1
+ import re
2
+
3
+ def escape_markdown_v2(text: str) -> str:
4
+ escape_chars = r'_*[]()~`>#+-=|{}.!'
5
+ return re.sub(f'([{re.escape(escape_chars)}])', r'\\\1', text)
6
+
7
+ class Markdown:
8
+ @staticmethod
9
+ def bold(text: str) -> str:
10
+ return f"*{escape_markdown_v2(text)}*"
11
+
12
+ @staticmethod
13
+ def italic(text: str) -> str:
14
+ return f"_{escape_markdown_v2(text)}_"
15
+
16
+ @staticmethod
17
+ def code(text: str) -> str:
18
+ return f"`{escape_markdown_v2(text)}`"
19
+
20
+ @staticmethod
21
+ def pre(text: str, language: str = "") -> str:
22
+ return f"```{language}\n{escape_markdown_v2(text)}\n```"
23
+
24
+ @staticmethod
25
+ def link(text: str, url: str) -> str:
26
+ return f"[{escape_markdown_v2(text)}]({url})"
@@ -0,0 +1,60 @@
1
+ Metadata-Version: 2.4
2
+ Name: extergram
3
+ Version: 0.1.0
4
+ Summary: Простая и удобная библиотека для создания Telegram-ботов.
5
+ Author-email: WinFun15 <tibipocoxzsa@gmail.com>
6
+ Project-URL: Homepage, https://github.com/AAVTIBI1/extergram
7
+ Project-URL: Bug Tracker, https://github.com/AAVTIBI1/extergram/issues
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
13
+ Requires-Python: >=3.8
14
+ Description-Content-Type: text/markdown
15
+ Requires-Dist: requests>=2.25.1
16
+
17
+ # Extergram
18
+
19
+ Простая и удобная библиотека для создания Telegram-ботов на Python.
20
+
21
+ ## Установка
22
+
23
+ \`\`\`bash
24
+ pip install extergram
25
+ \`\`\`
26
+
27
+ ## Пример использования
28
+
29
+ \`\`\`python
30
+ from extergram import Bot, Msg, ButtonsDesign, Markdown
31
+
32
+ # Замените 'YOUR_BOT_TOKEN' на ваш токен
33
+ bot = Bot('YOUR_BOT_TOKEN')
34
+ msg = Msg(bot)
35
+
36
+ # ID чата, куда будет отправлено сообщение
37
+ chat_id = 123456789
38
+
39
+ # Простое сообщение
40
+ msg.send(chat_id, "Привет, мир!")
41
+
42
+ # Сообщение с MarkdownV2
43
+ formatted_text = f"{Markdown.bold('Привет')}, это {Markdown.italic('Extergram')}!"
44
+ msg.send(chat_id, formatted_text, parse_mode='MarkdownV2')
45
+
46
+ # Сообщение с кнопками
47
+ buttons = ButtonsDesign().add_row(
48
+ ButtonsDesign.create_button("Кнопка 1", "callback_1"),
49
+ ButtonsDesign.create_button("Кнопка 2", "callback_2")
50
+ )
51
+ msg.send(chat_id, "Сообщение с кнопками:", reply_markup=buttons)
52
+
53
+ print("Сообщения отправлены!")
54
+ \`\`\`
55
+
56
+ ## Возможности
57
+
58
+ * Простой и интуитивно понятный синтаксис.
59
+ * Встроенная поддержка и автоматическое экранирование для MarkdownV2.
60
+ * Удобный конструктор для создания встроенных клавиатур.
@@ -0,0 +1,11 @@
1
+ README.md
2
+ pyproject.toml
3
+ extergram.egg-info/PKG-INFO
4
+ extergram.egg-info/SOURCES.txt
5
+ extergram.egg-info/dependency_links.txt
6
+ extergram.egg-info/requires.txt
7
+ extergram.egg-info/top_level.txt
8
+ extergram/extergram/__init__.py
9
+ extergram/extergram/core.py
10
+ extergram/extergram/ui.py
11
+ extergram/extergram/utils.py
@@ -0,0 +1 @@
1
+ requests>=2.25.1
@@ -0,0 +1 @@
1
+ extergram
@@ -0,0 +1,29 @@
1
+ # pyproject.toml
2
+
3
+ [build-system]
4
+ requires = ["setuptools>=61.0"]
5
+ build-backend = "setuptools.build_meta"
6
+
7
+ [project]
8
+ name = "extergram"
9
+ version = "0.1.0"
10
+ authors = [
11
+ { name="WinFun15", email="tibipocoxzsa@gmail.com" },
12
+ ]
13
+ description = "Простая и удобная библиотека для создания Telegram-ботов."
14
+ readme = "README.md"
15
+ requires-python = ">=3.8"
16
+ classifiers = [
17
+ "Programming Language :: Python :: 3",
18
+ "License :: OSI Approved :: MIT License",
19
+ "Operating System :: OS Independent",
20
+ "Intended Audience :: Developers",
21
+ "Topic :: Software Development :: Libraries :: Python Modules",
22
+ ]
23
+ dependencies = [
24
+ "requests>=2.25.1",
25
+ ]
26
+
27
+ [project.urls]
28
+ Homepage = "https://github.com/AAVTIBI1/extergram"
29
+ "Bug Tracker" = "https://github.com/AAVTIBI1/extergram/issues"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+