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.
- extergram-0.1.0/PKG-INFO +60 -0
- extergram-0.1.0/README.md +44 -0
- extergram-0.1.0/extergram/extergram/__init__.py +15 -0
- extergram-0.1.0/extergram/extergram/core.py +34 -0
- extergram-0.1.0/extergram/extergram/ui.py +14 -0
- extergram-0.1.0/extergram/extergram/utils.py +26 -0
- extergram-0.1.0/extergram.egg-info/PKG-INFO +60 -0
- extergram-0.1.0/extergram.egg-info/SOURCES.txt +11 -0
- extergram-0.1.0/extergram.egg-info/dependency_links.txt +1 -0
- extergram-0.1.0/extergram.egg-info/requires.txt +1 -0
- extergram-0.1.0/extergram.egg-info/top_level.txt +1 -0
- extergram-0.1.0/pyproject.toml +29 -0
- extergram-0.1.0/setup.cfg +4 -0
extergram-0.1.0/PKG-INFO
ADDED
|
@@ -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
|
+
|
|
@@ -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"
|