diff --git a/bot/telegram_bot.py b/bot/telegram_bot.py
index 30b1de9..f36dfb9 100644
--- a/bot/telegram_bot.py
+++ b/bot/telegram_bot.py
@@ -74,7 +74,7 @@ def start(update, context):
return CS.SET_UP
except Exception as e:
update.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -126,11 +126,11 @@ def set_up(update, context) -> int:
except GoogleSheetError as e:
update.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
except DatabaseError as e:
update.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
except Exception as e:
update.message.reply_text(GSHEET_ERROR_TEXT)
@@ -207,7 +207,7 @@ def config_handler(update, context) -> int:
return CS.CONFIG_SETUP
except Exception as e:
update.callback_query.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -228,7 +228,7 @@ def config_setup(update, context) -> int:
return CS.CONFIG_CATEGORY
except Exception as e:
update.callback_query.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
update.callback_query.edit_message_text(END_TEXT, reply_markup=None)
@@ -264,7 +264,7 @@ def config_category(update, context) -> int:
return CS.CONFIG_SUBCATEGORY
except Exception as e:
update.callback_query.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -288,7 +288,7 @@ def config_subcategory(update, context) -> int:
return CS.CONFIG_PAYMENT
except Exception as e:
update.callback_query.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -309,7 +309,7 @@ def config_payment(update, context) -> int:
return CS.CONFIG_SUBPAYMENT
except Exception as e:
update.callback_query.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -336,7 +336,7 @@ def config_subpayment(update, context) -> int:
return ConversationHandler.END
except Exception as e:
update.callback_query.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -358,7 +358,7 @@ def add_entry(update, context):
return CS.ENTRY
except Exception as e:
update.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -407,7 +407,7 @@ def remarks(update: Update, context) -> int:
return CS.CATEGORY
except Exception as e:
update.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -453,7 +453,7 @@ def category(update, context) -> int:
return CS.PAYMENT
except Exception as e:
update.callback_query.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -481,7 +481,7 @@ def subcategory(update, context) -> int:
return CS.PAYMENT
except Exception as e:
update.callback_query.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -513,7 +513,7 @@ def payment(update, context) -> int:
update.callback_query.message.reply_text("Transaction logged.")
except Exception as e:
update.callback_query.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -542,7 +542,7 @@ def subpayment(update, context) -> int:
update.callback_query.message.reply_text("Transaction logged.")
except Exception as e:
update.callback_query.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -671,7 +671,7 @@ def add_transport(update, context):
)
except Exception as e:
update.callback_query.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -700,7 +700,7 @@ def add_transport(update, context):
return CS.QUICK_ADD_TRANSPORT
except Exception as e:
update.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -719,7 +719,7 @@ def add_others(update, context):
)
except Exception as e:
update.callback_query.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -737,7 +737,7 @@ def add_others(update, context):
)
except Exception as e:
update.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return CS.QUICK_ADD_CATEGORY
@@ -775,7 +775,7 @@ def quick_add(update, context) -> int:
return ConversationHandler.END
except Exception as e:
update.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
except Exception as e:
@@ -784,7 +784,7 @@ def quick_add(update, context) -> int:
def help(update, context):
- update.message.reply_text(HELP_TEXT)
+ update.message.reply_text(HELP_TEXT, parse_mode=ParseMode.HTML)
def get_day_transaction(update, context):
@@ -799,7 +799,7 @@ def get_day_transaction(update, context):
return CS.HANDLE_GET_TRANSACTION
except Exception as e:
update.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -816,7 +816,7 @@ def get_overall(update, context):
return CS.HANDLE_GET_OVERALL
except Exception as e:
update.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -860,7 +860,7 @@ def handle_get_transaction(update, context):
return CS.HANDLE_GET_TRANSACTION
except Exception as e:
update.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -898,7 +898,7 @@ def handle_get_overall(update, context):
return CS.HANDLE_GET_OVERALL
except Exception as e:
update.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -915,7 +915,7 @@ def add_income(update, context):
return CS.INCOME
except Exception as e:
update.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -944,7 +944,7 @@ def income(update, context) -> int:
return CS.WORK_PLACE
except Exception as e:
update.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -978,7 +978,7 @@ def cpf(update, context) -> int:
update.callback_query.message.reply_text(INCOME_LIMIT_TEXT)
except Exception as e:
update.callback_query.message.reply_text(
- ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
@@ -1102,7 +1102,7 @@ def notify_preview(update, context):
query.edit_message_text(text="Message sending cancelled.")
except Exception as e:
query.edit_message_text(
- text=ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e))
+ text=ERROR_TEXT + "\nError:\n" + utils.sanitize_error_message(str(e)), parse_mode=ParseMode.HTML
)
return ConversationHandler.END
diff --git a/bot/text_str.py b/bot/text_str.py
index cbedad4..3c0023f 100644
--- a/bot/text_str.py
+++ b/bot/text_str.py
@@ -2,6 +2,7 @@
GOOGLE_API_EMAIL = os.getenv("GOOGLE_API_EMAIL")
GOOGLE_TEMPLATE = "http://tinyurl.com/ymm-2024-expense-sheet"
+GOOGLE_FORM = "https://forms.gle/kXySdv3Wjv7QmSug7"
SETUP_TEXT = (
"Please set up your Google sheet by following the steps below.\n\n"
+ f"1. Head over to Expense Tracker Template\n"
@@ -14,7 +15,7 @@
+ "6. Copy your entire Google Sheet URL and send it over\n"
+ "Example: https://docs.google.com/spreadsheets/d/abcd1234/edit\n"
)
-ERROR_TEXT = "There seems to be an error, please try again later. If the problem persists, please report it at github.com/brucewzj99/tele-tracker-v2/issues\nwith the error message.\n"
+ERROR_TEXT = f"There seems to be an error, please try again later. If the problem persists, please report it over at this form.\n"
SUCCESS_LINK_TEXT = "Google sheet successfully linked! Please proceed to configure your Dropdown sheet.\nOnce completed, type /addentry to add your first entry!"
GSHEET_ERROR_TEXT = f"There seems to be an error linking your google sheet, have you shared your Google Sheet with {GOOGLE_API_EMAIL} yet?"
GSHEET_WRONG_TEXT = (
@@ -49,13 +50,14 @@
+ "Remember to configure your Dropdown sheet to get started on this bot.\n\n"
+ "/config - Update Sheet Settings\n"
+ "/addentry - Add Expense Entry\n"
+ + "/backlog - Add transaction in the past\n"
+ "/addtransport - Quick Add Transport Entry\n"
+ "/addothers - Quick Add Other Entry\n"
+ "/addincome - Add Income Entry\n"
+ "/getdaytransaction - Retrieve transaction from dates\n"
+ "/getoverall - Retrieve overall transaction for a month\n"
+ "/cancel - Cancel Conversation\n"
- + "\nTo report bugs or request any features, please create a issue at https://github.com/brucewzj99/tele-tracker-v2/issues\n"
+ + f"\nTo report bugs, give your feedback or request any features, please do so via this form.\n"
+ "\nYou can support me by buying me a coffee at https://ko-fi.com/brucewzj"
)
diff --git a/release_notes.md b/release_notes.md
index 5281994..0a43e35 100644
--- a/release_notes.md
+++ b/release_notes.md
@@ -1,4 +1,8 @@
# Release Notes
+## Version 2.4.1 - Date 12 May 2024
+### Enhancement 🔥
+- Added google form for reporting bugs, feedbacks and feature requests
+
## Version 2.4 - Date 6 May 2024
### Enhancement 🔥
- Clearer error messages for users