From 719916137435d3f07b5b93d766cb6b15b08bc4ab Mon Sep 17 00:00:00 2001 From: Samuel Pua Date: Sun, 8 Jan 2023 22:25:39 +0800 Subject: [PATCH] Feat(filter): Added trait filter --- main.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index 9b817ad..e2ce9c3 100644 --- a/main.py +++ b/main.py @@ -31,12 +31,14 @@ def main(): filter_name_list = input("Enter the name of the item you want to filter (e.g. 'Force Sword,Surge Force'): ").strip().split(",") filter_score_str = input("Enter the minimum base (excluding perks etc) score of the item you want to filter (e.g. 350): ") + filter_trait_list = input("Enter the trait/blessing name of the item you want to filter (e.g. 'Terrifying Barrage,Riposte'): ").strip().split(",") # Send status status_str = "Starting to monitor shop items.\n\n" status_str += "Characters:\n%s\n\n" % "\n".join([characters[i]["name"] + " (" + characters[i]["archetype"] + ")" for i in chosen_char_index_list]) status_str += "Filter Name: %s\n" % filter_name_list status_str += "Filter Score: %s\n" % filter_score_str + status_str += "Filter Trait: %s\n" % filter_trait_list if webhook_url != "": requests.post(webhook_url, data=status_str) @@ -53,7 +55,7 @@ def main(): # Print credit store details for store_item in credit_store_details_list: - print_str += create_store_item_details(store_item, characters, chosen_char_index, filter_name_list, filter_score_str, "Credit Store (Ordo Dockets)") + print_str += create_store_item_details(store_item, characters, chosen_char_index, filter_name_list, filter_score_str, filter_trait_list, "Credit Store (Ordo Dockets)") checked_marks_store = False if datetime.datetime.utcnow().hour == 1 or not checked_marks_store: @@ -64,7 +66,7 @@ def main(): # Print marks store details for store_item in marks_store_details_list: - print_str += create_store_item_details(store_item, characters, chosen_char_index, filter_name_list, filter_score_str, "Marks Store (Contract)") + print_str += create_store_item_details(store_item, characters, chosen_char_index, filter_name_list, filter_score_str, filter_trait_list, "Marks Store (Contract)") if webhook_url != "": @@ -93,7 +95,7 @@ def main(): time.sleep(60) -def create_store_item_details(store_item: dict, characters: list, chosen_char_index: int, filter_name_list: list, filter_score_str: str, store_name: str) -> str: +def create_store_item_details(store_item: dict, characters: list, chosen_char_index: int, filter_name_list: list, filter_score_str: str, filter_trait_list: list, store_name: str) -> str: print_str = "" item_name_display = STORE_ITEMS_DETAILS[store_item["description"]["id"]]["display_name"] item_base_score = store_item["description"]["overrides"]["baseItemLevel"] @@ -109,6 +111,24 @@ def create_store_item_details(store_item: dict, characters: list, chosen_char_in if filter_score_str != "" and item_base_score < int(filter_score_str): return "" + + if filter_trait_list[0] != "": + try: + check_trait_exist = False + for trait_name in filter_trait_list: + for perk in store_item["description"]["overrides"]["traits"]: + perk_name = STORE_ITEMS_DETAILS[perk["id"]] + trait_display_name = perk_name["display_name"] + if trait_name in trait_display_name: + check_trait_exist = True + break + if check_trait_exist: + break + + if not check_trait_exist: + return "" + except: + return "" item_name = STORE_ITEMS_DETAILS[store_item["description"]["id"]]