riotskillissue 0.1.2__tar.gz → 0.1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- riotskillissue-0.1.4/.gitignore +0 -0
- riotskillissue-0.1.4/CHANGELOG.md +42 -0
- riotskillissue-0.1.4/LICENSE +21 -0
- riotskillissue-0.1.4/PKG-INFO +152 -0
- riotskillissue-0.1.4/README.md +110 -0
- riotskillissue-0.1.4/docs/api-reference.md +292 -0
- riotskillissue-0.1.4/docs/cli.md +149 -0
- riotskillissue-0.1.4/docs/configuration.md +131 -0
- riotskillissue-0.1.4/docs/examples/index.md +52 -0
- riotskillissue-0.1.4/docs/examples/league-of-legends.md +274 -0
- riotskillissue-0.1.4/docs/examples/teamfight-tactics.md +167 -0
- riotskillissue-0.1.4/docs/examples/valorant.md +123 -0
- riotskillissue-0.1.4/docs/getting-started.md +121 -0
- riotskillissue-0.1.4/docs/index.md +94 -0
- riotskillissue-0.1.4/docs/live-game-tui.md +238 -0
- riotskillissue-0.1.4/docs/stylesheets/extra.css +149 -0
- riotskillissue-0.1.4/examples/basic_usage.py +52 -0
- riotskillissue-0.1.4/examples/champion_mastery.py +63 -0
- riotskillissue-0.1.4/examples/match_history.py +63 -0
- riotskillissue-0.1.4/mkdocs.yml +85 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/pyproject.toml +11 -4
- riotskillissue-0.1.4/site/404.html +834 -0
- riotskillissue-0.1.4/site/CONTRIBUTING/index.html +1014 -0
- riotskillissue-0.1.4/site/api-reference/index.html +2176 -0
- riotskillissue-0.1.4/site/assets/images/favicon.png +0 -0
- riotskillissue-0.1.4/site/assets/javascripts/bundle.79ae519e.min.js +16 -0
- riotskillissue-0.1.4/site/assets/javascripts/bundle.79ae519e.min.js.map +7 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/tinyseg.js +206 -0
- riotskillissue-0.1.4/site/assets/javascripts/lunr/wordcut.js +6708 -0
- riotskillissue-0.1.4/site/assets/javascripts/workers/search.2c215733.min.js +42 -0
- riotskillissue-0.1.4/site/assets/javascripts/workers/search.2c215733.min.js.map +7 -0
- riotskillissue-0.1.4/site/assets/stylesheets/main.484c7ddc.min.css +1 -0
- riotskillissue-0.1.4/site/assets/stylesheets/main.484c7ddc.min.css.map +1 -0
- riotskillissue-0.1.4/site/assets/stylesheets/palette.ab4e12ef.min.css +1 -0
- riotskillissue-0.1.4/site/assets/stylesheets/palette.ab4e12ef.min.css.map +1 -0
- riotskillissue-0.1.4/site/cli/index.html +1165 -0
- riotskillissue-0.1.4/site/configuration/index.html +1275 -0
- riotskillissue-0.1.4/site/examples/index.html +1049 -0
- riotskillissue-0.1.4/site/examples/league-of-legends/index.html +1360 -0
- riotskillissue-0.1.4/site/examples/teamfight-tactics/index.html +1181 -0
- riotskillissue-0.1.4/site/examples/valorant/index.html +1120 -0
- riotskillissue-0.1.4/site/getting-started/index.html +1222 -0
- riotskillissue-0.1.4/site/index.html +1064 -0
- riotskillissue-0.1.4/site/search/search_index.json +1 -0
- riotskillissue-0.1.4/site/sitemap.xml +43 -0
- riotskillissue-0.1.4/site/sitemap.xml.gz +0 -0
- riotskillissue-0.1.4/site/stylesheets/extra.css +149 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/cli.py +57 -1
- riotskillissue-0.1.4/src/riotskillissue/tui.py +733 -0
- riotskillissue-0.1.2/.gitignore +0 -12
- riotskillissue-0.1.2/CHANGELOG.md +0 -16
- riotskillissue-0.1.2/LICENSE +0 -676
- riotskillissue-0.1.2/PKG-INFO +0 -168
- riotskillissue-0.1.2/README.md +0 -131
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/.github/workflows/publish.yml +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/.github/workflows/test.yml +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/.github/workflows/update_sdk.yml +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/docs/CONTRIBUTING.md +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/__init__.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/__init__.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/client_mixin.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/account.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/champion-mastery.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/champion.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/champion_mastery.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/clash.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/league-exp.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/league.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/league_exp.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lol-challenges.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lol-rso-match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lol-status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lol_challenges.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lol_rso_match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lol_status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lor-deck.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lor-inventory.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lor-match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lor-ranked.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lor-status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lor_deck.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lor_inventory.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lor_match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lor_ranked.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/lor_status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/riftbound-content.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/riftbound_content.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/spectator-tft.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/spectator.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/spectator_tft.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/summoner.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/tft-league.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/tft-match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/tft-status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/tft-summoner.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/tft_league.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/tft_match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/tft_status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/tft_summoner.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/tournament-stub.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/tournament.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/tournament_stub.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/val-console-match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/val-console-ranked.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/val-content.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/val-match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/val-ranked.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/val-status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/val_console_match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/val_console_ranked.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/val_content.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/val_match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/val_ranked.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/endpoints/val_status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/api/models.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/auth.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/core/cache.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/core/client.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/core/config.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/core/http.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/core/pagination.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/core/ratelimit.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/core/types.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/core/utils.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/static.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/src/riotskillissue/testing.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tests/conftest.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tests/manual_test.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tests/test_advanced.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tests/test_bindings.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tests/test_cache.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tests/test_core.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tests/test_resiliency.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tools/bump_version.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tools/diff_engine.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tools/generator/core.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tools/generator/parser.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tools/manager.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tools/templates/client_mixin.py.j2 +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tools/templates/endpoints.py.j2 +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.4}/tools/templates/models.py.j2 +0 -0
|
Binary file
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [0.1.4] - 2026-02-06
|
|
9
|
+
### Added
|
|
10
|
+
- **TUI**: Initial Terminal User Interface functionality for monitoring and interaction.
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- **License**: Switched project license to MIT License.
|
|
14
|
+
|
|
15
|
+
## [0.1.3] - 2026-02-03
|
|
16
|
+
### Added
|
|
17
|
+
- **Documentation**: Complete MkDocs Material documentation site with LoL-inspired theme.
|
|
18
|
+
- **Documentation**: Getting Started, Configuration, API Reference, and CLI guides.
|
|
19
|
+
- **Documentation**: Comprehensive examples for LoL, TFT, and VALORANT APIs.
|
|
20
|
+
- **Examples**: Runnable example scripts (`basic_usage.py`, `match_history.py`, `champion_mastery.py`).
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
- **README**: Rewritten for professional presentation.
|
|
24
|
+
- **Dependencies**: Added `docs` optional dependency group for MkDocs.
|
|
25
|
+
|
|
26
|
+
## [0.1.2] - 2026-01-27
|
|
27
|
+
### Changed
|
|
28
|
+
- **API**: Update Riot API Spec (automated update via GitHub Actions).
|
|
29
|
+
|
|
30
|
+
## [0.1.1] - 2025-12-29
|
|
31
|
+
### Changed
|
|
32
|
+
- **API**: Update Riot API Spec (automated update via GitHub Actions).
|
|
33
|
+
|
|
34
|
+
## [0.1.0] - 2025-12-29
|
|
35
|
+
### Added
|
|
36
|
+
- Initial release of `riotskillissue`.
|
|
37
|
+
- **Core**: Resilient `RiotClient` with `HttpClient`, `RedisCache`, and `RedisRateLimiter`.
|
|
38
|
+
- **API**: Full coverage for League of Legends, TFT, LoR, and VALORANT (generated from Spec).
|
|
39
|
+
- **CLI**: `riotskillissue-cli` for quick lookups and debugging.
|
|
40
|
+
- **Auth**: Riot Sign-On (RSO) OAuth2 helper.
|
|
41
|
+
- **Pagination**: Async iterator `paginate()` for paginated endpoints.
|
|
42
|
+
- **Static**: `DataDragonClient` for fetching versions and assets.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Demoen
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: riotskillissue
|
|
3
|
+
Version: 0.1.4
|
|
4
|
+
Summary: Production-ready, auto-updating Riot API wrapper.
|
|
5
|
+
Author: Demoen
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Classifier: Development Status :: 4 - Beta
|
|
8
|
+
Classifier: Intended Audience :: Developers
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Requires-Python: >=3.8
|
|
17
|
+
Requires-Dist: frozendict>=2.4.0
|
|
18
|
+
Requires-Dist: httpx>=0.27.0
|
|
19
|
+
Requires-Dist: jinja2>=3.1.0
|
|
20
|
+
Requires-Dist: msgspec>=0.18.0
|
|
21
|
+
Requires-Dist: pydantic>=2.7.0
|
|
22
|
+
Requires-Dist: redis>=5.0.0
|
|
23
|
+
Requires-Dist: rich>=13.7.0
|
|
24
|
+
Requires-Dist: tenacity>=8.2.0
|
|
25
|
+
Requires-Dist: textual>=0.85.0
|
|
26
|
+
Requires-Dist: typer>=0.12.0
|
|
27
|
+
Provides-Extra: dev
|
|
28
|
+
Requires-Dist: deepdiff>=6.0.0; extra == 'dev'
|
|
29
|
+
Requires-Dist: mypy>=1.10.0; extra == 'dev'
|
|
30
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
31
|
+
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
|
|
32
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
33
|
+
Requires-Dist: respx>=0.21.0; extra == 'dev'
|
|
34
|
+
Requires-Dist: ruff>=0.4.0; extra == 'dev'
|
|
35
|
+
Requires-Dist: textual-dev>=1.0.0; extra == 'dev'
|
|
36
|
+
Requires-Dist: types-redis; extra == 'dev'
|
|
37
|
+
Requires-Dist: types-requests; extra == 'dev'
|
|
38
|
+
Provides-Extra: docs
|
|
39
|
+
Requires-Dist: mkdocs-material>=9.5.0; extra == 'docs'
|
|
40
|
+
Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
|
|
41
|
+
Description-Content-Type: text/markdown
|
|
42
|
+
|
|
43
|
+
# RiotSkillIssue
|
|
44
|
+
|
|
45
|
+
<div align="center">
|
|
46
|
+
|
|
47
|
+
[](https://badge.fury.io/py/riotskillissue)
|
|
48
|
+
[](https://pypi.org/project/riotskillissue/)
|
|
49
|
+
[](LICENSE)
|
|
50
|
+
[](https://github.com/Demoen/riotskillissue/actions/workflows/test.yml)
|
|
51
|
+
|
|
52
|
+
**Production-ready, auto-updating, and fully typed Python wrapper for the Riot Games API.**
|
|
53
|
+
|
|
54
|
+
[Documentation](https://demoen.github.io/riotskillissue/) · [Examples](https://demoen.github.io/riotskillissue/examples/) · [API Reference](https://demoen.github.io/riotskillissue/api-reference/)
|
|
55
|
+
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Features
|
|
61
|
+
|
|
62
|
+
| Feature | Description |
|
|
63
|
+
|---------|-------------|
|
|
64
|
+
| **Type-Safe** | 100% Pydantic models for all requests and responses |
|
|
65
|
+
| **Auto-Updated** | Generated daily from the Official OpenAPI Spec |
|
|
66
|
+
| **Resilient** | Built-in exponential backoff, circuit breakers, and `Retry-After` handling |
|
|
67
|
+
| **Distributed** | Pluggable Redis support for shared rate limiting and caching |
|
|
68
|
+
| **Multi-Game** | Full support for LoL, TFT, LoR, and VALORANT APIs |
|
|
69
|
+
|
|
70
|
+
## Installation
|
|
71
|
+
|
|
72
|
+
Requires Python 3.8+.
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
pip install riotskillissue
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Quick Start
|
|
79
|
+
|
|
80
|
+
```python
|
|
81
|
+
import asyncio
|
|
82
|
+
from riotskillissue import RiotClient, Platform, Region
|
|
83
|
+
|
|
84
|
+
async def main():
|
|
85
|
+
async with RiotClient() as client:
|
|
86
|
+
# Look up account by Riot ID
|
|
87
|
+
account = await client.account.get_by_riot_id(
|
|
88
|
+
region=Platform.EUROPE,
|
|
89
|
+
gameName="Agurin",
|
|
90
|
+
tagLine="EUW"
|
|
91
|
+
)
|
|
92
|
+
print(f"Found: {account.gameName}#{account.tagLine}")
|
|
93
|
+
|
|
94
|
+
# Get summoner data
|
|
95
|
+
summoner = await client.summoner.get_by_puuid(
|
|
96
|
+
region=Region.EUW1,
|
|
97
|
+
encryptedPUUID=account.puuid
|
|
98
|
+
)
|
|
99
|
+
print(f"Level: {summoner.summonerLevel}")
|
|
100
|
+
|
|
101
|
+
if __name__ == "__main__":
|
|
102
|
+
asyncio.run(main())
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Set your API key via environment variable:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
export RIOT_API_KEY="RGAPI-your-key-here"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Or pass it directly:
|
|
112
|
+
|
|
113
|
+
```python
|
|
114
|
+
async with RiotClient(api_key="RGAPI-...") as client:
|
|
115
|
+
...
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Configuration
|
|
119
|
+
|
|
120
|
+
```python
|
|
121
|
+
from riotskillissue import RiotClient, RiotClientConfig
|
|
122
|
+
from riotskillissue.core.cache import RedisCache
|
|
123
|
+
|
|
124
|
+
config = RiotClientConfig(
|
|
125
|
+
api_key="RGAPI-...",
|
|
126
|
+
max_retries=5,
|
|
127
|
+
redis_url="redis://localhost:6379/0" # Distributed rate limiting
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
cache = RedisCache("redis://localhost:6379/1")
|
|
131
|
+
|
|
132
|
+
async with RiotClient(config=config, cache=cache) as client:
|
|
133
|
+
...
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Documentation
|
|
137
|
+
|
|
138
|
+
Full documentation is available at [demoen.github.io/riotskillissue](https://demoen.github.io/riotskillissue/).
|
|
139
|
+
|
|
140
|
+
- [Getting Started](https://demoen.github.io/riotskillissue/getting-started/)
|
|
141
|
+
- [Configuration](https://demoen.github.io/riotskillissue/configuration/)
|
|
142
|
+
- [Examples](https://demoen.github.io/riotskillissue/examples/)
|
|
143
|
+
- [API Reference](https://demoen.github.io/riotskillissue/api-reference/)
|
|
144
|
+
- [CLI](https://demoen.github.io/riotskillissue/cli/)
|
|
145
|
+
|
|
146
|
+
## Legal
|
|
147
|
+
|
|
148
|
+
RiotSkillIssue is not endorsed by Riot Games and does not reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties. Riot Games and all associated properties are trademarks or registered trademarks of Riot Games, Inc.
|
|
149
|
+
|
|
150
|
+
## License
|
|
151
|
+
|
|
152
|
+
This project is licensed under the GNU General Public License v3.0. See the [LICENSE](LICENSE) file for details.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# RiotSkillIssue
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
[](https://badge.fury.io/py/riotskillissue)
|
|
6
|
+
[](https://pypi.org/project/riotskillissue/)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
[](https://github.com/Demoen/riotskillissue/actions/workflows/test.yml)
|
|
9
|
+
|
|
10
|
+
**Production-ready, auto-updating, and fully typed Python wrapper for the Riot Games API.**
|
|
11
|
+
|
|
12
|
+
[Documentation](https://demoen.github.io/riotskillissue/) · [Examples](https://demoen.github.io/riotskillissue/examples/) · [API Reference](https://demoen.github.io/riotskillissue/api-reference/)
|
|
13
|
+
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Features
|
|
19
|
+
|
|
20
|
+
| Feature | Description |
|
|
21
|
+
|---------|-------------|
|
|
22
|
+
| **Type-Safe** | 100% Pydantic models for all requests and responses |
|
|
23
|
+
| **Auto-Updated** | Generated daily from the Official OpenAPI Spec |
|
|
24
|
+
| **Resilient** | Built-in exponential backoff, circuit breakers, and `Retry-After` handling |
|
|
25
|
+
| **Distributed** | Pluggable Redis support for shared rate limiting and caching |
|
|
26
|
+
| **Multi-Game** | Full support for LoL, TFT, LoR, and VALORANT APIs |
|
|
27
|
+
|
|
28
|
+
## Installation
|
|
29
|
+
|
|
30
|
+
Requires Python 3.8+.
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
pip install riotskillissue
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Quick Start
|
|
37
|
+
|
|
38
|
+
```python
|
|
39
|
+
import asyncio
|
|
40
|
+
from riotskillissue import RiotClient, Platform, Region
|
|
41
|
+
|
|
42
|
+
async def main():
|
|
43
|
+
async with RiotClient() as client:
|
|
44
|
+
# Look up account by Riot ID
|
|
45
|
+
account = await client.account.get_by_riot_id(
|
|
46
|
+
region=Platform.EUROPE,
|
|
47
|
+
gameName="Agurin",
|
|
48
|
+
tagLine="EUW"
|
|
49
|
+
)
|
|
50
|
+
print(f"Found: {account.gameName}#{account.tagLine}")
|
|
51
|
+
|
|
52
|
+
# Get summoner data
|
|
53
|
+
summoner = await client.summoner.get_by_puuid(
|
|
54
|
+
region=Region.EUW1,
|
|
55
|
+
encryptedPUUID=account.puuid
|
|
56
|
+
)
|
|
57
|
+
print(f"Level: {summoner.summonerLevel}")
|
|
58
|
+
|
|
59
|
+
if __name__ == "__main__":
|
|
60
|
+
asyncio.run(main())
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Set your API key via environment variable:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
export RIOT_API_KEY="RGAPI-your-key-here"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Or pass it directly:
|
|
70
|
+
|
|
71
|
+
```python
|
|
72
|
+
async with RiotClient(api_key="RGAPI-...") as client:
|
|
73
|
+
...
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Configuration
|
|
77
|
+
|
|
78
|
+
```python
|
|
79
|
+
from riotskillissue import RiotClient, RiotClientConfig
|
|
80
|
+
from riotskillissue.core.cache import RedisCache
|
|
81
|
+
|
|
82
|
+
config = RiotClientConfig(
|
|
83
|
+
api_key="RGAPI-...",
|
|
84
|
+
max_retries=5,
|
|
85
|
+
redis_url="redis://localhost:6379/0" # Distributed rate limiting
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
cache = RedisCache("redis://localhost:6379/1")
|
|
89
|
+
|
|
90
|
+
async with RiotClient(config=config, cache=cache) as client:
|
|
91
|
+
...
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Documentation
|
|
95
|
+
|
|
96
|
+
Full documentation is available at [demoen.github.io/riotskillissue](https://demoen.github.io/riotskillissue/).
|
|
97
|
+
|
|
98
|
+
- [Getting Started](https://demoen.github.io/riotskillissue/getting-started/)
|
|
99
|
+
- [Configuration](https://demoen.github.io/riotskillissue/configuration/)
|
|
100
|
+
- [Examples](https://demoen.github.io/riotskillissue/examples/)
|
|
101
|
+
- [API Reference](https://demoen.github.io/riotskillissue/api-reference/)
|
|
102
|
+
- [CLI](https://demoen.github.io/riotskillissue/cli/)
|
|
103
|
+
|
|
104
|
+
## Legal
|
|
105
|
+
|
|
106
|
+
RiotSkillIssue is not endorsed by Riot Games and does not reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties. Riot Games and all associated properties are trademarks or registered trademarks of Riot Games, Inc.
|
|
107
|
+
|
|
108
|
+
## License
|
|
109
|
+
|
|
110
|
+
This project is licensed under the GNU General Public License v3.0. See the [LICENSE](LICENSE) file for details.
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
# API Reference
|
|
2
|
+
|
|
3
|
+
Complete reference for all available API endpoints.
|
|
4
|
+
|
|
5
|
+
## Client Initialization
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
from riotskillissue import RiotClient, RiotClientConfig
|
|
9
|
+
|
|
10
|
+
# Simple initialization (uses RIOT_API_KEY env var)
|
|
11
|
+
async with RiotClient() as client:
|
|
12
|
+
pass
|
|
13
|
+
|
|
14
|
+
# With explicit API key
|
|
15
|
+
async with RiotClient(api_key="RGAPI-...") as client:
|
|
16
|
+
pass
|
|
17
|
+
|
|
18
|
+
# With full configuration
|
|
19
|
+
config = RiotClientConfig(
|
|
20
|
+
api_key="RGAPI-...",
|
|
21
|
+
max_retries=5,
|
|
22
|
+
redis_url="redis://localhost:6379/0"
|
|
23
|
+
)
|
|
24
|
+
async with RiotClient(config=config) as client:
|
|
25
|
+
pass
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Region and Platform Types
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from riotskillissue import Region, Platform
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Platform (Routing)
|
|
37
|
+
|
|
38
|
+
Used for account lookups and match history APIs.
|
|
39
|
+
|
|
40
|
+
| Value | Description |
|
|
41
|
+
|-------|-------------|
|
|
42
|
+
| `Platform.AMERICAS` | North/South America |
|
|
43
|
+
| `Platform.EUROPE` | Europe |
|
|
44
|
+
| `Platform.ASIA` | Korea, Japan |
|
|
45
|
+
| `Platform.SEA` | Southeast Asia, Oceania |
|
|
46
|
+
|
|
47
|
+
### Region (Server)
|
|
48
|
+
|
|
49
|
+
Used for summoner, ranked, and spectator APIs.
|
|
50
|
+
|
|
51
|
+
| Value | Server |
|
|
52
|
+
|-------|--------|
|
|
53
|
+
| `Region.NA1` | North America |
|
|
54
|
+
| `Region.EUW1` | Europe West |
|
|
55
|
+
| `Region.EUN1` | Europe Nordic & East |
|
|
56
|
+
| `Region.KR` | Korea |
|
|
57
|
+
| `Region.BR1` | Brazil |
|
|
58
|
+
| `Region.LA1` | Latin America North |
|
|
59
|
+
| `Region.LA2` | Latin America South |
|
|
60
|
+
| `Region.OC1` | Oceania |
|
|
61
|
+
| `Region.JP1` | Japan |
|
|
62
|
+
| `Region.TR1` | Turkey |
|
|
63
|
+
| `Region.RU` | Russia |
|
|
64
|
+
| `Region.PH2` | Philippines |
|
|
65
|
+
| `Region.SG2` | Singapore |
|
|
66
|
+
| `Region.TH2` | Thailand |
|
|
67
|
+
| `Region.TW2` | Taiwan |
|
|
68
|
+
| `Region.VN2` | Vietnam |
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## League of Legends APIs
|
|
73
|
+
|
|
74
|
+
### Account API
|
|
75
|
+
|
|
76
|
+
`client.account`
|
|
77
|
+
|
|
78
|
+
| Method | Description |
|
|
79
|
+
|--------|-------------|
|
|
80
|
+
| `get_by_puuid(region, puuid)` | Get account by PUUID |
|
|
81
|
+
| `get_by_riot_id(region, gameName, tagLine)` | Get account by Riot ID |
|
|
82
|
+
| `get_by_access_token(region)` | Get account using RSO token |
|
|
83
|
+
| `get_active_shard(region, game, puuid)` | Get active shard for player |
|
|
84
|
+
|
|
85
|
+
### Summoner API
|
|
86
|
+
|
|
87
|
+
`client.summoner`
|
|
88
|
+
|
|
89
|
+
| Method | Description |
|
|
90
|
+
|--------|-------------|
|
|
91
|
+
| `get_by_puuid(region, encryptedPUUID)` | Get summoner by PUUID |
|
|
92
|
+
| `get_by_access_token(region)` | Get summoner using RSO token |
|
|
93
|
+
|
|
94
|
+
### Match API
|
|
95
|
+
|
|
96
|
+
`client.match`
|
|
97
|
+
|
|
98
|
+
| Method | Description |
|
|
99
|
+
|--------|-------------|
|
|
100
|
+
| `get_match_ids_by_puuid(region, puuid, ...)` | Get list of match IDs |
|
|
101
|
+
| `get_match(region, matchId)` | Get match details |
|
|
102
|
+
| `get_timeline(region, matchId)` | Get match timeline |
|
|
103
|
+
| `get_replay(region, puuid)` | Get player replays |
|
|
104
|
+
|
|
105
|
+
Optional parameters for `get_match_ids_by_puuid`:
|
|
106
|
+
|
|
107
|
+
- `count` - Number of matches (default: 20, max: 100)
|
|
108
|
+
- `start` - Offset for pagination
|
|
109
|
+
- `startTime` / `endTime` - Time filters (epoch seconds)
|
|
110
|
+
- `queue` - Queue ID filter
|
|
111
|
+
- `type` - Game type filter
|
|
112
|
+
|
|
113
|
+
### Champion Mastery API
|
|
114
|
+
|
|
115
|
+
`client.champion_mastery`
|
|
116
|
+
|
|
117
|
+
| Method | Description |
|
|
118
|
+
|--------|-------------|
|
|
119
|
+
| `get_all_masteries(region, encryptedPUUID)` | Get all champion masteries |
|
|
120
|
+
| `get_by_champion(region, encryptedPUUID, championId)` | Get mastery for champion |
|
|
121
|
+
| `get_top_masteries(region, encryptedPUUID, count)` | Get top N masteries |
|
|
122
|
+
| `get_mastery_score(region, encryptedPUUID)` | Get total mastery score |
|
|
123
|
+
|
|
124
|
+
### League API
|
|
125
|
+
|
|
126
|
+
`client.league`
|
|
127
|
+
|
|
128
|
+
| Method | Description |
|
|
129
|
+
|--------|-------------|
|
|
130
|
+
| `get_entries_by_summoner(region, encryptedSummonerId)` | Get ranked entries |
|
|
131
|
+
| `get_challenger_league(region, queue)` | Get challenger league |
|
|
132
|
+
| `get_grandmaster_league(region, queue)` | Get grandmaster league |
|
|
133
|
+
| `get_master_league(region, queue)` | Get master league |
|
|
134
|
+
|
|
135
|
+
### Spectator API
|
|
136
|
+
|
|
137
|
+
`client.spectator`
|
|
138
|
+
|
|
139
|
+
| Method | Description |
|
|
140
|
+
|--------|-------------|
|
|
141
|
+
| `get_current_game_info(region, encryptedPUUID)` | Get live game data |
|
|
142
|
+
| `get_featured_games(region)` | Get featured games |
|
|
143
|
+
|
|
144
|
+
### Champion API
|
|
145
|
+
|
|
146
|
+
`client.champion`
|
|
147
|
+
|
|
148
|
+
| Method | Description |
|
|
149
|
+
|--------|-------------|
|
|
150
|
+
| `get_champion_rotations(region)` | Get free champion rotation |
|
|
151
|
+
|
|
152
|
+
### Status API
|
|
153
|
+
|
|
154
|
+
`client.lol_status`
|
|
155
|
+
|
|
156
|
+
| Method | Description |
|
|
157
|
+
|--------|-------------|
|
|
158
|
+
| `get_platform_data(region)` | Get platform status |
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## TFT APIs
|
|
163
|
+
|
|
164
|
+
### TFT Summoner API
|
|
165
|
+
|
|
166
|
+
`client.tft_summoner`
|
|
167
|
+
|
|
168
|
+
| Method | Description |
|
|
169
|
+
|--------|-------------|
|
|
170
|
+
| `get_by_puuid(region, encryptedPUUID)` | Get TFT summoner by PUUID |
|
|
171
|
+
|
|
172
|
+
### TFT Match API
|
|
173
|
+
|
|
174
|
+
`client.tft_match`
|
|
175
|
+
|
|
176
|
+
| Method | Description |
|
|
177
|
+
|--------|-------------|
|
|
178
|
+
| `get_match_ids_by_puuid(region, puuid, count)` | Get TFT match IDs |
|
|
179
|
+
| `get_match(region, matchId)` | Get TFT match details |
|
|
180
|
+
|
|
181
|
+
### TFT League API
|
|
182
|
+
|
|
183
|
+
`client.tft_league`
|
|
184
|
+
|
|
185
|
+
| Method | Description |
|
|
186
|
+
|--------|-------------|
|
|
187
|
+
| `get_challenger_league(region)` | Get TFT challenger league |
|
|
188
|
+
| `get_grandmaster_league(region)` | Get TFT grandmaster league |
|
|
189
|
+
| `get_master_league(region)` | Get TFT master league |
|
|
190
|
+
| `get_entries_by_summoner(region, summonerId)` | Get ranked entries |
|
|
191
|
+
|
|
192
|
+
### TFT Status API
|
|
193
|
+
|
|
194
|
+
`client.tft_status`
|
|
195
|
+
|
|
196
|
+
| Method | Description |
|
|
197
|
+
|--------|-------------|
|
|
198
|
+
| `get_platform_data(region)` | Get TFT platform status |
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## VALORANT APIs
|
|
203
|
+
|
|
204
|
+
### VALORANT Content API
|
|
205
|
+
|
|
206
|
+
`client.val_content`
|
|
207
|
+
|
|
208
|
+
| Method | Description |
|
|
209
|
+
|--------|-------------|
|
|
210
|
+
| `get_content(region, locale)` | Get game content (agents, maps, etc.) |
|
|
211
|
+
|
|
212
|
+
### VALORANT Ranked API
|
|
213
|
+
|
|
214
|
+
`client.val_ranked`
|
|
215
|
+
|
|
216
|
+
| Method | Description |
|
|
217
|
+
|--------|-------------|
|
|
218
|
+
| `get_leaderboard(region, actId, ...)` | Get ranked leaderboard |
|
|
219
|
+
|
|
220
|
+
### VALORANT Status API
|
|
221
|
+
|
|
222
|
+
`client.val_status`
|
|
223
|
+
|
|
224
|
+
| Method | Description |
|
|
225
|
+
|--------|-------------|
|
|
226
|
+
| `get_platform_data(region)` | Get VALORANT platform status |
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Legends of Runeterra APIs
|
|
231
|
+
|
|
232
|
+
### LoR Match API
|
|
233
|
+
|
|
234
|
+
`client.lor_match`
|
|
235
|
+
|
|
236
|
+
| Method | Description |
|
|
237
|
+
|--------|-------------|
|
|
238
|
+
| `get_match_ids_by_puuid(region, puuid)` | Get LoR match IDs |
|
|
239
|
+
| `get_match(region, matchId)` | Get LoR match details |
|
|
240
|
+
|
|
241
|
+
### LoR Ranked API
|
|
242
|
+
|
|
243
|
+
`client.lor_ranked`
|
|
244
|
+
|
|
245
|
+
| Method | Description |
|
|
246
|
+
|--------|-------------|
|
|
247
|
+
| `get_leaderboards(region)` | Get LoR leaderboards |
|
|
248
|
+
|
|
249
|
+
### LoR Status API
|
|
250
|
+
|
|
251
|
+
`client.lor_status`
|
|
252
|
+
|
|
253
|
+
| Method | Description |
|
|
254
|
+
|--------|-------------|
|
|
255
|
+
| `get_platform_data(region)` | Get LoR platform status |
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Static Data (Data Dragon)
|
|
260
|
+
|
|
261
|
+
`client.static`
|
|
262
|
+
|
|
263
|
+
| Method | Description |
|
|
264
|
+
|--------|-------------|
|
|
265
|
+
| `get_latest_version()` | Get latest Data Dragon version |
|
|
266
|
+
| `get_champion(champion_key)` | Get champion data by ID |
|
|
267
|
+
| `get_item(item_id)` | Get item data by ID |
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Pagination Helper
|
|
272
|
+
|
|
273
|
+
```python
|
|
274
|
+
from riotskillissue import paginate
|
|
275
|
+
|
|
276
|
+
async for match_id in paginate(
|
|
277
|
+
client.match.get_match_ids_by_puuid,
|
|
278
|
+
region=Platform.EUROPE,
|
|
279
|
+
puuid="...",
|
|
280
|
+
count=100, # Items per page
|
|
281
|
+
max_results=500 # Total items to fetch
|
|
282
|
+
):
|
|
283
|
+
print(match_id)
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
| Parameter | Description |
|
|
287
|
+
|-----------|-------------|
|
|
288
|
+
| `method` | The API method to paginate |
|
|
289
|
+
| `start` | Initial offset (default: 0) |
|
|
290
|
+
| `count` | Items per page (default: 100) |
|
|
291
|
+
| `max_results` | Maximum items to yield (default: infinity) |
|
|
292
|
+
| `**kwargs` | Arguments passed to the method |
|