├── .env.example ├── mygo ├── static │ ├── all_file.py │ ├── mygo.json │ └── image_map.json ├── models │ ├── tags.py │ └── image.py ├── algo │ ├── __init__.py │ └── Levenshtein.py ├── utils │ └── database.py ├── services │ ├── get_pic_list.py │ ├── get_random_pic.py │ ├── get_pic.py │ └── get_pic_multikey.py ├── routers │ └── mygo.py └── app.py ├── README.md ├── docker-run.sh ├── pyproject.toml ├── Dockerfile ├── LICENSE ├── .gitignore └── poetry.lock /.env.example: -------------------------------------------------------------------------------- 1 | SERVER_PORT="3030" -------------------------------------------------------------------------------- /mygo/static/all_file.py: -------------------------------------------------------------------------------- 1 | # import requests 2 | import json 3 | 4 | with open('mygo/static/image_map.json', 'r') as f: 5 | file_list = json.load(f) -------------------------------------------------------------------------------- /mygo/models/tags.py: -------------------------------------------------------------------------------- 1 | from typing import Optional 2 | from pydantic import BaseModel, EmailStr, validator 3 | 4 | class Tags(BaseModel): 5 | name: str 6 | description: str 7 | url: str 8 | tags: list[str] -------------------------------------------------------------------------------- /mygo/models/image.py: -------------------------------------------------------------------------------- 1 | from typing import Optional 2 | from pydantic import BaseModel, EmailStr, validator 3 | 4 | class Image(BaseModel): 5 | name: str 6 | description: str 7 | url: str 8 | tags: list[str] -------------------------------------------------------------------------------- /mygo/algo/__init__.py: -------------------------------------------------------------------------------- 1 | import os 2 | import importlib 3 | 4 | module_dir = os.path.dirname(__file__) 5 | 6 | for filename in os.listdir(module_dir): 7 | if filename.endswith(".py") and filename != "__init__.py": 8 | module_name = filename[:-3] 9 | importlib.import_module(f".{module_name}", package=__name__) 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MYGO圖包API 2 | 3 | 你願意一輩子跟我一起MyGo嗎? 4 | [API Swagger Docs](https://mygoapi.miyago9267.com/docs) 5 | 6 | ## 部署 7 | 8 | ### 環境變數 9 | 10 | 僅有設定啟動PORT 預設為3030 11 | 12 | ### 安裝及啟動 13 | 14 | ```bash 15 | git clone https://github.com/miyago9267/mygoapi.git && cd mygoapi 16 | poetry install 17 | poetry run python3 mygo/app.py 18 | ``` 19 | 20 | ## License 21 | 22 | 本專案採MIT License 23 | 歡迎fork進行修改、PR、二次開發 24 | -------------------------------------------------------------------------------- /docker-run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | user="mygo" 3 | name="mygo-api" 4 | port=3150 5 | 6 | docker build \ 7 | $@ -t $user/$name:latest . || exit 8 | [ "$(docker ps | grep $name)" ] && docker kill $name 9 | [ "$(docker ps -a | grep $name)" ] && docker rm $name 10 | 11 | docker run \ 12 | -itd \ 13 | -u $(id -u):$(id -g) \ 14 | -p $port:3150 \ 15 | --name $name \ 16 | --restart=always \ 17 | $user/$name:latest 18 | -------------------------------------------------------------------------------- /mygo/algo/Levenshtein.py: -------------------------------------------------------------------------------- 1 | def distance(s1, s2): 2 | len_s1, len_s2 = len(s1), len(s2) 3 | dp = [[0] * (len_s2 + 1) for _ in range(len_s1 + 1)] 4 | 5 | for i in range(len_s1 + 1): 6 | for j in range(len_s2 + 1): 7 | if i == 0: 8 | dp[i][j] = j 9 | elif j == 0: 10 | dp[i][j] = i 11 | elif s1[i - 1] == s2[j - 1]: 12 | dp[i][j] = dp[i - 1][j - 1] 13 | else: 14 | dp[i][j] = 1 + min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]) 15 | 16 | return dp[len_s1][len_s2] -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "mygo-api" 3 | version = "0.1.0" 4 | description = "API for mygo meme picture library" 5 | authors = ["miyago9267 "] 6 | readme = "README.md" 7 | 8 | [tool.poetry.dependencies] 9 | python = "^3.12" 10 | fastapi = "^0.110.2" 11 | uvicorn = "^0.29.0" 12 | python-dotenv = "^1.0.1" 13 | requests = "^2.31.0" 14 | pymongo = {extras = ["srv"], version = "^4.7.0"} 15 | python-levenshtein = "^0.26.1" 16 | opencc-python-reimplemented = "^0.1.7" 17 | 18 | 19 | [build-system] 20 | requires = ["poetry-core"] 21 | build-backend = "poetry.core.masonry.api" 22 | -------------------------------------------------------------------------------- /mygo/utils/database.py: -------------------------------------------------------------------------------- 1 | 2 | from pymongo.mongo_client import MongoClient 3 | from pymongo.server_api import ServerApi 4 | 5 | class Mongo: 6 | def __init__(self, uri): 7 | client = MongoClient(uri, server_api=ServerApi('1')) 8 | 9 | self.db = client[db_name] 10 | self.collection = self.db[collection_name] 11 | 12 | def ping(self): 13 | try: 14 | self.client.admin.command('ping') 15 | print("Successfully connected to MongoDB!") 16 | except Exception as e: 17 | print(e) 18 | 19 | def insert_one(self, data): 20 | return self.collection.insert_one(data) -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.12-slim AS builder 2 | 3 | WORKDIR /app 4 | 5 | COPY pyproject.toml poetry.lock ./ 6 | 7 | RUN apt-get update && apt-get install -y curl gcc build-essential 8 | 9 | RUN curl -sSL https://install.python-poetry.org | python3 - 10 | 11 | RUN ~/.local/bin/poetry export -f requirements.txt --output requirements.txt 12 | 13 | FROM python:3.12-slim 14 | 15 | WORKDIR /app 16 | 17 | RUN apt-get update && apt-get upgrade -y && apt-get install -y gcc build-essential 18 | COPY --from=builder /app/requirements.txt . 19 | RUN pip install --no-cache-dir -r requirements.txt 20 | 21 | COPY . . 22 | 23 | CMD ["python", "mygo/app.py"] -------------------------------------------------------------------------------- /mygo/services/get_pic_list.py: -------------------------------------------------------------------------------- 1 | """ 2 | Danger!!! This module has READ FILE operation. 3 | """ 4 | 5 | import requests 6 | from fastapi.responses import JSONResponse 7 | from static import all_file 8 | 9 | url = 'https://drive.miyago9267.com/d/file/img/mygo/' 10 | 11 | def get_pic_list() -> list: 12 | """Return all mygo pictures""" 13 | try: 14 | files = all_file.file_list 15 | 16 | all_files = [{'url': url + item['file_name'], 'alt': item['name']} for item in files] 17 | 18 | return JSONResponse(status_code=200, content={'urls': all_files}) 19 | except Exception as e: 20 | return JSONResponse(status_code=400, content={'error': 'Fail to fetch images library.'}) -------------------------------------------------------------------------------- /mygo/services/get_random_pic.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import random as rng 3 | from fastapi.responses import JSONResponse 4 | from static import all_file 5 | 6 | url = 'https://drive.miyago9267.com/d/file/img/mygo/' 7 | 8 | def get_random_pic(amount: int) -> list: 9 | """Return all mygo pictures""" 10 | try: 11 | files = all_file.file_list 12 | 13 | rng_pics = rng.sample(files, amount) 14 | 15 | pic_files = [{'url': url + item['file_name'], 'alt': item['name']} for item in rng_pics] 16 | 17 | return JSONResponse(status_code=200, content={'urls': pic_files}) 18 | except Exception as e: 19 | print(e) 20 | return JSONResponse(status_code=400, content={'error': 'Fail to fetch images library.'}) -------------------------------------------------------------------------------- /mygo/routers/mygo.py: -------------------------------------------------------------------------------- 1 | """Router for Basic Info""" 2 | import time 3 | from fastapi import APIRouter 4 | from services import get_pic_multikey, get_pic_list, get_random_pic 5 | 6 | router = APIRouter() 7 | 8 | @router.get('/img') 9 | async def get_mygo_pic( 10 | keyword: str, 11 | fuzzy: bool = True 12 | ) -> dict: 13 | """Return a mygo picture with keyword""" 14 | keywords = keyword.split(' ') 15 | return get_pic_multikey.get_pic(keywords, fuzzy) 16 | 17 | @router.get('/all_img') 18 | async def get_all_mygo_pic() -> dict: 19 | """Return all mygo pictures""" 20 | return get_pic_list.get_pic_list() 21 | 22 | @router.get('/random_img') 23 | async def get_random_mygo_pic( 24 | amount: int = 20 25 | ) -> dict: 26 | """Return random mygo pictures in amount""" 27 | return get_random_pic.get_random_pic(amount) -------------------------------------------------------------------------------- /mygo/app.py: -------------------------------------------------------------------------------- 1 | """Main server file for FastAPI application.""" 2 | import os 3 | import uvicorn 4 | from fastapi import FastAPI 5 | from dotenv import load_dotenv 6 | from routers import mygo 7 | from fastapi.middleware.cors import CORSMiddleware 8 | 9 | load_dotenv() 10 | 11 | origins = [ 12 | 'http://localhost:4000', 13 | 'https://mygo.miyago9267.com', 14 | 'https://mygotest.miyago9267.com', 15 | '*' 16 | ] 17 | 18 | app = FastAPI() 19 | app.add_middleware( 20 | CORSMiddleware, 21 | allow_origins=origins, 22 | allow_credentials=True, 23 | allow_methods=["*"], 24 | allow_headers=["*"] 25 | ) 26 | app.include_router( 27 | mygo.router, 28 | prefix="/mygo", 29 | tags=["MyGo"] 30 | ) 31 | 32 | @app.get('/PING') 33 | def ping() -> str: 34 | """Return tesing PONG""" 35 | return 'PONG' 36 | 37 | if __name__ == "__main__": 38 | uvicorn.run( 39 | 'app:app', 40 | host='0.0.0.0', 41 | port=int(os.getenv("SERVER_PORT",'3030')), 42 | reload=True 43 | ) -------------------------------------------------------------------------------- /mygo/services/get_pic.py: -------------------------------------------------------------------------------- 1 | from static import all_file 2 | from pathlib import Path 3 | import json 4 | from fastapi import FastAPI, HTTPException 5 | from fastapi.responses import JSONResponse 6 | 7 | json_path = Path(__file__).parent.parent / 'static' / 'mygo.json' 8 | 9 | with json_path.open('r', encoding='utf-8') as f: 10 | data = json.load(f) 11 | 12 | url = 'https://drive.miyago9267.com/d/file/img/mygo/' 13 | all_pics = all_file.file_list 14 | 15 | def get_pic(keyword: str, fuzzy: bool = True): 16 | urls = [] 17 | if fuzzy: 18 | urls += [{'url':url + item['file_name'], 'alt':item['name']} for item in all_pics if keyword in item['name']] 19 | if keyword in data.keys(): 20 | urls += [{'url':url + item['file_name'], 'alt': item['name']} for item in all_pics if item['name'] in data.get(keyword, {}).get('value', [])] 21 | unique_items = set(tuple(sorted(d.items())) for d in urls) 22 | 23 | urls = [dict(items) for items in unique_items] 24 | if not urls: 25 | return JSONResponse(status_code=200, content={'urls': []}) 26 | else: 27 | return JSONResponse(status_code=200, content={'urls': urls}) -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) [2024] [@miyago9267] 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # VSCode 2 | tempCodeRunnerFile.py 3 | 4 | # Byte-compiled / optimized / DLL files 5 | __pycache__/ 6 | *.py[cod] 7 | *py.class 8 | 9 | # C extensions 10 | *.so 11 | 12 | # Distribution / packaging 13 | .Python 14 | build/ 15 | develop-eggs/ 16 | dist/ 17 | downloads/ 18 | eggs/ 19 | .eggs/ 20 | lib/ 21 | lib64/ 22 | parts/ 23 | sdist/ 24 | var/ 25 | wheels/ 26 | share/python-wheels/ 27 | *.egg-info/ 28 | .installed.cfg 29 | *.egg 30 | MANIFEST 31 | 32 | # PyInstaller 33 | # Usually these files are written by a python script from a template 34 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 35 | *.manifest 36 | *.spec 37 | 38 | # Installer logs 39 | pip-log.txt 40 | pip-delete-this-directory.txt 41 | 42 | # Unit test / coverage reports 43 | htmlcov/ 44 | .tox/ 45 | .nox/ 46 | .coverage 47 | .coverage.* 48 | .cache 49 | nosetests.xml 50 | coverage.xml 51 | *.cover 52 | *.py,cover 53 | .hypothesis/ 54 | .pytest_cache/ 55 | cover/ 56 | 57 | # Translations 58 | *.mo 59 | *.pot 60 | 61 | # Django stuff: 62 | *.log 63 | local_settings.py 64 | db.sqlite3 65 | db.sqlite3-journal 66 | 67 | # Flask stuff: 68 | instance/ 69 | .webassets-cache 70 | 71 | # Scrapy stuff: 72 | .scrapy 73 | 74 | # Sphinx documentation 75 | docs/_build/ 76 | 77 | # PyBuilder 78 | .pybuilder/ 79 | target/ 80 | 81 | # Jupyter Notebook 82 | .ipynb_checkpoints 83 | 84 | # IPython 85 | profile_default/ 86 | ipython_config.py 87 | 88 | # pyenv 89 | # For a library or package, you might want to ignore these files since the code is 90 | # intended to run in multiple environments; otherwise, check them in: 91 | # .python-version 92 | 93 | # pipenv 94 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 95 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 96 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 97 | # install all needed dependencies. 98 | #Pipfile.lock 99 | 100 | # poetry 101 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 102 | # This is especially recommended for binary packages to ensure reproducibility, and is more 103 | # commonly ignored for libraries. 104 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 105 | #poetry.lock 106 | 107 | # pdm 108 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 109 | #pdm.lock 110 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it 111 | # in version control. 112 | # https://pdm.fming.dev/#use-with-ide 113 | .pdm.toml 114 | 115 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 116 | __pypackages__/ 117 | 118 | # Celery stuff 119 | celerybeat-schedule 120 | celerybeat.pid 121 | 122 | # SageMath parsed files 123 | *.sage.py 124 | 125 | # Environments 126 | .env 127 | .venv 128 | env/ 129 | venv/ 130 | ENV/ 131 | env.bak/ 132 | venv.bak/ 133 | 134 | # Spyder project settings 135 | .spyderproject 136 | .spyproject 137 | 138 | # Rope project settings 139 | .ropeproject 140 | 141 | # mkdocs documentation 142 | /site 143 | 144 | # mypy 145 | .mypy_cache/ 146 | .dmypy.json 147 | dmypy.json 148 | 149 | # Pyre type checker 150 | .pyre/ 151 | 152 | # pytype static type analyzer 153 | .pytype/ 154 | 155 | # Cython debug symbols 156 | cython_debug/ 157 | 158 | # PyCharm 159 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 160 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 161 | # and can be added to the global gitignore or merged into this file. For a more nuclear 162 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 163 | #.idea/ 164 | dev-logs.md 165 | exec/ 166 | data/ 167 | .venv/ 168 | __pycache__ -------------------------------------------------------------------------------- /mygo/services/get_pic_multikey.py: -------------------------------------------------------------------------------- 1 | from static import all_file 2 | from pathlib import Path 3 | import json 4 | from fastapi import FastAPI, HTTPException 5 | from fastapi.responses import JSONResponse 6 | from algo.Levenshtein import distance as levenshtein_distance 7 | from opencc import OpenCC 8 | 9 | json_path = Path(__file__).parent.parent / 'static' / 'mygo.json' 10 | cc = OpenCC('s2t') 11 | 12 | with json_path.open('r', encoding='utf-8') as f: 13 | data = json.load(f) 14 | 15 | url = 'https://drive.miyago9267.com/d/file/img/mygo/' 16 | all_pics = all_file.file_list 17 | 18 | fuzzy_replacements = { 19 | "你": ["妳"], 20 | "妳": ["你"], 21 | "他": ["她"], 22 | "她": ["他"], 23 | "欸": ["耶"], 24 | "耶": ["欸"], 25 | } 26 | 27 | def generate_fuzzy_variants(keyword): 28 | variants = {keyword} 29 | for i, char in enumerate(keyword): 30 | if char in fuzzy_replacements: 31 | for replacement in fuzzy_replacements[char]: 32 | new_variant = keyword[:i] + replacement + keyword[i+1:] 33 | variants.add(new_variant) 34 | return variants 35 | 36 | def calculate_score(keyword, text): 37 | if keyword == text: 38 | return 15 # 提高完全匹配時的分數 39 | 40 | score = 0 41 | if keyword in text: 42 | score += 5 # 降低包含子字串時的基礎分數,特別是短關鍵字 43 | 44 | max_continuous_match = 0 45 | for i in range(len(keyword)): 46 | for j in range(i + 1, len(keyword) + 1): 47 | if keyword[i:j] in text: 48 | max_continuous_match = max(max_continuous_match, j - i) 49 | 50 | if max_continuous_match > 1: 51 | score += max_continuous_match 52 | 53 | return score 54 | 55 | def get_pic(keywords: list[str], fuzzy: bool = True): 56 | keywords = [cc.convert(keyword) for keyword in keywords] 57 | scored_results = [] 58 | full_match_results = [] 59 | custom_keymap_results = [] 60 | 61 | for item in all_pics: 62 | name = item['name'] 63 | total_score = 0 64 | keyword_fully_matched = True 65 | 66 | # 原有算法 67 | for keyword in keywords: 68 | fuzzy_variants = generate_fuzzy_variants(keyword) if fuzzy else {keyword} 69 | max_score_for_keyword = 0 70 | keyword_matched = False 71 | 72 | for variant in fuzzy_variants: 73 | if not fuzzy: 74 | if variant in name: 75 | max_score_for_keyword = 15 # 完全匹配情況下的高分 76 | keyword_matched = True 77 | break 78 | else: 79 | if variant in name: 80 | max_score_for_keyword = max(max_score_for_keyword, 10) # 如果是部分匹配 81 | keyword_matched = True 82 | elif len(variant) > 2 and len(name) > 2 and levenshtein_distance(variant, name) <= 2: 83 | similarity_ratio = (len(variant) - levenshtein_distance(variant, name)) / len(variant) 84 | if similarity_ratio >= 0.5 and variant in name: 85 | max_score_for_keyword = max(max_score_for_keyword, 3) # 相似度較低的情況下給較低的分數 86 | keyword_matched = True 87 | 88 | if max_score_for_keyword > 0: 89 | total_score += max_score_for_keyword 90 | else: 91 | keyword_fully_matched = False 92 | break 93 | 94 | if total_score > 0: 95 | scored_results.append({'url': url + item['file_name'], 'alt': item['name'], 'score': total_score}) 96 | 97 | # 自定義映射邏輯,符合任何關鍵字直接給滿分 98 | for keyword in keywords: 99 | if keyword in name: 100 | full_match_results.append({'url': url + item['file_name'], 'alt': item['name'], 'score': 15}) 101 | break 102 | 103 | if keyword in data.keys(): 104 | custom_keymap_results += [{'url':url + item['file_name'], 'alt': item['name'], 'score': 15} for item in all_pics if item['name'] in data.get(keyword, {}).get('value', [])] 105 | 106 | # 合併原有算法結果和自定義映射結果,去重 107 | combined_results = {f"{r['url']}": r for r in (scored_results + full_match_results + custom_keymap_results)}.values() 108 | sorted_results = sorted(combined_results, key=lambda x: x['score'], reverse=True) 109 | 110 | return JSONResponse(status_code=200, content={'urls': [r for r in sorted_results]}) 111 | -------------------------------------------------------------------------------- /mygo/static/mygo.json: -------------------------------------------------------------------------------- 1 | { 2 | "春日影": { 3 | "value": [ 4 | "我不會再演奏春日影了", 5 | "因為春日影是一首好歌", 6 | "為什麼要演奏春日影" 7 | ] 8 | }, 9 | "ハルヒカゲ": { 10 | "value": [ 11 | "我不會再演奏春日影了", 12 | "因為春日影是一首好歌", 13 | "為什麼要演奏春日影" 14 | ] 15 | }, 16 | "はるひかげ": { 17 | "value": [ 18 | "我不會再演奏春日影了", 19 | "因為春日影是一首好歌", 20 | "為什麼要演奏春日影" 21 | ] 22 | }, 23 | "haruhikage": { 24 | "value": [ 25 | "我不會再演奏春日影了", 26 | "因為春日影是一首好歌", 27 | "為什麼要演奏春日影" 28 | ] 29 | }, 30 | "愛慕虛榮": { 31 | "value": [ 32 | "我愛慕虛榮啦" 33 | ] 34 | }, 35 | "找我吵架":{ 36 | "value": [ 37 | "妳是來找我吵架的嗎" 38 | ] 39 | }, 40 | "是這樣嗎": { 41 | "value": [ 42 | "是這樣嗎", 43 | "是這樣嗎" 44 | ] 45 | }, 46 | "又怎樣": { 47 | "value": [ 48 | "是又怎樣" 49 | ] 50 | }, 51 | "是嗎": { 52 | "value": [ 53 | "是嗎" 54 | ] 55 | }, 56 | "是啊": { 57 | "value": [ 58 | "是啊", 59 | "是這樣沒錯", 60 | "這樣啊" 61 | ] 62 | }, 63 | "無趣": { 64 | "value": [ 65 | "全是一些無趣的女人", 66 | "無趣的女孩子" 67 | ] 68 | }, 69 | "有趣": { 70 | "value": [ 71 | "有趣的女人" 72 | ] 73 | }, 74 | "沒有結束": { 75 | "value": [ 76 | "它沒有結束" 77 | ] 78 | }, 79 | "徹底失敗": { 80 | "value": [ 81 | "我已經徹底失敗了" 82 | ] 83 | }, 84 | "可喜可賀": { 85 | "value": [ 86 | "那真是可喜可賀" 87 | ] 88 | }, 89 | "搞砸": { 90 | "value": [ 91 | "事情都搞砸了" 92 | ] 93 | }, 94 | "先入為主": { 95 | "value": [ 96 | "太先入為主了喔" 97 | ] 98 | }, 99 | "洗澡": { 100 | "value": [ 101 | "妳要不要先去洗澡" 102 | ] 103 | }, 104 | "沒有時間玩": { 105 | "value": [ 106 | "現在沒時間玩了吧" 107 | ] 108 | }, 109 | "祝你幸福": { 110 | "value": [ 111 | "真的毫無品味" 112 | ] 113 | }, 114 | "認真的嗎": { 115 | "value": [ 116 | "你這話是認真的嗎" 117 | ] 118 | }, 119 | "虛情假意": { 120 | "value": [ 121 | "真是會虛情假意呢" 122 | ] 123 | }, 124 | "高高在上": { 125 | "value": [ 126 | "還真是高高在上呢" 127 | ] 128 | }, 129 | "開玩笑嗎": { 130 | "value": [ 131 | "你在開玩笑嗎" 132 | ] 133 | }, 134 | "忍不住": { 135 | "value": [ 136 | "對不起,忍不住就" 137 | ] 138 | }, 139 | "騙人": { 140 | "value": [ 141 | "那當然是騙人的啊" 142 | ] 143 | }, 144 | "逃避": { 145 | "value": [ 146 | "我看妳只是在逃避吧" 147 | ] 148 | }, 149 | "早知道": { 150 | "value": [ 151 | "我早知道會這樣了" 152 | ] 153 | }, 154 | "早就知道": { 155 | "value": [ 156 | "我早知道會這樣了" 157 | ] 158 | }, 159 | "不需要我": { 160 | "value": [ 161 | "你不是不需要我了嗎" 162 | ] 163 | }, 164 | "不懂": { 165 | "value": [ 166 | "坦白說我都聽得一頭霧水", 167 | "我完全不懂妳的意思", 168 | "我已經搞不懂了" 169 | ] 170 | }, 171 | "講什麼": { 172 | "value": [ 173 | "這是在講什麼" 174 | ] 175 | }, 176 | "只想到自己": { 177 | "value": [ 178 | "滿腦子都只想到自己呢" 179 | ] 180 | }, 181 | "就是這個": { 182 | "value": [ 183 | "就是這個" 184 | ] 185 | }, 186 | "毫無品味": { 187 | "value": [ 188 | "真的毫無品味", 189 | "大家真沒品味" 190 | ] 191 | }, 192 | "不講話": { 193 | "value": [ 194 | "為什麼都不講話" 195 | ] 196 | }, 197 | "運氣真好": { 198 | "value": [ 199 | "運氣真好" 200 | ] 201 | }, 202 | "謝謝你": { 203 | "value": [ 204 | "謝謝你", 205 | "謝謝妳" 206 | ] 207 | }, 208 | "不要": { 209 | "value": [ 210 | "不要" 211 | ] 212 | }, 213 | "抱歉": { 214 | "value": [ 215 | "抱歉" 216 | ] 217 | }, 218 | "誤會": { 219 | "value": [ 220 | "你誤會了" 221 | ] 222 | }, 223 | "一輩子": { 224 | "value": [ 225 | "一輩子跟我一起組樂團嗎", 226 | "我願意一輩子和燈在一起", 227 | "是一輩子喔 一輩子", 228 | "讓我們一起迷失吧" 229 | ] 230 | }, 231 | "無法回頭": { 232 | "value": [ 233 | "一旦加入就無法回頭了喔" 234 | ] 235 | }, 236 | "不是這樣": { 237 | "value": [ 238 | "不是這樣", 239 | "不是這樣的" 240 | ] 241 | }, 242 | "不行": { 243 | "value": [ 244 | "不行" 245 | ] 246 | }, 247 | "不要講這種話": { 248 | "value": [ 249 | "不要講這種話" 250 | ] 251 | }, 252 | "沒圖說個雞巴": { 253 | "value": [ 254 | "不讓我們看看怎麼知道" 255 | ] 256 | }, 257 | "不錯": { 258 | "value": [ 259 | "不錯吧" 260 | ] 261 | }, 262 | "交給我": { 263 | "value": [ 264 | "交給我吧" 265 | ] 266 | }, 267 | "什麼意思": { 268 | "value": [ 269 | "什麼意思" 270 | ] 271 | }, 272 | "別這樣啦": { 273 | "value": [ 274 | "爽世:別這樣啦", 275 | "喵夢:別這樣啦" 276 | ] 277 | }, 278 | "執著於過去": { 279 | "value": [ 280 | "到現在還執著於過去,真難看" 281 | ] 282 | }, 283 | "新人": { 284 | "value": [ 285 | "又來了一個新人" 286 | ] 287 | }, 288 | "什麼都願意": { 289 | "value": [ 290 | "只要是我能做的,我什麼都願意做" 291 | ] 292 | }, 293 | "別再提起那件事": { 294 | "value": [ 295 | "可以請妳別提起那件事嗎" 296 | ] 297 | }, 298 | "刪掉": { 299 | "value": [ 300 | "可以請妳刪除剛才的影片嗎" 301 | ] 302 | }, 303 | "很想要": { 304 | "value": [ 305 | "因為我很想要嘛" 306 | ] 307 | }, 308 | "一頭霧水": { 309 | "value": [ 310 | "坦白說我都聽得一頭霧水" 311 | ] 312 | }, 313 | "太過分了": { 314 | "value": [ 315 | "太過分了" 316 | ] 317 | }, 318 | "好厲害": { 319 | "value": [ 320 | "好厲害", 321 | "好厲害...", 322 | "好厲害喔" 323 | ] 324 | }, 325 | "沒有那麼厲害": { 326 | "value": [ 327 | "我沒有那麼厲害啦" 328 | ] 329 | }, 330 | "好溫柔": { 331 | "value": [ 332 | "她真的好溫柔喔" 333 | ] 334 | }, 335 | "好可愛": { 336 | "value": [ 337 | "好可愛喔" 338 | ] 339 | }, 340 | "hardcore": { 341 | "value": [ 342 | "好硬派" 343 | ] 344 | }, 345 | "說謊": { 346 | "value": [ 347 | "妳不僅表裡不一,又滿口謊言" 348 | ] 349 | }, 350 | "謊言": { 351 | "value": [ 352 | "妳不僅表裡不一,又滿口謊言" 353 | ] 354 | }, 355 | "想幹嘛": { 356 | "value": [ 357 | "妳到底想幹嘛", 358 | "妳想幹嘛" 359 | ] 360 | }, 361 | "到底是怎樣": { 362 | "value": [ 363 | "妳到底是怎樣啊" 364 | ] 365 | }, 366 | "想說什麼": { 367 | "value": [ 368 | "妳想說什麼" 369 | ] 370 | }, 371 | "很煩": { 372 | "value": [ 373 | "妳很煩欸" 374 | ] 375 | }, 376 | "怎麼會這麼想": { 377 | "value": [ 378 | "妳怎麼會這麼想" 379 | ] 380 | }, 381 | "覺悟": { 382 | "value": [ 383 | "妳是抱著多大的覺悟說出這種話的" 384 | ] 385 | }, 386 | "看訊息": { 387 | "value": [ 388 | "妳有好好看訊息嗎" 389 | ] 390 | }, 391 | "不看訊息啊": { 392 | "value": [ 393 | "妳再不看訊息啊" 394 | ] 395 | }, 396 | "將它結束": { 397 | "value": [ 398 | "就由我來將它結束掉" 399 | ] 400 | }, 401 | "結束掉": { 402 | "value": [ 403 | "就由我來將它結束掉" 404 | ] 405 | }, 406 | "結束了": { 407 | "value": [ 408 | "就由我來將它結束掉" 409 | ] 410 | }, 411 | "差勁": { 412 | "value": [ 413 | "差勁" 414 | ] 415 | }, 416 | "死了": { 417 | "value": [ 418 | "已經死了" 419 | ] 420 | }, 421 | "死透了": { 422 | "value": [ 423 | "已經死了" 424 | ] 425 | }, 426 | "怎麼了": { 427 | "value": [ 428 | "怎麼了嗎" 429 | ] 430 | }, 431 | "不敢相信": { 432 | "value": [ 433 | "怎麼會直不敢相信", 434 | "真不敢相信" 435 | ] 436 | }, 437 | "怎麼這麼問": { 438 | "value": [ 439 | "怎麼這麼問" 440 | ] 441 | }, 442 | "好喜歡": { 443 | "value": [ 444 | "愛音愛心" 445 | ] 446 | }, 447 | "態度好差": { 448 | "value": [ 449 | "態度好差喔" 450 | ] 451 | }, 452 | "不參加": { 453 | "value": [ 454 | "我不參加" 455 | ] 456 | }, 457 | "我不知道": { 458 | "value": [ 459 | "燈:我不知道", 460 | "愛音:我不知道" 461 | ] 462 | }, 463 | "我也": { 464 | "value": [ 465 | "我也一樣" 466 | ] 467 | }, 468 | "我也一樣": { 469 | "value": [ 470 | "我也一樣" 471 | ] 472 | }, 473 | "亂說的": { 474 | "value": [ 475 | "我亂說的" 476 | ] 477 | }, 478 | "哪有辦法": { 479 | "value": [ 480 | "我哪有可能有辦法" 481 | ] 482 | }, 483 | "哪有興奮": { 484 | "value": [ 485 | "我哪裡有興奮了" 486 | ] 487 | }, 488 | "好難受": { 489 | "value": [ 490 | "我好難受...好難受..." 491 | ] 492 | }, 493 | "怕受傷": { 494 | "value": [ 495 | "我害怕受到傷害" 496 | ] 497 | }, 498 | "應該不是": { 499 | "value": [ 500 | "我想應該不是" 501 | ] 502 | }, 503 | "我懂": { 504 | "value": [ 505 | "我懂" 506 | ] 507 | }, 508 | "我有啊": { 509 | "value": [ 510 | "我有啊" 511 | ] 512 | }, 513 | "沒說過": { 514 | "value": [ 515 | "我沒說過那種話" 516 | ] 517 | }, 518 | "聽我說": { 519 | "value": [ 520 | "我現在要講很感性的話,聽我說嘛" 521 | ] 522 | }, 523 | "我的人生已經失敗了吧": { 524 | "value": [ 525 | "我覺得我的人生已經失敗了吧" 526 | ] 527 | }, 528 | "我考慮一下":{ 529 | "value": [ 530 | "我考慮一下吧" 531 | ] 532 | }, 533 | "我要": { 534 | "value": [ 535 | "我要" 536 | ] 537 | }, 538 | "我還是會繼續": { 539 | "value": [ 540 | "我還是會繼續下去" 541 | ] 542 | }, 543 | "全力以赴": { 544 | "value": [ 545 | "我都會全力以赴的" 546 | ] 547 | }, 548 | "我說討厭": { 549 | "value": [ 550 | "我都說了討厭了吧" 551 | ] 552 | }, 553 | "找不到": { 554 | "value": [ 555 | "找不到耶" 556 | ] 557 | }, 558 | "受不了大人": { 559 | "value": [ 560 | "所以我才受不了大人" 561 | ] 562 | }, 563 | "掰掰": { 564 | "value": [ 565 | "掰掰" 566 | ] 567 | }, 568 | "再見": { 569 | "value": [ 570 | "掰掰" 571 | ] 572 | }, 573 | "為什麼呢": { 574 | "value": [ 575 | "是啊,到底為什麼呢" 576 | ] 577 | }, 578 | "你先的": { 579 | "value": [ 580 | "是妳先來找我麻煩的吧" 581 | ] 582 | }, 583 | "是沒錯啊": { 584 | "value": [ 585 | "是沒錯啊" 586 | ] 587 | }, 588 | "不太能想像": { 589 | "value": [ 590 | "有點不太能想像呢" 591 | ] 592 | }, 593 | "沒錯": { 594 | "value": [ 595 | "沒錯沒錯", 596 | "真是太對了" 597 | ] 598 | }, 599 | "為什麼不行": { 600 | "value": [ 601 | "為什麼不行" 602 | ] 603 | }, 604 | "不回答我": { 605 | "value": [ 606 | "為什麼都不回答我啊" 607 | ] 608 | }, 609 | "太好了": { 610 | "value": [ 611 | "真是太好了" 612 | ] 613 | }, 614 | "真是遺憾": { 615 | "value": [ 616 | "真是遺憾" 617 | ] 618 | }, 619 | "真的嗎": { 620 | "value": [ 621 | "真的嗎" 622 | ] 623 | }, 624 | "莫名其妙": { 625 | "value": [ 626 | "真的很莫名其妙" 627 | ] 628 | }, 629 | "真不容易": { 630 | "value": [ 631 | "真不容易" 632 | ] 633 | }, 634 | "聽起來好棒": { 635 | "value": [ 636 | "聽起來好棒喔" 637 | ] 638 | }, 639 | "考慮看看": { 640 | "value": [ 641 | "能否請妳積極考慮我的提案呢" 642 | ] 643 | }, 644 | "這": { 645 | "value": [ 646 | "這..." 647 | ] 648 | }, 649 | "不用了": { 650 | "value": [ 651 | "這個不用了" 652 | ] 653 | }, 654 | "夢嗎": { 655 | "value": [ 656 | "這是夢嗎" 657 | ] 658 | }, 659 | "沒教養": { 660 | "value": [ 661 | "這樣很沒有教養喔" 662 | ] 663 | }, 664 | "這不重要": { 665 | "value": [ 666 | "這種事不重要吧", 667 | "那些不是重點吧" 668 | ] 669 | }, 670 | "這算什麼": { 671 | "value": [ 672 | "這算什麼" 673 | ] 674 | }, 675 | "不負責任": { 676 | "value": [ 677 | "還有這樣太不負責了吧" 678 | ] 679 | }, 680 | "那我呢": { 681 | "value": [ 682 | "那我呢" 683 | ] 684 | }, 685 | "go":{ 686 | "value": [ 687 | "我們是MyGO", 688 | "It's my go耶, it's my go" 689 | ] 690 | }, 691 | "好痛苦": { 692 | "value": [ 693 | "我好難受...好難受..." 694 | ] 695 | } 696 | } -------------------------------------------------------------------------------- /mygo/static/image_map.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "真不敢相信", 4 | "file_name": "真不敢相信.jpg", 5 | "description": "真不敢相信" 6 | }, 7 | { 8 | "name": "我也一樣", 9 | "file_name": "我也一樣.jpg", 10 | "description": "我也一樣" 11 | }, 12 | { 13 | "name": "因為我很想要嘛", 14 | "file_name": "因為我很想要嘛.jpg", 15 | "description": "出自第11集,愛音和團員去看效果器時表示很想要", 16 | "tags": ["愛音"], 17 | "author": "愛音", 18 | "episode": 11 19 | }, 20 | { 21 | "name": "每次想著想著就會感到很厭世", 22 | "file_name": "每次想著想著就會感到很厭世.jpg", 23 | "description": "每次想著想著就會感到很厭世" 24 | }, 25 | { 26 | "name": "妳誤會了", 27 | "file_name": "妳誤會了.jpg", 28 | "description": "出自第8集,爽世和祥子談判時的否認", 29 | "tags": ["爽世"], 30 | "author": "爽世", 31 | "episode": 8 32 | }, 33 | { 34 | "name": "我想應該不是", 35 | "file_name": "我想應該不是.jpg", 36 | "description": "我想應該不是" 37 | }, 38 | { 39 | "name": "這算什麼", 40 | "file_name": "這算什麼.jpg", 41 | "description": "這算什麼" 42 | }, 43 | { 44 | "name": "真是太對了", 45 | "file_name": "真是太對了.jpg", 46 | "description": "真是太對了" 47 | }, 48 | { 49 | "name": "妳不僅表裡不一,又滿口謊言", 50 | "file_name": "妳不僅表裡不一,又滿口謊言.jpg", 51 | "description": "妳不僅表裡不一,又滿口謊言" 52 | }, 53 | { 54 | "name": "差勁", 55 | "file_name": "差勁.jpg", 56 | "description": "差勁" 57 | }, 58 | { 59 | "name": "也沒有啦", 60 | "file_name": "也沒有啦.jpg", 61 | "description": "出自第5集,愛音在回憶中被同學稱讚時的回應", 62 | "tags": ["愛音"], 63 | "author": "愛音", 64 | "episode": 5 65 | }, 66 | { 67 | "name": "妳是來找我吵架的嗎", 68 | "file_name": "妳是來找我吵架的嗎.jpg", 69 | "description": "妳是來找我吵架的嗎" 70 | }, 71 | { 72 | "name": "我沒有那麼厲害啦", 73 | "file_name": "我沒有那麼厲害啦.jpg", 74 | "description": "我沒有那麼厲害啦" 75 | }, 76 | { 77 | "name": "妳在開玩笑嗎", 78 | "file_name": "妳在開玩笑嗎.jpg", 79 | "description": "出自第4集,愛音對於樂團亂出主意時,立希的質疑", 80 | "tags": ["立希","愛音"], 81 | "author": "立希", 82 | "episode": 4 83 | }, 84 | { 85 | "name": "為什麼不行", 86 | "file_name": "為什麼不行.jpg", 87 | "description": "為什麼不行" 88 | }, 89 | { 90 | "name": "是沒錯啊", 91 | "file_name": "是沒錯啊.jpg", 92 | "description": "是沒錯啊" 93 | }, 94 | { 95 | "name": "又來了一個新人", 96 | "file_name": "又來了一個新人.jpg", 97 | "description": "出自第13集,ave_mujica初次公演時的劇情", 98 | "tags": ["mujica", "喵夢", "若麥"], 99 | "author": "喵夢", 100 | "episode": 13 101 | }, 102 | { 103 | "name": "是一輩子喔 一輩子", 104 | "file_name": "是一輩子喔_一輩子.jpg", 105 | "description": "是一輩子喔 一輩子" 106 | }, 107 | { 108 | "name": "我懂", 109 | "file_name": "我懂.jpg", 110 | "description": "我懂" 111 | }, 112 | { 113 | "name": "不要逃啦", 114 | "file_name": "不要逃啦.jpg", 115 | "description": "出自第6集,立希躲在學校逃避被愛音和燈堵門時愛音說的話", 116 | "tags": ["立希", "愛音"], 117 | "author": "愛音", 118 | "episode": 6 119 | }, 120 | { 121 | "name": "謝謝妳", 122 | "file_name": "謝謝妳.jpg", 123 | "description": "謝謝妳" 124 | }, 125 | { 126 | "name": "這個不用了", 127 | "file_name": "這個不用了.jpg", 128 | "description": "這個不用了" 129 | }, 130 | { 131 | "name": "好可愛喔", 132 | "file_name": "好可愛喔.jpg", 133 | "description": "好可愛喔" 134 | }, 135 | { 136 | "name": "這傢伙根本什麼也不懂", 137 | "file_name": "這傢伙根本什麼也不懂.jpg", 138 | "description": "這傢伙根本什麼也不懂" 139 | }, 140 | { 141 | "name": "讓我們一起迷失吧", 142 | "file_name": "讓我們一起迷失吧.jpg", 143 | "description": "讓我們一起迷失吧" 144 | }, 145 | { 146 | "name": "那真是可喜可賀", 147 | "file_name": "那真是可喜可賀.jpg", 148 | "description": "那真是可喜可賀" 149 | }, 150 | { 151 | "name": "一輩子跟我一起組樂團嗎", 152 | "file_name": "一輩子跟我一起組樂團嗎.jpg", 153 | "description": "出自第1集,燈在KTV中對愛音說出的話", 154 | "tags": ["燈", "一輩子", "第1集"], 155 | "author": "燈", 156 | "episode": 9 157 | }, 158 | { 159 | "name": "原來妳是這麼想的呀", 160 | "file_name": "原來妳是這麼想的呀.jpg", 161 | "description": "出自第4集,舊團員溝通時爽世假意敷衍燈的台詞", 162 | "tags": ["爽世"], 163 | "author": "爽世", 164 | "episode": 4 165 | }, 166 | { 167 | "name": "為什麼都不回答我啊", 168 | "file_name": "為什麼都不回答我啊.jpg", 169 | "description": "為什麼都不回答我啊" 170 | }, 171 | { 172 | "name": "我有啊", 173 | "file_name": "我有啊.jpg", 174 | "description": "我有啊" 175 | }, 176 | { 177 | "name": "我不會再演奏春日影了", 178 | "file_name": "我不會再演奏春日影了.jpg", 179 | "description": "我不會再演奏春日影了" 180 | }, 181 | { 182 | "name": "妳到底是怎樣啊", 183 | "file_name": "妳到底是怎樣啊.jpg", 184 | "description": "妳到底是怎樣啊" 185 | }, 186 | { 187 | "name": "愛音驚訝", 188 | "file_name": "愛音驚訝.jpg", 189 | "description": "愛音驚訝" 190 | }, 191 | { 192 | "name": "愛音:蛤", 193 | "file_name": "愛音_蛤.jpg", 194 | "description": "愛音:蛤" 195 | }, 196 | { 197 | "name": "好厲害", 198 | "file_name": "好厲害.jpg", 199 | "description": "好厲害" 200 | }, 201 | { 202 | "name": "怎麼會...簡直不敢相信", 203 | "file_name": "怎麼會...簡直不敢相信.jpg", 204 | "description": "怎麼會...簡直不敢相信" 205 | }, 206 | { 207 | "name": "立希看手機", 208 | "file_name": "立希看手機.jpg", 209 | "description": "立希看手機" 210 | }, 211 | { 212 | "name": "滿腦子都只想到自己呢", 213 | "file_name": "滿腦子都只想到自己呢.jpg", 214 | "description": "滿腦子都只想到自己呢" 215 | }, 216 | { 217 | "name": "來,開始溝通吧", 218 | "file_name": "來,開始溝通吧.jpg", 219 | "description": "出自第4集,愛音把舊Crichic成員全部拖出來叫他們好好溝通", 220 | "tags": ["愛音"], 221 | "author": "愛音", 222 | "episode": 4 223 | }, 224 | { 225 | "name": "我考慮一下吧", 226 | "file_name": "我考慮一下吧.jpg", 227 | "description": "我考慮一下吧" 228 | }, 229 | { 230 | "name": "是嗎", 231 | "file_name": "是嗎.jpg", 232 | "description": "是嗎" 233 | }, 234 | { 235 | "name": "我願意一輩子和燈在一起", 236 | "file_name": "我願意一輩子和燈在一起.jpg", 237 | "description": "我願意一輩子和燈在一起" 238 | }, 239 | { 240 | "name": "不錯吧", 241 | "file_name": "不錯吧.jpg", 242 | "description": "出自第12集,愛音在表演完將團名確定為MyGO!!!!!", 243 | "tags": ["愛音", "Crichic"], 244 | "author": "愛音", 245 | "episode": 12 246 | }, 247 | { 248 | "name": "爽世大小眼", 249 | "file_name": "爽世大小眼.jpg", 250 | "description": "爽世大小眼" 251 | }, 252 | { 253 | "name": "我都說了討厭了吧", 254 | "file_name": "我都說了討厭了吧.jpg", 255 | "description": "我都說了討厭了吧" 256 | }, 257 | { 258 | "name": "只要是我能做的,我什麼都願意做", 259 | "file_name": "只要是我能做的,我什麼都願意做.jpg", 260 | "description": "出自第8集,爽世跪地的名場面(學狗叫,三回啊三回)", 261 | "tags": ["爽世", "祥子"], 262 | "author": "爽世", 263 | "episode": 8 264 | }, 265 | { 266 | "name": "我都會全力以赴的", 267 | "file_name": "我都會全力以赴的.jpg", 268 | "description": "我都會全力以赴的" 269 | }, 270 | { 271 | "name": "妳要不要先去洗澡", 272 | "file_name": "妳要不要先去洗澡.jpg", 273 | "description": "妳要不要先去洗澡" 274 | }, 275 | { 276 | "name": "爽世:別這樣啦", 277 | "file_name": "別這樣啦2.jpg", 278 | "description": "出自第11集,爽世和愛音講開之後叫爽世soyorin,爽世:別這樣啦", 279 | "tags": ["爽世", "愛音"], 280 | "author": "爽世", 281 | "episode": 11 282 | }, 283 | { 284 | "name": "祥子:是這樣嗎", 285 | "file_name": "是這樣嗎.jpg", 286 | "description": "祥子:是這樣嗎" 287 | }, 288 | { 289 | "name": "這是在報復我嗎", 290 | "file_name": "這是在報復我嗎.jpg", 291 | "description": "這是在報復我嗎" 292 | }, 293 | { 294 | "name": "那...那我呢", 295 | "file_name": "那...那我呢.jpg", 296 | "description": "那...那我呢" 297 | }, 298 | { 299 | "name": "抱歉", 300 | "file_name": "抱歉.jpg", 301 | "description": "抱歉" 302 | }, 303 | { 304 | "name": "聽起來好棒喔", 305 | "file_name": "聽起來好棒喔.jpg", 306 | "description": "聽起來好棒喔" 307 | }, 308 | { 309 | "name": "我不參加", 310 | "file_name": "我不參加.jpg", 311 | "description": "我不參加" 312 | }, 313 | { 314 | "name": "我完全不懂妳的意思", 315 | "file_name": "我完全不懂妳的意思.jpg", 316 | "description": "我完全不懂妳的意思" 317 | }, 318 | { 319 | "name": "就由我來將它結束掉", 320 | "file_name": "就由我來將它結束掉.jpg", 321 | "description": "就由我來將它結束掉" 322 | }, 323 | { 324 | "name": "為什麼要演奏春日影", 325 | "file_name": "為什麼要演奏春日影.jpg", 326 | "description": "為什麼要演奏春日影" 327 | }, 328 | { 329 | "name": "什麼意思", 330 | "file_name": "什麼意思.jpg", 331 | "description": "出自第10集,愛音到爽世家直球對決時,爽世的質疑", 332 | "tags": ["爽世","愛音"], 333 | "author": "爽世", 334 | "episode": 10 335 | }, 336 | { 337 | "name": "我沒說過那種話", 338 | "file_name": "我沒說過那種話.jpg", 339 | "description": "我沒說過那種話" 340 | }, 341 | { 342 | "name": "不讓我們看看我們怎麼知道", 343 | "file_name": "不讓我們看看怎麼知道.jpg", 344 | "description": "出自第3集,祥子表示燈有作詞時,其他人的反應,這句話出自立希之口", 345 | "tags": ["立希", "Crichic"], 346 | "author": "立希", 347 | "episode": 3 348 | }, 349 | { 350 | "name": "我愛慕虛榮啦", 351 | "file_name": "我愛慕虛榮啦.jpg", 352 | "description": "我愛慕虛榮啦" 353 | }, 354 | { 355 | "name": "不行", 356 | "file_name": "不行.jpg", 357 | "description": "出自第3集,Crichic去唱KTV時爽世說的話", 358 | "tags": ["爽世", "Crichic"], 359 | "author": "爽世", 360 | "episode": 3 361 | }, 362 | { 363 | "name": "真的嗎", 364 | "file_name": "真的嗎.jpg", 365 | "description": "真的嗎" 366 | }, 367 | { 368 | "name": "謝謝妳", 369 | "file_name": "謝謝妳.jpg", 370 | "description": "謝謝妳" 371 | }, 372 | { 373 | "name": "味道醇香,我很喜歡", 374 | "file_name": "味道純香,我很喜歡.jpg", 375 | "description": "出自第2集,愛音和爽世問推薦的飲料,爽世對紅茶的評價", 376 | "tags": ["爽世", "愛音"], 377 | "author": "爽世", 378 | "episode": 2 379 | }, 380 | { 381 | "name": "感謝您讓我佔用的寶貴時間", 382 | "file_name": "感謝您讓我佔用的寶貴時間.jpg", 383 | "description": "感謝您讓我佔用的寶貴時間" 384 | }, 385 | { 386 | "name": "太過分了", 387 | "file_name": "太過分了.jpg", 388 | "description": "出自第8集,在春日影演奏之後的爽世的崩潰", 389 | "tags": ["爽世"], 390 | "author": "爽世", 391 | "episode": 8 392 | }, 393 | { 394 | "name": "我都說一直有在看了啊", 395 | "file_name": "我都說一直有在看了啊.jpg", 396 | "description": "我都說一直有在看了啊" 397 | }, 398 | { 399 | "name": "這樣啊", 400 | "file_name": "這樣啊.jpg", 401 | "description": "這樣啊" 402 | }, 403 | { 404 | "name": "喵夢:別這樣啦", 405 | "file_name": "別這樣啦.jpg", 406 | "description": "出自第13集,喵夢跑去偷拍舞台被抓包,手機被祥子沒收的抗拒", 407 | "tags": ["喵夢","若麥"], 408 | "author": "喵夢", 409 | "episode": 13 410 | }, 411 | { 412 | "name": "真的很莫名其妙", 413 | "file_name": "真的很莫名其妙.jpg", 414 | "description": "真的很莫名其妙" 415 | }, 416 | { 417 | "name": "交給我吧", 418 | "file_name": "交給我吧.jpg", 419 | "description": "出自第1集,睦拒絕和爽世去找祥子之後爽世說的話", 420 | "tags": ["爽世"], 421 | "author": "爽世", 422 | "episode": 1 423 | }, 424 | { 425 | "name": "她是我朋友", 426 | "file_name": "她是我朋友.jpg", 427 | "description": "她是我朋友" 428 | }, 429 | { 430 | "name": "我的人生已經失敗了吧", 431 | "file_name": "我的人生已經失敗了吧.jpg", 432 | "description": "我的人生已經失敗了吧" 433 | }, 434 | { 435 | "name": "因為春日影是一首好歌", 436 | "file_name": "因為春日影是一首好歌.jpg", 437 | "description": "出自第4集,開頭愛音對燈所說的鼓勵話語", 438 | "tags": ["愛音", "燈"], 439 | "author": "愛音", 440 | "episode": 4 441 | }, 442 | { 443 | "name": "真的毫無品味", 444 | "file_name": "真的毫無品味.jpg", 445 | "description": "真的毫無品味" 446 | }, 447 | { 448 | "name": "好厲害...", 449 | "file_name": "好厲害....jpg", 450 | "description": "好厲害..." 451 | }, 452 | { 453 | "name": "愛音模糊", 454 | "file_name": "愛音模糊.jpg", 455 | "description": "愛音模糊" 456 | }, 457 | { 458 | "name": "不是這樣的", 459 | "file_name": "不是這樣的.jpg", 460 | "description": "出自第8集,爽世試探祥子有沒有考慮的意願,睦的否認", 461 | "tags": ["爽世", "睦"], 462 | "author": "睦", 463 | "episode": 8 464 | }, 465 | { 466 | "name": "好硬派", 467 | "file_name": "好硬派.jpg", 468 | "description": "好硬派" 469 | }, 470 | { 471 | "name": "我已經搞不懂了", 472 | "file_name": "我已經搞不懂了.jpg", 473 | "description": "我已經搞不懂了" 474 | }, 475 | { 476 | "name": "不爽世", 477 | "file_name": "不爽世.jpg", 478 | "description": "出自第11集,不爽世對愛音決定要做衣服卻拖其他人一起幫忙感到不耐煩", 479 | "tags": ["爽世"], 480 | "author": "爽世", 481 | "episode": 11 482 | }, 483 | { 484 | "name": "真的是很不容易呢", 485 | "file_name": "真的是很不容易呢.jpg", 486 | "description": "真的是很不容易呢" 487 | }, 488 | { 489 | "name": "找不到耶", 490 | "file_name": "找不到耶.jpg", 491 | "description": "找不到耶" 492 | }, 493 | { 494 | "name": "妳怎麼會這麼想", 495 | "file_name": "妳怎麼會這麼想.jpg", 496 | "description": "妳怎麼會這麼想" 497 | }, 498 | { 499 | "name": "是又怎樣", 500 | "file_name": "是又怎樣.jpg", 501 | "description": "是又怎樣" 502 | }, 503 | { 504 | "name": "所以我才受不了大人", 505 | "file_name": "所以我才受不了大人.jpg", 506 | "description": "所以我才受不了大人" 507 | }, 508 | { 509 | "name": "能否請妳積極考慮我的提案呢", 510 | "file_name": "能否請妳積極考慮我的提案呢.jpg", 511 | "description": "能否請妳積極考慮我的提案呢" 512 | }, 513 | { 514 | "name": "我要", 515 | "file_name": "我要.jpg", 516 | "description": "我要" 517 | }, 518 | { 519 | "name": "在這裡想叫都沒問題", 520 | "file_name": "在這裡想叫都沒問題.jpg", 521 | "description": "出自第3集,祥子在天橋上大喊", 522 | "tags": ["祥子", "燈"], 523 | "author": "祥子", 524 | "episode": 3 525 | }, 526 | { 527 | "name": "不要講這種話", 528 | "file_name": "不要講這種話.jpg", 529 | "description": "出自第6集,立希要其他人不要抱怨", 530 | "tags": ["立希"], 531 | "author": "立希", 532 | "episode": 6 533 | }, 534 | { 535 | "name": "沒有人那樣拜託妳", 536 | "file_name": "沒有人那樣拜託妳.jpg", 537 | "description": "沒有人那樣拜託妳" 538 | }, 539 | { 540 | "name": "現在沒時間玩了吧", 541 | "file_name": "現在沒時間玩了吧.jpg", 542 | "description": "現在沒時間玩了吧" 543 | }, 544 | { 545 | "name": "立希:蛤", 546 | "file_name": "立希_蛤.jpg", 547 | "description": "立希:蛤" 548 | }, 549 | { 550 | "name": "這樣很沒有教養喔", 551 | "file_name": "這樣很沒有教養喔.jpg", 552 | "description": "這樣很沒有教養喔" 553 | }, 554 | { 555 | "name": "睦:是這樣嗎", 556 | "file_name": "是這樣嗎2.jpg", 557 | "description": "睦:是這樣嗎" 558 | }, 559 | { 560 | "name": "愛音泡澡", 561 | "file_name": "愛音泡澡.jpg", 562 | "description": "愛音泡澡" 563 | }, 564 | { 565 | "name": "我亂說的", 566 | "file_name": "我亂說的.jpg", 567 | "description": "我亂說的" 568 | }, 569 | { 570 | "name": "愛音:我不知道", 571 | "file_name": "我不知道2.jpg", 572 | "description": "愛音:我不知道" 573 | }, 574 | { 575 | "name": "天啊,大發現欸", 576 | "file_name": "天啊,大發現欸.jpg", 577 | "description": "出自第12集,愛音登台前對爛雙關感到意外", 578 | "tags": ["愛音"], 579 | "author": "愛音", 580 | "episode": 12 581 | }, 582 | { 583 | "name": "不是很可愛嗎", 584 | "file_name": "不是很可愛嗎.jpg", 585 | "description": "出自第11集,在爽世家時愛音對爽世表示soyorin這個暱稱很可愛", 586 | "tags": ["愛音", "第11集"], 587 | "author": "愛音", 588 | "episode": 11 589 | }, 590 | { 591 | "name": "妳想幹嘛", 592 | "file_name": "妳想幹嘛.jpg", 593 | "description": "妳想幹嘛" 594 | }, 595 | { 596 | "name": "為什麼都不講話", 597 | "file_name": "為什麼都不講話.jpg", 598 | "description": "為什麼都不講話" 599 | }, 600 | { 601 | "name": "樂奈抹茶巴菲", 602 | "file_name": "樂奈抹茶巴菲.jpg", 603 | "description": "樂奈抹茶巴菲" 604 | }, 605 | { 606 | "name": "祥子驚嚇", 607 | "file_name": "祥子驚嚇.jpg", 608 | "description": "祥子驚嚇" 609 | }, 610 | { 611 | "name": "是這樣沒錯", 612 | "file_name": "是這樣沒錯.jpg", 613 | "description": "是這樣沒錯" 614 | }, 615 | { 616 | "name": "這是在講什麼", 617 | "file_name": "這是在講什麼.jpg", 618 | "description": "這是在講什麼" 619 | }, 620 | { 621 | "name": "妳想說什麼", 622 | "file_name": "妳想說什麼.jpg", 623 | "description": "妳想說什麼" 624 | }, 625 | { 626 | "name": "這...", 627 | "file_name": "這....jpg", 628 | "description": "這..." 629 | }, 630 | { 631 | "name": "我早知道會這樣了", 632 | "file_name": "我早知道會這樣了.jpg", 633 | "description": "我早知道會這樣了" 634 | }, 635 | { 636 | "name": "我好難受...好難受...", 637 | "file_name": "我好難受...好難受....jpg", 638 | "description": "我好難受...好難受..." 639 | }, 640 | { 641 | "name": "來", 642 | "file_name": "來.jpg", 643 | "description": "出自第6集,樂奈交出手機給mygo成員加好友", 644 | "tags": ["樂奈", "貓貓"], 645 | "author": "樂奈", 646 | "episode": 6 647 | }, 648 | { 649 | "name": "我看妳只是在逃避吧", 650 | "file_name": "我看妳只是在逃避吧.jpg", 651 | "description": "我看妳只是在逃避吧" 652 | }, 653 | { 654 | "name": "太先入為主了喔", 655 | "file_name": "太先入為主了喔.jpg", 656 | "description": "出自第4集,愛音對於立希駁回想法的反應", 657 | "tags": ["愛音", "立希"], 658 | "author": "愛音", 659 | "episode": 4 660 | }, 661 | { 662 | "name": "妳先再稍微等一下吧", 663 | "file_name": "妳先再稍微等一下吧.jpg", 664 | "description": "妳先再稍微等一下吧" 665 | }, 666 | { 667 | "name": "坦白說我都聽得一頭霧水", 668 | "file_name": "坦白說我都聽得一頭霧水.jpg", 669 | "description": "出自第13集,爽世和燈在天橋上的對話", 670 | "tags": ["爽世", "燈"], 671 | "author": "爽世", 672 | "episode": 13 673 | }, 674 | { 675 | "name": "它沒有結束", 676 | "file_name": "它沒有結束.jpg", 677 | "description": "它沒有結束" 678 | }, 679 | { 680 | "name": "對不起,忍不住就", 681 | "file_name": "對不起,忍不住就.jpg", 682 | "description": "對不起,忍不住就" 683 | }, 684 | { 685 | "name": "事情都搞砸了", 686 | "file_name": "事情都搞砸了.jpg", 687 | "description": "出自第2集,睦跑到羽丘找祥子,讓祥子覺得事情差點砸了", 688 | "tags": ["睦", "祥子"], 689 | "author": "祥子", 690 | "episode": 2 691 | }, 692 | { 693 | "name": "我想妳心裡多少也有些想法吧", 694 | "file_name": "我想妳心裡多少也有些想法吧.jpg", 695 | "description": "我想妳心裡多少也有些想法吧" 696 | }, 697 | { 698 | "name": "還有這樣太不負責了吧", 699 | "file_name": "還有這樣太不負責了吧.jpg", 700 | "description": "還有這樣太不負責了吧" 701 | }, 702 | { 703 | "name": "不要", 704 | "file_name": "不要.jpg", 705 | "description": "出自第8集,祥子嚴厲拒絕並警告爽世時,爽世的崩潰台詞", 706 | "tags": ["爽世", "祥子"], 707 | "author": "爽世", 708 | "episode": 8 709 | }, 710 | { 711 | "name": "愛音愛心", 712 | "file_name": "愛音愛心.jpg", 713 | "description": "愛音愛心" 714 | }, 715 | { 716 | "name": "爽世看手機", 717 | "file_name": "爽世看手機.jpg", 718 | "description": "爽世看手機" 719 | }, 720 | { 721 | "name": "我已經徹底失敗了", 722 | "file_name": "我已經徹底失敗了.jpg", 723 | "description": "我已經徹底失敗了" 724 | }, 725 | { 726 | "name": "她真的好溫柔喔", 727 | "file_name": "她真的好溫柔喔.jpg", 728 | "description": "她真的好溫柔喔" 729 | }, 730 | { 731 | "name": "已經死了", 732 | "file_name": "已經死了.jpg", 733 | "description": "已經死了" 734 | }, 735 | { 736 | "name": "有趣的女人", 737 | "file_name": "有趣的女人.jpg", 738 | "description": "有趣的女人" 739 | }, 740 | { 741 | "name": "這是夢嗎", 742 | "file_name": "這是夢嗎.jpg", 743 | "description": "這是夢嗎" 744 | }, 745 | { 746 | "name": "妳是抱著多大的覺悟說出這種話的", 747 | "file_name": "妳是抱著多大的覺悟說出這種話的.jpg", 748 | "description": "妳是抱著多大的覺悟說出這種話的" 749 | }, 750 | { 751 | "name": "不是這樣", 752 | "file_name": "不是這樣.jpg", 753 | "description": "出自第9集,立希在練習室和大家坦白時,燈的反駁詞", 754 | "tags": ["燈", "第9集"], 755 | "author": "燈", 756 | "episode": 9 757 | }, 758 | { 759 | "name": "爽世驚訝", 760 | "file_name": "爽世驚訝.jpg", 761 | "description": "爽世驚訝" 762 | }, 763 | { 764 | "name": "怎麼了嗎", 765 | "file_name": "怎麼了嗎.jpg", 766 | "description": "怎麼了嗎" 767 | }, 768 | { 769 | "name": "人生這麼漫長會撐不住的喔", 770 | "file_name": "人生這麼漫長會撐不住的喔.jpg", 771 | "description": "出自第1集,愛音在KTV敷衍燈時的鼓勵詞", 772 | "tags": ["愛音", "人生"], 773 | "author": "愛音", 774 | "episode": 1 775 | }, 776 | { 777 | "name": "到現在還執著於過去,真難看", 778 | "file_name": "到現在還執著於過去,真難看.jpg", 779 | "description": "出自第8集,祥子和爽世的談判中祥子對爽世的攻擊", 780 | "tags": ["祥子"], 781 | "author": "祥子", 782 | "episode": 8 783 | }, 784 | { 785 | "name": "是啊,到底為什麼呢", 786 | "file_name": "是啊,到底為什麼呢.jpg", 787 | "description": "是啊,到底為什麼呢" 788 | }, 789 | { 790 | "name": "妳也為別人設想一下嘛", 791 | "file_name": "妳也為別人設想一下嘛.jpg", 792 | "description": "妳也為別人設想一下嘛" 793 | }, 794 | { 795 | "name": "無趣的女孩子", 796 | "file_name": "無趣的女孩子.jpg", 797 | "description": "無趣的女孩子" 798 | }, 799 | { 800 | "name": "真是遺憾", 801 | "file_name": "真是遺憾.jpg", 802 | "description": "真是遺憾" 803 | }, 804 | { 805 | "name": "沒錯沒錯", 806 | "file_name": "沒錯沒錯.jpg", 807 | "description": "沒錯沒錯" 808 | }, 809 | { 810 | "name": "妳很煩欸", 811 | "file_name": "妳很煩欸.jpg", 812 | "description": "妳很煩欸" 813 | }, 814 | { 815 | "name": "真是太好了", 816 | "file_name": "真是太好了.jpg", 817 | "description": "真是太好了" 818 | }, 819 | { 820 | "name": "一旦加入就無法回頭了喔", 821 | "file_name": "一旦加入就無法回頭了喔.jpg", 822 | "description": "出自第13集,睦表示要加入ave_mujica,祥子說出的對白", 823 | "tags": ["祥子", "睦"], 824 | "author": "祥子", 825 | "episode": 13 826 | }, 827 | { 828 | "name": "怎麼這麼問", 829 | "file_name": "怎麼這麼問.jpg", 830 | "description": "怎麼這麼問" 831 | }, 832 | { 833 | "name": "我哪裡有興奮了", 834 | "file_name": "我哪裡有興奮了.jpg", 835 | "description": "我哪裡有興奮了" 836 | }, 837 | { 838 | "name": "可以請妳別提起那件事嗎", 839 | "file_name": "可以請妳別提起那件事嗎.jpg", 840 | "description": "出自第8集,初華踩雷時祥子的防禦", 841 | "tags": ["祥子", "初華"], 842 | "author": "祥子", 843 | "episode": 8 844 | }, 845 | { 846 | "name": "妳不是不需要我了嗎", 847 | "file_name": "妳不是不需要我了嗎.jpg", 848 | "description": "妳不是不需要我了嗎" 849 | }, 850 | { 851 | "name": "我不論如何都想當面向妳道歉", 852 | "file_name": "我不論如何都想當面向妳道歉.jpg", 853 | "description": "我不論如何都想當面向妳道歉" 854 | }, 855 | { 856 | "name": "就是這個", 857 | "file_name": "就是這個.jpg", 858 | "description": "就是這個" 859 | }, 860 | { 861 | "name": "我現在要講很感性的話,聽我說嘛", 862 | "file_name": "我現在要講很感性的話,聽我說嘛.jpg", 863 | "description": "我現在要講很感性的話,聽我說嘛" 864 | }, 865 | { 866 | "name": "祝妳幸福", 867 | "file_name": "祝妳幸福.jpg", 868 | "description": "祝妳幸福" 869 | }, 870 | { 871 | "name": "太棒了,爽世同學LOVE", 872 | "file_name": "太棒了,爽世同學LOVE.jpg", 873 | "description": "出自第2集,愛音對於爽世答應組樂團的喜悅反應", 874 | "tags": ["愛音"], 875 | "author": "愛音", 876 | "episode": 2 877 | }, 878 | { 879 | "name": "大家真沒品味", 880 | "file_name": "大家真沒品味.jpg", 881 | "description": "出自第11集,愛音出的主意被眾人駁回後的反應", 882 | "tags": ["愛音"], 883 | "author": "愛音", 884 | "episode": 11 885 | }, 886 | { 887 | "name": "真是會虛情假意呢", 888 | "file_name": "真是會虛情假意呢.jpg", 889 | "description": "真是會虛情假意呢" 890 | }, 891 | { 892 | "name": "可以請妳刪除剛才的影片嗎", 893 | "file_name": "可以請妳刪除剛才的影片嗎.jpg", 894 | "description": "出自第13集,喵夢跑去偷拍舞台被抓包,祥子要求刪除影片", 895 | "tags": ["祥子","喵夢","若麥"], 896 | "author": "祥子", 897 | "episode": 13 898 | }, 899 | { 900 | "name": "全是一些無趣的女人", 901 | "file_name": "全是一些無趣的女人.jpg", 902 | "description": "出自第5集,貓貓擅自跑進去練習室後,mygo成員們問話,貓貓的反應", 903 | "tags": ["樂奈", "貓貓"], 904 | "author": "樂奈", 905 | "episode": 5 906 | }, 907 | { 908 | "name": "燈:我不知道", 909 | "file_name": "我不知道.jpg", 910 | "description": "我不知道" 911 | }, 912 | { 913 | "name": "我還是會繼續下去", 914 | "file_name": "我還是會繼續下去.jpg", 915 | "description": "我還是會繼續下去" 916 | }, 917 | { 918 | "name": "是妳先來找我麻煩的吧", 919 | "file_name": "是妳先來找我麻煩的吧.jpg", 920 | "description": "是妳先來找我麻煩的吧" 921 | }, 922 | { 923 | "name": "妳這話是認真的嗎", 924 | "file_name": "妳這話是認真的嗎.jpg", 925 | "description": "出自第9集,立希到爽世學校堵人質疑爽世的話", 926 | "tags": ["爽世", "立希"], 927 | "author": "立希", 928 | "episode": 9 929 | }, 930 | { 931 | "name": "不要這樣", 932 | "file_name": "不要這樣.jpg", 933 | "description": "出自第13集,ave_mujica初次公演時的台詞", 934 | "tags": ["mujica", "祥子"], 935 | "author": "祥子", 936 | "episode": 13 937 | }, 938 | { 939 | "name": "態度好差喔", 940 | "file_name": "態度好差喔.jpg", 941 | "description": "態度好差喔" 942 | }, 943 | { 944 | "name": "有點不太能想像呢", 945 | "file_name": "有點不太能想像呢.jpg", 946 | "description": "有點不太能想像呢" 947 | }, 948 | { 949 | "name": "掰掰", 950 | "file_name": "掰掰.jpg", 951 | "description": "掰掰" 952 | }, 953 | { 954 | "name": "我哪有可能有辦法", 955 | "file_name": "我哪有可能有辦法.jpg", 956 | "description": "我哪有可能有辦法" 957 | }, 958 | { 959 | "name": "我需要愛音", 960 | "file_name": "我需要愛音.jpg", 961 | "description": "我需要愛音" 962 | }, 963 | { 964 | "name": "妳到底想幹嘛", 965 | "file_name": "妳到底想幹嘛.jpg", 966 | "description": "妳到底想幹嘛" 967 | }, 968 | { 969 | "name": "那些不是重點吧", 970 | "file_name": "那些不是重點吧.jpg", 971 | "description": "那些不是重點吧" 972 | }, 973 | { 974 | "name": "從來不覺得玩樂團開心過", 975 | "file_name": "從來不覺得玩樂團開心過.jpg", 976 | "description": "從來不覺得玩樂團開心過" 977 | }, 978 | { 979 | "name": "睦(笑)", 980 | "file_name": "睦_笑.jpg", 981 | "description": "睦(笑)" 982 | }, 983 | { 984 | "name": "運氣真好", 985 | "file_name": "運氣真好.jpg", 986 | "description": "運氣真好" 987 | }, 988 | { 989 | "name": "我害怕受到傷害", 990 | "file_name": "我害怕受到傷害.jpg", 991 | "description": "我害怕受到傷害" 992 | }, 993 | { 994 | "name": "這種事不重要吧", 995 | "file_name": "這種事不重要吧.jpg", 996 | "description": "出自第10集,愛音在天台上被燈追問加入樂團的理由時說的話", 997 | "tags": ["愛音", "愛慕虛榮"], 998 | "author": "愛音", 999 | "episode": 10 1000 | }, 1001 | { 1002 | "name": "妳有好好看訊息嗎", 1003 | "file_name": "妳有好好看訊息嗎.jpg", 1004 | "description": "出自第8集,凜凜子對都不看訊息的樂奈說的台詞", 1005 | "tags": ["凜凜子", "樂奈", "看訊息"], 1006 | "author": "凜凜子", 1007 | "episode": 8 1008 | }, 1009 | { 1010 | "name": "是啊", 1011 | "file_name": "是啊.jpg", 1012 | "description": "出自第9集,爽世和立希直球談判時說的Sodayo", 1013 | "tags": ["立希", "爽世"], 1014 | "author": "爽世", 1015 | "episode": 9 1016 | }, 1017 | { 1018 | "name": "那當然是騙人的啊", 1019 | "file_name": "那當然是騙人的啊.jpg", 1020 | "description": "出自第9集,爽世表示一開始的誓言都是為了重建Crichic的謊言", 1021 | "tags": ["立希", "爽世", "騙人"], 1022 | "author": "爽世", 1023 | "episode": 9 1024 | }, 1025 | { 1026 | "name": "還真是高高在上呢", 1027 | "file_name": "還真是高高在上呢.jpg", 1028 | "description": "出自第13集,睦表示覺得祥子快壞掉了,祥子對睦說的台詞", 1029 | "tags": ["祥子", "睦"], 1030 | "author": "祥子", 1031 | "episode": 13 1032 | }, 1033 | { 1034 | "name": "不要吼我啦", 1035 | "file_name": "不要吼我啦.jpg", 1036 | "description": "出自第6集,立希兇愛音被爆發的愛音回嘴", 1037 | "tags": ["立希", "愛音"], 1038 | "author": "愛音", 1039 | "episode": 6 1040 | }, 1041 | { 1042 | "name": "是嗎", 1043 | "file_name": "是嗎2.jpg", 1044 | "description": "出自第11集,爽世說的是嗎", 1045 | "tags": ["爽世"], 1046 | "author": "爽世", 1047 | "episode": 11 1048 | }, 1049 | { 1050 | "name": "不知道", 1051 | "file_name": "爽世_不知道.jpg", 1052 | "description": "出自第9集,爽世與立希直球對決,對要不要樂團的處置表示不知道", 1053 | "tags": ["立希", "爽世"], 1054 | "author": "爽世", 1055 | "episode": 9 1056 | }, 1057 | { 1058 | "name": "初華看手機", 1059 | "file_name": "初華看手機.jpg", 1060 | "description": "出自第4集,片尾初華和真奈講完話之後拿出手機", 1061 | "tags": ["初華"], 1062 | "author": "初華", 1063 | "episode": 4 1064 | }, 1065 | { 1066 | "name": "祥子看手機", 1067 | "file_name": "祥子看手機.jpg", 1068 | "description": "出自第3集,在Crichic初次live後祥子收到噩耗時的表情", 1069 | "tags": ["祥子"], 1070 | "author": "祥子", 1071 | "episode": 3 1072 | }, 1073 | { 1074 | "name": "騙人是什麼意思", 1075 | "file_name": "騙人是什麼意思.jpg", 1076 | "description": "出自第9集,立希講出爽世是在騙人時眾人的反應", 1077 | "tags": ["愛音", "立希"], 1078 | "author": "愛音", 1079 | "episode": 9 1080 | }, 1081 | { 1082 | "name": "需要我待會再過來嗎", 1083 | "file_name": "需要我待會再過來嗎.jpg", 1084 | "description": "出自第9集,海鈴見到mygo成員正在爭吵時說出的話", 1085 | "tags": ["海鈴"], 1086 | "author": "海鈴", 1087 | "episode": 9 1088 | }, 1089 | { 1090 | "name": "那傢伙已經不行了", 1091 | "file_name": "那傢伙已經不行了.jpg", 1092 | "description": "出自第9集,立希和團員說有找海鈴時說爽世不會不行了", 1093 | "tags": ["立希"], 1094 | "author": "立希", 1095 | "episode": 9 1096 | }, 1097 | { 1098 | "name": "那傢伙不會回來了", 1099 | "file_name": "那傢伙不會回來了.jpg", 1100 | "description": "出自第9集,立希講出爽世是在騙人之後說的話", 1101 | "tags": ["立希"], 1102 | "author": "立希", 1103 | "episode": 9 1104 | }, 1105 | { 1106 | "name": "妳怎麼不找我們去", 1107 | "file_name": "妳怎麼不找我們去.jpg", 1108 | "description": "", 1109 | "tags": [], 1110 | "author": "", 1111 | "episode": 0 1112 | }, 1113 | { 1114 | "name": "妳這話是認真的嗎", 1115 | "file_name": "妳這話是認真的嗎.jpg", 1116 | "description": "", 1117 | "tags": [], 1118 | "author": "", 1119 | "episode": 0 1120 | }, 1121 | { 1122 | "name": "為什麼", 1123 | "file_name": "為什麼.jpg", 1124 | "description": "", 1125 | "tags": [], 1126 | "author": "", 1127 | "episode": 0 1128 | }, 1129 | { 1130 | "name": "相信也不會有人責怪我的", 1131 | "file_name": "相信也不會有人責怪我的.jpg", 1132 | "description": "", 1133 | "tags": [], 1134 | "author": "", 1135 | "episode": 0 1136 | }, 1137 | { 1138 | "name": "痛痛啊痛痛啊快飛走吧", 1139 | "file_name": "痛痛啊痛痛啊快飛走吧.jpg", 1140 | "description": "", 1141 | "tags": [], 1142 | "author": "", 1143 | "episode": 0 1144 | }, 1145 | { 1146 | "name": "做事笨拙總是徒勞", 1147 | "file_name": "做事笨拙總是徒勞.jpg", 1148 | "description": "", 1149 | "tags": [], 1150 | "author": "", 1151 | "episode": 0 1152 | }, 1153 | { 1154 | "name": "差勁2", 1155 | "file_name": "差勁2.jpg", 1156 | "description": "", 1157 | "tags": [], 1158 | "author": "", 1159 | "episode": 0 1160 | }, 1161 | { 1162 | "name": "這麼快等一下啦", 1163 | "file_name": "這麼快等一下啦.jpg", 1164 | "description": "", 1165 | "tags": [], 1166 | "author": "", 1167 | "episode": 0 1168 | }, 1169 | { 1170 | "name": "妳對組樂團有興趣嗎", 1171 | "file_name": "妳對組樂團有興趣嗎.jpg", 1172 | "description": "", 1173 | "tags": [], 1174 | "author": "", 1175 | "episode": 0 1176 | }, 1177 | { 1178 | "name": "貴安", 1179 | "file_name": "貴安.jpg", 1180 | "description": "", 1181 | "tags": [], 1182 | "author": "", 1183 | "episode": 0 1184 | }, 1185 | { 1186 | "name": "真是讓人活得難受的世界啊", 1187 | "file_name": "真是讓人活得難受的世界啊.jpg", 1188 | "description": "", 1189 | "tags": [], 1190 | "author": "", 1191 | "episode": 0 1192 | }, 1193 | { 1194 | "name": "要做什麼", 1195 | "file_name": "要做什麼.jpg", 1196 | "description": "", 1197 | "tags": [], 1198 | "author": "", 1199 | "episode": 0 1200 | }, 1201 | { 1202 | "name": "感覺不錯", 1203 | "file_name": "感覺不錯.jpg", 1204 | "description": "", 1205 | "tags": [], 1206 | "author": "", 1207 | "episode": 0 1208 | }, 1209 | { 1210 | "name": "真的嗎太好了", 1211 | "file_name": "真的嗎太好了.jpg", 1212 | "description": "", 1213 | "tags": [], 1214 | "author": "", 1215 | "episode": 0 1216 | }, 1217 | { 1218 | "name": "但可能只是我們會錯意啊", 1219 | "file_name": "但可能只是我們會錯意啊.jpg", 1220 | "description": "", 1221 | "tags": [], 1222 | "author": "", 1223 | "episode": 0 1224 | }, 1225 | { 1226 | "name": "那我也要", 1227 | "file_name": "那我也要.jpg", 1228 | "description": "", 1229 | "tags": [], 1230 | "author": "", 1231 | "episode": 0 1232 | }, 1233 | { 1234 | "name": "我有安排了", 1235 | "file_name": "我有安排了.jpg", 1236 | "description": "", 1237 | "tags": [], 1238 | "author": "", 1239 | "episode": 0 1240 | }, 1241 | { 1242 | "name": "只要有小燈在就夠了吧", 1243 | "file_name": "只要有小燈在就夠了吧.jpg", 1244 | "description": "", 1245 | "tags": [], 1246 | "author": "", 1247 | "episode": 0 1248 | }, 1249 | { 1250 | "name": "冒昧請教妳一件事", 1251 | "file_name": "冒昧請教妳一件事.jpg", 1252 | "description": "", 1253 | "tags": [], 1254 | "author": "", 1255 | "episode": 0 1256 | }, 1257 | { 1258 | "name": "那些全都是騙人的", 1259 | "file_name": "那些全都是騙人的.jpg", 1260 | "description": "", 1261 | "tags": [], 1262 | "author": "", 1263 | "episode": 0 1264 | }, 1265 | { 1266 | "name": "過來吧", 1267 | "file_name": "過來吧.jpg", 1268 | "description": "", 1269 | "tags": [], 1270 | "author": "", 1271 | "episode": 0 1272 | }, 1273 | { 1274 | "name": "是這個意思嗎", 1275 | "file_name": "是這個意思嗎.jpg", 1276 | "description": "", 1277 | "tags": [], 1278 | "author": "", 1279 | "episode": 0 1280 | }, 1281 | { 1282 | "name": "我受夠了所以我才", 1283 | "file_name": "我受夠了所以我才.jpg", 1284 | "description": "", 1285 | "tags": [], 1286 | "author": "", 1287 | "episode": 0 1288 | }, 1289 | { 1290 | "name": "這裡就是我們的新家喔", 1291 | "file_name": "這裡就是我們的新家喔.jpg", 1292 | "description": "", 1293 | "tags": [], 1294 | "author": "", 1295 | "episode": 0 1296 | }, 1297 | { 1298 | "name": "已經和我沒有關係了", 1299 | "file_name": "已經和我沒有關係了.jpg", 1300 | "description": "", 1301 | "tags": [], 1302 | "author": "", 1303 | "episode": 0 1304 | }, 1305 | { 1306 | "name": "讓妳們久等了", 1307 | "file_name": "讓妳們久等了.jpg", 1308 | "description": "", 1309 | "tags": [], 1310 | "author": "", 1311 | "episode": 0 1312 | }, 1313 | { 1314 | "name": "已經不可能了", 1315 | "file_name": "已經不可能了.jpg", 1316 | "description": "", 1317 | "tags": [], 1318 | "author": "", 1319 | "episode": 0 1320 | }, 1321 | { 1322 | "name": "我們沒辦法再重新開始嗎", 1323 | "file_name": "我們沒辦法再重新開始嗎.jpg", 1324 | "description": "", 1325 | "tags": [], 1326 | "author": "", 1327 | "episode": 0 1328 | }, 1329 | { 1330 | "name": "妳在做甚麼", 1331 | "file_name": "妳在做甚麼.jpg", 1332 | "description": "", 1333 | "tags": [], 1334 | "author": "", 1335 | "episode": 0 1336 | }, 1337 | { 1338 | "name": "媽媽很棒對不對", 1339 | "file_name": "媽媽很棒對不對.jpg", 1340 | "description": "", 1341 | "tags": [], 1342 | "author": "", 1343 | "episode": 0 1344 | }, 1345 | { 1346 | "name": "就表示不需要這傢伙了吧", 1347 | "file_name": "就表示不需要這傢伙了吧.jpg", 1348 | "description": "", 1349 | "tags": [], 1350 | "author": "", 1351 | "episode": 0 1352 | }, 1353 | { 1354 | "name": "等一下", 1355 | "file_name": "等一下.jpg", 1356 | "description": "", 1357 | "tags": [], 1358 | "author": "", 1359 | "episode": 0 1360 | }, 1361 | { 1362 | "name": "那個誓言呢", 1363 | "file_name": "那個誓言呢.jpg", 1364 | "description": "", 1365 | "tags": [], 1366 | "author": "", 1367 | "episode": 0 1368 | }, 1369 | { 1370 | "name": "樂團不需要我了吧", 1371 | "file_name": "樂團不需要我了吧.jpg", 1372 | "description": "", 1373 | "tags": [], 1374 | "author": "", 1375 | "episode": 0 1376 | }, 1377 | { 1378 | "name": "等一下啦", 1379 | "file_name": "等一下啦.jpg", 1380 | "description": "", 1381 | "tags": [], 1382 | "author": "", 1383 | "episode": 0 1384 | }, 1385 | { 1386 | "name": "畏畏縮縮哭哭啼啼的我", 1387 | "file_name": "畏畏縮縮哭哭啼啼的我.jpg", 1388 | "description": "", 1389 | "tags": [], 1390 | "author": "", 1391 | "episode": 0 1392 | }, 1393 | { 1394 | "name": "就算稍稍喘口氣休息一下", 1395 | "file_name": "就算稍稍喘口氣休息一下.jpg", 1396 | "description": "", 1397 | "tags": [], 1398 | "author": "", 1399 | "episode": 0 1400 | }, 1401 | { 1402 | "name": "再繼續四分五裂下去", 1403 | "file_name": "再繼續四分五裂下去.jpg", 1404 | "description": "", 1405 | "tags": [], 1406 | "author": "", 1407 | "episode": 0 1408 | }, 1409 | { 1410 | "name": "到底是哪個", 1411 | "file_name": "到底是哪個.jpg", 1412 | "description": "", 1413 | "tags": [], 1414 | "author": "", 1415 | "episode": 0 1416 | }, 1417 | { 1418 | "name": "不行了", 1419 | "file_name": "不行了.jpg", 1420 | "description": "", 1421 | "tags": [], 1422 | "author": "", 1423 | "episode": 0 1424 | }, 1425 | { 1426 | "name": "我是因為要利用她才表現得很溫柔", 1427 | "file_name": "我是因為要利用她才表現得很溫柔.jpg", 1428 | "description": "", 1429 | "tags": [], 1430 | "author": "", 1431 | "episode": 0 1432 | }, 1433 | { 1434 | "name": "妳今天有空嗎", 1435 | "file_name": "妳今天有空嗎.jpg", 1436 | "description": "", 1437 | "tags": [], 1438 | "author": "", 1439 | "episode": 0 1440 | }, 1441 | { 1442 | "name": "我都會盡可能參加", 1443 | "file_name": "我都會盡可能參加.jpg", 1444 | "description": "", 1445 | "tags": [], 1446 | "author": "", 1447 | "episode": 0 1448 | }, 1449 | { 1450 | "name": "我一直非常期待能和各位見面1", 1451 | "file_name": "我一直非常期待能和各位見面1.jpg", 1452 | "description": "", 1453 | "tags": [], 1454 | "author": "", 1455 | "episode": 0 1456 | }, 1457 | { 1458 | "name": "請多多指教", 1459 | "file_name": "請多多指教.jpg", 1460 | "description": "", 1461 | "tags": [], 1462 | "author": "", 1463 | "episode": 0 1464 | }, 1465 | { 1466 | "name": "我和那傢伙談過了", 1467 | "file_name": "我和那傢伙談過了.jpg", 1468 | "description": "", 1469 | "tags": [], 1470 | "author": "", 1471 | "episode": 0 1472 | }, 1473 | { 1474 | "name": "這一切的一切全都是我", 1475 | "file_name": "這一切的一切全都是我.jpg", 1476 | "description": "", 1477 | "tags": [], 1478 | "author": "", 1479 | "episode": 0 1480 | }, 1481 | { 1482 | "name": "什麼叫不是這樣", 1483 | "file_name": "什麼叫不是這樣.jpg", 1484 | "description": "", 1485 | "tags": [], 1486 | "author": "", 1487 | "episode": 0 1488 | }, 1489 | { 1490 | "name": "走吧", 1491 | "file_name": "走吧.jpg", 1492 | "description": "", 1493 | "tags": [], 1494 | "author": "", 1495 | "episode": 0 1496 | }, 1497 | { 1498 | "name": "妳要不要先去洗澡", 1499 | "file_name": "妳要不要先去洗澡.jpg", 1500 | "description": "", 1501 | "tags": [], 1502 | "author": "", 1503 | "episode": 0 1504 | }, 1505 | { 1506 | "name": "我會繼續做自己的夥伴", 1507 | "file_name": "我會繼續做自己的夥伴.jpg", 1508 | "description": "", 1509 | "tags": [], 1510 | "author": "", 1511 | "episode": 0 1512 | }, 1513 | { 1514 | "name": "可以和我一起過去看看嗎", 1515 | "file_name": "可以和我一起過去看看嗎.jpg", 1516 | "description": "", 1517 | "tags": [], 1518 | "author": "", 1519 | "episode": 0 1520 | }, 1521 | { 1522 | "name": "不想組什麼樂團的", 1523 | "file_name": "不想組什麼樂團的.jpg", 1524 | "description": "", 1525 | "tags": [], 1526 | "author": "", 1527 | "episode": 0 1528 | }, 1529 | { 1530 | "name": "沒有不可能", 1531 | "file_name": "沒有不可能.jpg", 1532 | "description": "", 1533 | "tags": [], 1534 | "author": "", 1535 | "episode": 0 1536 | }, 1537 | { 1538 | "name": "誓言", 1539 | "file_name": "誓言.jpg", 1540 | "description": "", 1541 | "tags": [], 1542 | "author": "", 1543 | "episode": 0 1544 | }, 1545 | { 1546 | "name": "那些妳全都知道卻一直在背叛她嗎", 1547 | "file_name": "那些妳全都知道卻一直在背叛她嗎.jpg", 1548 | "description": "", 1549 | "tags": [], 1550 | "author": "", 1551 | "episode": 0 1552 | }, 1553 | { 1554 | "name": "原來如此", 1555 | "file_name": "原來如此.jpg", 1556 | "description": "", 1557 | "tags": [], 1558 | "author": "", 1559 | "episode": 0 1560 | }, 1561 | { 1562 | "name": "真是稀奇呢", 1563 | "file_name": "真是稀奇呢.jpg", 1564 | "description": "", 1565 | "tags": [], 1566 | "author": "", 1567 | "episode": 0 1568 | }, 1569 | { 1570 | "name": "所以妳要問什麼", 1571 | "file_name": "所以妳要問什麼.jpg", 1572 | "description": "", 1573 | "tags": [], 1574 | "author": "", 1575 | "episode": 0 1576 | }, 1577 | { 1578 | "name": "我也很想去喔", 1579 | "file_name": "我也很想去喔.jpg", 1580 | "description": "", 1581 | "tags": [], 1582 | "author": "", 1583 | "episode": 0 1584 | }, 1585 | { 1586 | "name": "這邊這邊", 1587 | "file_name": "這邊這邊.jpg", 1588 | "description": "", 1589 | "tags": [], 1590 | "author": "", 1591 | "episode": 0 1592 | }, 1593 | { 1594 | "name": "要是沒有小祥妳們的話我就", 1595 | "file_name": "要是沒有小祥妳們的話我就.jpg", 1596 | "description": "", 1597 | "tags": [], 1598 | "author": "", 1599 | "episode": 0 1600 | }, 1601 | { 1602 | "name": "要不要過去看看", 1603 | "file_name": "要不要過去看看.jpg", 1604 | "description": "", 1605 | "tags": [], 1606 | "author": "", 1607 | "episode": 0 1608 | }, 1609 | { 1610 | "name": "只有我這麼想嗎", 1611 | "file_name": "只有我這麼想嗎.jpg", 1612 | "description": "", 1613 | "tags": [], 1614 | "author": "", 1615 | "episode": 0 1616 | }, 1617 | { 1618 | "name": "有辦法背負其他人的人生嗎", 1619 | "file_name": "有辦法背負其他人的人生嗎.jpg", 1620 | "description": "", 1621 | "tags": [], 1622 | "author": "", 1623 | "episode": 0 1624 | }, 1625 | { 1626 | "name": "我們一定傷害到妳了吧", 1627 | "file_name": "我們一定傷害到妳了吧.jpg", 1628 | "description": "", 1629 | "tags": [], 1630 | "author": "", 1631 | "episode": 0 1632 | }, 1633 | { 1634 | "name": "因為我也有點在意", 1635 | "file_name": "因為我也有點在意.jpg", 1636 | "description": "", 1637 | "tags": [], 1638 | "author": "", 1639 | "episode": 0 1640 | }, 1641 | { 1642 | "name": "甚麼都願意做就是這麼沉重的話", 1643 | "file_name": "甚麼都願意做就是這麼沉重的話.jpg", 1644 | "description": "", 1645 | "tags": [], 1646 | "author": "", 1647 | "episode": 0 1648 | }, 1649 | { 1650 | "name": "我不論如何都想向妳道歉", 1651 | "file_name": "我不論如何都想向妳道歉.jpg", 1652 | "description": "", 1653 | "tags": [], 1654 | "author": "", 1655 | "episode": 0 1656 | }, 1657 | { 1658 | "name": "我實在沒有辦法", 1659 | "file_name": "我實在沒有辦法.jpg", 1660 | "description": "", 1661 | "tags": [], 1662 | "author": "", 1663 | "episode": 0 1664 | }, 1665 | { 1666 | "name": "做不來的事就別隨便說出口", 1667 | "file_name": "做不來的事就別隨便說出口.jpg", 1668 | "description": "", 1669 | "tags": [], 1670 | "author": "", 1671 | "episode": 0 1672 | }, 1673 | { 1674 | "name": "今後不要再和我扯上關係了", 1675 | "file_name": "今後不要再和我扯上關係了.jpg", 1676 | "description": "", 1677 | "tags": [], 1678 | "author": "", 1679 | "episode": 0 1680 | }, 1681 | { 1682 | "name": "這是最後的警告", 1683 | "file_name": "這是最後的警告.jpg", 1684 | "description": "", 1685 | "tags": [], 1686 | "author": "", 1687 | "episode": 0 1688 | }, 1689 | { 1690 | "name": "沒有人那樣拜託妳", 1691 | "file_name": "沒有人那樣拜託妳.jpg", 1692 | "description": "", 1693 | "tags": [], 1694 | "author": "", 1695 | "episode": 0 1696 | }, 1697 | { 1698 | "name": "求求妳", 1699 | "file_name": "求求妳.jpg", 1700 | "description": "", 1701 | "tags": [], 1702 | "author": "", 1703 | "episode": 0 1704 | }, 1705 | { 1706 | "name": "謝謝妳今天願意來見我", 1707 | "file_name": "謝謝妳今天願意來見我.jpg", 1708 | "description": "", 1709 | "tags": [], 1710 | "author": "", 1711 | "episode": 0 1712 | }, 1713 | { 1714 | "name": "我有哪裡有誤會了", 1715 | "file_name": "我有哪裡有誤會了.jpg", 1716 | "description": "", 1717 | "tags": [], 1718 | "author": "", 1719 | "episode": 0 1720 | }, 1721 | { 1722 | "name": "妳為什麼要我忘記呢", 1723 | "file_name": "妳為什麼要我忘記呢.jpg", 1724 | "description": "", 1725 | "tags": [], 1726 | "author": "", 1727 | "episode": 0 1728 | }, 1729 | { 1730 | "name": "妳是抱著多大的覺悟說出這種話的", 1731 | "file_name": "妳是抱著多大的覺悟說出這種話的.jpg", 1732 | "description": "", 1733 | "tags": [], 1734 | "author": "", 1735 | "episode": 0 1736 | }, 1737 | { 1738 | "name": "放開我", 1739 | "file_name": "祥子放開我.jpg", 1740 | "description": "", 1741 | "tags": [], 1742 | "author": "", 1743 | "episode": 0 1744 | }, 1745 | { 1746 | "name": "我們本來真的沒有要演奏春日影的", 1747 | "file_name": "我們本來真的沒有要演奏春日影的.jpg", 1748 | "description": "", 1749 | "tags": [], 1750 | "author": "", 1751 | "episode": 0 1752 | }, 1753 | { 1754 | "name": "可是我真的", 1755 | "file_name": "可是我真的.jpg", 1756 | "description": "", 1757 | "tags": [], 1758 | "author": "", 1759 | "episode": 0 1760 | }, 1761 | { 1762 | "name": "不要走", 1763 | "file_name": "不要走.jpg", 1764 | "description": "", 1765 | "tags": [], 1766 | "author": "", 1767 | "episode": 0 1768 | }, 1769 | { 1770 | "name": "絕對不可能再復活了", 1771 | "file_name": "絕對不可能再復活了.jpg", 1772 | "description": "", 1773 | "tags": [], 1774 | "author": "", 1775 | "episode": 0 1776 | }, 1777 | { 1778 | "name": "那又怎麼樣", 1779 | "file_name": "那又怎麼樣.jpg", 1780 | "description": "", 1781 | "tags": [], 1782 | "author": "", 1783 | "episode": 0 1784 | }, 1785 | { 1786 | "name": "妳講的話和做的事全都互相矛盾", 1787 | "file_name": "妳講的話和做的事全都互相矛盾.jpg", 1788 | "description": "", 1789 | "tags": [], 1790 | "author": "", 1791 | "episode": 0 1792 | }, 1793 | { 1794 | "name": "我們以前感情明明那麼好", 1795 | "file_name": "我們以前感情明明那麼好.jpg", 1796 | "description": "", 1797 | "tags": [], 1798 | "author": "", 1799 | "episode": 0 1800 | }, 1801 | { 1802 | "name": "妳也差不多該忘記了吧", 1803 | "file_name": "妳也差不多該忘記了吧.jpg", 1804 | "description": "", 1805 | "tags": [], 1806 | "author": "", 1807 | "episode": 0 1808 | }, 1809 | { 1810 | "name": "真的很對不起", 1811 | "file_name": "真的很對不起.jpg", 1812 | "description": "", 1813 | "tags": [], 1814 | "author": "", 1815 | "episode": 0 1816 | }, 1817 | { 1818 | "name": "大家每天都快樂地相處在一起", 1819 | "file_name": "大家每天都快樂地相處在一起.jpg", 1820 | "description": "", 1821 | "tags": [], 1822 | "author": "", 1823 | "episode": 0 1824 | }, 1825 | { 1826 | "name": "可是", 1827 | "file_name": "可是.jpg", 1828 | "description": "", 1829 | "tags": [], 1830 | "author": "", 1831 | "episode": 0 1832 | }, 1833 | { 1834 | "name": "妳這個人", 1835 | "file_name": "妳這個人.jpg", 1836 | "description": "", 1837 | "tags": [], 1838 | "author": "", 1839 | "episode": 0 1840 | }, 1841 | { 1842 | "name": "妳們就請便吧", 1843 | "file_name": "妳們就請便吧.jpg", 1844 | "description": "", 1845 | "tags": [], 1846 | "author": "", 1847 | "episode": 0 1848 | }, 1849 | { 1850 | "name": "那些跟現在有關係嗎", 1851 | "file_name": "那些跟現在有關係嗎.jpg", 1852 | "description": "", 1853 | "tags": [], 1854 | "author": "", 1855 | "episode": 0 1856 | }, 1857 | { 1858 | "name": "什麼跟什麼啊", 1859 | "file_name": "什麼跟什麼啊.jpg", 1860 | "description": "", 1861 | "tags": [], 1862 | "author": "", 1863 | "episode": 0 1864 | }, 1865 | { 1866 | "name": "那個", 1867 | "file_name": "那個.jpg", 1868 | "description": "", 1869 | "tags": [], 1870 | "author": "", 1871 | "episode": 0 1872 | }, 1873 | { 1874 | "name": "也不是這樣", 1875 | "file_name": "也不是這樣.jpg", 1876 | "description": "", 1877 | "tags": [], 1878 | "author": "", 1879 | "episode": 0 1880 | }, 1881 | { 1882 | "name": "我在這裡再次感謝大家今天願意參加集會", 1883 | "file_name": "我在這裡再次感謝大家今天願意參加集會.jpg", 1884 | "description": "", 1885 | "tags": [], 1886 | "author": "", 1887 | "episode": 0 1888 | }, 1889 | { 1890 | "name": "動機太不單純了", 1891 | "file_name": "動機太不單純了.jpg", 1892 | "description": "", 1893 | "tags": [], 1894 | "author": "", 1895 | "episode": 0 1896 | }, 1897 | { 1898 | "name": "我沒聽過這首歌", 1899 | "file_name": "我沒聽過這首歌.jpg", 1900 | "description": "", 1901 | "tags": [], 1902 | "author": "", 1903 | "episode": 0 1904 | }, 1905 | { 1906 | "name": "妳好", 1907 | "file_name": "妳好.jpg", 1908 | "description": "", 1909 | "tags": [], 1910 | "author": "", 1911 | "episode": 0 1912 | }, 1913 | { 1914 | "name": "普通和理所當然到底是什麼呢", 1915 | "file_name": "普通和理所當然到底是什麼呢.jpg", 1916 | "description": "", 1917 | "tags": [], 1918 | "author": "", 1919 | "episode": 0 1920 | }, 1921 | { 1922 | "name": "妳不記得了嗎", 1923 | "file_name": "妳不記得了嗎.jpg", 1924 | "description": "", 1925 | "tags": [], 1926 | "author": "", 1927 | "episode": 0 1928 | }, 1929 | { 1930 | "name": "理想不會放得太高了嗎", 1931 | "file_name": "理想不會放得太高了嗎.jpg", 1932 | "description": "", 1933 | "tags": [], 1934 | "author": "", 1935 | "episode": 0 1936 | }, 1937 | { 1938 | "name": "我也會努力看看的", 1939 | "file_name": "我也會努力看看的.jpg", 1940 | "description": "", 1941 | "tags": [], 1942 | "author": "", 1943 | "episode": 0 1944 | }, 1945 | { 1946 | "name": "不是按那邊啦", 1947 | "file_name": "不是按那邊啦.jpg", 1948 | "description": "", 1949 | "tags": [], 1950 | "author": "", 1951 | "episode": 0 1952 | }, 1953 | { 1954 | "name": "等一下再來聽聽看吧", 1955 | "file_name": "等一下再來聽聽看吧.jpg", 1956 | "description": "", 1957 | "tags": [], 1958 | "author": "", 1959 | "episode": 0 1960 | }, 1961 | { 1962 | "name": "這問題問得好", 1963 | "file_name": "這問題問得好.jpg", 1964 | "description": "", 1965 | "tags": [], 1966 | "author": "", 1967 | "episode": 0 1968 | }, 1969 | { 1970 | "name": "我家裡有", 1971 | "file_name": "我家裡有.jpg", 1972 | "description": "", 1973 | "tags": [], 1974 | "author": "", 1975 | "episode": 0 1976 | }, 1977 | { 1978 | "name": "她和我約好要一輩子組樂團了", 1979 | "file_name": "她和我約好要一輩子組樂團了.jpg", 1980 | "description": "", 1981 | "tags": [], 1982 | "author": "", 1983 | "episode": 0 1984 | }, 1985 | { 1986 | "name": "妳在幹嘛啊", 1987 | "file_name": "妳在幹嘛啊.jpg", 1988 | "description": "", 1989 | "tags": [], 1990 | "author": "", 1991 | "episode": 0 1992 | }, 1993 | { 1994 | "name": "Soyorin", 1995 | "file_name": "Soyorin.jpg", 1996 | "description": "", 1997 | "tags": [], 1998 | "author": "", 1999 | "episode": 0 2000 | }, 2001 | { 2002 | "name": "不是不是", 2003 | "file_name": "不是不是.jpg", 2004 | "description": "", 2005 | "tags": [], 2006 | "author": "", 2007 | "episode": 0 2008 | }, 2009 | { 2010 | "name": "她笑了", 2011 | "file_name": "她笑了.jpg", 2012 | "description": "", 2013 | "tags": [], 2014 | "author": "", 2015 | "episode": 0 2016 | }, 2017 | { 2018 | "name": "光是會寫就很厲害了", 2019 | "file_name": "光是會寫就很厲害了.jpg", 2020 | "description": "", 2021 | "tags": [], 2022 | "author": "", 2023 | "episode": 0 2024 | }, 2025 | { 2026 | "name": "我", 2027 | "file_name": "我.jpg", 2028 | "description": "", 2029 | "tags": [], 2030 | "author": "", 2031 | "episode": 0 2032 | }, 2033 | { 2034 | "name": "不可能吧", 2035 | "file_name": "不可能吧.jpg", 2036 | "description": "", 2037 | "tags": [], 2038 | "author": "", 2039 | "episode": 0 2040 | }, 2041 | { 2042 | "name": "可以請妳做個自我介紹嗎", 2043 | "file_name": "可以請妳做個自我介紹嗎.jpg", 2044 | "description": "", 2045 | "tags": [], 2046 | "author": "", 2047 | "episode": 0 2048 | }, 2049 | { 2050 | "name": "我就是有認真想才提這個的啊", 2051 | "file_name": "我就是有認真想才提這個的啊.jpg", 2052 | "description": "", 2053 | "tags": [], 2054 | "author": "", 2055 | "episode": 0 2056 | }, 2057 | { 2058 | "name": "一起共同演奏音樂的命運共同體了", 2059 | "file_name": "一起共同演奏音樂的命運共同體了.jpg", 2060 | "description": "", 2061 | "tags": [], 2062 | "author": "", 2063 | "episode": 0 2064 | }, 2065 | { 2066 | "name": "有人回覆嗎", 2067 | "file_name": "有人回覆嗎.jpg", 2068 | "description": "", 2069 | "tags": [], 2070 | "author": "", 2071 | "episode": 0 2072 | }, 2073 | { 2074 | "name": "妳說什麼?", 2075 | "file_name": "妳說什麼.jpg", 2076 | "description": "", 2077 | "tags": [], 2078 | "author": "", 2079 | "episode": 0 2080 | }, 2081 | { 2082 | "name": "他沒有說要退出", 2083 | "file_name": "他沒有說要退出.jpg", 2084 | "description": "", 2085 | "tags": [], 2086 | "author": "", 2087 | "episode": 0 2088 | }, 2089 | { 2090 | "name": "對不起", 2091 | "file_name": "對不起.jpg", 2092 | "description": "", 2093 | "tags": [], 2094 | "author": "", 2095 | "episode": 0 2096 | }, 2097 | { 2098 | "name": "唱得很棒喔", 2099 | "file_name": "唱得很棒喔.jpg", 2100 | "description": "", 2101 | "tags": [], 2102 | "author": "", 2103 | "episode": 0 2104 | }, 2105 | { 2106 | "name": "請慢慢享用", 2107 | "file_name": "請慢慢享用.jpg", 2108 | "description": "", 2109 | "tags": [], 2110 | "author": "", 2111 | "episode": 0 2112 | }, 2113 | { 2114 | "name": "好厲害喔", 2115 | "file_name": "好厲害喔.jpg", 2116 | "description": "", 2117 | "tags": [], 2118 | "author": "", 2119 | "episode": 0 2120 | }, 2121 | { 2122 | "name": "畢竟我們不過是群一丘之貂罷了", 2123 | "file_name": "畢竟我們不過是群一丘之貂罷了.jpg", 2124 | "description": "", 2125 | "tags": [], 2126 | "author": "", 2127 | "episode": 0 2128 | }, 2129 | { 2130 | "name": "我就不用了", 2131 | "file_name": "我就不用了.jpg", 2132 | "description": "", 2133 | "tags": [], 2134 | "author": "", 2135 | "episode": 0 2136 | }, 2137 | { 2138 | "name": "是沒關係沒錯", 2139 | "file_name": "是沒關係沒錯.jpg", 2140 | "description": "", 2141 | "tags": [], 2142 | "author": "", 2143 | "episode": 0 2144 | }, 2145 | { 2146 | "name": "她也會緊張吧", 2147 | "file_name": "她也會緊張吧.jpg", 2148 | "description": "", 2149 | "tags": [], 2150 | "author": "", 2151 | "episode": 0 2152 | }, 2153 | { 2154 | "name": "真讓人期待", 2155 | "file_name": "真讓人期待.jpg", 2156 | "description": "出自第3集,祥子表示要給眾人聽demo的鋼琴曲,此時的畫面帶到祥子,但說話的是爽世", 2157 | "tags": ["祥子", "爽世"], 2158 | "author": "爽世", 2159 | "episode": 3 2160 | }, 2161 | { 2162 | "name": "麻煩妳了", 2163 | "file_name": "麻煩妳了.jpg", 2164 | "description": "", 2165 | "tags": [], 2166 | "author": "", 2167 | "episode": 0 2168 | }, 2169 | { 2170 | "name": "以前時有耳聞", 2171 | "file_name": "以前時有耳聞.jpg", 2172 | "description": "", 2173 | "tags": [], 2174 | "author": "", 2175 | "episode": 0 2176 | }, 2177 | { 2178 | "name": "好可以了", 2179 | "file_name": "好可以了.jpg", 2180 | "description": "", 2181 | "tags": [], 2182 | "author": "", 2183 | "episode": 0 2184 | }, 2185 | { 2186 | "name": "一起加油吧", 2187 | "file_name": "一起加油吧.jpg", 2188 | "description": "", 2189 | "tags": [], 2190 | "author": "", 2191 | "episode": 0 2192 | }, 2193 | { 2194 | "name": "妳叫什麼名字", 2195 | "file_name": "妳叫什麼名字.jpg", 2196 | "description": "", 2197 | "tags": [], 2198 | "author": "", 2199 | "episode": 0 2200 | }, 2201 | { 2202 | "name": "這首是我的", 2203 | "file_name": "這首是我的.jpg", 2204 | "description": "", 2205 | "tags": [], 2206 | "author": "", 2207 | "episode": 0 2208 | }, 2209 | { 2210 | "name": "不知道", 2211 | "file_name": "不知道.jpg", 2212 | "description": "", 2213 | "tags": [], 2214 | "author": "", 2215 | "episode": 0 2216 | }, 2217 | { 2218 | "name": "讓人說不出話來了", 2219 | "file_name": "讓人說不出話來了.jpg", 2220 | "description": "", 2221 | "tags": [], 2222 | "author": "", 2223 | "episode": 0 2224 | }, 2225 | { 2226 | "name": "請妳不要生小睦的氣喔", 2227 | "file_name": "請妳不要生小睦的氣喔.jpg", 2228 | "description": "", 2229 | "tags": [], 2230 | "author": "", 2231 | "episode": 0 2232 | }, 2233 | { 2234 | "name": "全都失敗了", 2235 | "file_name": "全都失敗了.jpg", 2236 | "description": "", 2237 | "tags": [], 2238 | "author": "", 2239 | "episode": 0 2240 | }, 2241 | { 2242 | "name": "那首歌真的很棒呢", 2243 | "file_name": "那首歌真的很棒呢.jpg", 2244 | "description": "", 2245 | "tags": [], 2246 | "author": "", 2247 | "episode": 0 2248 | }, 2249 | { 2250 | "name": "可以吃了嗎", 2251 | "file_name": "可以吃了嗎.jpg", 2252 | "description": "", 2253 | "tags": [], 2254 | "author": "", 2255 | "episode": 0 2256 | }, 2257 | { 2258 | "name": "太棒了", 2259 | "file_name": "太棒了.jpg", 2260 | "description": "", 2261 | "tags": [], 2262 | "author": "", 2263 | "episode": 0 2264 | }, 2265 | { 2266 | "name": "不是啊", 2267 | "file_name": "不是啊.jpg", 2268 | "description": "", 2269 | "tags": [], 2270 | "author": "", 2271 | "episode": 0 2272 | }, 2273 | { 2274 | "name": "現在的我們像是一盤散沙", 2275 | "file_name": "現在的我們像是一盤散沙.jpg", 2276 | "description": "", 2277 | "tags": [], 2278 | "author": "", 2279 | "episode": 0 2280 | }, 2281 | { 2282 | "name": "看完了", 2283 | "file_name": "看完了.jpg", 2284 | "description": "", 2285 | "tags": [], 2286 | "author": "", 2287 | "episode": 0 2288 | }, 2289 | { 2290 | "name": "我一直非常期待能和各位見面", 2291 | "file_name": "我一直非常期待能和各位見面.jpg", 2292 | "description": "", 2293 | "tags": [], 2294 | "author": "", 2295 | "episode": 0 2296 | }, 2297 | { 2298 | "name": "我也好想看看喔", 2299 | "file_name": "我也好想看看喔.jpg", 2300 | "description": "", 2301 | "tags": [], 2302 | "author": "", 2303 | "episode": 0 2304 | }, 2305 | { 2306 | "name": "我要封鎖他", 2307 | "file_name": "我要封鎖他.jpg", 2308 | "description": "", 2309 | "tags": [], 2310 | "author": "", 2311 | "episode": 0 2312 | }, 2313 | { 2314 | "name": "不會有問題的", 2315 | "file_name": "不會有問題的.jpg", 2316 | "description": "", 2317 | "tags": [], 2318 | "author": "", 2319 | "episode": 0 2320 | }, 2321 | { 2322 | "name": "想喝什麼都可以自己拿", 2323 | "file_name": "想喝甚麼都可以自己拿.jpg", 2324 | "description": "", 2325 | "tags": [], 2326 | "author": "", 2327 | "episode": 0 2328 | }, 2329 | { 2330 | "name": "不會吧", 2331 | "file_name": "不會吧.jpg", 2332 | "description": "", 2333 | "tags": [], 2334 | "author": "", 2335 | "episode": 0 2336 | }, 2337 | { 2338 | "name": "讓我深深受到感動", 2339 | "file_name": "讓我深深受到感動.jpg", 2340 | "description": "", 2341 | "tags": [], 2342 | "author": "", 2343 | "episode": 0 2344 | }, 2345 | { 2346 | "name": "畢竟這是一輩子的事", 2347 | "file_name": "畢竟這是一輩子的事.jpg", 2348 | "description": "", 2349 | "tags": [], 2350 | "author": "", 2351 | "episode": 0 2352 | }, 2353 | { 2354 | "name": "沒在開玩笑我是認真的", 2355 | "file_name": "沒在開玩笑我是認真的.jpg", 2356 | "description": "", 2357 | "tags": [], 2358 | "author": "", 2359 | "episode": 0 2360 | }, 2361 | { 2362 | "name": "這布局可說是堅若磐石", 2363 | "file_name": "這布局可說是堅若磐石.jpg", 2364 | "description": "", 2365 | "tags": [], 2366 | "author": "", 2367 | "episode": 0 2368 | }, 2369 | { 2370 | "name": "我會為妳加油的", 2371 | "file_name": "我會為妳加油的.jpg", 2372 | "description": "", 2373 | "tags": [], 2374 | "author": "", 2375 | "episode": 0 2376 | }, 2377 | { 2378 | "name": "好好說明清楚", 2379 | "file_name": "好好說明清楚.jpg", 2380 | "description": "", 2381 | "tags": [], 2382 | "author": "", 2383 | "episode": 0 2384 | }, 2385 | { 2386 | "name": "是這樣嗎", 2387 | "file_name": "燈是這樣嗎.jpg", 2388 | "description": "", 2389 | "tags": [], 2390 | "author": "", 2391 | "episode": 0 2392 | }, 2393 | { 2394 | "name": "我們是MyGO", 2395 | "file_name": "我們是MyGO.jpg", 2396 | "description": "", 2397 | "tags": [], 2398 | "author": "", 2399 | "episode": 0 2400 | }, 2401 | { 2402 | "name": "已經算跨出一大步了喔", 2403 | "file_name": "已經算是跨出一大步了喔.jpg", 2404 | "description": "", 2405 | "tags": [], 2406 | "author": "", 2407 | "episode": 0 2408 | }, 2409 | { 2410 | "name": "爽世:太好了", 2411 | "file_name": "太好了.jpg", 2412 | "description": "", 2413 | "tags": [], 2414 | "author": "", 2415 | "episode": 0 2416 | }, 2417 | { 2418 | "name": "就說我不用了啦", 2419 | "file_name": "就說我不用了啦.jpg", 2420 | "description": "", 2421 | "tags": [], 2422 | "author": "", 2423 | "episode": 0 2424 | }, 2425 | { 2426 | "name": "It's my go耶, it's my go", 2427 | "file_name": "Its_my_go耶,_its_my_go.jpg", 2428 | "description": "", 2429 | "tags": [], 2430 | "author": "", 2431 | "episode": 0 2432 | }, 2433 | { 2434 | "name": "祥子是這樣嗎", 2435 | "file_name": "祥子是這樣嗎.jpg", 2436 | "description": "", 2437 | "tags": [], 2438 | "author": "", 2439 | "episode": 0 2440 | }, 2441 | { 2442 | "name": "那是歌詞嗎", 2443 | "file_name": "那是歌詞嗎.jpg", 2444 | "description": "", 2445 | "tags": [], 2446 | "author": "", 2447 | "episode": 0 2448 | }, 2449 | { 2450 | "name": "我先去一下洗手間", 2451 | "file_name": "我先去一下洗手間.jpg", 2452 | "description": "", 2453 | "tags": [], 2454 | "author": "", 2455 | "episode": 0 2456 | }, 2457 | { 2458 | "name": "祝妳幸福", 2459 | "file_name": "祝妳幸福.jpg", 2460 | "description": "", 2461 | "tags": [], 2462 | "author": "", 2463 | "episode": 0 2464 | }, 2465 | { 2466 | "name": "我都還沒好好告訴過妳", 2467 | "file_name": "我都還沒好好告訴過妳.jpg", 2468 | "description": "", 2469 | "tags": [], 2470 | "author": "", 2471 | "episode": 0 2472 | }, 2473 | { 2474 | "name": "要演奏什麼音樂", 2475 | "file_name": "要演奏什麼音樂.jpg", 2476 | "description": "", 2477 | "tags": [], 2478 | "author": "", 2479 | "episode": 0 2480 | }, 2481 | { 2482 | "name": "那個誓言是騙人的", 2483 | "file_name": "那個誓言是騙人的.jpg", 2484 | "description": "", 2485 | "tags": [], 2486 | "author": "", 2487 | "episode": 0 2488 | }, 2489 | { 2490 | "name": "妳唱得簡直太棒了", 2491 | "file_name": "妳唱得簡直太棒了.jpg", 2492 | "description": "", 2493 | "tags": [], 2494 | "author": "", 2495 | "episode": 0 2496 | }, 2497 | { 2498 | "name": "我可以用嗎", 2499 | "file_name": "我可以用嗎.jpg", 2500 | "description": "", 2501 | "tags": [], 2502 | "author": "", 2503 | "episode": 0 2504 | }, 2505 | { 2506 | "name": "是這種感覺啊", 2507 | "file_name": "是這種感覺啊.jpg", 2508 | "description": "", 2509 | "tags": [], 2510 | "author": "", 2511 | "episode": 0 2512 | }, 2513 | { 2514 | "name": "真不愧是人氣寵兒", 2515 | "file_name": "真不愧是人氣寵兒.jpg", 2516 | "description": "", 2517 | "tags": [], 2518 | "author": "", 2519 | "episode": 0 2520 | }, 2521 | { 2522 | "name": "真恐怖", 2523 | "file_name": "真恐怖.jpg", 2524 | "description": "", 2525 | "tags": [], 2526 | "author": "", 2527 | "episode": 0 2528 | }, 2529 | { 2530 | "name": "現在正是復權的時刻", 2531 | "file_name": "現在正是復權的時刻.jpg", 2532 | "description": "", 2533 | "tags": [], 2534 | "author": "", 2535 | "episode": 0 2536 | }, 2537 | { 2538 | "name": "這樣太奇怪了吧", 2539 | "file_name": "這樣太奇怪了吧.jpg", 2540 | "description": "", 2541 | "tags": [], 2542 | "author": "", 2543 | "episode": 0 2544 | }, 2545 | { 2546 | "name": "我好想成為人類啊", 2547 | "file_name": "我好想成為人類啊.jpg", 2548 | "description": "", 2549 | "tags": [], 2550 | "author": "", 2551 | "episode": 0 2552 | }, 2553 | { 2554 | "name": "人類真是殘酷", 2555 | "file_name": "人類真是殘酷.jpg", 2556 | "description": "", 2557 | "tags": [], 2558 | "author": "", 2559 | "episode": 0 2560 | }, 2561 | { 2562 | "name": "我們一起叫吧", 2563 | "file_name": "我們一起叫吧.jpg", 2564 | "description": "", 2565 | "tags": [], 2566 | "author": "", 2567 | "episode": 0 2568 | }, 2569 | { 2570 | "name": "這些該不會都是歌詞吧", 2571 | "file_name": "這些該不會都是歌詞吧.jpg", 2572 | "description": "", 2573 | "tags": [], 2574 | "author": "", 2575 | "episode": 0 2576 | }, 2577 | { 2578 | "name": "妳只不過是一個學生", 2579 | "file_name": "妳只不過是一個學生.jpg", 2580 | "description": "", 2581 | "tags": [], 2582 | "author": "", 2583 | "episode": 0 2584 | }, 2585 | { 2586 | "name": "盯...", 2587 | "file_name": "盯....jpg", 2588 | "description": "", 2589 | "tags": [], 2590 | "author": "", 2591 | "episode": 0 2592 | }, 2593 | { 2594 | "name": "我看看", 2595 | "file_name": "我看看.jpg", 2596 | "description": "", 2597 | "tags": [], 2598 | "author": "", 2599 | "episode": 0 2600 | }, 2601 | { 2602 | "name": "好溫柔", 2603 | "file_name": "好溫柔.jpg", 2604 | "description": "", 2605 | "tags": [], 2606 | "author": "", 2607 | "episode": 0 2608 | }, 2609 | { 2610 | "name": "或許也不是真的不可能吧", 2611 | "file_name": "或許也不是真的不可能吧.jpg", 2612 | "description": "", 2613 | "tags": [], 2614 | "author": "", 2615 | "episode": 0 2616 | }, 2617 | { 2618 | "name": "我都說一直都有在看了啊", 2619 | "file_name": "我都說一直都有在看了啊.jpg", 2620 | "description": "", 2621 | "tags": [], 2622 | "author": "", 2623 | "episode": 0 2624 | }, 2625 | { 2626 | "name": "一丘之貂", 2627 | "file_name": "一丘之貂.jpg", 2628 | "description": "", 2629 | "tags": [], 2630 | "author": "", 2631 | "episode": 0 2632 | }, 2633 | { 2634 | "name": "我們大家都很受傷", 2635 | "file_name": "我們大家都很受傷.jpg", 2636 | "description": "", 2637 | "tags": [], 2638 | "author": "", 2639 | "episode": 0 2640 | }, 2641 | { 2642 | "name": "不是這樣的2", 2643 | "file_name": "不是這樣的2.jpg", 2644 | "description": "", 2645 | "tags": [], 2646 | "author": "", 2647 | "episode": 0 2648 | }, 2649 | { 2650 | "name": "是啊(開心版)", 2651 | "file_name": "是啊2.jpg", 2652 | "description": "", 2653 | "tags": [], 2654 | "author": "", 2655 | "episode": 0 2656 | }, 2657 | { 2658 | "name": "等一下妳是認真的嗎", 2659 | "file_name": "等一下妳是認真的嗎.jpg", 2660 | "description": "", 2661 | "tags": [], 2662 | "author": "", 2663 | "episode": 0 2664 | }, 2665 | { 2666 | "name": "難道妳是第一次來嗎", 2667 | "file_name": "難道妳是第一次來嗎.jpg", 2668 | "description": "", 2669 | "tags": [], 2670 | "author": "", 2671 | "episode": 0 2672 | }, 2673 | { 2674 | "name": "能不能也教我用呢", 2675 | "file_name": "能不能也教我用呢.jpg", 2676 | "description": "", 2677 | "tags": [], 2678 | "author": "", 2679 | "episode": 0 2680 | }, 2681 | { 2682 | "name": "那傢伙根本就不打算組新樂團", 2683 | "file_name": "那傢伙根本就不打算組新樂團.jpg", 2684 | "description": "", 2685 | "tags": [], 2686 | "author": "", 2687 | "episode": 0 2688 | }, 2689 | { 2690 | "name": "初華:太好了", 2691 | "file_name": "太好了3.jpg", 2692 | "description": "", 2693 | "tags": [], 2694 | "author": "", 2695 | "episode": 0 2696 | }, 2697 | { 2698 | "name": "貓貓喝水", 2699 | "file_name": "貓貓喝水.jpg", 2700 | "description": "", 2701 | "tags": [], 2702 | "author": "", 2703 | "episode": 0 2704 | }, 2705 | { 2706 | "name": "那傢伙竟敢無視燈", 2707 | "file_name": "那傢伙竟敢無視燈.jpg", 2708 | "description": "出自第9集,Rikki知道爽世無視燈之後的反應。", 2709 | "tags": ["立希", "燈"], 2710 | "author": "立希", 2711 | "episode": 9 2712 | } 2713 | ] -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. 2 | 3 | [[package]] 4 | name = "annotated-types" 5 | version = "0.6.0" 6 | description = "Reusable constraint types to use with typing.Annotated" 7 | optional = false 8 | python-versions = ">=3.8" 9 | files = [ 10 | {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"}, 11 | {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, 12 | ] 13 | 14 | [[package]] 15 | name = "anyio" 16 | version = "4.3.0" 17 | description = "High level compatibility layer for multiple asynchronous event loop implementations" 18 | optional = false 19 | python-versions = ">=3.8" 20 | files = [ 21 | {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"}, 22 | {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"}, 23 | ] 24 | 25 | [package.dependencies] 26 | idna = ">=2.8" 27 | sniffio = ">=1.1" 28 | 29 | [package.extras] 30 | doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] 31 | test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] 32 | trio = ["trio (>=0.23)"] 33 | 34 | [[package]] 35 | name = "certifi" 36 | version = "2024.2.2" 37 | description = "Python package for providing Mozilla's CA Bundle." 38 | optional = false 39 | python-versions = ">=3.6" 40 | files = [ 41 | {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, 42 | {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, 43 | ] 44 | 45 | [[package]] 46 | name = "charset-normalizer" 47 | version = "3.3.2" 48 | description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." 49 | optional = false 50 | python-versions = ">=3.7.0" 51 | files = [ 52 | {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, 53 | {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, 54 | {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, 55 | {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, 56 | {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, 57 | {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, 58 | {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, 59 | {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, 60 | {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, 61 | {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, 62 | {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, 63 | {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, 64 | {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, 65 | {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, 66 | {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, 67 | {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, 68 | {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, 69 | {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, 70 | {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, 71 | {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, 72 | {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, 73 | {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, 74 | {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, 75 | {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, 76 | {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, 77 | {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, 78 | {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, 79 | {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, 80 | {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, 81 | {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, 82 | {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, 83 | {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, 84 | {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, 85 | {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, 86 | {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, 87 | {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, 88 | {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, 89 | {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, 90 | {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, 91 | {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, 92 | {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, 93 | {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, 94 | {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, 95 | {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, 96 | {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, 97 | {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, 98 | {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, 99 | {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, 100 | {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, 101 | {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, 102 | {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, 103 | {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, 104 | {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, 105 | {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, 106 | {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, 107 | {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, 108 | {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, 109 | {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, 110 | {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, 111 | {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, 112 | {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, 113 | {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, 114 | {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, 115 | {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, 116 | {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, 117 | {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, 118 | {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, 119 | {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, 120 | {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, 121 | {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, 122 | {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, 123 | {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, 124 | {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, 125 | {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, 126 | {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, 127 | {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, 128 | {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, 129 | {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, 130 | {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, 131 | {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, 132 | {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, 133 | {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, 134 | {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, 135 | {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, 136 | {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, 137 | {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, 138 | {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, 139 | {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, 140 | {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, 141 | {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, 142 | ] 143 | 144 | [[package]] 145 | name = "click" 146 | version = "8.1.7" 147 | description = "Composable command line interface toolkit" 148 | optional = false 149 | python-versions = ">=3.7" 150 | files = [ 151 | {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, 152 | {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, 153 | ] 154 | 155 | [package.dependencies] 156 | colorama = {version = "*", markers = "platform_system == \"Windows\""} 157 | 158 | [[package]] 159 | name = "colorama" 160 | version = "0.4.6" 161 | description = "Cross-platform colored terminal text." 162 | optional = false 163 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" 164 | files = [ 165 | {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, 166 | {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, 167 | ] 168 | 169 | [[package]] 170 | name = "dnspython" 171 | version = "2.6.1" 172 | description = "DNS toolkit" 173 | optional = false 174 | python-versions = ">=3.8" 175 | files = [ 176 | {file = "dnspython-2.6.1-py3-none-any.whl", hash = "sha256:5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50"}, 177 | {file = "dnspython-2.6.1.tar.gz", hash = "sha256:e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc"}, 178 | ] 179 | 180 | [package.extras] 181 | dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "sphinx (>=7.2.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"] 182 | dnssec = ["cryptography (>=41)"] 183 | doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"] 184 | doq = ["aioquic (>=0.9.25)"] 185 | idna = ["idna (>=3.6)"] 186 | trio = ["trio (>=0.23)"] 187 | wmi = ["wmi (>=1.5.1)"] 188 | 189 | [[package]] 190 | name = "fastapi" 191 | version = "0.110.2" 192 | description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" 193 | optional = false 194 | python-versions = ">=3.8" 195 | files = [ 196 | {file = "fastapi-0.110.2-py3-none-any.whl", hash = "sha256:239403f2c0a3dda07a9420f95157a7f014ddb2b770acdbc984f9bdf3ead7afdb"}, 197 | {file = "fastapi-0.110.2.tar.gz", hash = "sha256:b53d673652da3b65e8cd787ad214ec0fe303cad00d2b529b86ce7db13f17518d"}, 198 | ] 199 | 200 | [package.dependencies] 201 | pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" 202 | starlette = ">=0.37.2,<0.38.0" 203 | typing-extensions = ">=4.8.0" 204 | 205 | [package.extras] 206 | all = ["email-validator (>=2.0.0)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.7)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] 207 | 208 | [[package]] 209 | name = "h11" 210 | version = "0.14.0" 211 | description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" 212 | optional = false 213 | python-versions = ">=3.7" 214 | files = [ 215 | {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, 216 | {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, 217 | ] 218 | 219 | [[package]] 220 | name = "idna" 221 | version = "3.7" 222 | description = "Internationalized Domain Names in Applications (IDNA)" 223 | optional = false 224 | python-versions = ">=3.5" 225 | files = [ 226 | {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, 227 | {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, 228 | ] 229 | 230 | [[package]] 231 | name = "levenshtein" 232 | version = "0.26.1" 233 | description = "Python extension for computing string edit distances and similarities." 234 | optional = false 235 | python-versions = ">=3.9" 236 | files = [ 237 | {file = "levenshtein-0.26.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8dc4a4aecad538d944a1264c12769c99e3c0bf8e741fc5e454cc954913befb2e"}, 238 | {file = "levenshtein-0.26.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ec108f368c12b25787c8b1a4537a1452bc53861c3ee4abc810cc74098278edcd"}, 239 | {file = "levenshtein-0.26.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69229d651c97ed5b55b7ce92481ed00635cdbb80fbfb282a22636e6945dc52d5"}, 240 | {file = "levenshtein-0.26.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:79dcd157046d62482a7719b08ba9e3ce9ed3fc5b015af8ea989c734c702aedd4"}, 241 | {file = "levenshtein-0.26.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f53f9173ae21b650b4ed8aef1d0ad0c37821f367c221a982f4d2922b3044e0d"}, 242 | {file = "levenshtein-0.26.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3956f3c5c229257dbeabe0b6aacd2c083ebcc1e335842a6ff2217fe6cc03b6b"}, 243 | {file = "levenshtein-0.26.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1e83af732726987d2c4cd736f415dae8b966ba17b7a2239c8b7ffe70bfb5543"}, 244 | {file = "levenshtein-0.26.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4f052c55046c2a9c9b5f742f39e02fa6e8db8039048b8c1c9e9fdd27c8a240a1"}, 245 | {file = "levenshtein-0.26.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9895b3a98f6709e293615fde0dcd1bb0982364278fa2072361a1a31b3e388b7a"}, 246 | {file = "levenshtein-0.26.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a3777de1d8bfca054465229beed23994f926311ce666f5a392c8859bb2722f16"}, 247 | {file = "levenshtein-0.26.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:81c57e1135c38c5e6e3675b5e2077d8a8d3be32bf0a46c57276c092b1dffc697"}, 248 | {file = "levenshtein-0.26.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:91d5e7d984891df3eff7ea9fec8cf06fdfacc03cd074fd1a410435706f73b079"}, 249 | {file = "levenshtein-0.26.1-cp310-cp310-win32.whl", hash = "sha256:f48abff54054b4142ad03b323e80aa89b1d15cabc48ff49eb7a6ff7621829a56"}, 250 | {file = "levenshtein-0.26.1-cp310-cp310-win_amd64.whl", hash = "sha256:79dd6ad799784ea7b23edd56e3bf94b3ca866c4c6dee845658ee75bb4aefdabf"}, 251 | {file = "levenshtein-0.26.1-cp310-cp310-win_arm64.whl", hash = "sha256:3351ddb105ef010cc2ce474894c5d213c83dddb7abb96400beaa4926b0b745bd"}, 252 | {file = "levenshtein-0.26.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:44c51f5d33b3cfb9db518b36f1288437a509edd82da94c4400f6a681758e0cb6"}, 253 | {file = "levenshtein-0.26.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56b93203e725f9df660e2afe3d26ba07d71871b6d6e05b8b767e688e23dfb076"}, 254 | {file = "levenshtein-0.26.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:270d36c5da04a0d89990660aea8542227cbd8f5bc34e9fdfadd34916ff904520"}, 255 | {file = "levenshtein-0.26.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:480674c05077eeb0b0f748546d4fcbb386d7c737f9fff0010400da3e8b552942"}, 256 | {file = "levenshtein-0.26.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13946e37323728695ba7a22f3345c2e907d23f4600bc700bf9b4352fb0c72a48"}, 257 | {file = "levenshtein-0.26.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ceb673f572d1d0dc9b1cd75792bb8bad2ae8eb78a7c6721e23a3867d318cb6f2"}, 258 | {file = "levenshtein-0.26.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42d6fa242e3b310ce6bfd5af0c83e65ef10b608b885b3bb69863c01fb2fcff98"}, 259 | {file = "levenshtein-0.26.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b8b68295808893a81e0a1dbc2274c30dd90880f14d23078e8eb4325ee615fc68"}, 260 | {file = "levenshtein-0.26.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b01061d377d1944eb67bc40bef5d4d2f762c6ab01598efd9297ce5d0047eb1b5"}, 261 | {file = "levenshtein-0.26.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:9d12c8390f156745e533d01b30773b9753e41d8bbf8bf9dac4b97628cdf16314"}, 262 | {file = "levenshtein-0.26.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:48825c9f967f922061329d1481b70e9fee937fc68322d6979bc623f69f75bc91"}, 263 | {file = "levenshtein-0.26.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d8ec137170b95736842f99c0e7a9fd8f5641d0c1b63b08ce027198545d983e2b"}, 264 | {file = "levenshtein-0.26.1-cp311-cp311-win32.whl", hash = "sha256:798f2b525a2e90562f1ba9da21010dde0d73730e277acaa5c52d2a6364fd3e2a"}, 265 | {file = "levenshtein-0.26.1-cp311-cp311-win_amd64.whl", hash = "sha256:55b1024516c59df55f1cf1a8651659a568f2c5929d863d3da1ce8893753153bd"}, 266 | {file = "levenshtein-0.26.1-cp311-cp311-win_arm64.whl", hash = "sha256:e52575cbc6b9764ea138a6f82d73d3b1bc685fe62e207ff46a963d4c773799f6"}, 267 | {file = "levenshtein-0.26.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cc741ca406d3704dc331a69c04b061fc952509a069b79cab8287413f434684bd"}, 268 | {file = "levenshtein-0.26.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:821ace3b4e1c2e02b43cf5dc61aac2ea43bdb39837ac890919c225a2c3f2fea4"}, 269 | {file = "levenshtein-0.26.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92694c9396f55d4c91087efacf81297bef152893806fc54c289fc0254b45384"}, 270 | {file = "levenshtein-0.26.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:51ba374de7a1797d04a14a4f0ad3602d2d71fef4206bb20a6baaa6b6a502da58"}, 271 | {file = "levenshtein-0.26.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f7aa5c3327dda4ef952769bacec09c09ff5bf426e07fdc94478c37955681885b"}, 272 | {file = "levenshtein-0.26.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33e2517e8d3c221de2d1183f400aed64211fcfc77077b291ed9f3bb64f141cdc"}, 273 | {file = "levenshtein-0.26.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9092b622765c7649dd1d8af0f43354723dd6f4e570ac079ffd90b41033957438"}, 274 | {file = "levenshtein-0.26.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:fc16796c85d7d8b259881d59cc8b5e22e940901928c2ff6924b2c967924e8a0b"}, 275 | {file = "levenshtein-0.26.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4370733967f5994ceeed8dc211089bedd45832ee688cecea17bfd35a9eb22b9"}, 276 | {file = "levenshtein-0.26.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:3535ecfd88c9b283976b5bc61265855f59bba361881e92ed2b5367b6990c93fe"}, 277 | {file = "levenshtein-0.26.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:90236e93d98bdfd708883a6767826fafd976dac8af8fc4a0fb423d4fa08e1bf0"}, 278 | {file = "levenshtein-0.26.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:04b7cabb82edf566b1579b3ed60aac0eec116655af75a3c551fee8754ffce2ea"}, 279 | {file = "levenshtein-0.26.1-cp312-cp312-win32.whl", hash = "sha256:ae382af8c76f6d2a040c0d9ca978baf461702ceb3f79a0a3f6da8d596a484c5b"}, 280 | {file = "levenshtein-0.26.1-cp312-cp312-win_amd64.whl", hash = "sha256:fd091209798cfdce53746f5769987b4108fe941c54fb2e058c016ffc47872918"}, 281 | {file = "levenshtein-0.26.1-cp312-cp312-win_arm64.whl", hash = "sha256:7e82f2ea44a81ad6b30d92a110e04cd3c8c7c6034b629aca30a3067fa174ae89"}, 282 | {file = "levenshtein-0.26.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:790374a9f5d2cbdb30ee780403a62e59bef51453ac020668c1564d1e43438f0e"}, 283 | {file = "levenshtein-0.26.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7b05c0415c386d00efda83d48db9db68edd02878d6dbc6df01194f12062be1bb"}, 284 | {file = "levenshtein-0.26.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3114586032361722ddededf28401ce5baf1cf617f9f49fb86b8766a45a423ff"}, 285 | {file = "levenshtein-0.26.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2532f8a13b68bf09f152d906f118a88da2063da22f44c90e904b142b0a53d534"}, 286 | {file = "levenshtein-0.26.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:219c30be6aa734bf927188d1208b7d78d202a3eb017b1c5f01ab2034d2d4ccca"}, 287 | {file = "levenshtein-0.26.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:397e245e77f87836308bd56305bba630010cd8298c34c4c44bd94990cdb3b7b1"}, 288 | {file = "levenshtein-0.26.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aeff6ea3576f72e26901544c6c55c72a7b79b9983b6f913cba0e9edbf2f87a97"}, 289 | {file = "levenshtein-0.26.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a19862e3539a697df722a08793994e334cd12791e8144851e8a1dee95a17ff63"}, 290 | {file = "levenshtein-0.26.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:dc3b5a64f57c3c078d58b1e447f7d68cad7ae1b23abe689215d03fc434f8f176"}, 291 | {file = "levenshtein-0.26.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:bb6c7347424a91317c5e1b68041677e4c8ed3e7823b5bbaedb95bffb3c3497ea"}, 292 | {file = "levenshtein-0.26.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b817376de4195a207cc0e4ca37754c0e1e1078c2a2d35a6ae502afde87212f9e"}, 293 | {file = "levenshtein-0.26.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7b50c3620ff47c9887debbb4c154aaaac3e46be7fc2e5789ee8dbe128bce6a17"}, 294 | {file = "levenshtein-0.26.1-cp313-cp313-win32.whl", hash = "sha256:9fb859da90262eb474c190b3ca1e61dee83add022c676520f5c05fdd60df902a"}, 295 | {file = "levenshtein-0.26.1-cp313-cp313-win_amd64.whl", hash = "sha256:8adcc90e3a5bfb0a463581d85e599d950fe3c2938ac6247b29388b64997f6e2d"}, 296 | {file = "levenshtein-0.26.1-cp313-cp313-win_arm64.whl", hash = "sha256:c2599407e029865dc66d210b8804c7768cbdbf60f061d993bb488d5242b0b73e"}, 297 | {file = "levenshtein-0.26.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dc54ced948fc3feafce8ad4ba4239d8ffc733a0d70e40c0363ac2a7ab2b7251e"}, 298 | {file = "levenshtein-0.26.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e6516f69213ae393a220e904332f1a6bfc299ba22cf27a6520a1663a08eba0fb"}, 299 | {file = "levenshtein-0.26.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4cfea4eada1746d0c75a864bc7e9e63d4a6e987c852d6cec8d9cb0c83afe25b"}, 300 | {file = "levenshtein-0.26.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a323161dfeeac6800eb13cfe76a8194aec589cd948bcf1cdc03f66cc3ec26b72"}, 301 | {file = "levenshtein-0.26.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2c23e749b68ebc9a20b9047317b5cd2053b5856315bc8636037a8adcbb98bed1"}, 302 | {file = "levenshtein-0.26.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f80dd7432d4b6cf493d012d22148db7af769017deb31273e43406b1fb7f091c"}, 303 | {file = "levenshtein-0.26.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ae7cd6e4312c6ef34b2e273836d18f9fff518d84d823feff5ad7c49668256e0"}, 304 | {file = "levenshtein-0.26.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dcdad740e841d791b805421c2b20e859b4ed556396d3063b3aa64cd055be648c"}, 305 | {file = "levenshtein-0.26.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e07afb1613d6f5fd99abd4e53ad3b446b4efaa0f0d8e9dfb1d6d1b9f3f884d32"}, 306 | {file = "levenshtein-0.26.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:f1add8f1d83099a98ae4ac472d896b7e36db48c39d3db25adf12b373823cdeff"}, 307 | {file = "levenshtein-0.26.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1010814b1d7a60833a951f2756dfc5c10b61d09976ce96a0edae8fecdfb0ea7c"}, 308 | {file = "levenshtein-0.26.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:33fa329d1bb65ce85e83ceda281aea31cee9f2f6e167092cea54f922080bcc66"}, 309 | {file = "levenshtein-0.26.1-cp39-cp39-win32.whl", hash = "sha256:488a945312f2f16460ab61df5b4beb1ea2254c521668fd142ce6298006296c98"}, 310 | {file = "levenshtein-0.26.1-cp39-cp39-win_amd64.whl", hash = "sha256:9f942104adfddd4b336c3997050121328c39479f69de702d7d144abb69ea7ab9"}, 311 | {file = "levenshtein-0.26.1-cp39-cp39-win_arm64.whl", hash = "sha256:c1d8f85b2672939f85086ed75effcf768f6077516a3e299c2ba1f91bc4644c22"}, 312 | {file = "levenshtein-0.26.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:6cf8f1efaf90ca585640c5d418c30b7d66d9ac215cee114593957161f63acde0"}, 313 | {file = "levenshtein-0.26.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d5b2953978b8c158dd5cd93af8216a5cfddbf9de66cf5481c2955f44bb20767a"}, 314 | {file = "levenshtein-0.26.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b952b3732c4631c49917d4b15d78cb4a2aa006c1d5c12e2a23ba8e18a307a055"}, 315 | {file = "levenshtein-0.26.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07227281e12071168e6ae59238918a56d2a0682e529f747b5431664f302c0b42"}, 316 | {file = "levenshtein-0.26.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8191241cd8934feaf4d05d0cc0e5e72877cbb17c53bbf8c92af9f1aedaa247e9"}, 317 | {file = "levenshtein-0.26.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:9e70d7ee157a9b698c73014f6e2b160830e7d2d64d2e342fefc3079af3c356fc"}, 318 | {file = "levenshtein-0.26.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0eb3059f826f6cb0a5bca4a85928070f01e8202e7ccafcba94453470f83e49d4"}, 319 | {file = "levenshtein-0.26.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:6c389e44da12d6fb1d7ba0a709a32a96c9391e9be4160ccb9269f37e040599ee"}, 320 | {file = "levenshtein-0.26.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e9de292f2c51a7d34a0ae23bec05391b8f61f35781cd3e4c6d0533e06250c55"}, 321 | {file = "levenshtein-0.26.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d87215113259efdca8716e53b6d59ab6d6009e119d95d45eccc083148855f33"}, 322 | {file = "levenshtein-0.26.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18f00a3eebf68a82fb651d8d0e810c10bfaa60c555d21dde3ff81350c74fb4c2"}, 323 | {file = "levenshtein-0.26.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b3554c1b59de63d05075577380340c185ff41b028e541c0888fddab3c259a2b4"}, 324 | {file = "levenshtein-0.26.1.tar.gz", hash = "sha256:0d19ba22330d50609b2349021ec3cf7d905c6fe21195a2d0d876a146e7ed2575"}, 325 | ] 326 | 327 | [package.dependencies] 328 | rapidfuzz = ">=3.9.0,<4.0.0" 329 | 330 | [[package]] 331 | name = "opencc-python-reimplemented" 332 | version = "0.1.7" 333 | description = "OpenCC made with Python" 334 | optional = false 335 | python-versions = "*" 336 | files = [ 337 | {file = "opencc-python-reimplemented-0.1.7.tar.gz", hash = "sha256:4f777ea3461a25257a7b876112cfa90bb6acabc6dfb843bf4d11266e43579dee"}, 338 | {file = "opencc_python_reimplemented-0.1.7-py2.py3-none-any.whl", hash = "sha256:41b3b92943c7bed291f448e9c7fad4b577c8c2eae30fcfe5a74edf8818493aa6"}, 339 | ] 340 | 341 | [[package]] 342 | name = "pydantic" 343 | version = "2.7.0" 344 | description = "Data validation using Python type hints" 345 | optional = false 346 | python-versions = ">=3.8" 347 | files = [ 348 | {file = "pydantic-2.7.0-py3-none-any.whl", hash = "sha256:9dee74a271705f14f9a1567671d144a851c675b072736f0a7b2608fd9e495352"}, 349 | {file = "pydantic-2.7.0.tar.gz", hash = "sha256:b5ecdd42262ca2462e2624793551e80911a1e989f462910bb81aef974b4bb383"}, 350 | ] 351 | 352 | [package.dependencies] 353 | annotated-types = ">=0.4.0" 354 | pydantic-core = "2.18.1" 355 | typing-extensions = ">=4.6.1" 356 | 357 | [package.extras] 358 | email = ["email-validator (>=2.0.0)"] 359 | 360 | [[package]] 361 | name = "pydantic-core" 362 | version = "2.18.1" 363 | description = "Core functionality for Pydantic validation and serialization" 364 | optional = false 365 | python-versions = ">=3.8" 366 | files = [ 367 | {file = "pydantic_core-2.18.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ee9cf33e7fe14243f5ca6977658eb7d1042caaa66847daacbd2117adb258b226"}, 368 | {file = "pydantic_core-2.18.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6b7bbb97d82659ac8b37450c60ff2e9f97e4eb0f8a8a3645a5568b9334b08b50"}, 369 | {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df4249b579e75094f7e9bb4bd28231acf55e308bf686b952f43100a5a0be394c"}, 370 | {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d0491006a6ad20507aec2be72e7831a42efc93193d2402018007ff827dc62926"}, 371 | {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ae80f72bb7a3e397ab37b53a2b49c62cc5496412e71bc4f1277620a7ce3f52b"}, 372 | {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:58aca931bef83217fca7a390e0486ae327c4af9c3e941adb75f8772f8eeb03a1"}, 373 | {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1be91ad664fc9245404a789d60cba1e91c26b1454ba136d2a1bf0c2ac0c0505a"}, 374 | {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:667880321e916a8920ef49f5d50e7983792cf59f3b6079f3c9dac2b88a311d17"}, 375 | {file = "pydantic_core-2.18.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f7054fdc556f5421f01e39cbb767d5ec5c1139ea98c3e5b350e02e62201740c7"}, 376 | {file = "pydantic_core-2.18.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:030e4f9516f9947f38179249778709a460a3adb516bf39b5eb9066fcfe43d0e6"}, 377 | {file = "pydantic_core-2.18.1-cp310-none-win32.whl", hash = "sha256:2e91711e36e229978d92642bfc3546333a9127ecebb3f2761372e096395fc649"}, 378 | {file = "pydantic_core-2.18.1-cp310-none-win_amd64.whl", hash = "sha256:9a29726f91c6cb390b3c2338f0df5cd3e216ad7a938762d11c994bb37552edb0"}, 379 | {file = "pydantic_core-2.18.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9ece8a49696669d483d206b4474c367852c44815fca23ac4e48b72b339807f80"}, 380 | {file = "pydantic_core-2.18.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7a5d83efc109ceddb99abd2c1316298ced2adb4570410defe766851a804fcd5b"}, 381 | {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7973c381283783cd1043a8c8f61ea5ce7a3a58b0369f0ee0ee975eaf2f2a1b"}, 382 | {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:54c7375c62190a7845091f521add19b0f026bcf6ae674bdb89f296972272e86d"}, 383 | {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd63cec4e26e790b70544ae5cc48d11b515b09e05fdd5eff12e3195f54b8a586"}, 384 | {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:561cf62c8a3498406495cfc49eee086ed2bb186d08bcc65812b75fda42c38294"}, 385 | {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68717c38a68e37af87c4da20e08f3e27d7e4212e99e96c3d875fbf3f4812abfc"}, 386 | {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d5728e93d28a3c63ee513d9ffbac9c5989de8c76e049dbcb5bfe4b923a9739d"}, 387 | {file = "pydantic_core-2.18.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f0f17814c505f07806e22b28856c59ac80cee7dd0fbb152aed273e116378f519"}, 388 | {file = "pydantic_core-2.18.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d816f44a51ba5175394bc6c7879ca0bd2be560b2c9e9f3411ef3a4cbe644c2e9"}, 389 | {file = "pydantic_core-2.18.1-cp311-none-win32.whl", hash = "sha256:09f03dfc0ef8c22622eaa8608caa4a1e189cfb83ce847045eca34f690895eccb"}, 390 | {file = "pydantic_core-2.18.1-cp311-none-win_amd64.whl", hash = "sha256:27f1009dc292f3b7ca77feb3571c537276b9aad5dd4efb471ac88a8bd09024e9"}, 391 | {file = "pydantic_core-2.18.1-cp311-none-win_arm64.whl", hash = "sha256:48dd883db92e92519201f2b01cafa881e5f7125666141a49ffba8b9facc072b0"}, 392 | {file = "pydantic_core-2.18.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b6b0e4912030c6f28bcb72b9ebe4989d6dc2eebcd2a9cdc35fefc38052dd4fe8"}, 393 | {file = "pydantic_core-2.18.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3202a429fe825b699c57892d4371c74cc3456d8d71b7f35d6028c96dfecad31"}, 394 | {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3982b0a32d0a88b3907e4b0dc36809fda477f0757c59a505d4e9b455f384b8b"}, 395 | {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25595ac311f20e5324d1941909b0d12933f1fd2171075fcff763e90f43e92a0d"}, 396 | {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:14fe73881cf8e4cbdaded8ca0aa671635b597e42447fec7060d0868b52d074e6"}, 397 | {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca976884ce34070799e4dfc6fbd68cb1d181db1eefe4a3a94798ddfb34b8867f"}, 398 | {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:684d840d2c9ec5de9cb397fcb3f36d5ebb6fa0d94734f9886032dd796c1ead06"}, 399 | {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:54764c083bbe0264f0f746cefcded6cb08fbbaaf1ad1d78fb8a4c30cff999a90"}, 400 | {file = "pydantic_core-2.18.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:201713f2f462e5c015b343e86e68bd8a530a4f76609b33d8f0ec65d2b921712a"}, 401 | {file = "pydantic_core-2.18.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fd1a9edb9dd9d79fbeac1ea1f9a8dd527a6113b18d2e9bcc0d541d308dae639b"}, 402 | {file = "pydantic_core-2.18.1-cp312-none-win32.whl", hash = "sha256:d5e6b7155b8197b329dc787356cfd2684c9d6a6b1a197f6bbf45f5555a98d411"}, 403 | {file = "pydantic_core-2.18.1-cp312-none-win_amd64.whl", hash = "sha256:9376d83d686ec62e8b19c0ac3bf8d28d8a5981d0df290196fb6ef24d8a26f0d6"}, 404 | {file = "pydantic_core-2.18.1-cp312-none-win_arm64.whl", hash = "sha256:c562b49c96906b4029b5685075fe1ebd3b5cc2601dfa0b9e16c2c09d6cbce048"}, 405 | {file = "pydantic_core-2.18.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:3e352f0191d99fe617371096845070dee295444979efb8f27ad941227de6ad09"}, 406 | {file = "pydantic_core-2.18.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0295d52b012cbe0d3059b1dba99159c3be55e632aae1999ab74ae2bd86a33d7"}, 407 | {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56823a92075780582d1ffd4489a2e61d56fd3ebb4b40b713d63f96dd92d28144"}, 408 | {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dd3f79e17b56741b5177bcc36307750d50ea0698df6aa82f69c7db32d968c1c2"}, 409 | {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38a5024de321d672a132b1834a66eeb7931959c59964b777e8f32dbe9523f6b1"}, 410 | {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2ce426ee691319d4767748c8e0895cfc56593d725594e415f274059bcf3cb76"}, 411 | {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2adaeea59849ec0939af5c5d476935f2bab4b7f0335b0110f0f069a41024278e"}, 412 | {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9b6431559676a1079eac0f52d6d0721fb8e3c5ba43c37bc537c8c83724031feb"}, 413 | {file = "pydantic_core-2.18.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:85233abb44bc18d16e72dc05bf13848a36f363f83757541f1a97db2f8d58cfd9"}, 414 | {file = "pydantic_core-2.18.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:641a018af4fe48be57a2b3d7a1f0f5dbca07c1d00951d3d7463f0ac9dac66622"}, 415 | {file = "pydantic_core-2.18.1-cp38-none-win32.whl", hash = "sha256:63d7523cd95d2fde0d28dc42968ac731b5bb1e516cc56b93a50ab293f4daeaad"}, 416 | {file = "pydantic_core-2.18.1-cp38-none-win_amd64.whl", hash = "sha256:907a4d7720abfcb1c81619863efd47c8a85d26a257a2dbebdb87c3b847df0278"}, 417 | {file = "pydantic_core-2.18.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:aad17e462f42ddbef5984d70c40bfc4146c322a2da79715932cd8976317054de"}, 418 | {file = "pydantic_core-2.18.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:94b9769ba435b598b547c762184bcfc4783d0d4c7771b04a3b45775c3589ca44"}, 419 | {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80e0e57cc704a52fb1b48f16d5b2c8818da087dbee6f98d9bf19546930dc64b5"}, 420 | {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:76b86e24039c35280ceee6dce7e62945eb93a5175d43689ba98360ab31eebc4a"}, 421 | {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12a05db5013ec0ca4a32cc6433f53faa2a014ec364031408540ba858c2172bb0"}, 422 | {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:250ae39445cb5475e483a36b1061af1bc233de3e9ad0f4f76a71b66231b07f88"}, 423 | {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a32204489259786a923e02990249c65b0f17235073149d0033efcebe80095570"}, 424 | {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6395a4435fa26519fd96fdccb77e9d00ddae9dd6c742309bd0b5610609ad7fb2"}, 425 | {file = "pydantic_core-2.18.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2533ad2883f001efa72f3d0e733fb846710c3af6dcdd544fe5bf14fa5fe2d7db"}, 426 | {file = "pydantic_core-2.18.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b560b72ed4816aee52783c66854d96157fd8175631f01ef58e894cc57c84f0f6"}, 427 | {file = "pydantic_core-2.18.1-cp39-none-win32.whl", hash = "sha256:582cf2cead97c9e382a7f4d3b744cf0ef1a6e815e44d3aa81af3ad98762f5a9b"}, 428 | {file = "pydantic_core-2.18.1-cp39-none-win_amd64.whl", hash = "sha256:ca71d501629d1fa50ea7fa3b08ba884fe10cefc559f5c6c8dfe9036c16e8ae89"}, 429 | {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e178e5b66a06ec5bf51668ec0d4ac8cfb2bdcb553b2c207d58148340efd00143"}, 430 | {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:72722ce529a76a4637a60be18bd789d8fb871e84472490ed7ddff62d5fed620d"}, 431 | {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fe0c1ce5b129455e43f941f7a46f61f3d3861e571f2905d55cdbb8b5c6f5e2c"}, 432 | {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4284c621f06a72ce2cb55f74ea3150113d926a6eb78ab38340c08f770eb9b4d"}, 433 | {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a0c3e718f4e064efde68092d9d974e39572c14e56726ecfaeebbe6544521f47"}, 434 | {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:2027493cc44c23b598cfaf200936110433d9caa84e2c6cf487a83999638a96ac"}, 435 | {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:76909849d1a6bffa5a07742294f3fa1d357dc917cb1fe7b470afbc3a7579d539"}, 436 | {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ee7ccc7fb7e921d767f853b47814c3048c7de536663e82fbc37f5eb0d532224b"}, 437 | {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ee2794111c188548a4547eccc73a6a8527fe2af6cf25e1a4ebda2fd01cdd2e60"}, 438 | {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a139fe9f298dc097349fb4f28c8b81cc7a202dbfba66af0e14be5cfca4ef7ce5"}, 439 | {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d074b07a10c391fc5bbdcb37b2f16f20fcd9e51e10d01652ab298c0d07908ee2"}, 440 | {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c69567ddbac186e8c0aadc1f324a60a564cfe25e43ef2ce81bcc4b8c3abffbae"}, 441 | {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:baf1c7b78cddb5af00971ad5294a4583188bda1495b13760d9f03c9483bb6203"}, 442 | {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:2684a94fdfd1b146ff10689c6e4e815f6a01141781c493b97342cdc5b06f4d5d"}, 443 | {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:73c1bc8a86a5c9e8721a088df234265317692d0b5cd9e86e975ce3bc3db62a59"}, 444 | {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e60defc3c15defb70bb38dd605ff7e0fae5f6c9c7cbfe0ad7868582cb7e844a6"}, 445 | {file = "pydantic_core-2.18.1.tar.gz", hash = "sha256:de9d3e8717560eb05e28739d1b35e4eac2e458553a52a301e51352a7ffc86a35"}, 446 | ] 447 | 448 | [package.dependencies] 449 | typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" 450 | 451 | [[package]] 452 | name = "pymongo" 453 | version = "4.7.0" 454 | description = "Python driver for MongoDB " 455 | optional = false 456 | python-versions = ">=3.7" 457 | files = [ 458 | {file = "pymongo-4.7.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8449b6af19cac09cce9d0834c196b29b72b29e05724f4ea208b3f602fdd47086"}, 459 | {file = "pymongo-4.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:eb00787bed1939ef21ffcb09b3034b193c3c6e9838724e2c05ef881cb2b03a33"}, 460 | {file = "pymongo-4.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8c4cbe5a1258b9f3a49f83781c8b2fb58f39a682779a3c81dc444a609cb15ba"}, 461 | {file = "pymongo-4.7.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12db8e8768bd0d4a433eea3463f05648c3f65f262776c777a0e19e7c55f27a73"}, 462 | {file = "pymongo-4.7.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7be2e57df38fa9b1b6f9ebe5bedd38118b511d3bdf0d9e77158c476542c9153d"}, 463 | {file = "pymongo-4.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b2b49670b32df8cf6650133cf439593f0291228ce971094c62c3a478024c7d1"}, 464 | {file = "pymongo-4.7.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5366f28b2115120611536914540b0d247a89b09bb80bbc78893f246a584165b9"}, 465 | {file = "pymongo-4.7.0-cp310-cp310-win32.whl", hash = "sha256:6c993fff4c110f6de4d76b76af97733efecae83b688cb27d1a3c5431415e3803"}, 466 | {file = "pymongo-4.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:66b490775aa4542e0585ffdff1d0c6c4279536c852334f34a6a9a5c882beafd4"}, 467 | {file = "pymongo-4.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9584be3d20ee26b53c0b1e25ba38196b7f65f594f48211b5ab3fa12b428ec6a9"}, 468 | {file = "pymongo-4.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:db2885773af0c10420e6bb86e84ee780bc3817d45a29ef24d8f6376ae2351eec"}, 469 | {file = "pymongo-4.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8af3de7fea21b1ced0770766ec37a5900a62b45fe4b8f1dfa521226d591dbf66"}, 470 | {file = "pymongo-4.7.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:78b0ba6d60c7f2ac779909ac53383c83584826a304206559599c46a33366622a"}, 471 | {file = "pymongo-4.7.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c82105c91cf95821039aca48350630435e7be18989496b6292aaa8779fa5fb6"}, 472 | {file = "pymongo-4.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44eb2a3adaa0916f2fb6812d4d805956fd376b7fceae3b62f5dfae5e29330786"}, 473 | {file = "pymongo-4.7.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2161278182f3163d15afc3c578097ec20c844ac7180e41134a2a2b5c9ae77b9d"}, 474 | {file = "pymongo-4.7.0-cp311-cp311-win32.whl", hash = "sha256:98cb932ab936d702e28cf8da1982dcf5e7cfc35736b7516c0df7aaa46c63e0e2"}, 475 | {file = "pymongo-4.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:3f1d57edc2a4bd96ae5741e4d83d3d54695174fd9068c88c89e12f7262be4de4"}, 476 | {file = "pymongo-4.7.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:36d05d1ff861dda7c9e84d9848ea6f2b5d2245ae1093865d14597de29ba95b37"}, 477 | {file = "pymongo-4.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0ad32bb7e5f889fc5994001f7bb8bf945b52e10e428a563dfce0661961eae224"}, 478 | {file = "pymongo-4.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8885f825203fa14ce863b462effcd93e07bfc6e582b3b93cfcde5ae42ccc9923"}, 479 | {file = "pymongo-4.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cf4187bc91bd10e29857775651101d0ec26e580d6b46a8c5cbf93928358ac3c3"}, 480 | {file = "pymongo-4.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aebd99aaea95c48fba24bc3d7b72e7bf70e06df4c647de938c4d3dce2fd25a1c"}, 481 | {file = "pymongo-4.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:52facf98dcba501b2ae337d21f065cc30ceb25b97ce8f17878c1ae9d781f7f26"}, 482 | {file = "pymongo-4.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f807dadc8030a5b55915f78fac25393af47bee8ccb62b5a6c5c622274ff4adf1"}, 483 | {file = "pymongo-4.7.0-cp312-cp312-win32.whl", hash = "sha256:7a3c9218c5bc4384fa079f41b744473ada6a5f549fc11a4ae0fe7287746acc04"}, 484 | {file = "pymongo-4.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:97ccb53d9310d5963df1a4543f1cfabdfd914638a5c8438234f6ed70d9303222"}, 485 | {file = "pymongo-4.7.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:41d647fdaedba2f5b5c92299575814c164af44696fed3a4fc0d0df4f29eabcb2"}, 486 | {file = "pymongo-4.7.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f53cf5bf65dda3fc1b5ec5f760233a41b282db3157d135e9272101f0492825f"}, 487 | {file = "pymongo-4.7.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6673daf8fc23a96934cbb7a3626dcfa3ae21510492047e6003dfe3f26e62886b"}, 488 | {file = "pymongo-4.7.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d7fc4891f5482e42c35be6931e9cf6b635d7d95056ff45b56bae5f0384830f"}, 489 | {file = "pymongo-4.7.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8fc34b4d92d5d8671be6b728076f275ccfe8495c7e6b74750b634190e17ede68"}, 490 | {file = "pymongo-4.7.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4d584b249c79acae86729d216a5185d833a90477d566f094b47d39620493870"}, 491 | {file = "pymongo-4.7.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b3784063fa43a0019b6a73e1e63b7fcbff4ded4d0ec5442202aa3caa12be9ef8"}, 492 | {file = "pymongo-4.7.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:bd514420eb09bba897016b7f1a2c17f9f3f1a7bc320c0505c59c3225e024b51c"}, 493 | {file = "pymongo-4.7.0-cp37-cp37m-win32.whl", hash = "sha256:31ed6426fc68d500e2f27346e4ce3cc4fd3438adc99a3aaae41578c8a3b1f467"}, 494 | {file = "pymongo-4.7.0-cp37-cp37m-win_amd64.whl", hash = "sha256:69865d5739822c277d075a50601077767706e9f0862562e116ef13969d09fc9e"}, 495 | {file = "pymongo-4.7.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fbad9290b32ff1fc38bcac42699b8ea6a7c49cab081ba54761f3109bc5703248"}, 496 | {file = "pymongo-4.7.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5307bfda4f39d9f1b3df9ab96b22d44bca458e44286ce806d716a2ffed2c46da"}, 497 | {file = "pymongo-4.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f1a2ee91a97904cd21bddfce58d1868b6ea67b99bdd81dfe9cebfe35d0d751b"}, 498 | {file = "pymongo-4.7.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cefa4e9be8bffa80de1bd70ae5ee79973e5db10befabcb25289fb52231a0dcff"}, 499 | {file = "pymongo-4.7.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7b8bd94c63cef8f5bfbb29568934213d9730381db94f467f979c9e5aaa27130"}, 500 | {file = "pymongo-4.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8ff95728965e633591862bfc197018d25bc349b5cd8da080acb52a2d17a6e95"}, 501 | {file = "pymongo-4.7.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07265c14aa40259771255dbf59f9160a3690e82522ed02ab07e0e5c3045bad5b"}, 502 | {file = "pymongo-4.7.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7214b7599a9f2e4ed01ecdc034cbe8f2926954bfdad9277390dd1bccf9fd6553"}, 503 | {file = "pymongo-4.7.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1864f224b1793ef8698f779a7808e2b8c4a8f26bd0612c578412f62d6e99be46"}, 504 | {file = "pymongo-4.7.0-cp38-cp38-win32.whl", hash = "sha256:2bfaf7a7eb6a91dfe58f384be16fd895e040d17236ee82217d1be9fc56869dc8"}, 505 | {file = "pymongo-4.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:2545c2be5ed25b1e9419cde4269d6a744076f80eaf86695d2dd888bddac29dd7"}, 506 | {file = "pymongo-4.7.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e7a00cee5b7a4160eed9cb43a2539037f572f01ed7261c2d1b4f7217060dba61"}, 507 | {file = "pymongo-4.7.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c85f9824a7e90bf49aeed953e63942bff499116312e555ccb51bd3bf7ebe9342"}, 508 | {file = "pymongo-4.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:030dba8b3e1cb29f874739247e1eba1d01118a11583c62145c707a6e725d416a"}, 509 | {file = "pymongo-4.7.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0dc2e365b14cb768898429e4331c58587be7143ad230858d19e8dd032f0adadc"}, 510 | {file = "pymongo-4.7.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:50865177882df0badc879c5b20f20cdc9c73494f0e2b19a40534af9c90018b4e"}, 511 | {file = "pymongo-4.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c4b0d8393fb991b3dd934e891e064ae804e9267fce9d01d2f16b25e20564e3d"}, 512 | {file = "pymongo-4.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7530ea1da6fe0bb1960390ba6523483dfdb2a6239d0e8058b1505cc2a79c75f8"}, 513 | {file = "pymongo-4.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:36536a41f08180adc647a21ca12dba859a23d841d28ca8fd3976c8781ed8290b"}, 514 | {file = "pymongo-4.7.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b3a49be20a403d86eb1c559350fb56f28a859041756159eeb00e89f59b6e1288"}, 515 | {file = "pymongo-4.7.0-cp39-cp39-win32.whl", hash = "sha256:a292ee4babdd632531effaac95da5f211caafa6a039c097a1b18a4dc0d52488b"}, 516 | {file = "pymongo-4.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:cb809ff53ab3110ebc43a5e47aa945bb97e4ed9bc9beb07f935f5c83d9077e67"}, 517 | {file = "pymongo-4.7.0.tar.gz", hash = "sha256:431093ef808944a14698b2a719b739fa7721778769e80c08423568991aa29c42"}, 518 | ] 519 | 520 | [package.dependencies] 521 | dnspython = ">=1.16.0,<3.0.0" 522 | 523 | [package.extras] 524 | aws = ["pymongo-auth-aws (>=1.1.0,<2.0.0)"] 525 | encryption = ["certifi", "pymongo-auth-aws (>=1.1.0,<2.0.0)", "pymongocrypt (>=1.6.0,<2.0.0)"] 526 | gssapi = ["pykerberos", "winkerberos (>=0.5.0)"] 527 | ocsp = ["certifi", "cryptography (>=2.5)", "pyopenssl (>=17.2.0)", "requests (<3.0.0)", "service-identity (>=18.1.0)"] 528 | snappy = ["python-snappy"] 529 | test = ["pytest (>=7)"] 530 | zstd = ["zstandard"] 531 | 532 | [[package]] 533 | name = "python-dotenv" 534 | version = "1.0.1" 535 | description = "Read key-value pairs from a .env file and set them as environment variables" 536 | optional = false 537 | python-versions = ">=3.8" 538 | files = [ 539 | {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, 540 | {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, 541 | ] 542 | 543 | [package.extras] 544 | cli = ["click (>=5.0)"] 545 | 546 | [[package]] 547 | name = "python-levenshtein" 548 | version = "0.26.1" 549 | description = "Python extension for computing string edit distances and similarities." 550 | optional = false 551 | python-versions = ">=3.9" 552 | files = [ 553 | {file = "python_Levenshtein-0.26.1-py3-none-any.whl", hash = "sha256:8ef5e529dd640fb00f05ee62d998d2ee862f19566b641ace775d5ae16167b2ef"}, 554 | {file = "python_levenshtein-0.26.1.tar.gz", hash = "sha256:24ba578e28058ebb4afa2700057e1678d7adf27e43cd1f17700c09a9009d5d3a"}, 555 | ] 556 | 557 | [package.dependencies] 558 | Levenshtein = "0.26.1" 559 | 560 | [[package]] 561 | name = "rapidfuzz" 562 | version = "3.10.1" 563 | description = "rapid fuzzy string matching" 564 | optional = false 565 | python-versions = ">=3.9" 566 | files = [ 567 | {file = "rapidfuzz-3.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f17d9f21bf2f2f785d74f7b0d407805468b4c173fa3e52c86ec94436b338e74a"}, 568 | {file = "rapidfuzz-3.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b31f358a70efc143909fb3d75ac6cd3c139cd41339aa8f2a3a0ead8315731f2b"}, 569 | {file = "rapidfuzz-3.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f4f43f2204b56a61448ec2dd061e26fd344c404da99fb19f3458200c5874ba2"}, 570 | {file = "rapidfuzz-3.10.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9d81bf186a453a2757472133b24915768abc7c3964194406ed93e170e16c21cb"}, 571 | {file = "rapidfuzz-3.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3611c8f45379a12063d70075c75134f2a8bd2e4e9b8a7995112ddae95ca1c982"}, 572 | {file = "rapidfuzz-3.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3c3b537b97ac30da4b73930fa8a4fe2f79c6d1c10ad535c5c09726612cd6bed9"}, 573 | {file = "rapidfuzz-3.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:231ef1ec9cf7b59809ce3301006500b9d564ddb324635f4ea8f16b3e2a1780da"}, 574 | {file = "rapidfuzz-3.10.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed4f3adc1294834955b7e74edd3c6bd1aad5831c007f2d91ea839e76461a5879"}, 575 | {file = "rapidfuzz-3.10.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:7b6015da2e707bf632a71772a2dbf0703cff6525732c005ad24987fe86e8ec32"}, 576 | {file = "rapidfuzz-3.10.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:1b35a118d61d6f008e8e3fb3a77674d10806a8972c7b8be433d6598df4d60b01"}, 577 | {file = "rapidfuzz-3.10.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:bc308d79a7e877226f36bdf4e149e3ed398d8277c140be5c1fd892ec41739e6d"}, 578 | {file = "rapidfuzz-3.10.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f017dbfecc172e2d0c37cf9e3d519179d71a7f16094b57430dffc496a098aa17"}, 579 | {file = "rapidfuzz-3.10.1-cp310-cp310-win32.whl", hash = "sha256:36c0e1483e21f918d0f2f26799fe5ac91c7b0c34220b73007301c4f831a9c4c7"}, 580 | {file = "rapidfuzz-3.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:10746c1d4c8cd8881c28a87fd7ba0c9c102346dfe7ff1b0d021cdf093e9adbff"}, 581 | {file = "rapidfuzz-3.10.1-cp310-cp310-win_arm64.whl", hash = "sha256:dfa64b89dcb906835e275187569e51aa9d546a444489e97aaf2cc84011565fbe"}, 582 | {file = "rapidfuzz-3.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:92958ae075c87fef393f835ed02d4fe8d5ee2059a0934c6c447ea3417dfbf0e8"}, 583 | {file = "rapidfuzz-3.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ba7521e072c53e33c384e78615d0718e645cab3c366ecd3cc8cb732befd94967"}, 584 | {file = "rapidfuzz-3.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00d02cbd75d283c287471b5b3738b3e05c9096150f93f2d2dfa10b3d700f2db9"}, 585 | {file = "rapidfuzz-3.10.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:efa1582a397da038e2f2576c9cd49b842f56fde37d84a6b0200ffebc08d82350"}, 586 | {file = "rapidfuzz-3.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f12912acee1f506f974f58de9fdc2e62eea5667377a7e9156de53241c05fdba8"}, 587 | {file = "rapidfuzz-3.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666d5d8b17becc3f53447bcb2b6b33ce6c2df78792495d1fa82b2924cd48701a"}, 588 | {file = "rapidfuzz-3.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26f71582c0d62445067ee338ddad99b655a8f4e4ed517a90dcbfbb7d19310474"}, 589 | {file = "rapidfuzz-3.10.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8a2ef08b27167bcff230ffbfeedd4c4fa6353563d6aaa015d725dd3632fc3de7"}, 590 | {file = "rapidfuzz-3.10.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:365e4fc1a2b95082c890f5e98489b894e6bf8c338c6ac89bb6523c2ca6e9f086"}, 591 | {file = "rapidfuzz-3.10.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:1996feb7a61609fa842e6b5e0c549983222ffdedaf29644cc67e479902846dfe"}, 592 | {file = "rapidfuzz-3.10.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:cf654702f144beaa093103841a2ea6910d617d0bb3fccb1d1fd63c54dde2cd49"}, 593 | {file = "rapidfuzz-3.10.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ec108bf25de674781d0a9a935030ba090c78d49def3d60f8724f3fc1e8e75024"}, 594 | {file = "rapidfuzz-3.10.1-cp311-cp311-win32.whl", hash = "sha256:031f8b367e5d92f7a1e27f7322012f3c321c3110137b43cc3bf678505583ef48"}, 595 | {file = "rapidfuzz-3.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:f98f36c6a1bb9a6c8bbec99ad87c8c0e364f34761739b5ea9adf7b48129ae8cf"}, 596 | {file = "rapidfuzz-3.10.1-cp311-cp311-win_arm64.whl", hash = "sha256:f1da2028cb4e41be55ee797a82d6c1cf589442504244249dfeb32efc608edee7"}, 597 | {file = "rapidfuzz-3.10.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1340b56340896bede246f612b6ecf685f661a56aabef3d2512481bfe23ac5835"}, 598 | {file = "rapidfuzz-3.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2316515169b7b5a453f0ce3adbc46c42aa332cae9f2edb668e24d1fc92b2f2bb"}, 599 | {file = "rapidfuzz-3.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e06fe6a12241ec1b72c0566c6b28cda714d61965d86569595ad24793d1ab259"}, 600 | {file = "rapidfuzz-3.10.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d99c1cd9443b19164ec185a7d752f4b4db19c066c136f028991a480720472e23"}, 601 | {file = "rapidfuzz-3.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1d9aa156ed52d3446388ba4c2f335e312191d1ca9d1f5762ee983cf23e4ecf6"}, 602 | {file = "rapidfuzz-3.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:54bcf4efaaee8e015822be0c2c28214815f4f6b4f70d8362cfecbd58a71188ac"}, 603 | {file = "rapidfuzz-3.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0c955e32afdbfdf6e9ee663d24afb25210152d98c26d22d399712d29a9b976b"}, 604 | {file = "rapidfuzz-3.10.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:191633722203f5b7717efcb73a14f76f3b124877d0608c070b827c5226d0b972"}, 605 | {file = "rapidfuzz-3.10.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:195baad28057ec9609e40385991004e470af9ef87401e24ebe72c064431524ab"}, 606 | {file = "rapidfuzz-3.10.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0fff4a6b87c07366662b62ae994ffbeadc472e72f725923f94b72a3db49f4671"}, 607 | {file = "rapidfuzz-3.10.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4ffed25f9fdc0b287f30a98467493d1e1ce5b583f6317f70ec0263b3c97dbba6"}, 608 | {file = "rapidfuzz-3.10.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d02cf8e5af89a9ac8f53c438ddff6d773f62c25c6619b29db96f4aae248177c0"}, 609 | {file = "rapidfuzz-3.10.1-cp312-cp312-win32.whl", hash = "sha256:f3bb81d4fe6a5d20650f8c0afcc8f6e1941f6fecdb434f11b874c42467baded0"}, 610 | {file = "rapidfuzz-3.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:aaf83e9170cb1338922ae42d320699dccbbdca8ffed07faeb0b9257822c26e24"}, 611 | {file = "rapidfuzz-3.10.1-cp312-cp312-win_arm64.whl", hash = "sha256:c5da802a0d085ad81b0f62828fb55557996c497b2d0b551bbdfeafd6d447892f"}, 612 | {file = "rapidfuzz-3.10.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fc22d69a1c9cccd560a5c434c0371b2df0f47c309c635a01a913e03bbf183710"}, 613 | {file = "rapidfuzz-3.10.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38b0dac2c8e057562b8f0d8ae5b663d2d6a28c5ab624de5b73cef9abb6129a24"}, 614 | {file = "rapidfuzz-3.10.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fde3bbb14e92ce8fcb5c2edfff72e474d0080cadda1c97785bf4822f037a309"}, 615 | {file = "rapidfuzz-3.10.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9141fb0592e55f98fe9ac0f3ce883199b9c13e262e0bf40c5b18cdf926109d16"}, 616 | {file = "rapidfuzz-3.10.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:237bec5dd1bfc9b40bbd786cd27949ef0c0eb5fab5eb491904c6b5df59d39d3c"}, 617 | {file = "rapidfuzz-3.10.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18123168cba156ab5794ea6de66db50f21bb3c66ae748d03316e71b27d907b95"}, 618 | {file = "rapidfuzz-3.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b75fe506c8e02769cc47f5ab21ce3e09b6211d3edaa8f8f27331cb6988779be"}, 619 | {file = "rapidfuzz-3.10.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9da82aa4b46973aaf9e03bb4c3d6977004648c8638febfc0f9d237e865761270"}, 620 | {file = "rapidfuzz-3.10.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c34c022d5ad564f1a5a57a4a89793bd70d7bad428150fb8ff2760b223407cdcf"}, 621 | {file = "rapidfuzz-3.10.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:1e96c84d6c2a0ca94e15acb5399118fff669f4306beb98a6d8ec6f5dccab4412"}, 622 | {file = "rapidfuzz-3.10.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e8e154b84a311263e1aca86818c962e1fa9eefdd643d1d5d197fcd2738f88cb9"}, 623 | {file = "rapidfuzz-3.10.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:335fee93188f8cd585552bb8057228ce0111bd227fa81bfd40b7df6b75def8ab"}, 624 | {file = "rapidfuzz-3.10.1-cp313-cp313-win32.whl", hash = "sha256:6729b856166a9e95c278410f73683957ea6100c8a9d0a8dbe434c49663689255"}, 625 | {file = "rapidfuzz-3.10.1-cp313-cp313-win_amd64.whl", hash = "sha256:0e06d99ad1ad97cb2ef7f51ec6b1fedd74a3a700e4949353871cf331d07b382a"}, 626 | {file = "rapidfuzz-3.10.1-cp313-cp313-win_arm64.whl", hash = "sha256:8d1b7082104d596a3eb012e0549b2634ed15015b569f48879701e9d8db959dbb"}, 627 | {file = "rapidfuzz-3.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:779027d3307e1a2b1dc0c03c34df87a470a368a1a0840a9d2908baf2d4067956"}, 628 | {file = "rapidfuzz-3.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:440b5608ab12650d0390128d6858bc839ae77ffe5edf0b33a1551f2fa9860651"}, 629 | {file = "rapidfuzz-3.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82cac41a411e07a6f3dc80dfbd33f6be70ea0abd72e99c59310819d09f07d945"}, 630 | {file = "rapidfuzz-3.10.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:958473c9f0bca250590200fd520b75be0dbdbc4a7327dc87a55b6d7dc8d68552"}, 631 | {file = "rapidfuzz-3.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9ef60dfa73749ef91cb6073be1a3e135f4846ec809cc115f3cbfc6fe283a5584"}, 632 | {file = "rapidfuzz-3.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7fbac18f2c19fc983838a60611e67e3262e36859994c26f2ee85bb268de2355"}, 633 | {file = "rapidfuzz-3.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a0d519ff39db887cd73f4e297922786d548f5c05d6b51f4e6754f452a7f4296"}, 634 | {file = "rapidfuzz-3.10.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bebb7bc6aeb91cc57e4881b222484c26759ca865794187217c9dcea6c33adae6"}, 635 | {file = "rapidfuzz-3.10.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:fe07f8b9c3bb5c5ad1d2c66884253e03800f4189a60eb6acd6119ebaf3eb9894"}, 636 | {file = "rapidfuzz-3.10.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:bfa48a4a2d45a41457f0840c48e579db157a927f4e97acf6e20df8fc521c79de"}, 637 | {file = "rapidfuzz-3.10.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2cf44d01bfe8ee605b7eaeecbc2b9ca64fc55765f17b304b40ed8995f69d7716"}, 638 | {file = "rapidfuzz-3.10.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e6bbca9246d9eedaa1c84e04a7f555493ba324d52ae4d9f3d9ddd1b740dcd87"}, 639 | {file = "rapidfuzz-3.10.1-cp39-cp39-win32.whl", hash = "sha256:567f88180f2c1423b4fe3f3ad6e6310fc97b85bdba574801548597287fc07028"}, 640 | {file = "rapidfuzz-3.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:6b2cd7c29d6ecdf0b780deb587198f13213ac01c430ada6913452fd0c40190fc"}, 641 | {file = "rapidfuzz-3.10.1-cp39-cp39-win_arm64.whl", hash = "sha256:9f912d459e46607ce276128f52bea21ebc3e9a5ccf4cccfef30dd5bddcf47be8"}, 642 | {file = "rapidfuzz-3.10.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ac4452f182243cfab30ba4668ef2de101effaedc30f9faabb06a095a8c90fd16"}, 643 | {file = "rapidfuzz-3.10.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:565c2bd4f7d23c32834652b27b51dd711814ab614b4e12add8476be4e20d1cf5"}, 644 | {file = "rapidfuzz-3.10.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:187d9747149321607be4ccd6f9f366730078bed806178ec3eeb31d05545e9e8f"}, 645 | {file = "rapidfuzz-3.10.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:616290fb9a8fa87e48cb0326d26f98d4e29f17c3b762c2d586f2b35c1fd2034b"}, 646 | {file = "rapidfuzz-3.10.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:073a5b107e17ebd264198b78614c0206fa438cce749692af5bc5f8f484883f50"}, 647 | {file = "rapidfuzz-3.10.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:39c4983e2e2ccb9732f3ac7d81617088822f4a12291d416b09b8a1eadebb3e29"}, 648 | {file = "rapidfuzz-3.10.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ac7adee6bcf0c6fee495d877edad1540a7e0f5fc208da03ccb64734b43522d7a"}, 649 | {file = "rapidfuzz-3.10.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:425f4ac80b22153d391ee3f94bc854668a0c6c129f05cf2eaf5ee74474ddb69e"}, 650 | {file = "rapidfuzz-3.10.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65a2fa13e8a219f9b5dcb9e74abe3ced5838a7327e629f426d333dfc8c5a6e66"}, 651 | {file = "rapidfuzz-3.10.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:75561f3df9a906aaa23787e9992b228b1ab69007932dc42070f747103e177ba8"}, 652 | {file = "rapidfuzz-3.10.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:edd062490537e97ca125bc6c7f2b7331c2b73d21dc304615afe61ad1691e15d5"}, 653 | {file = "rapidfuzz-3.10.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cfcc8feccf63245a22dfdd16e222f1a39771a44b870beb748117a0e09cbb4a62"}, 654 | {file = "rapidfuzz-3.10.1.tar.gz", hash = "sha256:5a15546d847a915b3f42dc79ef9b0c78b998b4e2c53b252e7166284066585979"}, 655 | ] 656 | 657 | [package.extras] 658 | all = ["numpy"] 659 | 660 | [[package]] 661 | name = "requests" 662 | version = "2.31.0" 663 | description = "Python HTTP for Humans." 664 | optional = false 665 | python-versions = ">=3.7" 666 | files = [ 667 | {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, 668 | {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, 669 | ] 670 | 671 | [package.dependencies] 672 | certifi = ">=2017.4.17" 673 | charset-normalizer = ">=2,<4" 674 | idna = ">=2.5,<4" 675 | urllib3 = ">=1.21.1,<3" 676 | 677 | [package.extras] 678 | socks = ["PySocks (>=1.5.6,!=1.5.7)"] 679 | use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] 680 | 681 | [[package]] 682 | name = "sniffio" 683 | version = "1.3.1" 684 | description = "Sniff out which async library your code is running under" 685 | optional = false 686 | python-versions = ">=3.7" 687 | files = [ 688 | {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, 689 | {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, 690 | ] 691 | 692 | [[package]] 693 | name = "starlette" 694 | version = "0.37.2" 695 | description = "The little ASGI library that shines." 696 | optional = false 697 | python-versions = ">=3.8" 698 | files = [ 699 | {file = "starlette-0.37.2-py3-none-any.whl", hash = "sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee"}, 700 | {file = "starlette-0.37.2.tar.gz", hash = "sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823"}, 701 | ] 702 | 703 | [package.dependencies] 704 | anyio = ">=3.4.0,<5" 705 | 706 | [package.extras] 707 | full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.7)", "pyyaml"] 708 | 709 | [[package]] 710 | name = "typing-extensions" 711 | version = "4.11.0" 712 | description = "Backported and Experimental Type Hints for Python 3.8+" 713 | optional = false 714 | python-versions = ">=3.8" 715 | files = [ 716 | {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, 717 | {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, 718 | ] 719 | 720 | [[package]] 721 | name = "urllib3" 722 | version = "2.2.1" 723 | description = "HTTP library with thread-safe connection pooling, file post, and more." 724 | optional = false 725 | python-versions = ">=3.8" 726 | files = [ 727 | {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, 728 | {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, 729 | ] 730 | 731 | [package.extras] 732 | brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] 733 | h2 = ["h2 (>=4,<5)"] 734 | socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] 735 | zstd = ["zstandard (>=0.18.0)"] 736 | 737 | [[package]] 738 | name = "uvicorn" 739 | version = "0.29.0" 740 | description = "The lightning-fast ASGI server." 741 | optional = false 742 | python-versions = ">=3.8" 743 | files = [ 744 | {file = "uvicorn-0.29.0-py3-none-any.whl", hash = "sha256:2c2aac7ff4f4365c206fd773a39bf4ebd1047c238f8b8268ad996829323473de"}, 745 | {file = "uvicorn-0.29.0.tar.gz", hash = "sha256:6a69214c0b6a087462412670b3ef21224fa48cae0e452b5883e8e8bdfdd11dd0"}, 746 | ] 747 | 748 | [package.dependencies] 749 | click = ">=7.0" 750 | h11 = ">=0.8" 751 | 752 | [package.extras] 753 | standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] 754 | 755 | [metadata] 756 | lock-version = "2.0" 757 | python-versions = "^3.12" 758 | content-hash = "cea7d3356ec49ef491621a547832056d920428786ef9e00acc0a7e89e199d862" 759 | --------------------------------------------------------------------------------