implement send_event (almost)

This commit is contained in:
Wojciech Kwolek 2021-10-16 17:49:39 +02:00
parent 54be436606
commit f243b8cfc7
2 changed files with 41 additions and 6 deletions

3
.env.sample Normal file
View File

@ -0,0 +1,3 @@
SZYNOWO_TOKEN=
SZYNOWO_CHAT=
SZYNOWO_FORWARD_TO=

44
main.py
View File

@ -1,4 +1,7 @@
from datetime import datetime
from typing import Optional, Tuple
from telegram.ext import Updater, CommandHandler, CallbackContext
from telegram import Update, ParseMode
import os
import logging
from dotenv import load_dotenv
@ -20,21 +23,50 @@ class Bot:
self.dispatcher.add_handler(
CommandHandler(f[4:], getattr(self, f)))
def cmd_start(self, update, context):
def cmd_start(self, update: Update, context: CallbackContext):
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(
def send_event(self, date: datetime, header: str, description: str, location: str, latlong: Optional[Tuple[float, float]] = None, is_new: bool = True):
messages = []
d = date.strftime("%Y-%m-%d %H:%M")
text = f"""\
*{header}*
_{d}, {location}_
{description}
"""
m = self.updater.bot.send_message(
self.chat, text=text, parse_mode=ParseMode.MARKDOWN)
messages.append(m)
if latlong is not None:
m = self.updater.bot.send_location(
self.chat, latitude=latlong[0], longitude=latlong[1])
messages.append(m)
m = self.updater.bot.send_poll(
self.chat,
"Poll title",
f'Wpadasz? ({header})',
['Będę', 'Nie będę', '🍆'],
is_anonymous=False,
allows_multiple_answers=False,
)
messages.append(m)
for chat in self.forward_to:
msg.forward(chat)
for msg in messages:
msg.forward(chat)
def cmd_test(self, update: Update, context: CallbackContext):
context.bot.send_message(chat_id=self.chat, text="Test")
self.send_event(datetime.now(), "Header",
"Description", "Szynowa 18", (51.060938, 17.057193))
def cmd_location(self, update: Update, context: CallbackContext):
print(type(update))
context.bot.send_location(
update.effective_chat.id,
51,
19
)
def run(self):
self.updater.start_polling()