@@ -222,41 +222,23 @@ def get_technologies(page):
222
222
if not page :
223
223
return None
224
224
225
- app_names = page .get ("_detected_apps" , {})
226
- categories = page .get ("_detected" , {})
227
-
228
- # When there are no detected apps, it appears as an empty array.
229
- if isinstance (app_names , list ):
230
- app_names = {}
231
- categories = {}
232
-
233
225
technologies = {}
234
- app_map = {}
235
- for app , info_list in app_names .items ():
236
- if not info_list :
237
- continue
238
-
239
- # There may be multiple info values. Add each to the map.
240
- for info in info_list .split ("," ):
241
- app_id = f"{ app } { info } " if len (info ) > 0 else app
242
- app_map [app_id ] = app
243
-
244
- for category , apps in categories .items ():
245
- for app_id in apps .split ("," ):
246
- app = app_map .get (app_id )
247
- info = ""
248
- if app is None :
249
- app = app_id
250
- else :
251
- info = app_id [len (app ):].strip ()
252
-
253
- technologies [app ] = technologies .get (
254
- app , {"technology" : app , "info" : [], "categories" : []}
255
- )
256
-
257
- technologies .get (app ).get ("info" ).append (info )
258
- if category not in technologies .get (app ).get ("categories" ):
259
- technologies .get (app ).get ("categories" ).append (category )
226
+ try :
227
+ detected = page .get ("_detected_technologies" , {})
228
+ for id in detected :
229
+ entry = detected [id ]
230
+ if 'name' in entry :
231
+ name = entry ['name' ]
232
+ if name not in technologies :
233
+ technologies [name ] = {"technology" : name , "info" : [], "categories" : []}
234
+ if 'version' in entry and len (entry ['version' ].strip ()):
235
+ technologies [name ]['info' ].append (entry ['version' ].strip ())
236
+ if 'categories' in technologies [name ]:
237
+ for cat in technologies [name ]['categories' ]:
238
+ if 'name' in cat :
239
+ technologies [name ]['categories' ].append (cat ['name' ].strip ())
240
+ except Exception :
241
+ logging .exception ("Error processing technologies" )
260
242
261
243
return list (technologies .values ())
262
244
0 commit comments