Browse Source

Feat(filter): Added trait filter

master
Samuel Pua 2 years ago
parent
commit
7199161374
  1. 26
      main.py

26
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"]
@ -110,6 +112,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"]]
print_str += "====================================\n"

Loading…
Cancel
Save