michaeljohnbarr / SteamWebAPI-Python

A class-based wrapper for the Steam Web API written in Python.
10 stars 0 forks source link

IPortal2Leaderboards.GetBucketizedData() leaderboardName helper #6

Open michaeljohnbarr opened 10 years ago

michaeljohnbarr commented 10 years ago

There is very little documentation on this particular method. Instead of coders having to do a great deal of searching for how to get the <leaderboardName> for this method, it might be nice to create a helper function/method for it.

I was able to find out that this XML contains the list of all available leaderboards. However, it is not easy to parse as there is an error:

error on line 1 at column 377626: Encoding error.

Examples of the appropriate <leaderboardName>:

michaeljohnbarr commented 10 years ago
portal2_leaderboardNames = ['challenge_besttime_003-27-5-11', 'challenge_besttime_aatc', 'challenge_besttime_aperturesciencelasertest', 'challenge_besttime_aperturesciencelevel1', 'challenge_besttime_aperturesciencepaneltest', 'challenge_besttime_aperturescienceturrettest', 'challenge_besttime_ccm_chamber_01', 'challenge_besttime_ccmsp_powerinterferencev1', 'challenge_besttime_custom/mp_coop_A', 'challenge_besttime_custom/mp_coop_blueblock11', 'challenge_besttime_custom/mp_coop_brd_lightspeed', 'challenge_besttime_custom/mp_coop_brd_updown', 'challenge_besttime_custom/mp_coop_brokenneurons', 'challenge_besttime_custom/mp_coop_orbfacility1', 'challenge_besttime_custom/mp_coop_room_of_raco', 'challenge_besttime_custom/mp_coop_threecompanions', 'challenge_besttime_custom6', 'challenge_besttime_fat_turret_revolution', 'challenge_besttime_lvl_1', 'challenge_besttime_mp_coop_2paints_1bridge', 'challenge_besttime_mp_coop_a', 'challenge_besttime_mp_coop_abandoned_geodome', 'challenge_besttime_mp_coop_abgrund', 'challenge_besttime_mp_coop_advanced_flings', 'challenge_besttime_mp_coop_alternative_1', 'challenge_besttime_mp_coop_alternative_2', 'challenge_besttime_mp_coop_atlas_in_the_office', 'challenge_besttime_mp_coop_atloss', 'challenge_besttime_mp_coop_axis_final', 'challenge_besttime_mp_coop_backandforth', 'challenge_besttime_mp_coop_blueblock11', 'challenge_besttime_mp_coop_brd_lightspeed', 'challenge_besttime_mp_coop_brd_updown', 'challenge_besttime_mp_coop_bridge_catch', 'challenge_besttime_mp_coop_brokenneurons', 'challenge_besttime_mp_coop_catapult_1', 'challenge_besttime_mp_coop_catapult_2', 'challenge_besttime_mp_coop_catapult_catch', 'challenge_besttime_mp_coop_catapult_wall_intro', 'challenge_besttime_mp_coop_catapults_and_buttons', 'challenge_besttime_mp_coop_ccm01', 'challenge_besttime_mp_coop_chickentest_3', 'challenge_besttime_mp_coop_come_along', 'challenge_besttime_mp_coop_complexo', 'challenge_besttime_mp_coop_course_of_knallhart', 'challenge_besttime_mp_coop_cube_collector', 'challenge_besttime_mp_coop_cube_travel', 'challenge_besttime_mp_coop_derp_final', 'challenge_besttime_mp_coop_deside', 'challenge_besttime_mp_coop_Dome_02', 'challenge_besttime_mp_coop_doors', 'challenge_besttime_mp_coop_doors_v_1_03', 'challenge_besttime_mp_coop_duality', 'challenge_besttime_mp_coop_electrophobia', 'challenge_besttime_mp_coop_ep_01', 'challenge_besttime_mp_coop_evolution_n01_rc4', 'challenge_besttime_mp_coop_evolution_n02_b2', 'challenge_besttime_mp_coop_explosive_1', 'challenge_besttime_mp_coop_fan', 'challenge_besttime_mp_coop_fast_bridge', 'challenge_besttime_mp_coop_fling_1', 'challenge_besttime_mp_coop_fling_3', 'challenge_besttime_mp_coop_fling_bridge', 'challenge_besttime_mp_coop_fling_crushers', 'challenge_besttime_mp_coop_floorplan', 'challenge_besttime_mp_coop_freefall', 'challenge_besttime_mp_coop_gear_redirections', 'challenge_besttime_mp_coop_genetics', 'challenge_besttime_mp_coop_hardbridge', 'challenge_besttime_mp_coop_hardlight_therapy', 'challenge_besttime_mp_coop_hypercube', 'challenge_besttime_mp_coop_inandout', 'challenge_besttime_mp_coop_infinifling_train', 'challenge_besttime_mp_coop_inigo_montoya', 'challenge_besttime_mp_coop_ion_bridge_1_b1', 'challenge_besttime_mp_coop_jumpingjack', 'challenge_besttime_mp_coop_laser_2', 'challenge_besttime_mp_coop_laser_crusher', 'challenge_besttime_mp_coop_laser_tbeam', 'challenge_besttime_mp_coop_laserglasses', 'challenge_besttime_mp_coop_lessonslearned', 'challenge_besttime_mp_coop_lifts', 'challenge_besttime_mp_coop_link_portal_test1', 'challenge_besttime_mp_coop_link_portal_test2', 'challenge_besttime_mp_coop_lostintransition3', 'challenge_besttime_mp_coop_MissionTurretControlM1', 'challenge_besttime_mp_coop_ML_teamwork', 'challenge_besttime_mp_coop_ML_treat', 'challenge_besttime_mp_coop_multifling_1', 'challenge_besttime_mp_coop_paint_alone', 'challenge_besttime_mp_coop_paint_bridge', 'challenge_besttime_mp_coop_paint_come_along', 'challenge_besttime_mp_coop_paint_conversion', 'challenge_besttime_mp_coop_paint_crazy_box', 'challenge_besttime_mp_coop_paint_longjump_intro', 'challenge_besttime_mp_coop_paint_rat_maze', 'challenge_besttime_mp_coop_paint_red_racer', 'challenge_besttime_mp_coop_paint_redirect', 'challenge_besttime_mp_coop_paint_speed_catch', 'challenge_besttime_mp_coop_paint_speed_fling', 'challenge_besttime_mp_coop_paint_walljumps', 'challenge_besttime_mp_coop_po', 'challenge_besttime_mp_coop_problematic', 'challenge_besttime_mp_coop_pti_shareit12', 'challenge_besttime_mp_coop_purgatorio_01', 'challenge_besttime_mp_coop_quickchambers', 'challenge_besttime_mp_coop_race_2', 'challenge_besttime_mp_coop_rat_maze', 'challenge_besttime_mp_coop_ReduceReuseRefract', 'challenge_besttime_mp_coop_refraction', 'challenge_besttime_mp_coop_Retupmoc_Map', 'challenge_besttime_mp_coop_rock_of_prometheus', 'challenge_besttime_mp_coop_room_of_raco', 'challenge_besttime_mp_coop_scooter', 'challenge_besttime_mp_coop_separation_1', 'challenge_besttime_mp_coop_space_test', 'challenge_besttime_mp_coop_split', 'challenge_besttime_mp_coop_sunbury_chambers_14', 'challenge_besttime_mp_coop_surprise1', 'challenge_besttime_mp_coop_tabav1.1b', 'challenge_besttime_mp_coop_tbeam_catch_grind_1', 'challenge_besttime_mp_coop_tbeam_drill', 'challenge_besttime_mp_coop_tbeam_end', 'challenge_besttime_mp_coop_tbeam_laser_1', 'challenge_besttime_mp_coop_tbeam_maze', 'challenge_besttime_mp_coop_tbeam_polarity', 'challenge_besttime_mp_coop_tbeam_polarity2', 'challenge_besttime_mp_coop_tbeam_polarity3', 'challenge_besttime_mp_coop_tbeam_redirect', 'challenge_besttime_mp_coop_teambts', 'challenge_besttime_mp_coop_teamwork1', 'challenge_besttime_mp_coop_testchamber1', 'challenge_besttime_mp_coop_the_scientific_basis', 'challenge_besttime_mp_coop_the_way_of_the_turret', 'challenge_besttime_mp_coop_thebiggerpicture', 'challenge_besttime_mp_coop_TheDividedStandTogether', 'challenge_besttime_mp_coop_threecompanions', 'challenge_besttime_mp_coop_thru_facility', 'challenge_besttime_mp_coop_tractor_beam_test', 'challenge_besttime_mp_coop_trickytriple', 'challenge_besttime_mp_coop_tripleaxis', 'challenge_besttime_mp_coop_turret_ball', 'challenge_besttime_mp_coop_turret_walls', 'challenge_besttime_mp_coop_turretlove_v1_7', 'challenge_besttime_mp_coop_varietycoop_1', 'challenge_besttime_mp_coop_versus', 'challenge_besttime_mp_coop_vertigo', 'challenge_besttime_mp_coop_wall_2', 'challenge_besttime_mp_coop_wall_5', 'challenge_besttime_mp_coop_wall_block', 'challenge_besttime_mp_coop_wall_intro', 'challenge_besttime_mp_coop_Watson1', 'challenge_besttime_mp_coop_zeitgeist', 'challenge_besttime_mp_dl_013_mp_coop_Dome_02', 'challenge_besttime_mp_pokus01', 'challenge_besttime_neu/mp_coop_abandoned_geodome', 'challenge_besttime_nuovesingle/sp_chander_test_04', 'challenge_besttime_nys1', 'challenge_besttime_portal_2_sp_wits_maybe_finalv2', 'challenge_besttime_sixense_1to1_intro_01', 'challenge_besttime_sixense_1to1_intro_02', 'challenge_besttime_sixense_1to1_lasers', 'challenge_besttime_sixense_1to1_reaching', 'challenge_besttime_sixense_final', 'challenge_besttime_sixense_mp_coop_reach', 'challenge_besttime_sixense_portaltweaking_gel', 'challenge_besttime_sixense_portaltweaking_intro', 'challenge_besttime_sixense_portaltweaking_shield', 'challenge_besttime_sixense_scaling_intro', 'challenge_besttime_sixense_scaling_thru_portals', 'challenge_besttime_sixense_tutorial_controls', 'challenge_besttime_sp_a1_intro1', 'challenge_besttime_sp_a1_intro2', 'challenge_besttime_sp_a1_intro3', 'challenge_besttime_sp_a1_intro4', 'challenge_besttime_sp_a1_intro5', 'challenge_besttime_sp_a1_intro6', 'challenge_besttime_sp_a1_intro7', 'challenge_besttime_sp_a1_wakeup', 'challenge_besttime_sp_a2_bridge_intro', 'challenge_besttime_sp_a2_bridge_the_gap', 'challenge_besttime_sp_a2_bts1', 'challenge_besttime_sp_a2_bts2', 'challenge_besttime_sp_a2_bts3', 'challenge_besttime_sp_a2_bts4', 'challenge_besttime_sp_a2_bts5', 'challenge_besttime_sp_a2_bts6', 'challenge_besttime_sp_a2_catapult_intro', 'challenge_besttime_sp_a2_column_blocker', 'challenge_besttime_sp_a2_core', 'challenge_besttime_sp_a2_dual_lasers', 'challenge_besttime_sp_a2_fizzler_intro', 'challenge_besttime_sp_a2_g_laser_1', 'challenge_besttime_sp_a2_intro', 'challenge_besttime_sp_a2_laser_chaining', 'challenge_besttime_sp_a2_laser_intro', 'challenge_besttime_sp_a2_laser_over_goo', 'challenge_besttime_sp_a2_laser_relays', 'challenge_besttime_sp_a2_laser_stairs', 'challenge_besttime_sp_a2_laser_vs_turret', 'challenge_besttime_sp_a2_pit_flings', 'challenge_besttime_sp_a2_pull_the_rug', 'challenge_besttime_sp_a2_ricochet', 'challenge_besttime_sp_a2_sphere_peek', 'challenge_besttime_sp_a2_triple_laser', 'challenge_besttime_sp_a2_trust_fling', 'challenge_besttime_sp_a2_turret_blocker', 'challenge_besttime_sp_a2_turret_intro', 'challenge_besttime_sp_a3_00', 'challenge_besttime_sp_a3_01', 'challenge_besttime_sp_a3_03', 'challenge_besttime_sp_a3_bomb_flings', 'challenge_besttime_sp_a3_crazy_box', 'challenge_besttime_sp_a3_end', 'challenge_besttime_sp_a3_jump_intro', 'challenge_besttime_sp_a3_portal_intro', 'challenge_besttime_sp_a3_speed_flings', 'challenge_besttime_sp_a3_speed_ramp', 'challenge_besttime_sp_a3_transition01', 'challenge_besttime_sp_a4_finale1', 'challenge_besttime_sp_a4_finale2', 'challenge_besttime_sp_a4_finale3', 'challenge_besttime_sp_a4_finale4', 'challenge_besttime_sp_a4_intro', 'challenge_besttime_sp_a4_jump_polarity', 'challenge_besttime_sp_a4_laser_catapult', 'challenge_besttime_sp_a4_laser_platform', 'challenge_besttime_sp_a4_speed_tb_catch', 'challenge_besttime_sp_a4_stop_the_box', 'challenge_besttime_sp_a4_tb_catch', 'challenge_besttime_sp_a4_tb_intro', 'challenge_besttime_sp_a4_tb_polarity', 'challenge_besttime_sp_a4_tb_trust_drop', 'challenge_besttime_sp_a4_tb_wall_button', 'challenge_besttime_sp_aatc', 'challenge_besttime_sp_aperturesciencelevel1', 'challenge_besttime_sp_attc', 'challenge_besttime_sp_biggun', 'challenge_besttime_sp_bounce_01', 'challenge_besttime_sp_crossflinger', 'challenge_besttime_sp_cube_fizzlerV4', 'challenge_besttime_sp_enrichment_2', 'challenge_besttime_sp_geardev_infinifling', 'challenge_besttime_sp_getting_over_obstacles', 'challenge_besttime_SP_Insulated', 'challenge_besttime_sp_juggling', 'challenge_besttime_sp_laser_trick', 'challenge_besttime_sp_lit_01', 'challenge_besttime_sp_ml_jailbreak', 'challenge_besttime_sp_MLscarytest', 'challenge_besttime_sp_mota_main_four', 'challenge_besttime_sp_no_companion_cube_for_you', 'challenge_besttime_sp_patent_pending', 'challenge_besttime_sp_photonic', 'challenge_besttime_sp_security_crisis', 'challenge_besttime_sp_tvh_islands', 'challenge_besttime_sp_wall_bridge', 'challenge_besttime_test_map_010', 'challenge_portals_003-27-5-11', 'challenge_portals_aatc', 'challenge_portals_aperturesciencelasertest', 'challenge_portals_aperturesciencelevel1', 'challenge_portals_aperturesciencepaneltest', 'challenge_portals_aperturescienceturrettest', 'challenge_portals_ccm_chamber_01', 'challenge_portals_ccmsp_powerinterferencev1', 'challenge_portals_custom/mp_coop_A', 'challenge_portals_custom/mp_coop_blueblock11', 'challenge_portals_custom/mp_coop_brd_lightspeed', 'challenge_portals_custom/mp_coop_brd_updown', 'challenge_portals_custom/mp_coop_brokenneurons', 'challenge_portals_custom/mp_coop_orbfacility1', 'challenge_portals_custom/mp_coop_room_of_raco', 'challenge_portals_custom/mp_coop_threecompanions', 'challenge_portals_custom6', 'challenge_portals_fat_turret_revolution', 'challenge_portals_lvl_1', 'challenge_portals_mp_coop_2paints_1bridge', 'challenge_portals_mp_coop_a', 'challenge_portals_mp_coop_abandoned_geodome', 'challenge_portals_mp_coop_abgrund', 'challenge_portals_mp_coop_advanced_flings', 'challenge_portals_mp_coop_alternative_1', 'challenge_portals_mp_coop_alternative_2', 'challenge_portals_mp_coop_atlas_in_the_office', 'challenge_portals_mp_coop_atloss', 'challenge_portals_mp_coop_axis_final', 'challenge_portals_mp_coop_backandforth', 'challenge_portals_mp_coop_blueblock11', 'challenge_portals_mp_coop_brd_lightspeed', 'challenge_portals_mp_coop_brd_updown', 'challenge_portals_mp_coop_bridge_catch', 'challenge_portals_mp_coop_brokenneurons', 'challenge_portals_mp_coop_catapult_1', 'challenge_portals_mp_coop_catapult_2', 'challenge_portals_mp_coop_catapult_catch', 'challenge_portals_mp_coop_catapult_wall_intro', 'challenge_portals_mp_coop_catapults_and_buttons', 'challenge_portals_mp_coop_ccm01', 'challenge_portals_mp_coop_chickentest_3', 'challenge_portals_mp_coop_come_along', 'challenge_portals_mp_coop_complexo', 'challenge_portals_mp_coop_course_of_knallhart', 'challenge_portals_mp_coop_cube_collector', 'challenge_portals_mp_coop_cube_travel', 'challenge_portals_mp_coop_derp_final', 'challenge_portals_mp_coop_deside', 'challenge_portals_mp_coop_Dome_02', 'challenge_portals_mp_coop_doors', 'challenge_portals_mp_coop_doors_v_1_03', 'challenge_portals_mp_coop_duality', 'challenge_portals_mp_coop_electrophobia', 'challenge_portals_mp_coop_ep_01', 'challenge_portals_mp_coop_evolution_n01_rc4', 'challenge_portals_mp_coop_evolution_n02_b2', 'challenge_portals_mp_coop_explosive_1', 'challenge_portals_mp_coop_fan', 'challenge_portals_mp_coop_fast_bridge', 'challenge_portals_mp_coop_fling_1', 'challenge_portals_mp_coop_fling_3', 'challenge_portals_mp_coop_fling_bridge', 'challenge_portals_mp_coop_fling_crushers', 'challenge_portals_mp_coop_floorplan', 'challenge_portals_mp_coop_freefall', 'challenge_portals_mp_coop_gear_redirections', 'challenge_portals_mp_coop_genetics', 'challenge_portals_mp_coop_hardbridge', 'challenge_portals_mp_coop_hardlight_therapy', 'challenge_portals_mp_coop_hypercube', 'challenge_portals_mp_coop_inandout', 'challenge_portals_mp_coop_infinifling_train', 'challenge_portals_mp_coop_inigo_montoya', 'challenge_portals_mp_coop_ion_bridge_1_b1', 'challenge_portals_mp_coop_jumpingjack', 'challenge_portals_mp_coop_laser_2', 'challenge_portals_mp_coop_laser_crusher', 'challenge_portals_mp_coop_laser_tbeam', 'challenge_portals_mp_coop_laserglasses', 'challenge_portals_mp_coop_lessonslearned', 'challenge_portals_mp_coop_lifts', 'challenge_portals_mp_coop_link_portal_test1', 'challenge_portals_mp_coop_link_portal_test2', 'challenge_portals_mp_coop_lostintransition3', 'challenge_portals_mp_coop_MissionTurretControlM1', 'challenge_portals_mp_coop_ML_teamwork', 'challenge_portals_mp_coop_ML_treat', 'challenge_portals_mp_coop_multifling_1', 'challenge_portals_mp_coop_paint_alone', 'challenge_portals_mp_coop_paint_bridge', 'challenge_portals_mp_coop_paint_come_along', 'challenge_portals_mp_coop_paint_conversion', 'challenge_portals_mp_coop_paint_crazy_box', 'challenge_portals_mp_coop_paint_longjump_intro', 'challenge_portals_mp_coop_paint_rat_maze', 'challenge_portals_mp_coop_paint_red_racer', 'challenge_portals_mp_coop_paint_redirect', 'challenge_portals_mp_coop_paint_speed_catch', 'challenge_portals_mp_coop_paint_speed_fling', 'challenge_portals_mp_coop_paint_walljumps', 'challenge_portals_mp_coop_po', 'challenge_portals_mp_coop_problematic', 'challenge_portals_mp_coop_pti_shareit12', 'challenge_portals_mp_coop_purgatorio_01', 'challenge_portals_mp_coop_quickchambers', 'challenge_portals_mp_coop_race_2', 'challenge_portals_mp_coop_rat_maze', 'challenge_portals_mp_coop_ReduceReuseRefract', 'challenge_portals_mp_coop_refraction', 'challenge_portals_mp_coop_Retupmoc_Map', 'challenge_portals_mp_coop_rock_of_prometheus', 'challenge_portals_mp_coop_room_of_raco', 'challenge_portals_mp_coop_scooter', 'challenge_portals_mp_coop_separation_1', 'challenge_portals_mp_coop_space_test', 'challenge_portals_mp_coop_split', 'challenge_portals_mp_coop_sunbury_chambers_14', 'challenge_portals_mp_coop_surprise1', 'challenge_portals_mp_coop_tabav1.1b', 'challenge_portals_mp_coop_tbeam_catch_grind_1', 'challenge_portals_mp_coop_tbeam_drill', 'challenge_portals_mp_coop_tbeam_end', 'challenge_portals_mp_coop_tbeam_laser_1', 'challenge_portals_mp_coop_tbeam_maze', 'challenge_portals_mp_coop_tbeam_polarity', 'challenge_portals_mp_coop_tbeam_polarity2', 'challenge_portals_mp_coop_tbeam_polarity3', 'challenge_portals_mp_coop_tbeam_redirect', 'challenge_portals_mp_coop_teambts', 'challenge_portals_mp_coop_teamwork1', 'challenge_portals_mp_coop_testchamber1', 'challenge_portals_mp_coop_the_scientific_basis', 'challenge_portals_mp_coop_the_way_of_the_turret', 'challenge_portals_mp_coop_thebiggerpicture', 'challenge_portals_mp_coop_TheDividedStandTogether', 'challenge_portals_mp_coop_threecompanions', 'challenge_portals_mp_coop_thru_facility', 'challenge_portals_mp_coop_tractor_beam_test', 'challenge_portals_mp_coop_trickytriple', 'challenge_portals_mp_coop_tripleaxis', 'challenge_portals_mp_coop_turret_ball', 'challenge_portals_mp_coop_turret_walls', 'challenge_portals_mp_coop_turretlove_v1_7', 'challenge_portals_mp_coop_varietycoop_1', 'challenge_portals_mp_coop_versus', 'challenge_portals_mp_coop_vertigo', 'challenge_portals_mp_coop_wall_2', 'challenge_portals_mp_coop_wall_5', 'challenge_portals_mp_coop_wall_block', 'challenge_portals_mp_coop_wall_intro', 'challenge_portals_mp_coop_Watson1', 'challenge_portals_mp_coop_zeitgeist', 'challenge_portals_mp_dl_013_mp_coop_Dome_02', 'challenge_portals_mp_pokus01', 'challenge_portals_neu/mp_coop_abandoned_geodome', 'challenge_portals_nuovesingle/sp_chander_test_04', 'challenge_portals_nys1', 'challenge_portals_portal_2_sp_wits_maybe_finalv2', 'challenge_portals_sixense_1to1_intro_01', 'challenge_portals_sixense_1to1_intro_02', 'challenge_portals_sixense_1to1_lasers', 'challenge_portals_sixense_1to1_reaching', 'challenge_portals_sixense_final', 'challenge_portals_sixense_mp_coop_reach', 'challenge_portals_sixense_portaltweaking_gel', 'challenge_portals_sixense_portaltweaking_intro', 'challenge_portals_sixense_portaltweaking_shield', 'challenge_portals_sixense_scaling_intro', 'challenge_portals_sixense_scaling_thru_portals', 'challenge_portals_sixense_tutorial_controls', 'challenge_portals_sp_a1_intro1', 'challenge_portals_sp_a1_intro2', 'challenge_portals_sp_a1_intro3', 'challenge_portals_sp_a1_intro4', 'challenge_portals_sp_a1_intro5', 'challenge_portals_sp_a1_intro6', 'challenge_portals_sp_a1_intro7', 'challenge_portals_sp_a1_wakeup', 'challenge_portals_sp_a2_bridge_intro', 'challenge_portals_sp_a2_bridge_the_gap', 'challenge_portals_sp_a2_bts1', 'challenge_portals_sp_a2_bts2', 'challenge_portals_sp_a2_bts3', 'challenge_portals_sp_a2_bts4', 'challenge_portals_sp_a2_bts5', 'challenge_portals_sp_a2_bts6', 'challenge_portals_sp_a2_catapult_intro', 'challenge_portals_sp_a2_column_blocker', 'challenge_portals_sp_a2_core', 'challenge_portals_sp_a2_dual_lasers', 'challenge_portals_sp_a2_fizzler_intro', 'challenge_portals_sp_a2_g_laser_1', 'challenge_portals_sp_a2_intro', 'challenge_portals_sp_a2_laser_chaining', 'challenge_portals_sp_a2_laser_intro', 'challenge_portals_sp_a2_laser_over_goo', 'challenge_portals_sp_a2_laser_relays', 'challenge_portals_sp_a2_laser_stairs', 'challenge_portals_sp_a2_laser_vs_turret', 'challenge_portals_sp_a2_pit_flings', 'challenge_portals_sp_a2_pull_the_rug', 'challenge_portals_sp_a2_ricochet', 'challenge_portals_sp_a2_sphere_peek', 'challenge_portals_sp_a2_triple_laser', 'challenge_portals_sp_a2_trust_fling', 'challenge_portals_sp_a2_turret_blocker', 'challenge_portals_sp_a2_turret_intro', 'challenge_portals_sp_a3_00', 'challenge_portals_sp_a3_01', 'challenge_portals_sp_a3_03', 'challenge_portals_sp_a3_bomb_flings', 'challenge_portals_sp_a3_crazy_box', 'challenge_portals_sp_a3_end', 'challenge_portals_sp_a3_jump_intro', 'challenge_portals_sp_a3_portal_intro', 'challenge_portals_sp_a3_speed_flings', 'challenge_portals_sp_a3_speed_ramp', 'challenge_portals_sp_a3_transition01', 'challenge_portals_sp_a4_finale1', 'challenge_portals_sp_a4_finale2', 'challenge_portals_sp_a4_finale3', 'challenge_portals_sp_a4_finale4', 'challenge_portals_sp_a4_intro', 'challenge_portals_sp_a4_jump_polarity', 'challenge_portals_sp_a4_laser_catapult', 'challenge_portals_sp_a4_laser_platform', 'challenge_portals_sp_a4_speed_tb_catch', 'challenge_portals_sp_a4_stop_the_box', 'challenge_portals_sp_a4_tb_catch', 'challenge_portals_sp_a4_tb_intro', 'challenge_portals_sp_a4_tb_polarity', 'challenge_portals_sp_a4_tb_trust_drop', 'challenge_portals_sp_a4_tb_wall_button', 'challenge_portals_sp_aatc', 'challenge_portals_sp_aperturesciencelevel1', 'challenge_portals_sp_attc', 'challenge_portals_sp_biggun', 'challenge_portals_sp_bounce_01', 'challenge_portals_sp_crossflinger', 'challenge_portals_sp_cube_fizzlerV4', 'challenge_portals_sp_enrichment_2', 'challenge_portals_sp_geardev_infinifling', 'challenge_portals_sp_getting_over_obstacles', 'challenge_portals_SP_Insulated', 'challenge_portals_sp_juggling', 'challenge_portals_sp_laser_trick', 'challenge_portals_sp_lit_01', 'challenge_portals_sp_ml_jailbreak', 'challenge_portals_sp_MLscarytest', 'challenge_portals_sp_mota_main_four', 'challenge_portals_sp_no_companion_cube_for_you', 'challenge_portals_sp_patent_pending', 'challenge_portals_sp_photonic', 'challenge_portals_sp_security_crisis', 'challenge_portals_sp_tvh_islands', 'challenge_portals_sp_wall_bridge', 'challenge_portals_test_map_010']

That was easy...once I saved the XML file as UTF-8. cough