riotskillissue 0.1.2__tar.gz → 0.1.3__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.3/.gitignore +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/CHANGELOG.md +19 -0
- riotskillissue-0.1.3/PKG-INFO +150 -0
- riotskillissue-0.1.3/README.md +110 -0
- riotskillissue-0.1.3/docs/api-reference.md +292 -0
- riotskillissue-0.1.3/docs/cli.md +105 -0
- riotskillissue-0.1.3/docs/configuration.md +131 -0
- riotskillissue-0.1.3/docs/examples/index.md +52 -0
- riotskillissue-0.1.3/docs/examples/league-of-legends.md +274 -0
- riotskillissue-0.1.3/docs/examples/teamfight-tactics.md +167 -0
- riotskillissue-0.1.3/docs/examples/valorant.md +123 -0
- riotskillissue-0.1.3/docs/getting-started.md +121 -0
- riotskillissue-0.1.3/docs/index.md +94 -0
- riotskillissue-0.1.3/docs/stylesheets/extra.css +149 -0
- riotskillissue-0.1.3/examples/basic_usage.py +52 -0
- riotskillissue-0.1.3/examples/champion_mastery.py +63 -0
- riotskillissue-0.1.3/examples/match_history.py +63 -0
- riotskillissue-0.1.3/mkdocs.yml +84 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/pyproject.toml +6 -1
- riotskillissue-0.1.3/site/404.html +834 -0
- riotskillissue-0.1.3/site/CONTRIBUTING/index.html +1014 -0
- riotskillissue-0.1.3/site/api-reference/index.html +2176 -0
- riotskillissue-0.1.3/site/assets/images/favicon.png +0 -0
- riotskillissue-0.1.3/site/assets/javascripts/bundle.79ae519e.min.js +16 -0
- riotskillissue-0.1.3/site/assets/javascripts/bundle.79ae519e.min.js.map +7 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/tinyseg.js +206 -0
- riotskillissue-0.1.3/site/assets/javascripts/lunr/wordcut.js +6708 -0
- riotskillissue-0.1.3/site/assets/javascripts/workers/search.2c215733.min.js +42 -0
- riotskillissue-0.1.3/site/assets/javascripts/workers/search.2c215733.min.js.map +7 -0
- riotskillissue-0.1.3/site/assets/stylesheets/main.484c7ddc.min.css +1 -0
- riotskillissue-0.1.3/site/assets/stylesheets/main.484c7ddc.min.css.map +1 -0
- riotskillissue-0.1.3/site/assets/stylesheets/palette.ab4e12ef.min.css +1 -0
- riotskillissue-0.1.3/site/assets/stylesheets/palette.ab4e12ef.min.css.map +1 -0
- riotskillissue-0.1.3/site/cli/index.html +1165 -0
- riotskillissue-0.1.3/site/configuration/index.html +1275 -0
- riotskillissue-0.1.3/site/examples/index.html +1049 -0
- riotskillissue-0.1.3/site/examples/league-of-legends/index.html +1360 -0
- riotskillissue-0.1.3/site/examples/teamfight-tactics/index.html +1181 -0
- riotskillissue-0.1.3/site/examples/valorant/index.html +1120 -0
- riotskillissue-0.1.3/site/getting-started/index.html +1222 -0
- riotskillissue-0.1.3/site/index.html +1064 -0
- riotskillissue-0.1.3/site/search/search_index.json +1 -0
- riotskillissue-0.1.3/site/sitemap.xml +43 -0
- riotskillissue-0.1.3/site/sitemap.xml.gz +0 -0
- riotskillissue-0.1.3/site/stylesheets/extra.css +149 -0
- riotskillissue-0.1.2/.gitignore +0 -12
- riotskillissue-0.1.2/PKG-INFO +0 -168
- riotskillissue-0.1.2/README.md +0 -131
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/.github/workflows/publish.yml +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/.github/workflows/test.yml +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/.github/workflows/update_sdk.yml +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/LICENSE +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/docs/CONTRIBUTING.md +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/__init__.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/__init__.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/client_mixin.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/account.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/champion-mastery.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/champion.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/champion_mastery.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/clash.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/league-exp.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/league.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/league_exp.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lol-challenges.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lol-rso-match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lol-status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lol_challenges.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lol_rso_match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lol_status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lor-deck.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lor-inventory.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lor-match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lor-ranked.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lor-status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lor_deck.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lor_inventory.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lor_match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lor_ranked.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/lor_status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/riftbound-content.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/riftbound_content.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/spectator-tft.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/spectator.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/spectator_tft.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/summoner.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/tft-league.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/tft-match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/tft-status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/tft-summoner.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/tft_league.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/tft_match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/tft_status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/tft_summoner.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/tournament-stub.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/tournament.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/tournament_stub.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/val-console-match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/val-console-ranked.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/val-content.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/val-match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/val-ranked.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/val-status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/val_console_match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/val_console_ranked.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/val_content.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/val_match.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/val_ranked.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/endpoints/val_status.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/api/models.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/auth.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/cli.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/core/cache.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/core/client.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/core/config.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/core/http.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/core/pagination.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/core/ratelimit.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/core/types.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/core/utils.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/static.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/src/riotskillissue/testing.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tests/conftest.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tests/manual_test.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tests/test_advanced.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tests/test_bindings.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tests/test_cache.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tests/test_core.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tests/test_resiliency.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tools/bump_version.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tools/diff_engine.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tools/generator/core.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tools/generator/parser.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tools/manager.py +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tools/templates/client_mixin.py.j2 +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tools/templates/endpoints.py.j2 +0 -0
- {riotskillissue-0.1.2 → riotskillissue-0.1.3}/tools/templates/models.py.j2 +0 -0
|
Binary file
|
|
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.1.3] - 2026-02-03
|
|
9
|
+
### Added
|
|
10
|
+
- **Documentation**: Complete MkDocs Material documentation site with LoL-inspired theme.
|
|
11
|
+
- **Documentation**: Getting Started, Configuration, API Reference, and CLI guides.
|
|
12
|
+
- **Documentation**: Comprehensive examples for LoL, TFT, and VALORANT APIs.
|
|
13
|
+
- **Examples**: Runnable example scripts (`basic_usage.py`, `match_history.py`, `champion_mastery.py`).
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
- **README**: Rewritten for professional presentation.
|
|
17
|
+
- **Dependencies**: Added `docs` optional dependency group for MkDocs.
|
|
18
|
+
|
|
19
|
+
## [0.1.2] - 2026-01-27
|
|
20
|
+
### Changed
|
|
21
|
+
- **API**: Update Riot API Spec (automated update via GitHub Actions).
|
|
22
|
+
|
|
23
|
+
## [0.1.1] - 2025-12-29
|
|
24
|
+
### Changed
|
|
25
|
+
- **API**: Update Riot API Spec (automated update via GitHub Actions).
|
|
26
|
+
|
|
8
27
|
## [0.1.0] - 2025-12-29
|
|
9
28
|
### Added
|
|
10
29
|
- Initial release of `riotskillissue`.
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: riotskillissue
|
|
3
|
+
Version: 0.1.3
|
|
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 :: GNU General Public License v3 (GPLv3)
|
|
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: tenacity>=8.2.0
|
|
24
|
+
Provides-Extra: dev
|
|
25
|
+
Requires-Dist: deepdiff>=6.0.0; extra == 'dev'
|
|
26
|
+
Requires-Dist: mypy>=1.10.0; extra == 'dev'
|
|
27
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
28
|
+
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
|
|
29
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
30
|
+
Requires-Dist: respx>=0.21.0; extra == 'dev'
|
|
31
|
+
Requires-Dist: rich>=13.7.0; extra == 'dev'
|
|
32
|
+
Requires-Dist: ruff>=0.4.0; extra == 'dev'
|
|
33
|
+
Requires-Dist: typer>=0.12.0; extra == 'dev'
|
|
34
|
+
Requires-Dist: types-redis; extra == 'dev'
|
|
35
|
+
Requires-Dist: types-requests; extra == 'dev'
|
|
36
|
+
Provides-Extra: docs
|
|
37
|
+
Requires-Dist: mkdocs-material>=9.5.0; extra == 'docs'
|
|
38
|
+
Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
|
|
39
|
+
Description-Content-Type: text/markdown
|
|
40
|
+
|
|
41
|
+
# RiotSkillIssue
|
|
42
|
+
|
|
43
|
+
<div align="center">
|
|
44
|
+
|
|
45
|
+
[](https://badge.fury.io/py/riotskillissue)
|
|
46
|
+
[](https://pypi.org/project/riotskillissue/)
|
|
47
|
+
[](LICENSE)
|
|
48
|
+
[](https://github.com/Demoen/riotskillissue/actions/workflows/test.yml)
|
|
49
|
+
|
|
50
|
+
**Production-ready, auto-updating, and fully typed Python wrapper for the Riot Games API.**
|
|
51
|
+
|
|
52
|
+
[Documentation](https://demoen.github.io/riotskillissue/) · [Examples](https://demoen.github.io/riotskillissue/examples/) · [API Reference](https://demoen.github.io/riotskillissue/api-reference/)
|
|
53
|
+
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Features
|
|
59
|
+
|
|
60
|
+
| Feature | Description |
|
|
61
|
+
|---------|-------------|
|
|
62
|
+
| **Type-Safe** | 100% Pydantic models for all requests and responses |
|
|
63
|
+
| **Auto-Updated** | Generated daily from the Official OpenAPI Spec |
|
|
64
|
+
| **Resilient** | Built-in exponential backoff, circuit breakers, and `Retry-After` handling |
|
|
65
|
+
| **Distributed** | Pluggable Redis support for shared rate limiting and caching |
|
|
66
|
+
| **Multi-Game** | Full support for LoL, TFT, LoR, and VALORANT APIs |
|
|
67
|
+
|
|
68
|
+
## Installation
|
|
69
|
+
|
|
70
|
+
Requires Python 3.8+.
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pip install riotskillissue
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Quick Start
|
|
77
|
+
|
|
78
|
+
```python
|
|
79
|
+
import asyncio
|
|
80
|
+
from riotskillissue import RiotClient, Platform, Region
|
|
81
|
+
|
|
82
|
+
async def main():
|
|
83
|
+
async with RiotClient() as client:
|
|
84
|
+
# Look up account by Riot ID
|
|
85
|
+
account = await client.account.get_by_riot_id(
|
|
86
|
+
region=Platform.EUROPE,
|
|
87
|
+
gameName="Agurin",
|
|
88
|
+
tagLine="EUW"
|
|
89
|
+
)
|
|
90
|
+
print(f"Found: {account.gameName}#{account.tagLine}")
|
|
91
|
+
|
|
92
|
+
# Get summoner data
|
|
93
|
+
summoner = await client.summoner.get_by_puuid(
|
|
94
|
+
region=Region.EUW1,
|
|
95
|
+
encryptedPUUID=account.puuid
|
|
96
|
+
)
|
|
97
|
+
print(f"Level: {summoner.summonerLevel}")
|
|
98
|
+
|
|
99
|
+
if __name__ == "__main__":
|
|
100
|
+
asyncio.run(main())
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Set your API key via environment variable:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
export RIOT_API_KEY="RGAPI-your-key-here"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Or pass it directly:
|
|
110
|
+
|
|
111
|
+
```python
|
|
112
|
+
async with RiotClient(api_key="RGAPI-...") as client:
|
|
113
|
+
...
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Configuration
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
from riotskillissue import RiotClient, RiotClientConfig
|
|
120
|
+
from riotskillissue.core.cache import RedisCache
|
|
121
|
+
|
|
122
|
+
config = RiotClientConfig(
|
|
123
|
+
api_key="RGAPI-...",
|
|
124
|
+
max_retries=5,
|
|
125
|
+
redis_url="redis://localhost:6379/0" # Distributed rate limiting
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
cache = RedisCache("redis://localhost:6379/1")
|
|
129
|
+
|
|
130
|
+
async with RiotClient(config=config, cache=cache) as client:
|
|
131
|
+
...
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Documentation
|
|
135
|
+
|
|
136
|
+
Full documentation is available at [demoen.github.io/riotskillissue](https://demoen.github.io/riotskillissue/).
|
|
137
|
+
|
|
138
|
+
- [Getting Started](https://demoen.github.io/riotskillissue/getting-started/)
|
|
139
|
+
- [Configuration](https://demoen.github.io/riotskillissue/configuration/)
|
|
140
|
+
- [Examples](https://demoen.github.io/riotskillissue/examples/)
|
|
141
|
+
- [API Reference](https://demoen.github.io/riotskillissue/api-reference/)
|
|
142
|
+
- [CLI](https://demoen.github.io/riotskillissue/cli/)
|
|
143
|
+
|
|
144
|
+
## Legal
|
|
145
|
+
|
|
146
|
+
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.
|
|
147
|
+
|
|
148
|
+
## License
|
|
149
|
+
|
|
150
|
+
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 |
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Command Line Interface
|
|
2
|
+
|
|
3
|
+
RiotSkillIssue includes a CLI tool for quick lookups and debugging.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
The CLI is included with the package:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install riotskillissue
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
For enhanced output formatting, install with dev dependencies:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
pip install "riotskillissue[dev]"
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Configuration
|
|
20
|
+
|
|
21
|
+
Set your API key via environment variable:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
export RIOT_API_KEY="RGAPI-your-key-here"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Or pass it directly with `--api-key`:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
riotskillissue-cli summoner "Player#EUW" --api-key "RGAPI-..."
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Commands
|
|
34
|
+
|
|
35
|
+
### summoner
|
|
36
|
+
|
|
37
|
+
Look up a summoner by Riot ID.
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
riotskillissue-cli summoner "GameName#TagLine" --region euw1
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Arguments:**
|
|
44
|
+
|
|
45
|
+
| Argument | Description |
|
|
46
|
+
|----------|-------------|
|
|
47
|
+
| `name` | Riot ID in format `GameName#TagLine` |
|
|
48
|
+
| `--region` | Regional server (default: `na1`) |
|
|
49
|
+
| `--api-key` | API key (or use `RIOT_API_KEY` env var) |
|
|
50
|
+
|
|
51
|
+
**Example:**
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
$ riotskillissue-cli summoner "Agurin#EUW" --region euw1
|
|
55
|
+
|
|
56
|
+
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
57
|
+
┃ Summoner: Agurin#EUW ┃
|
|
58
|
+
┣━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┫
|
|
59
|
+
┃ Level │ PUUID ┃
|
|
60
|
+
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
|
|
61
|
+
│ 523 │ abc123... │
|
|
62
|
+
└───────────┴───────────────────────┘
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### match
|
|
66
|
+
|
|
67
|
+
Get match details by match ID.
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
riotskillissue-cli match "EUW1_7654321098" --region europe
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Arguments:**
|
|
74
|
+
|
|
75
|
+
| Argument | Description |
|
|
76
|
+
|----------|-------------|
|
|
77
|
+
| `match_id` | Match ID (e.g., `EUW1_7654321098`) |
|
|
78
|
+
| `--region` | Platform routing (default: `americas`) |
|
|
79
|
+
| `--api-key` | API key (or use `RIOT_API_KEY` env var) |
|
|
80
|
+
|
|
81
|
+
**Example:**
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
$ riotskillissue-cli match "EUW1_7654321098" --region europe
|
|
85
|
+
|
|
86
|
+
Match EUW1_7654321098 loaded!
|
|
87
|
+
Game Mode: CLASSIC
|
|
88
|
+
Duration: 1847s
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Error Handling
|
|
92
|
+
|
|
93
|
+
The CLI displays user-friendly error messages:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
$ riotskillissue-cli summoner "InvalidName"
|
|
97
|
+
|
|
98
|
+
Error: Name must be format GameName#TagLine for Account V1 lookup
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
$ riotskillissue-cli summoner "NonExistent#USER" --region euw1
|
|
103
|
+
|
|
104
|
+
Error: 404 - Data not found
|
|
105
|
+
```
|