migate is a simplified Xiaomi authentication gateway for Python projects
Project description
Install
pip install migate
Or add it as a dependency in your project:
# pyproject.toml
dependencies = ["migate"]
# requirements.txt
migate
Usage
import migate
# --- passport (default) ---
# If no params are passed, sid defaults to passport.
# pass_token = migate.get_passtoken()
# service = migate.get_service(pass_token)
# --- unlockApi: bootloader unlock ---
# params = {"sid": "unlockApi", "checkSafeAddress": True}
# --- xiaomiio: Mi Home / smart home devices ---
# params = {"sid": "xiaomiio"}
# --- micoapi: Mi AI speaker ---
# params = {"sid": "micoapi"}
# --- i.mi.com: Mi Cloud / Find Device ---
# params = {"sid": "i.mi.com"}
# --- 18n_bbs_global: Mi Community ---
# params = {"sid": "18n_bbs_global"}
params = {"sid": "unlockApi", "checkSafeAddress": True}
pass_token = migate.get_passtoken(params)
# skip the interactive prompt if already logged in
# pass_token = migate.get_passtoken(params, silent=True)
service = migate.get_service(pass_token, params)
print(pass_token)
# {
# "deviceId": "wb_...",
# "passToken": "...",
# "userId": "..."
# }
print(service)
# {
# "servicedata": {
# "nonce": ...,
# "ssecurity": "...",
# "cUserId": "...",
# "psecurity": "...",
# "deviceId": "wb_..."
# },
# "cookies": {
# # passport -> {}
# # unlockApi -> serviceToken, unlockApi_slh, unlockApi_ph, userId
# # xiaomiio -> serviceToken, cUserId, userId
# # micoapi -> serviceToken, micoapi_slh, micoapi_ph, userId
# # i.mi.com -> serviceToken, i.mi.com_slh, i.mi.com_ph, userId
# # 18n_bbs_global -> serviceToken, popRunToken, new_bbs_serviceToken, new_login, userId
# }
# }
All functions return
Noneon failure. Always check the return value before passing it to the next call.
Utilities
# get account region
region = migate.get_region(pass_token)
# get dataCenterZone
## get with account region
zone = migate.get_dataCenterZone(region) ## get with account ID
zone = migate.get_dataCenterZone(userId) ## manual selection
zone = migate.get_dataCenterZone()
# get uRegion
uRegion = migate.get_uRegion()
# get uLocale
uLocale = migate.get_uLocale()
# areaConfig, ex: with SG
area = migate.get_areaConfig("SG")
# {"code": "SG", "name": "Singapore", "dial": "+65"}
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
migate-1.1.6.tar.gz
(14.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
migate-1.1.6-py3-none-any.whl
(18.3 kB
view details)
File details
Details for the file migate-1.1.6.tar.gz.
File metadata
- Download URL: migate-1.1.6.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3dc81dc168b9358a2d967ae215e1d11351f37b56c8723bee2700899925fe36b1
|
|
| MD5 |
ca8452c76ba7177c7310be9eeb38c1ed
|
|
| BLAKE2b-256 |
05c8b9efa8e52287d0d8b7deeeda31634c46613a73f7c917d064368d6a1137a2
|
File details
Details for the file migate-1.1.6-py3-none-any.whl.
File metadata
- Download URL: migate-1.1.6-py3-none-any.whl
- Upload date:
- Size: 18.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8ac65d813f0b23f2eccb9a171b90dd8e5ce88522b0d85fe775c296fbbec54f9
|
|
| MD5 |
3343be6904076d3955d9d861de259043
|
|
| BLAKE2b-256 |
c296f4ef0ac4f1b68a6568c6d23a90134eea6973f478ce03e503655ae57cdc53
|