393 lines
23 KiB
Markdown
393 lines
23 KiB
Markdown
# Python coding
|
|
|
|
We used openapi-python-client to generate client libraries for the scoresaber api. It's in clients/scoresaber in our python project:
|
|
|
|
```
|
|
treegit
|
|
.
|
|
├── docs
|
|
│ ├── api.md
|
|
│ ├── capture.md
|
|
│ └── PlaylistBuilder.md
|
|
├── src
|
|
│ ├── clients
|
|
│ │ ├── beatleader
|
|
│ │ │ ├── api
|
|
│ │ │ │ ├── beast_saber
|
|
│ │ │ │ │ ├── beast_saber_get_all.py
|
|
│ │ │ │ │ ├── beast_saber_nominate.py
|
|
│ │ │ │ │ └── __init__.py
|
|
│ │ │ │ ├── clan
|
|
│ │ │ │ │ ├── clan_get_all.py
|
|
│ │ │ │ │ ├── clan_get_clan_by_id.py
|
|
│ │ │ │ │ ├── clan_get_clan.py
|
|
│ │ │ │ │ ├── clan_get_clan_with_maps_by_id.py
|
|
│ │ │ │ │ ├── clan_get_clan_with_maps.py
|
|
│ │ │ │ │ ├── clan_get_history.py
|
|
│ │ │ │ │ ├── clan_global_map.py
|
|
│ │ │ │ │ └── __init__.py
|
|
│ │ │ │ ├── leaderboard
|
|
│ │ │ │ │ ├── __init__.py
|
|
│ │ │ │ │ ├── leaderboard_get_all.py
|
|
│ │ │ │ │ ├── leaderboard_get_clan_rankings.py
|
|
│ │ │ │ │ ├── leaderboard_get.py
|
|
│ │ │ │ │ └── leaderboard_get_scoregraph.py
|
|
│ │ │ │ ├── modifiers
|
|
│ │ │ │ │ ├── __init__.py
|
|
│ │ │ │ │ └── modifiers_get_modifiers.py
|
|
│ │ │ │ ├── patreon
|
|
│ │ │ │ │ ├── __init__.py
|
|
│ │ │ │ │ └── patreon_refresh_my_patreon.py
|
|
│ │ │ │ ├── player
|
|
│ │ │ │ │ ├── __init__.py
|
|
│ │ │ │ │ ├── player_get_beat_saver.py
|
|
│ │ │ │ │ ├── player_get_discord.py
|
|
│ │ │ │ │ ├── player_get_followers_info.py
|
|
│ │ │ │ │ ├── player_get_followers.py
|
|
│ │ │ │ │ ├── player_get_founded_clan.py
|
|
│ │ │ │ │ ├── player_get_participating_events.py
|
|
│ │ │ │ │ ├── player_get_patreon.py
|
|
│ │ │ │ │ ├── player_get_players.py
|
|
│ │ │ │ │ ├── player_get.py
|
|
│ │ │ │ │ └── player_get_ranked_maps.py
|
|
│ │ │ │ ├── player_scores
|
|
│ │ │ │ │ ├── __init__.py
|
|
│ │ │ │ │ ├── player_scores_acc_graph.py
|
|
│ │ │ │ │ ├── player_scores_get_compact_history.py
|
|
│ │ │ │ │ ├── player_scores_get_compact_scores.py
|
|
│ │ │ │ │ ├── player_scores_get_history.py
|
|
│ │ │ │ │ ├── player_scores_get_pinned_scores.py
|
|
│ │ │ │ │ ├── player_scores_get_scores.py
|
|
│ │ │ │ │ └── player_scores_get_score_value.py
|
|
│ │ │ │ ├── song
|
|
│ │ │ │ │ ├── __init__.py
|
|
│ │ │ │ │ └── song_get_all.py
|
|
│ │ │ │ └── __init__.py
|
|
│ │ │ ├── models
|
|
│ │ │ │ ├── __pycache__
|
|
│ │ │ │ ├── achievement_description.py
|
|
│ │ │ │ ├── achievement_level.py
|
|
│ │ │ │ ├── achievement.py
|
|
│ │ │ │ ├── badge.py
|
|
│ │ │ │ ├── ban.py
|
|
│ │ │ │ ├── beasties_nomination.py
|
|
│ │ │ │ ├── besties_nomination_response.py
|
|
│ │ │ │ ├── clan_bigger_response.py
|
|
│ │ │ │ ├── clan_global_map_point.py
|
|
│ │ │ │ ├── clan_global_map.py
|
|
│ │ │ │ ├── clan_map_connection.py
|
|
│ │ │ │ ├── clan_maps_sort_by.py
|
|
│ │ │ │ ├── clan_point.py
|
|
│ │ │ │ ├── clan.py
|
|
│ │ │ │ ├── clan_ranking_response_clan_response_full_response_with_metadata_and_container.py
|
|
│ │ │ │ ├── clan_ranking_response.py
|
|
│ │ │ │ ├── clan_response_full.py
|
|
│ │ │ │ ├── clan_response_full_response_with_metadata.py
|
|
│ │ │ │ ├── clan_response.py
|
|
│ │ │ │ ├── clan_sort_by.py
|
|
│ │ │ │ ├── compact_leaderboard.py
|
|
│ │ │ │ ├── compact_leaderboard_response.py
|
|
│ │ │ │ ├── compact_score.py
|
|
│ │ │ │ ├── compact_score_response.py
|
|
│ │ │ │ ├── compact_score_response_response_with_metadata.py
|
|
│ │ │ │ ├── compact_song_response.py
|
|
│ │ │ │ ├── controller_enum.py
|
|
│ │ │ │ ├── criteria_commentary.py
|
|
│ │ │ │ ├── difficulty_description.py
|
|
│ │ │ │ ├── difficulty_response.py
|
|
│ │ │ │ ├── difficulty_status.py
|
|
│ │ │ │ ├── event_player.py
|
|
│ │ │ │ ├── event_ranking.py
|
|
│ │ │ │ ├── external_status.py
|
|
│ │ │ │ ├── featured_playlist.py
|
|
│ │ │ │ ├── featured_playlist_response.py
|
|
│ │ │ │ ├── follower_type.py
|
|
│ │ │ │ ├── global_map_history.py
|
|
│ │ │ │ ├── history_compact_response.py
|
|
│ │ │ │ ├── hmd.py
|
|
│ │ │ │ ├── info_to_highlight.py
|
|
│ │ │ │ ├── __init__.py
|
|
│ │ │ │ ├── leaderboard_change.py
|
|
│ │ │ │ ├── leaderboard_clan_ranking_response.py
|
|
│ │ │ │ ├── leaderboard_contexts.py
|
|
│ │ │ │ ├── leaderboard_group_entry.py
|
|
│ │ │ │ ├── leaderboard_info_response.py
|
|
│ │ │ │ ├── leaderboard_info_response_response_with_metadata.py
|
|
│ │ │ │ ├── leaderboard.py
|
|
│ │ │ │ ├── leaderboard_response.py
|
|
│ │ │ │ ├── leaderboard_sort_by.py
|
|
│ │ │ │ ├── legacy_modifiers.py
|
|
│ │ │ │ ├── link_response.py
|
|
│ │ │ │ ├── map_diff_response.py
|
|
│ │ │ │ ├── map_info_response.py
|
|
│ │ │ │ ├── map_info_response_response_with_metadata.py
|
|
│ │ │ │ ├── mapper.py
|
|
│ │ │ │ ├── mapper_response.py
|
|
│ │ │ │ ├── map_quality.py
|
|
│ │ │ │ ├── map_sort_by.py
|
|
│ │ │ │ ├── maps_type.py
|
|
│ │ │ │ ├── metadata.py
|
|
│ │ │ │ ├── modifiers_map.py
|
|
│ │ │ │ ├── modifiers_rating.py
|
|
│ │ │ │ ├── my_type.py
|
|
│ │ │ │ ├── operation.py
|
|
│ │ │ │ ├── order.py
|
|
│ │ │ │ ├── participating_event_response.py
|
|
│ │ │ │ ├── patreon_features.py
|
|
│ │ │ │ ├── player_change.py
|
|
│ │ │ │ ├── player_context_extension.py
|
|
│ │ │ │ ├── player_follower.py
|
|
│ │ │ │ ├── player_followers_info_response.py
|
|
│ │ │ │ ├── player.py
|
|
│ │ │ │ ├── player_response_clan_response_full_response_with_metadata_and_container.py
|
|
│ │ │ │ ├── player_response_full.py
|
|
│ │ │ │ ├── player_response.py
|
|
│ │ │ │ ├── player_response_with_stats.py
|
|
│ │ │ │ ├── player_response_with_stats_response_with_metadata.py
|
|
│ │ │ │ ├── player_score_stats_history.py
|
|
│ │ │ │ ├── player_score_stats.py
|
|
│ │ │ │ ├── player_search.py
|
|
│ │ │ │ ├── player_social.py
|
|
│ │ │ │ ├── player_sort_by.py
|
|
│ │ │ │ ├── pp_type.py
|
|
│ │ │ │ ├── profile_settings.py
|
|
│ │ │ │ ├── qualification_change.py
|
|
│ │ │ │ ├── qualification_commentary.py
|
|
│ │ │ │ ├── qualification_vote.py
|
|
│ │ │ │ ├── ranked_mapper_response.py
|
|
│ │ │ │ ├── ranked_map.py
|
|
│ │ │ │ ├── rank_qualification.py
|
|
│ │ │ │ ├── rank_update_change.py
|
|
│ │ │ │ ├── rank_update.py
|
|
│ │ │ │ ├── rank_voting.py
|
|
│ │ │ │ ├── replay_offsets.py
|
|
│ │ │ │ ├── requirements.py
|
|
│ │ │ │ ├── score_filter_status.py
|
|
│ │ │ │ ├── score_graph_entry.py
|
|
│ │ │ │ ├── score_improvement.py
|
|
│ │ │ │ ├── score_metadata.py
|
|
│ │ │ │ ├── score_response.py
|
|
│ │ │ │ ├── score_response_with_acc.py
|
|
│ │ │ │ ├── score_response_with_my_score.py
|
|
│ │ │ │ ├── score_response_with_my_score_response_with_metadata.py
|
|
│ │ │ │ ├── scores_sort_by.py
|
|
│ │ │ │ ├── song.py
|
|
│ │ │ │ ├── song_response.py
|
|
│ │ │ │ ├── song_status.py
|
|
│ │ │ │ ├── type.py
|
|
│ │ │ │ └── voter_feedback.py
|
|
│ │ │ ├── __pycache__
|
|
│ │ │ ├── client.py
|
|
│ │ │ ├── errors.py
|
|
│ │ │ ├── __init__.py
|
|
│ │ │ ├── py.typed
|
|
│ │ │ └── types.py
|
|
│ │ ├── beatsaver
|
|
│ │ │ ├── api
|
|
│ │ │ │ ├── maps
|
|
│ │ │ │ │ ├── get_maps_collaborations_id.py
|
|
│ │ │ │ │ ├── get_maps_hash_hash.py
|
|
│ │ │ │ │ ├── get_maps_id_id.py
|
|
│ │ │ │ │ ├── get_maps_ids_ids.py
|
|
│ │ │ │ │ ├── get_maps_latest.py
|
|
│ │ │ │ │ ├── get_maps_plays_page.py
|
|
│ │ │ │ │ ├── get_maps_uploader_id_page.py
|
|
│ │ │ │ │ └── __init__.py
|
|
│ │ │ │ ├── playlists
|
|
│ │ │ │ │ ├── get_playlists_id_id_page.py
|
|
│ │ │ │ │ ├── get_playlists_latest.py
|
|
│ │ │ │ │ ├── get_playlists_search_page.py
|
|
│ │ │ │ │ ├── get_playlists_user_user_id_page.py
|
|
│ │ │ │ │ ├── __init__.py
|
|
│ │ │ │ │ └── post_playlists_id_id_batch.py
|
|
│ │ │ │ ├── search
|
|
│ │ │ │ │ ├── get_search_text_page.py
|
|
│ │ │ │ │ └── __init__.py
|
|
│ │ │ │ ├── users
|
|
│ │ │ │ │ ├── get_users_id_id.py
|
|
│ │ │ │ │ ├── get_users_ids_ids.py
|
|
│ │ │ │ │ ├── get_users_name_name.py
|
|
│ │ │ │ │ ├── __init__.py
|
|
│ │ │ │ │ └── post_users_verify.py
|
|
│ │ │ │ ├── vote
|
|
│ │ │ │ │ ├── get_vote.py
|
|
│ │ │ │ │ ├── __init__.py
|
|
│ │ │ │ │ └── post_vote.py
|
|
│ │ │ │ └── __init__.py
|
|
│ │ │ ├── models
|
|
│ │ │ │ ├── __pycache__
|
|
│ │ │ │ ├── action_response.py
|
|
│ │ │ │ ├── auth_request.py
|
|
│ │ │ │ ├── get_maps_latest_sort.py
|
|
│ │ │ │ ├── get_playlists_latest_sort.py
|
|
│ │ │ │ ├── get_playlists_search_page_sort_order.py
|
|
│ │ │ │ ├── get_search_text_page_leaderboard.py
|
|
│ │ │ │ ├── get_search_text_page_sort_order.py
|
|
│ │ │ │ ├── __init__.py
|
|
│ │ │ │ ├── map_detail_declared_ai.py
|
|
│ │ │ │ ├── map_detail_metadata.py
|
|
│ │ │ │ ├── map_detail.py
|
|
│ │ │ │ ├── map_detail_tags_item.py
|
|
│ │ │ │ ├── map_detail_with_order.py
|
|
│ │ │ │ ├── map_difficulty_characteristic.py
|
|
│ │ │ │ ├── map_difficulty_difficulty.py
|
|
│ │ │ │ ├── map_difficulty.py
|
|
│ │ │ │ ├── map_parity_summary.py
|
|
│ │ │ │ ├── map_stats.py
|
|
│ │ │ │ ├── map_stats_sentiment.py
|
|
│ │ │ │ ├── map_testplay.py
|
|
│ │ │ │ ├── map_version.py
|
|
│ │ │ │ ├── map_version_state.py
|
|
│ │ │ │ ├── playlist_batch_request.py
|
|
│ │ │ │ ├── playlist_full.py
|
|
│ │ │ │ ├── playlist_full_type.py
|
|
│ │ │ │ ├── playlist_page.py
|
|
│ │ │ │ ├── playlist_search_response.py
|
|
│ │ │ │ ├── playlist_stats.py
|
|
│ │ │ │ ├── search_response.py
|
|
│ │ │ │ ├── user_detail_patreon.py
|
|
│ │ │ │ ├── user_detail.py
|
|
│ │ │ │ ├── user_detail_type.py
|
|
│ │ │ │ ├── user_diff_stats.py
|
|
│ │ │ │ ├── user_follow_data.py
|
|
│ │ │ │ ├── user_stats.py
|
|
│ │ │ │ ├── vote_request.py
|
|
│ │ │ │ └── vote_summary.py
|
|
│ │ │ ├── __pycache__
|
|
│ │ │ ├── client.py
|
|
│ │ │ ├── errors.py
|
|
│ │ │ ├── __init__.py
|
|
│ │ │ ├── py.typed
|
|
│ │ │ └── types.py
|
|
│ │ ├── __pycache__
|
|
│ │ ├── scoresaber
|
|
│ │ │ ├── api
|
|
│ │ │ │ ├── leaderboards
|
|
│ │ │ │ │ ├── get_api_leaderboard_by_hash_hash_info.py
|
|
│ │ │ │ │ ├── get_api_leaderboard_by_hash_hash_scores.py
|
|
│ │ │ │ │ ├── get_api_leaderboard_by_id_leaderboard_id_info.py
|
|
│ │ │ │ │ ├── get_api_leaderboard_by_id_leaderboard_id_scores.py
|
|
│ │ │ │ │ ├── get_api_leaderboard_get_difficulties_hash.py
|
|
│ │ │ │ │ ├── get_api_leaderboards.py
|
|
│ │ │ │ │ └── __init__.py
|
|
│ │ │ │ ├── nomination_assessment_team
|
|
│ │ │ │ │ ├── __init__.py
|
|
│ │ │ │ │ ├── post_api_ranking_request_action_nat_deny.py
|
|
│ │ │ │ │ ├── post_api_ranking_request_action_nat_qualify.py
|
|
│ │ │ │ │ └── post_api_ranking_request_action_nat_replace.py
|
|
│ │ │ │ ├── players
|
|
│ │ │ │ │ ├── get_api_player_player_id_basic.py
|
|
│ │ │ │ │ ├── get_api_player_player_id_full.py
|
|
│ │ │ │ │ ├── get_api_player_player_id_scores.py
|
|
│ │ │ │ │ ├── get_api_players_count.py
|
|
│ │ │ │ │ ├── get_api_players.py
|
|
│ │ │ │ │ └── __init__.py
|
|
│ │ │ │ ├── public_ranking
|
|
│ │ │ │ │ ├── get_api_ranking_request_by_id_leaderboard_id.py
|
|
│ │ │ │ │ ├── get_api_ranking_request_request_id.py
|
|
│ │ │ │ │ ├── get_api_ranking_requests_below_top.py
|
|
│ │ │ │ │ ├── get_api_ranking_requests_top.py
|
|
│ │ │ │ │ └── __init__.py
|
|
│ │ │ │ ├── quality_assurance_team
|
|
│ │ │ │ │ ├── __init__.py
|
|
│ │ │ │ │ ├── post_api_ranking_request_action_qat_comment.py
|
|
│ │ │ │ │ └── post_api_ranking_request_action_qat_vote.py
|
|
│ │ │ │ ├── ranking_team
|
|
│ │ │ │ │ ├── __init__.py
|
|
│ │ │ │ │ ├── post_api_ranking_request_action_rt_comment.py
|
|
│ │ │ │ │ ├── post_api_ranking_request_action_rt_create.py
|
|
│ │ │ │ │ └── post_api_ranking_request_action_rt_vote.py
|
|
│ │ │ │ ├── website_auth
|
|
│ │ │ │ │ ├── get_api_auth_get_token.py
|
|
│ │ │ │ │ ├── get_api_auth_logout.py
|
|
│ │ │ │ │ ├── __init__.py
|
|
│ │ │ │ │ └── post_api_auth_check_token.py
|
|
│ │ │ │ ├── website_user
|
|
│ │ │ │ │ ├── get_api_user_me.py
|
|
│ │ │ │ │ ├── get_api_user_player_id_refresh.py
|
|
│ │ │ │ │ ├── get_api_user_quest_key.py
|
|
│ │ │ │ │ └── __init__.py
|
|
│ │ │ │ └── __init__.py
|
|
│ │ │ ├── models
|
|
│ │ │ │ ├── __pycache__
|
|
│ │ │ │ ├── badge.py
|
|
│ │ │ │ ├── check_token_body.py
|
|
│ │ │ │ ├── comment.py
|
|
│ │ │ │ ├── difficulty.py
|
|
│ │ │ │ ├── get_api_player_player_id_scores_sort.py
|
|
│ │ │ │ ├── i_get_token_response.py
|
|
│ │ │ │ ├── __init__.py
|
|
│ │ │ │ ├── leaderboard_info_collection.py
|
|
│ │ │ │ ├── leaderboard_info.py
|
|
│ │ │ │ ├── leaderboard_player.py
|
|
│ │ │ │ ├── metadata.py
|
|
│ │ │ │ ├── nat_deny_body.py
|
|
│ │ │ │ ├── nat_qualify_body.py
|
|
│ │ │ │ ├── nat_replace_body.py
|
|
│ │ │ │ ├── player_badges_type_1.py
|
|
│ │ │ │ ├── player_collection.py
|
|
│ │ │ │ ├── player.py
|
|
│ │ │ │ ├── player_score_collection.py
|
|
│ │ │ │ ├── player_score.py
|
|
│ │ │ │ ├── qat_comment_body.py
|
|
│ │ │ │ ├── qat_vote_body.py
|
|
│ │ │ │ ├── ranking_difficulty.py
|
|
│ │ │ │ ├── rank_request_information.py
|
|
│ │ │ │ ├── rank_request_listing.py
|
|
│ │ │ │ ├── rt_comment_body.py
|
|
│ │ │ │ ├── rt_create_body.py
|
|
│ │ │ │ ├── rt_vote_body.py
|
|
│ │ │ │ ├── score_collection.py
|
|
│ │ │ │ ├── score.py
|
|
│ │ │ │ ├── score_saber_error.py
|
|
│ │ │ │ ├── score_stats.py
|
|
│ │ │ │ ├── user_data.py
|
|
│ │ │ │ └── vote_group.py
|
|
│ │ │ ├── __pycache__
|
|
│ │ │ ├── client.py
|
|
│ │ │ ├── errors.py
|
|
│ │ │ ├── __init__.py
|
|
│ │ │ ├── py.typed
|
|
│ │ │ └── types.py
|
|
│ │ └── __init__.py
|
|
│ ├── pleb_saberlist.egg-info
|
|
│ │ ├── dependency_links.txt
|
|
│ │ ├── entry_points.txt
|
|
│ │ ├── PKG-INFO
|
|
│ │ ├── requires.txt
|
|
│ │ ├── SOURCES.txt
|
|
│ │ └── top_level.txt
|
|
│ ├── saberlist
|
|
│ │ ├── __pycache__
|
|
│ │ ├── beatleader.py
|
|
│ │ ├── __init__.py
|
|
│ │ ├── PlaylistBuilder.py
|
|
│ │ └── scoresaber.py
|
|
│ └── saberlist.egg-info
|
|
│ ├── dependency_links.txt
|
|
│ ├── entry_points.txt
|
|
│ ├── PKG-INFO
|
|
│ ├── requires.txt
|
|
│ ├── SOURCES.txt
|
|
│ └── top_level.txt
|
|
├── temp_covers
|
|
├── tests
|
|
│ ├── archive
|
|
│ │ ├── __pycache__
|
|
│ │ └── saberlist
|
|
│ │ ├── __pycache__
|
|
│ │ └── playlist_builder.py
|
|
│ ├── assets
|
|
│ │ └── sample_cover.jpg
|
|
│ ├── __pycache__
|
|
│ └── playlist_builder.py
|
|
├── convert-comyfui-outupt.sh
|
|
├── LICENSE
|
|
├── pyproject.toml
|
|
└── README.md
|
|
|
|
53 directories, 328 files
|
|
```
|
|
|
|
We are trying to learn how to use the scoresaber client in `clients/scoresaber` that we generated using openapi-python-client.
|