# ADOFAI
*本项目和 A Dance Of Fire And Ice (中文名“冰与火之舞”)没有任何关系*
ADOFAI (Adjustable Data Objects For Authlib Injector) 是一组数据模型和配套工具,旨在简化自定义实现 Authlib-injector 的规范
Yggdrasil 服务端、客户端及其配套程序的过程。
Yggdrasil 是游戏 Minecraft 中身份验证服务的实现名称。
## 快速开始
### 安装
```shell
pip install adofai
```
### 示例
```python
from adofai import GameName, TextureUrl
from adofai.models import GameProfile, TextureProfile, TextureProperty
from adofai.utils.uuid import offline_uuid
from adofai.utils.signing import dummy_key
texture = TextureProfile(
skin=TextureProperty(
url=TextureUrl("https://something"),
metadata={"model": "slim"}
),
cape=TextureProperty(
url=TextureUrl("https://yetanother")
)
)
game_profile = GameProfile(
name="Notch",
id=offline_uuid(GameName("Notch")),
texture=texture,
extra_properties={"uploadableTextures": "skin,cape"}
)
print(game_profile.serialize("full", dummy_key()))
```
## 另请参阅
[Yggdrasil Scaffold](https://github.com/silverteal/yggdrasil-scaffold) 是基于 ADOFAI 和 FastAPI 的 Yggdrasil
身份验证协议实现脚手架。
Raw data
{
"_id": null,
"home_page": "https://github.com/Silverteal/adofai",
"name": "adofai",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.12",
"maintainer_email": null,
"keywords": "minecraft, mc, authlib, authlib-injector, implementaion, abc, yggdrasil",
"author": "Silverteal",
"author_email": "67404722+Silverteal@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/e8/29/9f1decc50c47d921754eb328b34453d4543b5bdd0ff0fc73ec90e2a79263/adofai-0.1.0.dev6.tar.gz",
"platform": null,
"description": "# ADOFAI\n\n*\u672c\u9879\u76ee\u548c A Dance Of Fire And Ice \uff08\u4e2d\u6587\u540d\u201c\u51b0\u4e0e\u706b\u4e4b\u821e\u201d\uff09\u6ca1\u6709\u4efb\u4f55\u5173\u7cfb*\n\nADOFAI (Adjustable Data Objects For Authlib Injector) \u662f\u4e00\u7ec4\u6570\u636e\u6a21\u578b\u548c\u914d\u5957\u5de5\u5177\uff0c\u65e8\u5728\u7b80\u5316\u81ea\u5b9a\u4e49\u5b9e\u73b0 Authlib-injector \u7684\u89c4\u8303\nYggdrasil \u670d\u52a1\u7aef\u3001\u5ba2\u6237\u7aef\u53ca\u5176\u914d\u5957\u7a0b\u5e8f\u7684\u8fc7\u7a0b\u3002\n\nYggdrasil \u662f\u6e38\u620f Minecraft \u4e2d\u8eab\u4efd\u9a8c\u8bc1\u670d\u52a1\u7684\u5b9e\u73b0\u540d\u79f0\u3002\n\n## \u5feb\u901f\u5f00\u59cb\n\n### \u5b89\u88c5\n\n```shell\npip install adofai\n```\n\n### \u793a\u4f8b\n\n```python\nfrom adofai import GameName, TextureUrl\nfrom adofai.models import GameProfile, TextureProfile, TextureProperty\nfrom adofai.utils.uuid import offline_uuid\nfrom adofai.utils.signing import dummy_key\n\ntexture = TextureProfile(\n skin=TextureProperty(\n url=TextureUrl(\"https://something\"),\n metadata={\"model\": \"slim\"}\n ),\n cape=TextureProperty(\n url=TextureUrl(\"https://yetanother\")\n )\n)\n\ngame_profile = GameProfile(\n name=\"Notch\",\n id=offline_uuid(GameName(\"Notch\")),\n texture=texture,\n extra_properties={\"uploadableTextures\": \"skin,cape\"}\n)\n\nprint(game_profile.serialize(\"full\", dummy_key()))\n\n```\n\n## \u53e6\u8bf7\u53c2\u9605\n\n[Yggdrasil Scaffold](https://github.com/silverteal/yggdrasil-scaffold) \u662f\u57fa\u4e8e ADOFAI \u548c FastAPI \u7684 Yggdrasil\n\u8eab\u4efd\u9a8c\u8bc1\u534f\u8bae\u5b9e\u73b0\u811a\u624b\u67b6\u3002",
"bugtrack_url": null,
"license": "MIT",
"summary": "Shared data model for authlib-injector yggdrasil implementation and Minecraft API services",
"version": "0.1.0.dev6",
"project_urls": {
"Homepage": "https://github.com/Silverteal/adofai",
"Repository": "https://github.com/Silverteal/adofai"
},
"split_keywords": [
"minecraft",
" mc",
" authlib",
" authlib-injector",
" implementaion",
" abc",
" yggdrasil"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "00fa14a69032295fbcbe93f805ea435605aca2c32cf0a11d8c1303d30dccadfa",
"md5": "1cb05fb1c34f0d836d5907372d26a6c3",
"sha256": "4d531a7f857be26469052e9bcf7ec6c4aa392f61c57eeadb0e46e82961ca128a"
},
"downloads": -1,
"filename": "adofai-0.1.0.dev6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1cb05fb1c34f0d836d5907372d26a6c3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.12",
"size": 10694,
"upload_time": "2024-10-04T04:43:32",
"upload_time_iso_8601": "2024-10-04T04:43:32.804007Z",
"url": "https://files.pythonhosted.org/packages/00/fa/14a69032295fbcbe93f805ea435605aca2c32cf0a11d8c1303d30dccadfa/adofai-0.1.0.dev6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e8299f1decc50c47d921754eb328b34453d4543b5bdd0ff0fc73ec90e2a79263",
"md5": "576a15e508b89bdcca3a4a8ef1abe3ea",
"sha256": "26f5facd7a0b5a33b34c45f28a7d6dbb55902ba959a17a6ccaef1ebd9996cbd7"
},
"downloads": -1,
"filename": "adofai-0.1.0.dev6.tar.gz",
"has_sig": false,
"md5_digest": "576a15e508b89bdcca3a4a8ef1abe3ea",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.12",
"size": 8757,
"upload_time": "2024-10-04T04:43:34",
"upload_time_iso_8601": "2024-10-04T04:43:34.847651Z",
"url": "https://files.pythonhosted.org/packages/e8/29/9f1decc50c47d921754eb328b34453d4543b5bdd0ff0fc73ec90e2a79263/adofai-0.1.0.dev6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-04 04:43:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Silverteal",
"github_project": "adofai",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "adofai"
}