@@ -10,17 +10,28 @@ async def find(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
1010 if update .message and update .message .text :
1111 workbook = load_workbook (XLSX_FILE_PATH )
1212 sheet = workbook .active
13+ headers = get_headers (sheet )
14+ keywords_column = headers .get ('Keywords' )
15+ links_column = headers .get ('Link' )
1316 response_message = ''
1417
15- for row in sheet .iter_rows ():
16- parsed_message = update .message .text .replace ("/find" , "" ).strip ()
17- keywords = str (row [0 ].value ).split (";" )
18- keyword_match = any (element in parsed_message for element in keywords )
19- if keyword_match :
20- response_message += row [1 ].value
18+ if keywords_column and links_column :
19+ for row in sheet .iter_rows ():
20+ parsed_message = update .message .text .replace ("/find" , "" ).strip ()
21+ keywords = str (row [keywords_column - 1 ].value ).replace (" " , "" ).split (";" )
22+ keyword_match = any (element in parsed_message for element in keywords )
23+ if keyword_match :
24+ response_message += row [links_column - 1 ].value
2125
2226 await update .message .reply_text (f"{ response_message } " )
2327
28+ def get_headers (sheet : any ) -> dict :
29+ headers = {}
30+ for col_idx , cell in enumerate (sheet [1 ], start = 1 ):
31+ headers [cell .value ] = col_idx
32+
33+ return headers
34+
2435def main ():
2536 try :
2637 app = ApplicationBuilder ().token (TELEGRAM_BOT_TOKEN ).build ()
0 commit comments