| Name | cameo-rank JSON |
| Version |
0.1.1
JSON |
| download |
| home_page | https://github.com/JcXGTcW/cameo_rank |
| Summary | A Python package for managing game rankings using FastAPI. |
| upload_time | 2024-09-11 07:29:56 |
| maintainer | None |
| docs_url | None |
| author | JcXGTcW |
| requires_python | >=3.8 |
| license | None |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# 排行榜 API
這是一個使用 FastAPI 實現的排行榜 API,提供玩家分數的設定和查詢功能。
## 功能
- 設定玩家分數
- 獲取排行榜
- 支援多個遊戲的排行榜
## 安裝
1. 確保你已經安裝 Python 3.7 以上版本。
2. 安裝所需的套件:
```bash
pip install cameo_rank
```
## 使用方法
1. 如何將 router 加入你的伺服器:
```python
from fastapi import FastAPI
from cameo_rank import router
app = FastAPI()
# 自定義 router 參數
app.include_router(router(rank_base_folder='./my_rank/', check_token=my_check_token_function))
```
## router 參數
在初始化 `router` 時,可以傳入以下參數:
- **rank_base_folder** (str): 儲存排名資料的資料夾,預設為 `'./rank/'`。
- **check_token** (func): 判斷用戶 token 是否合法的函數,輸入兩個參數str_user, str_token。預設為 `None`,若 check_token 為 `None`,則視為全部合法。
- **int_rank_limit_days** (int): 更新排行榜時,超過幾天的玩家會從排行榜中移除,預設為 `30`。
- **int_rank_limit_number** (int): 排行榜上顯示的玩家數量,預設為 `30`。
## API 端點
### 設定分數, 更新一筆排行榜資料
- **URL**: `/rank/set_rank/`
- **方法**: `POST`
- **Request Body**:
```json
{
"str_user": "玩家帳號",
"str_token": "玩家令牌",
"str_game_name": "遊戲名稱",
"str_rank_file": "排名檔案名稱",
"str_name": "玩家名稱",
"int_score": 100
}
```
- **回應**: `OK` 或錯誤訊息
### 獲取排行榜資料
- **URL**: `/rank/get_rank/`
- **方法**: `GET`
- **查詢參數**:
- `str_user`: 玩家帳號 (預設: `190041-s090504`)
- `str_token`: 玩家令牌 (預設: `999999999999`)
- `str_game_name`: 遊戲名稱 (預設: `PlantHero`)
- `str_rank_file`: 排名檔案名稱 (預設: `LevelRank.json`)
- **回應**: 返回排行榜的 JSON 數據
## Demo
要運行前端 Demo,請按照以下步驟操作:
1. **啟動範例 FastAPI 伺服器**:
```bash
python3 -m uvicorn server:app
```
2. **訪問前端 Demo**:
打開瀏覽器並前往 `http://127.0.0.1:8000/static/index.html`,你將看到排行榜的簡易前端介面。
## 貢獻
歡迎任何形式的貢獻!請提出問題或提交 Pull Request。
## 授權
本專案採用 MIT 授權條款,詳情請參閱 LICENSE 文件。
Raw data
{
"_id": null,
"home_page": "https://github.com/JcXGTcW/cameo_rank",
"name": "cameo-rank",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": "JcXGTcW",
"author_email": "jcxgtcw@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/11/fd/3b84f2ea0b059754d5acb9443d84825ca9990f41224db45e50b9fd565832/cameo_rank-0.1.1.tar.gz",
"platform": null,
"description": "# \u6392\u884c\u699c API\r\n\r\n\u9019\u662f\u4e00\u500b\u4f7f\u7528 FastAPI \u5be6\u73fe\u7684\u6392\u884c\u699c API\uff0c\u63d0\u4f9b\u73a9\u5bb6\u5206\u6578\u7684\u8a2d\u5b9a\u548c\u67e5\u8a62\u529f\u80fd\u3002\r\n\r\n## \u529f\u80fd\r\n\r\n- \u8a2d\u5b9a\u73a9\u5bb6\u5206\u6578\r\n- \u7372\u53d6\u6392\u884c\u699c\r\n- \u652f\u63f4\u591a\u500b\u904a\u6232\u7684\u6392\u884c\u699c\r\n\r\n## \u5b89\u88dd\r\n\r\n1. \u78ba\u4fdd\u4f60\u5df2\u7d93\u5b89\u88dd Python 3.7 \u4ee5\u4e0a\u7248\u672c\u3002\r\n2. \u5b89\u88dd\u6240\u9700\u7684\u5957\u4ef6\uff1a\r\n\r\n ```bash\r\n pip install cameo_rank\r\n ```\r\n\r\n## \u4f7f\u7528\u65b9\u6cd5\r\n\r\n1. \u5982\u4f55\u5c07 router \u52a0\u5165\u4f60\u7684\u4f3a\u670d\u5668\uff1a\r\n\r\n ```python\r\n from fastapi import FastAPI\r\n from cameo_rank import router\r\n\r\n app = FastAPI()\r\n\r\n # \u81ea\u5b9a\u7fa9 router \u53c3\u6578\r\n app.include_router(router(rank_base_folder='./my_rank/', check_token=my_check_token_function))\r\n ```\r\n\r\n## router \u53c3\u6578\r\n\r\n\u5728\u521d\u59cb\u5316 `router` \u6642\uff0c\u53ef\u4ee5\u50b3\u5165\u4ee5\u4e0b\u53c3\u6578\uff1a\r\n\r\n- **rank_base_folder** (str): \u5132\u5b58\u6392\u540d\u8cc7\u6599\u7684\u8cc7\u6599\u593e\uff0c\u9810\u8a2d\u70ba `'./rank/'`\u3002\r\n- **check_token** (func): \u5224\u65b7\u7528\u6236 token \u662f\u5426\u5408\u6cd5\u7684\u51fd\u6578\uff0c\u8f38\u5165\u5169\u500b\u53c3\u6578str_user, str_token\u3002\u9810\u8a2d\u70ba `None`\uff0c\u82e5 check_token \u70ba `None`\uff0c\u5247\u8996\u70ba\u5168\u90e8\u5408\u6cd5\u3002\r\n- **int_rank_limit_days** (int): \u66f4\u65b0\u6392\u884c\u699c\u6642\uff0c\u8d85\u904e\u5e7e\u5929\u7684\u73a9\u5bb6\u6703\u5f9e\u6392\u884c\u699c\u4e2d\u79fb\u9664\uff0c\u9810\u8a2d\u70ba `30`\u3002\r\n- **int_rank_limit_number** (int): \u6392\u884c\u699c\u4e0a\u986f\u793a\u7684\u73a9\u5bb6\u6578\u91cf\uff0c\u9810\u8a2d\u70ba `30`\u3002\r\n\r\n## API \u7aef\u9ede\r\n\r\n### \u8a2d\u5b9a\u5206\u6578, \u66f4\u65b0\u4e00\u7b46\u6392\u884c\u699c\u8cc7\u6599\r\n\r\n- **URL**: `/rank/set_rank/`\r\n- **\u65b9\u6cd5**: `POST`\r\n- **Request Body**:\r\n\r\n ```json\r\n {\r\n \"str_user\": \"\u73a9\u5bb6\u5e33\u865f\",\r\n \"str_token\": \"\u73a9\u5bb6\u4ee4\u724c\",\r\n \"str_game_name\": \"\u904a\u6232\u540d\u7a31\",\r\n \"str_rank_file\": \"\u6392\u540d\u6a94\u6848\u540d\u7a31\",\r\n \"str_name\": \"\u73a9\u5bb6\u540d\u7a31\",\r\n \"int_score\": 100\r\n }\r\n ```\r\n\r\n- **\u56de\u61c9**: `OK` \u6216\u932f\u8aa4\u8a0a\u606f\r\n\r\n### \u7372\u53d6\u6392\u884c\u699c\u8cc7\u6599\r\n\r\n- **URL**: `/rank/get_rank/`\r\n- **\u65b9\u6cd5**: `GET`\r\n- **\u67e5\u8a62\u53c3\u6578**:\r\n\r\n - `str_user`: \u73a9\u5bb6\u5e33\u865f (\u9810\u8a2d: `190041-s090504`)\r\n - `str_token`: \u73a9\u5bb6\u4ee4\u724c (\u9810\u8a2d: `999999999999`)\r\n - `str_game_name`: \u904a\u6232\u540d\u7a31 (\u9810\u8a2d: `PlantHero`)\r\n - `str_rank_file`: \u6392\u540d\u6a94\u6848\u540d\u7a31 (\u9810\u8a2d: `LevelRank.json`)\r\n\r\n- **\u56de\u61c9**: \u8fd4\u56de\u6392\u884c\u699c\u7684 JSON \u6578\u64da\r\n\r\n## Demo\r\n\r\n\u8981\u904b\u884c\u524d\u7aef Demo\uff0c\u8acb\u6309\u7167\u4ee5\u4e0b\u6b65\u9a5f\u64cd\u4f5c\uff1a\r\n\r\n1. **\u555f\u52d5\u7bc4\u4f8b FastAPI \u4f3a\u670d\u5668**\uff1a\r\n\r\n ```bash\r\n python3 -m uvicorn server:app\r\n ```\r\n\r\n2. **\u8a2a\u554f\u524d\u7aef Demo**\uff1a\r\n\r\n \u6253\u958b\u700f\u89bd\u5668\u4e26\u524d\u5f80 `http://127.0.0.1:8000/static/index.html`\uff0c\u4f60\u5c07\u770b\u5230\u6392\u884c\u699c\u7684\u7c21\u6613\u524d\u7aef\u4ecb\u9762\u3002\r\n\r\n## \u8ca2\u737b\r\n\r\n\u6b61\u8fce\u4efb\u4f55\u5f62\u5f0f\u7684\u8ca2\u737b\uff01\u8acb\u63d0\u51fa\u554f\u984c\u6216\u63d0\u4ea4 Pull Request\u3002\r\n\r\n## \u6388\u6b0a\r\n\r\n\u672c\u5c08\u6848\u63a1\u7528 MIT \u6388\u6b0a\u689d\u6b3e\uff0c\u8a73\u60c5\u8acb\u53c3\u95b1 LICENSE \u6587\u4ef6\u3002\r\n",
"bugtrack_url": null,
"license": null,
"summary": "A Python package for managing game rankings using FastAPI.",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/JcXGTcW/cameo_rank"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "11fd3b84f2ea0b059754d5acb9443d84825ca9990f41224db45e50b9fd565832",
"md5": "11f45398ca16b8b394067b0e2ae68418",
"sha256": "97b653fa135aa795ee11fd8423e82bd555cdd05a17377ac089f6007530843028"
},
"downloads": -1,
"filename": "cameo_rank-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "11f45398ca16b8b394067b0e2ae68418",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 5240,
"upload_time": "2024-09-11T07:29:56",
"upload_time_iso_8601": "2024-09-11T07:29:56.891950Z",
"url": "https://files.pythonhosted.org/packages/11/fd/3b84f2ea0b059754d5acb9443d84825ca9990f41224db45e50b9fd565832/cameo_rank-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-11 07:29:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "JcXGTcW",
"github_project": "cameo_rank",
"github_not_found": true,
"lcname": "cameo-rank"
}