From 497dda3b7694b0a4bfa22a79a5770edeee25b579 Mon Sep 17 00:00:00 2001 From: cthtuf Date: Sat, 17 Jul 2021 23:27:43 +0500 Subject: [PATCH 1/6] Add ability to pass token and chat_id through params on send --- README.md | 11 +++++++++++ telegram_send.py | 36 ++++++++++++++++++++++++++---------- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index f18470a..7e74041 100644 --- a/README.md +++ b/README.md @@ -208,6 +208,17 @@ directly from other Python programs: `import telegram_send`. Look at the [documentation]: https://www.rahielkasim.com/telegram-send/docs/api/ +```python +from telegram_send import send + +config = { + 'token': 'your_bot_token_here', + 'chat_id': 'chat_id_here', +} + +send(messages=['Some text here'], conf=config) +``` + ## Cron job output Cron has a built-in feature to send the output of jobs via mail. In this example diff --git a/telegram_send.py b/telegram_send.py index a64a88c..6a0b5cb 100644 --- a/telegram_send.py +++ b/telegram_send.py @@ -143,6 +143,31 @@ def main(): raise(e) +def get_config(conf): + """Get config from config file or from dict.""" + if isinstance(conf, dict): + try: + return conf['token'], conf['chat_id'] + except KeyError as e: + raise ConfigError("Missing options in config dict: {}".format(e)) + elif isinstance(conf, str): + conf = expanduser(conf) + else: + conf = get_config_path() + + config = configparser.ConfigParser() + if not config.read(conf) or not config.has_section("telegram"): + raise ConfigError("Config not found") + missing_options = set(["token", "chat_id"]) - set(config.options("telegram")) + if len(missing_options) > 0: + raise ConfigError("Missing options in config: {}".format(", ".join(missing_options))) + config = config["telegram"] + token = config["token"] + chat_id = int(config["chat_id"]) if config["chat_id"].isdigit() else config["chat_id"] + + return token, chat_id + + def send(*, messages=None, files=None, images=None, stickers=None, animations=None, videos=None, audios=None, captions=None, locations=None, conf=None, parse_mode=None, silent=False, disable_web_page_preview=False, @@ -182,16 +207,7 @@ def send(*, disable_web_page_preview (bool): Disables web page previews for all links in the messages. timeout (int|float): The read timeout for network connections in seconds. """ - conf = expanduser(conf) if conf else get_config_path() - config = configparser.ConfigParser() - if not config.read(conf) or not config.has_section("telegram"): - raise ConfigError("Config not found") - missing_options = set(["token", "chat_id"]) - set(config.options("telegram")) - if len(missing_options) > 0: - raise ConfigError("Missing options in config: {}".format(", ".join(missing_options))) - config = config["telegram"] - token = config["token"] - chat_id = int(config["chat_id"]) if config["chat_id"].isdigit() else config["chat_id"] + token, chat_id = get_config(conf) request = telegram.utils.request.Request(read_timeout=timeout) bot = telegram.Bot(token, request=request) From 0e92d3921a33cf05bd0e4e0bb9fa6bc71c64c302 Mon Sep 17 00:00:00 2001 From: cthtuf Date: Sun, 18 Jul 2021 12:31:01 +0500 Subject: [PATCH 2/6] Move python files to telegram_send subfolder --- setup.py | 5 ++--- telegram_send/__init__.py | 0 telegram_send.py => telegram_send/telegram_send.py | 0 telegram_send/version.py | 1 + version.py | 1 - 5 files changed, 3 insertions(+), 4 deletions(-) create mode 100644 telegram_send/__init__.py rename telegram_send.py => telegram_send/telegram_send.py (100%) create mode 100644 telegram_send/version.py delete mode 100644 version.py diff --git a/setup.py b/setup.py index 551da72..5428e40 100644 --- a/setup.py +++ b/setup.py @@ -1,8 +1,7 @@ #!/usr/bin/env python3 from setuptools import setup -from version import __version__ - +from telegram_send.version import __version__ try: import pypandoc @@ -23,7 +22,7 @@ license="GPLv3+", python_requires=">=3.5", - py_modules=["telegram_send", "version"], + packages=['telegram_send'], install_requires=["python-telegram-bot>=12.1.1", "colorama", "appdirs"], entry_points={"console_scripts": ["telegram-send=telegram_send:main"]}, diff --git a/telegram_send/__init__.py b/telegram_send/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/telegram_send.py b/telegram_send/telegram_send.py similarity index 100% rename from telegram_send.py rename to telegram_send/telegram_send.py diff --git a/telegram_send/version.py b/telegram_send/version.py new file mode 100644 index 0000000..71290cd --- /dev/null +++ b/telegram_send/version.py @@ -0,0 +1 @@ +__version__ = "0.25.1" diff --git a/version.py b/version.py deleted file mode 100644 index f50820e..0000000 --- a/version.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "0.25" From f095c2ca146db3ca77bca9ebaf76a366a93001b5 Mon Sep 17 00:00:00 2001 From: cthtuf Date: Sun, 18 Jul 2021 12:34:08 +0500 Subject: [PATCH 3/6] Remove entrypoint --- setup.py | 1 - telegram_send/version.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 5428e40..2502b17 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,6 @@ python_requires=">=3.5", packages=['telegram_send'], install_requires=["python-telegram-bot>=12.1.1", "colorama", "appdirs"], - entry_points={"console_scripts": ["telegram-send=telegram_send:main"]}, author="Rahiel Kasim", author_email="rahielkasim@gmail.com", diff --git a/telegram_send/version.py b/telegram_send/version.py index 71290cd..97b0e62 100644 --- a/telegram_send/version.py +++ b/telegram_send/version.py @@ -1 +1 @@ -__version__ = "0.25.1" +__version__ = "0.25.2" From e8b266a9bada9a944edaa1642027e44a248ae88e Mon Sep 17 00:00:00 2001 From: cthtuf Date: Sun, 18 Jul 2021 12:35:57 +0500 Subject: [PATCH 4/6] Fix init --- telegram_send/__init__.py | 1 + telegram_send/version.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/telegram_send/__init__.py b/telegram_send/__init__.py index e69de29..d2f44a9 100644 --- a/telegram_send/__init__.py +++ b/telegram_send/__init__.py @@ -0,0 +1 @@ +from .telegram_send import send diff --git a/telegram_send/version.py b/telegram_send/version.py index 97b0e62..81fc784 100644 --- a/telegram_send/version.py +++ b/telegram_send/version.py @@ -1 +1 @@ -__version__ = "0.25.2" +__version__ = "0.25.3" From 4e919f7ffab7f0d21ed4aba51fad821534cb87f9 Mon Sep 17 00:00:00 2001 From: cthtuf Date: Sun, 18 Jul 2021 12:38:02 +0500 Subject: [PATCH 5/6] Revert init --- telegram_send/__init__.py | 1 - telegram_send/version.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/telegram_send/__init__.py b/telegram_send/__init__.py index d2f44a9..e69de29 100644 --- a/telegram_send/__init__.py +++ b/telegram_send/__init__.py @@ -1 +0,0 @@ -from .telegram_send import send diff --git a/telegram_send/version.py b/telegram_send/version.py index 81fc784..4e32d0c 100644 --- a/telegram_send/version.py +++ b/telegram_send/version.py @@ -1 +1 @@ -__version__ = "0.25.3" +__version__ = "0.25.4" From 899dd937f63f9cc22118dbf5ec15f3921ef2abc3 Mon Sep 17 00:00:00 2001 From: cthtuf Date: Sun, 18 Jul 2021 12:41:14 +0500 Subject: [PATCH 6/6] Fix version path --- telegram_send/telegram_send.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/telegram_send/telegram_send.py b/telegram_send/telegram_send.py index 6a0b5cb..81848c1 100644 --- a/telegram_send/telegram_send.py +++ b/telegram_send/telegram_send.py @@ -31,7 +31,7 @@ from telegram.constants import MAX_MESSAGE_LENGTH from appdirs import AppDirs -from version import __version__ +from .version import __version__ try: import readline