diff --git a/Pipfile b/Pipfile index 4c4981a..176288d 100644 --- a/Pipfile +++ b/Pipfile @@ -5,9 +5,10 @@ name = "pypi" [packages] python-telegram-bot = "*" -pydotenv = "*" +python-dotenv = "*" [dev-packages] +autopep8 = "*" [requires] python_version = "3.9" diff --git a/Pipfile.lock b/Pipfile.lock index d6052b9..0a211bc 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "74444b947cc346f6dedcd20230cadb9a8234f84b29f6fd60f8d148f0ddfab0d3" + "sha256": "9276e37b6f692e59a274d4d5465ce7ccf6f75fbf0fb37807717943fa32892dce" }, "pipfile-spec": 6, "requires": { @@ -38,12 +38,13 @@ ], "version": "==2021.10.8" }, - "pydotenv": { + "python-dotenv": { "hashes": [ - "sha256:5f6d78d3a7ed5124d7836bc1beeadd855dab4e2fdbea9338e6ff61dc1e46829f" + "sha256:14f8185cc8d494662683e6914addcb7e95374771e707601dfc70166946b4c4b8", + "sha256:bbd3da593fc49c249397cbfbcc449cf36cb02e75afc8157fcc6a81df6fb7750a" ], "index": "pypi", - "version": "==0.0.7" + "version": "==0.19.1" }, "python-telegram-bot": { "hashes": [ @@ -124,5 +125,30 @@ "version": "==3.0" } }, - "develop": {} + "develop": { + "autopep8": { + "hashes": [ + "sha256:276ced7e9e3cb22e5d7c14748384a5cf5d9002257c0ed50c0e075b68011bb6d0", + "sha256:aa213493c30dcdac99537249ee65b24af0b2c29f2e83cd8b3f68760441ed0db9" + ], + "index": "pypi", + "version": "==1.5.7" + }, + "pycodestyle": { + "hashes": [ + "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20", + "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==2.8.0" + }, + "toml": { + "hashes": [ + "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", + "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.10.2" + } + } } diff --git a/main.py b/main.py index b29333c..ca28836 100644 --- a/main.py +++ b/main.py @@ -1,19 +1,51 @@ +from telegram.ext import Updater, CommandHandler, CallbackContext +import os import logging -from telegram.ext import Updater +from dotenv import load_dotenv +load_dotenv() + + logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') + + class Bot: - def __init__(self, token): + def __init__(self, token, chat, forward_to=None): + self.chat = chat + self.forward_to = forward_to or [] self.updater = Updater(token=token, use_context=True) self.dispatcher = self.updater.dispatcher + for f in dir(self): + if f.startswith("cmd_"): + self.dispatcher.add_handler( + CommandHandler(f[4:], getattr(self, f))) def cmd_start(self, update, context): - context.bot.send_message(chat_id=update.effective_chat.id, text=f'Hi! effective_chat.id={update.effective_chat.id}') - + context.bot.send_message(chat_id=update.effective_chat.id, + text=f'Hi! effective_chat.id={update.effective_chat.id}') + + def cmd_test(self, update, context: CallbackContext): + context.bot.send_message(chat_id=self.chat, text="Test") + msg = context.bot.send_poll( + self.chat, + "Poll title", + ['Będę', 'Nie będę', '🍆'], + is_anonymous=False, + allows_multiple_answers=False, + ) + for chat in self.forward_to: + msg.forward(chat) + def run(self): self.updater.start_polling() if __name__ == '__main__': - b = Bot('TOKEN') - b.run() \ No newline at end of file + b = Bot( + token=os.environ['SZYNOWO_TOKEN'], + chat=os.environ['SZYNOWO_CHAT'], + forward_to=[s.strip() for s in os.environ.get( + 'SZYNOWO_FORWARD_TO', '').split(',')], + ) + + b.run()