From 1430034ffb99d0d1f2f313e4699fc01a6168d225 Mon Sep 17 00:00:00 2001 From: Charlielv04 <carloslv04@gmail.com> Date: Fri, 4 Aug 2023 14:22:42 +0200 Subject: [PATCH] Add event access to users Add functionality inside bar.py to allow users to get the events planned by that committee in the next two weeks --- src/BX-Telegram.py | 2 +- src/Committees-Parrot.py | 4 ++-- src/Committees/bar.py | 26 ++++++++++++++++++++++++-- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/BX-Telegram.py b/src/BX-Telegram.py index 29243d5..40ace69 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 9528efe..805c154 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 6714ed4..6c132cb 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 -- GitLab