mirror of
				https://gitlab.com/questable/questable_bot
				synced 2025-10-29 11:20:06 +01:00 
			
		
		
		
	Add edit name, change priority, change difficulty
This commit is contained in:
		
							
								
								
									
										116
									
								
								bot.py
									
									
									
									
									
								
							
							
						
						
									
										116
									
								
								bot.py
									
									
									
									
									
								
							| @@ -272,6 +272,48 @@ def mark_as_done(bot, update, player, qid, type): | |||||||
|                        reply_markup=reply_markup) |                        reply_markup=reply_markup) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def edit_quest(bot, update, player, qid, target, type): | ||||||
|  |     if type == "quest": | ||||||
|  |         x = questable.get_quest(player.DB, player.CHAT_ID, qid) | ||||||
|  |     elif type == "side_quest": | ||||||
|  |         x = questable.get_side_quest(player.DB, player.CHAT_ID, qid) | ||||||
|  |     else: | ||||||
|  |         raise ValueError('Not quest or side_quest') | ||||||
|  |  | ||||||
|  |     message = update.message.text | ||||||
|  |     chat_id = update.message.chat_id | ||||||
|  |  | ||||||
|  |     if target == "name": | ||||||
|  |         x.name = message | ||||||
|  |         text = "<b>Updated Name</b>" | ||||||
|  |     elif target == "imp" or target == "diff": | ||||||
|  |         message = message.lower() | ||||||
|  |         if message != "low" and message != "medium" and message != "high": | ||||||
|  |             bot.send_message(chat_id=chat_id, text="Invalid Option") | ||||||
|  |             return | ||||||
|  |         else: | ||||||
|  |             num = {"low": 1, "medium": 2, "high": 3}[message] | ||||||
|  |             if target == "imp": | ||||||
|  |                 x.imp = num | ||||||
|  |                 text = "<b>Updated Priority</b>" | ||||||
|  |             elif target == "diff": | ||||||
|  |                 x.diff = num | ||||||
|  |                 text = "<b>Updated Difficulty</b>" | ||||||
|  |  | ||||||
|  |     x.update_db() | ||||||
|  |     if type == "quest": | ||||||
|  |         player.set_state('eq', qid) | ||||||
|  |     elif type == "side_quest": | ||||||
|  |         player.set_state('esq', qid) | ||||||
|  |     custom_keyboard = [ | ||||||
|  |             ["Mark as done"], | ||||||
|  |             ["Edit Name", "Change Priority", "Change Difficulty"], | ||||||
|  |             ["Back"]] | ||||||
|  |     reply_markup = telegram.ReplyKeyboardMarkup(custom_keyboard) | ||||||
|  |     bot.send_message(chat_id=chat_id, text=text, reply_markup=reply_markup, | ||||||
|  |                      parse_mode="HTML") | ||||||
|  |  | ||||||
|  |  | ||||||
| def message_handling(bot, update, db): | def message_handling(bot, update, db): | ||||||
|     text = update.message.text.lower() |     text = update.message.text.lower() | ||||||
|     player = questable.player(db, update.message.chat_id) |     player = questable.player(db, update.message.chat_id) | ||||||
| @@ -286,6 +328,9 @@ def message_handling(bot, update, db): | |||||||
|     # importance requested |     # importance requested | ||||||
|     # eq / qsq: Edit Quest / Side Quest. the user press /Q_\d+ or /SQ_\d+ |     # eq / qsq: Edit Quest / Side Quest. the user press /Q_\d+ or /SQ_\d+ | ||||||
|     # bo: Back Only |     # bo: Back Only | ||||||
|  |     # eqn / esqn: Edit Quest / Side Quest Name | ||||||
|  |     # eqi / esqi: Edit Quest / Side Quest Importance | ||||||
|  |     # eqd / esqd: Edit Quest / Side Quest Difficulty | ||||||
|  |  | ||||||
|     if state["state"] == "none": |     if state["state"] == "none": | ||||||
|         if text == "add quest": |         if text == "add quest": | ||||||
| @@ -296,34 +341,101 @@ def message_handling(bot, update, db): | |||||||
|             list_quests(bot, update, player, "quest") |             list_quests(bot, update, player, "quest") | ||||||
|         elif text == "list side quests": |         elif text == "list side quests": | ||||||
|             list_quests(bot, update, player, "side_quest") |             list_quests(bot, update, player, "side_quest") | ||||||
|  |  | ||||||
|     elif state["state"] == "aq": |     elif state["state"] == "aq": | ||||||
|         add_name(bot, update, player, "quest", state["extra"]) |         add_name(bot, update, player, "quest", state["extra"]) | ||||||
|  |  | ||||||
|     elif state["state"] == "asq": |     elif state["state"] == "asq": | ||||||
|         add_name(bot, update, player, "side_quest", state["extra"]) |         add_name(bot, update, player, "side_quest", state["extra"]) | ||||||
|  |  | ||||||
|     elif state["state"] == "qd": |     elif state["state"] == "qd": | ||||||
|         add_diff(bot, update, player, "quest", state["extra"]) |         add_diff(bot, update, player, "quest", state["extra"]) | ||||||
|  |  | ||||||
|     elif state["state"] == "sqd": |     elif state["state"] == "sqd": | ||||||
|         add_diff(bot, update, player, "side_quest", state["extra"]) |         add_diff(bot, update, player, "side_quest", state["extra"]) | ||||||
|  |  | ||||||
|     elif state["state"] == "qi": |     elif state["state"] == "qi": | ||||||
|         add_imp(bot, update, player, "quest", state["extra"]) |         add_imp(bot, update, player, "quest", state["extra"]) | ||||||
|  |  | ||||||
|     elif state["state"] == "sqi": |     elif state["state"] == "sqi": | ||||||
|         add_imp(bot, update, player, "side_quest", state["extra"]) |         add_imp(bot, update, player, "side_quest", state["extra"]) | ||||||
|  |  | ||||||
|     elif state["state"] == "eq": |     elif state["state"] == "eq": | ||||||
|         if text == "back": |         if text == "back": | ||||||
|             player.set_state('none', 0) |             player.set_state('none', 0) | ||||||
|             send_status(bot, update, player) |             send_status(bot, update, player) | ||||||
|         if text == "mark as done": |         elif text == "mark as done": | ||||||
|             mark_as_done(bot, update, player, state["extra"], "quest") |             mark_as_done(bot, update, player, state["extra"], "quest") | ||||||
|  |         elif text == "edit name": | ||||||
|  |             player.set_state('eqn', state["extra"]) | ||||||
|  |             text = "What shall the new name of the Quest be?" | ||||||
|  |             reply_markup = telegram.ReplyKeyboardRemove() | ||||||
|  |             bot.send_message(chat_id=player.CHAT_ID, text=text, | ||||||
|  |                              reply_markup=reply_markup) | ||||||
|  |         elif text == "change priority": | ||||||
|  |             player.set_state('eqi', state["extra"]) | ||||||
|  |             text = "How important is it?" | ||||||
|  |             custom_keyboard = [["Low", "Medium", "High"]] | ||||||
|  |             reply_markup = telegram.ReplyKeyboardMarkup(custom_keyboard) | ||||||
|  |             bot.send_message(chat_id=player.CHAT_ID, text=text, | ||||||
|  |                              reply_markup=reply_markup) | ||||||
|  |         elif text == "change difficulty": | ||||||
|  |             player.set_state('eqd', state["extra"]) | ||||||
|  |             text = "How difficult is it?" | ||||||
|  |             custom_keyboard = [["Low", "Medium", "High"]] | ||||||
|  |             reply_markup = telegram.ReplyKeyboardMarkup(custom_keyboard) | ||||||
|  |             bot.send_message(chat_id=player.CHAT_ID, text=text, | ||||||
|  |                              reply_markup=reply_markup) | ||||||
|  |  | ||||||
|     elif state["state"] == "esq": |     elif state["state"] == "esq": | ||||||
|         if text == "back": |         if text == "back": | ||||||
|             player.set_state('none', 0) |             player.set_state('none', 0) | ||||||
|             send_status(bot, update, player) |             send_status(bot, update, player) | ||||||
|         if text == "mark as done": |         elif text == "mark as done": | ||||||
|             mark_as_done(bot, update, player, state["extra"], "side_quest") |             mark_as_done(bot, update, player, state["extra"], "side_quest") | ||||||
|  |         elif text == "edit name": | ||||||
|  |             player.set_state('esqn', state["extra"]) | ||||||
|  |             text = "What shall the new name of the Side Quest be?" | ||||||
|  |             reply_markup = telegram.ReplyKeyboardRemove() | ||||||
|  |             bot.send_message(chat_id=player.CHAT_ID, text=text, | ||||||
|  |                              reply_markup=reply_markup) | ||||||
|  |         elif text == "change priority": | ||||||
|  |             player.set_state('esqi', state["extra"]) | ||||||
|  |             text = "How important is it?" | ||||||
|  |             custom_keyboard = [["Low", "Medium", "High"]] | ||||||
|  |             reply_markup = telegram.ReplyKeyboardMarkup(custom_keyboard) | ||||||
|  |             bot.send_message(chat_id=player.CHAT_ID, text=text, | ||||||
|  |                              reply_markup=reply_markup) | ||||||
|  |         elif text == "change difficulty": | ||||||
|  |             player.set_state('esqd', state["extra"]) | ||||||
|  |             text = "How difficult is it?" | ||||||
|  |             custom_keyboard = [["Low", "Medium", "High"]] | ||||||
|  |             reply_markup = telegram.ReplyKeyboardMarkup(custom_keyboard) | ||||||
|  |             bot.send_message(chat_id=player.CHAT_ID, text=text, | ||||||
|  |                              reply_markup=reply_markup) | ||||||
|  |  | ||||||
|     elif state["state"] == "bo": |     elif state["state"] == "bo": | ||||||
|         player.set_state('none', 0) |         player.set_state('none', 0) | ||||||
|         send_status(bot, update, player) |         send_status(bot, update, player) | ||||||
|  |  | ||||||
|  |     elif state["state"] == "eqn": | ||||||
|  |         edit_quest(bot, update, player, state["extra"], "name", "quest") | ||||||
|  |  | ||||||
|  |     elif state["state"] == "esqn": | ||||||
|  |         edit_quest(bot, update, player, state["extra"], "name", "side_quest") | ||||||
|  |  | ||||||
|  |     elif state["state"] == "eqi": | ||||||
|  |         edit_quest(bot, update, player, state["extra"], "imp", "quest") | ||||||
|  |  | ||||||
|  |     elif state["state"] == "esqi": | ||||||
|  |         edit_quest(bot, update, player, state["extra"], "imp", "side_quest") | ||||||
|  |  | ||||||
|  |     elif state["state"] == "eqd": | ||||||
|  |         edit_quest(bot, update, player, state["extra"], "diff", "quest") | ||||||
|  |  | ||||||
|  |     elif state["state"] == "esqd": | ||||||
|  |         edit_quest(bot, update, player, state["extra"], "diff", "side_quest") | ||||||
|  |  | ||||||
|  |  | ||||||
| db = sqlite3.connect("questable.db", check_same_thread=False) | db = sqlite3.connect("questable.db", check_same_thread=False) | ||||||
| cursor = db.cursor() | cursor = db.cursor() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user