File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 88 _extract_search_results ,
99 _tree_generator ,
1010 _url_generator ,
11+ find_nodes_by_content ,
1112)
1213from .session import PicnicAPISession , PicnicAuthError
1314
@@ -172,6 +173,17 @@ def get_current_deliveries(self):
172173 def get_categories (self , depth : int = 0 ):
173174 return self ._get (f"/my_store?depth={ depth } " )["catalog" ]
174175
176+ def get_category_by_ids (self , l2_id : int , l3_id : int ):
177+ path = "/pages/L2-category-page-root" + \
178+ f"?category_id={ l2_id } &l3_category_id={ l3_id } "
179+ data = self ._get (path , add_picnic_headers = True )
180+ nodes = find_nodes_by_content (
181+ data , {"id" : f"vertical-article-tiles-sub-header-{ l3_id } " }, max_nodes = 1 )
182+ if len (nodes ) == 0 :
183+ raise KeyError ("Could not find category with specified IDs" )
184+ return {"l2_id" : l2_id , "l3_id" : l3_id ,
185+ "name" : nodes [0 ]["pml" ]["component" ]["accessibilityLabel" ]}
186+
175187 def print_categories (self , depth : int = 0 ):
176188 tree = "\n " .join (_tree_generator (self .get_categories (depth = depth )))
177189 print (tree )
You can’t perform that action at this time.
0 commit comments