mirror of
https://github.com/xuthus83/LittlePaimon.git
synced 2024-10-21 16:27:15 +08:00
Merge branch 'Bot' of https://github.com/CMHopeSunshine/LittlePaimon into Bot
This commit is contained in:
commit
3c7db17a9d
@ -50,6 +50,7 @@ class ConfigModel(BaseModel):
|
||||
admin_theme: Literal['default', 'antd', 'ang', 'dark'] = Field('default', alias='Web端主题')
|
||||
|
||||
command_alias_enable: bool = Field(True, alias='启用命令别名')
|
||||
browser_type: Literal['chromium', 'firefox', 'webkit'] = Field('firefox', alias='浏览器内核')
|
||||
|
||||
# 早报60s
|
||||
morning_news: str = Field('https://api.vvhan.com/api/60s', alias='早报60s')
|
||||
|
@ -1,9 +1,7 @@
|
||||
from os import getcwd
|
||||
|
||||
import jinja2
|
||||
from .event import *
|
||||
from datetime import datetime, timedelta
|
||||
from LittlePaimon.utils.brower import get_new_page
|
||||
from LittlePaimon.utils.browser import get_new_page
|
||||
|
||||
body = []
|
||||
weeks = []
|
||||
@ -48,10 +46,10 @@ async def generate_day_schedule(server='cn'):
|
||||
'online': f'{datetime.strftime(event["start"], "%m-%d")} ~ {datetime.strftime(event["end"], "%m-%d")}',
|
||||
'color': event['color'], 'banner': event['banner']})
|
||||
|
||||
content = await template.render_async(body=body, css_path=template_path, week=weeks)
|
||||
content = await template.render_async(body=body, week=weeks)
|
||||
|
||||
async with get_new_page(viewport={'width': 600, 'height': 10}) as page:
|
||||
await page.goto(f'file://{getcwd()}')
|
||||
await page.goto(f'file://{template_path}/calendar.html')
|
||||
await page.set_content(content, wait_until='networkidle')
|
||||
await page.wait_for_timeout(0.2)
|
||||
return await page.screenshot(full_page=True)
|
||||
|
@ -4,9 +4,9 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>原神日历</title>
|
||||
<link rel="stylesheet" href="{{ css_path }}/iview.css" />
|
||||
<link rel="stylesheet" href="{{ css_path }}/index.css" />
|
||||
<link rel="stylesheet" href="{{ css_path }}/normalize.css">
|
||||
<link rel="stylesheet" href="iview.css" />
|
||||
<link rel="stylesheet" href="index.css" />
|
||||
<link rel="stylesheet" href="normalize.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
@ -4,7 +4,7 @@ from nonebot.adapters.onebot.v11 import MessageEvent, MessageSegment
|
||||
from nonebot.plugin import PluginMetadata
|
||||
|
||||
from LittlePaimon.utils import logger
|
||||
from LittlePaimon.utils.brower import screenshot
|
||||
from LittlePaimon.utils.browser import screenshot
|
||||
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
name='米游社',
|
||||
|
@ -6,7 +6,7 @@ from nonebot.rule import Rule
|
||||
|
||||
from LittlePaimon import SUPERUSERS
|
||||
from LittlePaimon.config import config
|
||||
from LittlePaimon.utils.brower import screenshot
|
||||
from LittlePaimon.utils.browser import screenshot
|
||||
|
||||
|
||||
async def permission_check(event: MessageEvent) -> bool:
|
||||
|
@ -6,9 +6,11 @@ from playwright.async_api import Page, Browser, Playwright, async_playwright, Er
|
||||
|
||||
from . import DRIVER
|
||||
from .logger import logger
|
||||
from LittlePaimon.config import config as bot_config
|
||||
|
||||
_playwright: Optional[Playwright] = None
|
||||
_browser: Optional[Browser] = None
|
||||
_browser_type = bot_config.browser_type
|
||||
|
||||
|
||||
async def init(**kwargs) -> Browser:
|
||||
@ -27,7 +29,13 @@ async def init(**kwargs) -> Browser:
|
||||
|
||||
async def launch_browser(**kwargs) -> Browser:
|
||||
assert _playwright is not None, "Playwright is not initialized"
|
||||
return await _playwright.chromium.launch(**kwargs)
|
||||
|
||||
if _browser_type == 'firefox':
|
||||
return await _playwright.firefox.launch(**kwargs)
|
||||
elif _browser_type == 'chromium':
|
||||
return await _playwright.chromium.launch(**kwargs)
|
||||
elif _browser_type == 'webkit':
|
||||
return await _playwright.webkit.launch(**kwargs)
|
||||
|
||||
|
||||
async def get_browser(**kwargs) -> Browser:
|
||||
@ -40,8 +48,8 @@ async def install_browser():
|
||||
|
||||
from playwright.__main__ import main
|
||||
|
||||
logger.info('Playwright', '正在安装 chromium')
|
||||
sys.argv = ["", "install", "chromium"]
|
||||
logger.info('Playwright', f'正在安装 {_browser_type}')
|
||||
sys.argv = ["", "install", f"{_browser_type}"]
|
||||
with suppress(SystemExit):
|
||||
logger.info('Playwright', '正在安装依赖')
|
||||
os.system("playwright install-deps")
|
@ -6,7 +6,7 @@ from pathlib import Path
|
||||
from ssl import SSLCertVerificationError
|
||||
from typing import Union
|
||||
|
||||
from ruamel import yaml
|
||||
from ruamel.yaml import YAML
|
||||
|
||||
from .requests import aiorequests
|
||||
|
||||
@ -71,8 +71,8 @@ def load_yaml(path: Union[Path, str], encoding: str = 'utf-8'):
|
||||
"""
|
||||
if isinstance(path, str):
|
||||
path = Path(path)
|
||||
return yaml.load(path.read_text(encoding=encoding),
|
||||
Loader=yaml.Loader) if path.exists() else {}
|
||||
yaml=YAML(typ='safe')
|
||||
return yaml.load(path.read_text(encoding=encoding)) if path.exists() else {}
|
||||
|
||||
|
||||
def save_yaml(data: dict, path: Union[Path, str] = None, encoding: str = 'utf-8'):
|
||||
@ -87,9 +87,7 @@ def save_yaml(data: dict, path: Union[Path, str] = None, encoding: str = 'utf-8'
|
||||
path = Path(path)
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
with path.open('w', encoding=encoding) as f:
|
||||
yaml=YAML(typ='safe')
|
||||
yaml.dump(
|
||||
data,
|
||||
f,
|
||||
indent=2,
|
||||
Dumper=yaml.RoundTripDumper,
|
||||
allow_unicode=True)
|
||||
f)
|
||||
|
@ -8,13 +8,13 @@ from .api import BaseApiRouter
|
||||
from .pages import admin_app, login_page, bind_cookie_page, blank_page
|
||||
|
||||
|
||||
requestAdaptor = '''
|
||||
requestAdaptor = """
|
||||
requestAdaptor(api) {
|
||||
api.headers["token"] = localStorage.getItem("token");
|
||||
return api;
|
||||
},
|
||||
'''
|
||||
responseAdaptor = '''
|
||||
"""
|
||||
responseAdaptor = """
|
||||
responseAdaptor(api, payload, query, request, response) {
|
||||
if (response.data.detail == '登录验证失败或已失效,请重新登录') {
|
||||
window.location.href = '/LittlePaimon/login'
|
||||
@ -24,9 +24,10 @@ responseAdaptor(api, payload, query, request, response) {
|
||||
}
|
||||
return payload
|
||||
},
|
||||
'''
|
||||
"""
|
||||
|
||||
icon_path = 'https://s1.ax1x.com/2023/02/05/pS62DJK.png'
|
||||
icon_path = "https://s1.ax1x.com/2023/02/05/pS62DJK.png"
|
||||
cdn = "https://npm.onmicrosoft.cn"
|
||||
|
||||
|
||||
@DRIVER.on_startup
|
||||
@ -34,41 +35,44 @@ def init_web():
|
||||
app: FastAPI = nonebot.get_app()
|
||||
app.include_router(BaseApiRouter)
|
||||
logger.info(
|
||||
'Web UI',
|
||||
f'<g>启用成功</g>,默认地址为<m>http://127.0.0.1:{DRIVER.config.port}/LittlePaimon/login</m>',
|
||||
"Web UI",
|
||||
f"<g>启用成功</g>,默认地址为<m>http://127.0.0.1:{DRIVER.config.port}/LittlePaimon/login</m>",
|
||||
)
|
||||
|
||||
@app.get('/LittlePaimon/admin', response_class=HTMLResponse)
|
||||
@app.get("/LittlePaimon/admin", response_class=HTMLResponse)
|
||||
async def admin():
|
||||
if config.admin_enable:
|
||||
return admin_app.render(
|
||||
site_title='LittlePaimon 后台管理',
|
||||
site_title="LittlePaimon 后台管理",
|
||||
site_icon=icon_path,
|
||||
theme=config.admin_theme,
|
||||
cdn=cdn,
|
||||
requestAdaptor=requestAdaptor,
|
||||
responseAdaptor=responseAdaptor,
|
||||
)
|
||||
else:
|
||||
return blank_page.render(site_title='LittlePaimon', site_icon=icon_path)
|
||||
return blank_page.render(site_title="LittlePaimon", site_icon=icon_path)
|
||||
|
||||
@app.get('/LittlePaimon/login', response_class=HTMLResponse)
|
||||
@app.get("/LittlePaimon/login", response_class=HTMLResponse)
|
||||
async def login():
|
||||
if config.admin_enable:
|
||||
return login_page.render(
|
||||
site_title='登录 | LittlePaimon 后台管理',
|
||||
site_title="登录 | LittlePaimon 后台管理",
|
||||
cdn=cdn,
|
||||
site_icon=icon_path,
|
||||
theme=config.admin_theme,
|
||||
)
|
||||
else:
|
||||
return blank_page.render(site_title='LittlePaimon', site_icon=icon_path)
|
||||
return blank_page.render(site_title="LittlePaimon", site_icon=icon_path)
|
||||
|
||||
@app.get('/LittlePaimon/cookie', response_class=HTMLResponse)
|
||||
@app.get("/LittlePaimon/cookie", response_class=HTMLResponse)
|
||||
async def bind_cookie():
|
||||
if config.CookieWeb_enable:
|
||||
return bind_cookie_page.render(
|
||||
site_title='绑定Cookie | LittlePaimon',
|
||||
site_title="绑定Cookie | LittlePaimon",
|
||||
cdn=cdn,
|
||||
site_icon=icon_path,
|
||||
theme=config.admin_theme,
|
||||
)
|
||||
else:
|
||||
return blank_page.render(site_title='LittlePaimon', site_icon=icon_path)
|
||||
return blank_page.render(site_title="LittlePaimon", site_icon=icon_path)
|
||||
|
@ -39,6 +39,26 @@ cookie_web_form = Form(
|
||||
value='${CookieWeb地址}',
|
||||
labelRemark=Remark(shape='circle', content='只是设置对用户显示的CookieWeb地址,要填写实际的地址')
|
||||
),
|
||||
Select(
|
||||
label='浏览器内核',
|
||||
name='浏览器内核',
|
||||
value='${浏览器内核}',
|
||||
labelRemark=Remark(shape='circle', content='用于生成原神日历的浏览器内核'),
|
||||
options=[
|
||||
{
|
||||
'label': '火狐FireFox',
|
||||
'value': 'firefox'
|
||||
},
|
||||
{
|
||||
'label': '谷歌Chormium',
|
||||
'value': 'chromium'
|
||||
},
|
||||
{
|
||||
'label': 'WebKit',
|
||||
'value': 'webkit'
|
||||
}
|
||||
]
|
||||
),
|
||||
Switch(
|
||||
label='是否启用Web端',
|
||||
name='启用Web端',
|
||||
|
@ -65,6 +65,10 @@
|
||||
<img src="https://s1.ax1x.com/2023/02/05/pS6fAG6.jpg" alt="map">
|
||||
</details>
|
||||
|
||||
## | Playwright相关问题
|
||||
因部分系统不适用于chromium(谷歌浏览器),故将默认内核改为FireFox
|
||||
如需切换,可更改 config/paimon_config_default.yml 的默认值
|
||||
|
||||
## | 常见问题&致谢
|
||||
|
||||
详见[常见问题](https://docs.paimon.cherishmoon.fun/question.html)和[致谢](https://docs.paimon.cherishmoon.fun/thanks.html)。
|
||||
|
@ -20,4 +20,9 @@ CookieWeb地址: http://127.0.0.1:13579/LittlePaimon/cookie
|
||||
实时便签检查开关: true # 是否开启实时便签检查
|
||||
实时便签检查间隔: 16 # 实时便签检查间隔,单位分钟
|
||||
实时便签停止检查开始时间: 0
|
||||
实时便签停止检查结束时间: 6 # 处于这个时间段的时候停止检查
|
||||
实时便签停止检查结束时间: 6 # 处于这个时间段的时候停止检查
|
||||
|
||||
# 浏览器内核设置
|
||||
# 可选 chromium, firefox, webkit
|
||||
# 默认使用firefox
|
||||
browser_type: ''
|
2183
poetry.lock
generated
2183
poetry.lock
generated
File diff suppressed because it is too large
Load Diff
@ -2,88 +2,88 @@
|
||||
|
||||
aiosqlite==0.17.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
amis-python==1.0.8.post2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
anyio==3.7.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
anyio==4.2.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
apscheduler==3.10.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
backports-zoneinfo==0.2.1 ; python_version >= "3.8" and python_version < "3.9"
|
||||
beautifulsoup4==4.12.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
certifi==2023.7.22 ; python_version >= "3.8" and python_version < "4.0"
|
||||
beautifulsoup4==4.12.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
certifi==2023.11.17 ; python_version >= "3.8" and python_version < "4.0"
|
||||
click==8.1.7 ; python_version >= "3.8" and python_version < "4.0"
|
||||
colorama==0.4.6 ; python_version >= "3.8" and python_version < "4.0" and (platform_system == "Windows" or sys_platform == "win32")
|
||||
contourpy==1.1.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
cycler==0.11.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
contourpy==1.1.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
cycler==0.12.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
ecdsa==0.18.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
exceptiongroup==1.1.3 ; python_version >= "3.8" and python_version < "3.11"
|
||||
exceptiongroup==1.2.0 ; python_version >= "3.8" and python_version < "3.11"
|
||||
expandvars==0.9.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
fastapi==0.101.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
fonttools==4.42.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
gitdb==4.0.10 ; python_version >= "3.8" and python_version < "4.0"
|
||||
gitpython==3.1.32 ; python_version >= "3.8" and python_version < "4.0"
|
||||
greenlet==2.0.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
fastapi==0.109.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
fonttools==4.47.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
gitdb==4.0.11 ; python_version >= "3.8" and python_version < "4.0"
|
||||
gitpython==3.1.41 ; python_version >= "3.8" and python_version < "4.0"
|
||||
greenlet==3.0.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
h11==0.14.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
httpcore==0.16.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
httptools==0.6.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
httptools==0.6.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
httpx==0.23.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
idna==3.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
importlib-resources==6.0.1 ; python_version >= "3.8" and python_version < "3.10"
|
||||
idna==3.6 ; python_version >= "3.8" and python_version < "4.0"
|
||||
importlib-resources==6.1.1 ; python_version >= "3.8" and python_version < "3.10"
|
||||
iso8601==1.1.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
jieba==0.42.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
jinja2==3.1.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
jinja2==3.1.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
joblib==1.3.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
kiwisolver==1.4.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
loguru==0.7.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
lxml==4.9.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
markupsafe==2.1.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
matplotlib==3.7.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
msgpack==1.0.5 ; python_version >= "3.8" and python_version < "4.0"
|
||||
kiwisolver==1.4.5 ; python_version >= "3.8" and python_version < "4.0"
|
||||
loguru==0.7.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
lxml==4.9.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
markupsafe==2.1.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
matplotlib==3.7.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
msgpack==1.0.7 ; python_version >= "3.8" and python_version < "4.0"
|
||||
multidict==6.0.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
nonebot-adapter-onebot==2.2.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
nonebot-adapter-onebot==2.3.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
nonebot-plugin-apscheduler==0.2.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
nonebot2==2.0.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
nonebot2[fastapi]==2.0.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
nonebot2==2.1.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
nonebot2[fastapi]==2.1.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
numpy==1.24.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
packaging==23.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
packaging==23.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pillow==9.5.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
playwright==1.37.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
psutil==5.9.5 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyasn1==0.5.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pydantic==1.10.12 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pydantic[dotenv]==1.10.12 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyee==9.0.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
playwright==1.41.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
psutil==5.9.8 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyasn1==0.5.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pydantic==1.10.14 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pydantic[dotenv]==1.10.14 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyee==11.0.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pygtrie==2.5.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyparsing==3.0.9 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyparsing==3.1.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pypika-tortoise==0.1.6 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pypinyin==0.47.1 ; python_version >= "3.8" and python_version < "4"
|
||||
pypng==0.20220715.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
python-dateutil==2.8.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
python-dotenv==1.0.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
python-jose==3.3.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pytz==2023.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pytz==2023.3.post1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
pyyaml==6.0.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
qrcode==7.4.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
rfc3986[idna2008]==1.5.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
rsa==4.9 ; python_version >= "3.8" and python_version < "4"
|
||||
ruamel-yaml-clib==0.2.7 ; platform_python_implementation == "CPython" and python_version < "3.12" and python_version >= "3.8"
|
||||
ruamel-yaml==0.17.32 ; python_version >= "3.8" and python_version < "4.0"
|
||||
scikit-learn==1.3.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
ruamel-yaml-clib==0.2.8 ; platform_python_implementation == "CPython" and python_version < "3.13" and python_version >= "3.8"
|
||||
ruamel-yaml==0.17.40 ; python_version >= "3.8" and python_version < "4.0"
|
||||
scikit-learn==1.3.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
scipy==1.9.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
shapely==1.8.5.post1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
six==1.16.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
smmap==5.0.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
smmap==5.0.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
sniffio==1.3.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
soupsieve==2.4.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
starlette==0.27.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
soupsieve==2.5 ; python_version >= "3.8" and python_version < "4.0"
|
||||
starlette==0.35.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
threadpoolctl==3.2.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
tomli==2.0.1 ; python_version >= "3.8" and python_version < "3.11"
|
||||
tortoise-orm==0.19.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
tqdm==4.66.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
typing-extensions==4.7.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
tzdata==2023.3 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Windows"
|
||||
tzlocal==5.0.1 ; python_version >= "3.8" and python_version < "4.0"
|
||||
ujson==5.8.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
uvicorn[standard]==0.23.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
uvloop==0.17.0 ; (sys_platform != "win32" and sys_platform != "cygwin") and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_version < "4.0"
|
||||
watchfiles==0.19.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
websockets==11.0.3 ; python_version >= "3.8" and python_version < "4.0"
|
||||
typing-extensions==4.9.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
tzdata==2023.4 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Windows"
|
||||
tzlocal==5.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
ujson==5.9.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
uvicorn[standard]==0.26.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
uvloop==0.19.0 ; (sys_platform != "win32" and sys_platform != "cygwin") and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_version < "4.0"
|
||||
watchfiles==0.21.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
websockets==12.0 ; python_version >= "3.8" and python_version < "4.0"
|
||||
win32-setctime==1.1.0 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "win32"
|
||||
yarl==1.9.2 ; python_version >= "3.8" and python_version < "4.0"
|
||||
zipp==3.16.2 ; python_version >= "3.8" and python_version < "3.10"
|
||||
yarl==1.9.4 ; python_version >= "3.8" and python_version < "4.0"
|
||||
zipp==3.17.0 ; python_version >= "3.8" and python_version < "3.10"
|
||||
|
Loading…
Reference in New Issue
Block a user