cameo-rank


Namecameo-rank JSON
Version 0.1.1 PyPI version JSON
download
home_pagehttps://github.com/JcXGTcW/cameo_rank
SummaryA Python package for managing game rankings using FastAPI.
upload_time2024-09-11 07:29:56
maintainerNone
docs_urlNone
authorJcXGTcW
requires_python>=3.8
licenseNone
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"
}
        
Elapsed time: 0.72756s