An id tool for League of Legends with fuzzy string matching, nicknames, multiple locales, automatic updates, and translation.
Project description
lol_id_tools
An id tool for League of Legends with fuzzy string matching, nicknames, multiple locales, automatic updates, and translation.
The package relies on rapidfuzz for string matching. Nicknames are on github, please make a pull requests to add new ones!
Installation
Get lit with pip install lol-id-tools
Usage
Initialisation
import lol_id_tools
# lit will always reload existing locales, and try to add any supplied as arguments.
lit = lol_id_tools.LolIdTools('en_US', 'ko_KR')
Get id from name
# When the name is typed properly, matching is instant.
lit.get_id('Miss Fortune')
21
# Standard nicknames are loaded from https://github.com/mrtolkien/lol_id_tools/blob/master/data/nicknames.json.
lit.get_id('MF')
21
# Any loaded locale will work
lit.get_id('미스 포츈')
21
# Even very inaccurate strings can match properly, but the package will raise a warning if its confidence is low.
lit.get_id('misfo')
WARNING:root: Very low confidence matching from misfo to Miss Fortune.
Type: champion, Locale: en_US, Precision ratio: 59
21
lit.get_id('Maw of Malmortius')
3156
# This matches to Kog'Maw because of our calculation method and is an unwanted result.
lit.get_id('Maw of Malmo')
96
# When we know the type of object we are looking for, we can improve accuracy by providing input_type
lit.get_id('Maw of Malmo', input_type='item')
3156
Get name from ID
On patch 10.5 no champion, item, or rune shares an ID. If they do in the future, the package will need to be updated accordingly.
lit.get_name(11)
'Master Yi'
# If a locale needed for output is not loaded, it will automatically add it to the package.
lit.get_name(11, 'fr_FR')
'Maître Yi'
Get translation
# Default output is 'en_US'
lit.get_translation('미스 포츈')
'Miss Fortune'
# If you haven’t loaded the input locale yet, you can supply it as a parameter
lit.get_translation('ミス・フォーチュン', 'zh_CN', input_locale='ja_JP')
'赏金猎人'
# If get_translation() is called on an existing locale, it can help get the "clean" object name
lit.get_translationn('Misfo')
WARNING:root: Very low confidence matching from Misfo to Miss Fortune.
Type: champion, Locale: en_US, Precision ratio: 59
'Miss Fortune'
Handling locales
# Adds Polish language information
lit.add_locale('pl_PL')
# Forces reloading of all existing locales
lit.reload_app_data()
# Reloads and saves data with only the specified locales
lit.reload_app_data('en_US', 'ja_JP')
Tests
You can take a look at the tests suit for more code examples.
Notes
Package data is saved in ~/.config/lol_id_tools
for offline usage and faster startup after first use.
If loading all 27 LoL locales, dump size is 205kbs.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for lol_id_tools-0.4.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3eedab3ca2e7c62711e15800f607373095bbb230f815568047d5f28605aa1a16 |
|
MD5 | 47d754c998ccaef4c9e94a70cdf97e87 |
|
BLAKE2b-256 | 972764386feac74f875f3c88e66fc51f6bba85f8885d6825b6f1d48277a29eec |