diff --git a/src/BX-Telegram.py b/src/BX-Telegram.py index 29243d5ce5479c07ce38a1eed805acae3588b5ea..40ace692bc04256c44447019f787f2c4663f94d8 100644 --- a/src/BX-Telegram.py +++ b/src/BX-Telegram.py @@ -51,7 +51,7 @@ INITIAL, LORE, CONTINUE, COMMITTEES = range(4) committees_list = "\n - ".join(["",".9 barðŸ»ðŸ» (/bar)", "PhysiXâš›ï¸âš›ï¸ (/Physix)", "ClimbX (/ClimbX)", "BX/B- (/rowing)"]) def message_wait(message): - return math.log(len(message), 10) + return math.log(len(message), 10) - 1 async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int: """Start the conversation and ask user for input.""" diff --git a/src/Committees-Parrot.py b/src/Committees-Parrot.py index 9528efe74c883fb228cb26c8064510e5fa11073e..805c15449966d478996e93e0a3bb405d2f57e8d8 100644 --- a/src/Committees-Parrot.py +++ b/src/Committees-Parrot.py @@ -211,7 +211,7 @@ class Event_handler: self.description = '' self.time_picker = time_picker() self.event_handler = ConversationHandler( - entry_points=[CommandHandler("event", self.event)], + entry_points=[CommandHandler("event", self.events)], states={ self.state.EVENT: [CommandHandler("view", self.view), CommandHandler("create", self.create)], self.state.DATE: [CallbackQueryHandler(self.date_selection)], @@ -231,7 +231,7 @@ class Event_handler: text="You are back to the hub") return self.state.HUB - async def event(self, update: Update, context: ContextTypes.DEFAULT_TYPE): + async def events(self, update: Update, context: ContextTypes.DEFAULT_TYPE): if self.user_rights == 'Comms': await context.bot.send_message(chat_id=update.effective_chat.id, text="You don't have access rights for this functionality") diff --git a/src/Committees/bar.py b/src/Committees/bar.py index 6714ed4b49c09ae5902bcd80ad3c72849f905ba6..6c132cbc0d952b0a479baabf1cdfec64108e45ee 100644 --- a/src/Committees/bar.py +++ b/src/Committees/bar.py @@ -1,8 +1,9 @@ import re import time -from utils import config, db - +from utils import config, db, event +import datetime from telegram import ReplyKeyboardMarkup, Update +from telegram.constants import ParseMode from telegram.ext import ( CommandHandler, ContextTypes, @@ -31,6 +32,7 @@ class Bar: filters.Regex(re.compile(r'board', re.IGNORECASE)), self.bar_board ), CommandHandler("sub", self.manage_sub), + CommandHandler("event", self.get_events), CommandHandler("exit", exit) ], self.SUB: [ @@ -132,3 +134,23 @@ class Bar: await context.bot.send_message(chat_id=update.effective_chat.id, text=f'You have been unsubscribed to {self.committee_name}') return self.HOME + + async def get_events(self, update:Update, context: ContextTypes.DEFAULT_TYPE): + time_now = datetime.datetime.now() + two_weeks_from_now = time_now + datetime.timedelta(days = 14) + time_max = two_weeks_from_now.isoformat() + 'Z' + events = event.get_committee_events(self.committee_name, time_max=time_max) + event_descriptions = [] + for item in events: + event_descriptions.append(event.event_presentation_from_api(item)) + message = '\n -------------------------------------- \n'.join(event_descriptions) + if len(event_descriptions) == 0: + await context.bot.send_message(chat_id=update.effective_chat.id, + text=f"{self.committee_name} has no events planned in the near future") + else: + await context.bot.send_message(chat_id=update.effective_chat.id, + text="The events already planned are:") + await context.bot.send_message(chat_id=update.effective_chat.id, + text=message, + parse_mode=ParseMode.HTML) + return self.HOME