Compare commits

...

72 Commits

Author SHA1 Message Date
1ae45808fd 📝 更新banner链接以优化显示效果
Some checks failed
Docker Image Build / build (push) Failing after 26s
Pre-commit checks / pre-commit (3.11) (push) Failing after 2m32s
Pre-commit checks / pre-commit (3.10) (push) Failing after 3m2s
Pre-commit checks / pre-commit (3.13) (push) Failing after 4m46s
Deploy VitePress site to Liteyuki PaaS / build (push) Failing after 9m56s
Pre-commit checks / pre-commit (3.12) (push) Failing after 1h12m10s
2025-05-17 00:53:51 +08:00
800dbbba43 📝 更新发布URL为 "https://dash.apage.dev"
Some checks failed
Deploy VitePress site to Liteyuki PaaS / build (push) Failing after 2m21s
Pre-commit checks / pre-commit (3.10) (push) Failing after 2m35s
Pre-commit checks / pre-commit (3.11) (push) Failing after 3m16s
Docker Image Build / build (push) Failing after 7m6s
Pre-commit checks / pre-commit (3.12) (push) Failing after 8m32s
Pre-commit checks / pre-commit (3.13) (push) Failing after 14m49s
2025-05-16 20:01:30 +08:00
c627c07aa1 📝 Update Liteyuki logo URLs in Chinese documentation
Some checks failed
Docker Image Build / build (push) Failing after 1m52s
Pre-commit checks / pre-commit (3.10) (push) Failing after 4m38s
Pre-commit checks / pre-commit (3.12) (push) Failing after 5m11s
Pre-commit checks / pre-commit (3.11) (push) Failing after 9m50s
Deploy VitePress site to Liteyuki PaaS / build (push) Failing after 10m22s
Pre-commit checks / pre-commit (3.13) (push) Failing after 14m46s
2025-05-16 19:03:52 +08:00
4a9259dad4
Update README.md 2025-05-16 18:58:57 +08:00
Nanaloveyuki
fc017c8255 📝 文档与代码注释信息微调
Some checks failed
Docker Image Build / build (push) Failing after 15s
Deploy VitePress site to Liteyuki PaaS / build (push) Failing after 1m2s
Pre-commit checks / pre-commit (3.10) (push) Failing after 1m46s
Pre-commit checks / pre-commit (3.11) (push) Failing after 1m38s
Pre-commit checks / pre-commit (3.12) (push) Failing after 1m45s
Pre-commit checks / pre-commit (3.13) (push) Failing after 1m43s
2025-04-04 11:44:50 +08:00
Nanaloveyuki
908812a3d9 📝 重置了deploy下的文档
Some checks failed
Docker Image Build / build (push) Failing after 2m10s
Deploy VitePress site to Liteyuki PaaS / build (push) Failing after 2m30s
Pre-commit checks / pre-commit (3.10) (push) Failing after 3m7s
Pre-commit checks / pre-commit (3.11) (push) Failing after 2m37s
Pre-commit checks / pre-commit (3.12) (push) Failing after 2m42s
Pre-commit checks / pre-commit (3.13) (push) Failing after 3m18s
新添加了adapter.md用来转移配置器相关内容; 修改了部分文件的版权归属日期;
2025-04-03 21:54:03 +08:00
6c7d073cb1
📝 添加文档uptime
Some checks failed
Docker Image Build / build (push) Failing after 36s
Deploy VitePress site to Liteyuki PaaS / build (push) Failing after 1m34s
Pre-commit checks / pre-commit (3.10) (push) Failing after 2m1s
Pre-commit checks / pre-commit (3.11) (push) Failing after 2m10s
Pre-commit checks / pre-commit (3.12) (push) Failing after 2m5s
Pre-commit checks / pre-commit (3.13) (push) Failing after 2m29s
2025-03-19 02:12:28 +08:00
8677286bd4
📝 更新pages部署地址
Some checks failed
Docker Image Build / build (push) Failing after 40s
Deploy VitePress site to Liteyuki PaaS / build (push) Failing after 1m46s
Pre-commit checks / pre-commit (3.10) (push) Failing after 2m58s
Pre-commit checks / pre-commit (3.11) (push) Failing after 16s
Pre-commit checks / pre-commit (3.12) (push) Failing after 36s
Pre-commit checks / pre-commit (3.13) (push) Failing after 35s
2025-03-10 23:07:21 +08:00
232ffcf714 📝 修正文档中的LSO LICENSE拼写错误
Some checks failed
Docker Image Build / build (push) Failing after 29s
Deploy VitePress site to Liteyuki PaaS / build (push) Failing after 2m12s
Pre-commit checks / pre-commit (3.10) (push) Failing after 3m37s
Pre-commit checks / pre-commit (3.11) (push) Failing after 3m17s
Pre-commit checks / pre-commit (3.12) (push) Failing after 3m49s
Pre-commit checks / pre-commit (3.13) (push) Failing after 3m48s
2025-03-09 20:01:36 +08:00
6871bc0d22 更新配置,重新引入 liteyuki_footer.js 脚本
Some checks failed
Docker Image Build / build (push) Failing after 28s
Deploy VitePress site to Liteyuki PaaS / build (push) Failing after 2m55s
Pre-commit checks / pre-commit (3.10) (push) Failing after 3m27s
Pre-commit checks / pre-commit (3.11) (push) Failing after 3m9s
Pre-commit checks / pre-commit (3.12) (push) Failing after 4m2s
Pre-commit checks / pre-commit (3.13) (push) Failing after 4m17s
2025-03-08 23:26:54 +08:00
641c16ee7a 📝 文档引入神秘js 2025-03-08 23:21:14 +08:00
75c67bdffc 更新配置,禁用清理 URL 功能
Some checks failed
Docker Image Build / build (push) Failing after 54s
Pre-commit checks / pre-commit (3.10) (push) Failing after 2m47s
Pre-commit checks / pre-commit (3.11) (push) Failing after 2m36s
Pre-commit checks / pre-commit (3.12) (push) Failing after 2m35s
Pre-commit checks / pre-commit (3.13) (push) Failing after 2m45s
Deploy VitePress site to Liteyuki PaaS / build (push) Failing after 11m59s
2025-03-07 21:35:21 +08:00
3a60450358 📝 更新文档页脚信息,修正链接文本
Some checks are pending
Docker Image Build / build (push) Waiting to run
Deploy VitePress site to Liteyuki PaaS / build (push) Waiting to run
Pre-commit checks / pre-commit (3.10) (push) Waiting to run
Pre-commit checks / pre-commit (3.11) (push) Waiting to run
Pre-commit checks / pre-commit (3.12) (push) Waiting to run
Pre-commit checks / pre-commit (3.13) (push) Waiting to run
2025-03-07 17:43:43 +08:00
7b97210a31 📝 更新文档页脚信息,添加网站部署链接
Some checks are pending
Docker Image Build / build (push) Waiting to run
Deploy VitePress site to Liteyuki PaaS / build (push) Waiting to run
Pre-commit checks / pre-commit (3.10) (push) Waiting to run
Pre-commit checks / pre-commit (3.11) (push) Waiting to run
Pre-commit checks / pre-commit (3.12) (push) Waiting to run
Pre-commit checks / pre-commit (3.13) (push) Waiting to run
2025-03-07 17:21:01 +08:00
d97145ee5e 📝 更新文档部署工作流程,添加对状态的写入权限并恢复 GITHUB_TOKEN 环境变量 2025-03-07 17:09:01 +08:00
bc3a4355c3 🐛 移除文档部署工作流程中的 GITHUB_TOKEN 环境变量 2025-03-07 17:00:27 +08:00
d835a32683 🗑️ 删除文档部署工作流程文件 2025-03-07 16:49:25 +08:00
aedea1acb9 Merge branch 'main' of https://github.com/LiteyukiStudio/LiteyukiBot 2025-03-07 16:37:18 +08:00
3bce8325c1 📝 新增 Liteyuki PaaS 部署工作流程,优化文档构建和发布步骤 2025-03-07 16:37:15 +08:00
d1c1320963
📝 Create .domain
Some checks failed
Docker Image Build / build (push) Failing after 1m1s
Deploy VitePress site to Pages / build (push) Failing after 1m42s
Pre-commit checks / pre-commit (3.10) (push) Failing after 2m42s
Pre-commit checks / pre-commit (3.11) (push) Failing after 2m55s
Pre-commit checks / pre-commit (3.13) (push) Failing after 3m9s
Pre-commit checks / pre-commit (3.12) (push) Failing after 5m0s
2025-03-07 00:12:44 +08:00
317e07eb71 🐛 更新文档页脚信息,添加Liteyukiflare CDN加速说明
Some checks failed
Pre-commit checks / pre-commit (3.10) (push) Failing after 2m43s
Deploy VitePress site to Pages / build (push) Failing after 3m7s
Pre-commit checks / pre-commit (3.13) (push) Failing after 3m10s
Pre-commit checks / pre-commit (3.12) (push) Failing after 13m53s
Pre-commit checks / pre-commit (3.11) (push) Failing after 13m56s
Docker Image Build / build (push) Failing after 14m14s
2025-03-01 03:05:04 +08:00
37749ae15e 📝 使用Liteyukiflare对GitHub Page进行亚太地区加速 2025-03-01 03:04:34 +08:00
f94c10de61 🐛 修正 Docker 镜像标签的大小写,更新相关文档中的镜像拉取命令
Some checks failed
Pre-commit checks / pre-commit (3.10) (push) Failing after 5s
Pre-commit checks / pre-commit (3.12) (push) Failing after 4s
Pre-commit checks / pre-commit (3.11) (push) Failing after 11s
Pre-commit checks / pre-commit (3.13) (push) Failing after 5s
Docker Image Build / build (push) Failing after 1m41s
Deploy VitePress site to Pages / build (push) Failing after 1m46s
2025-02-18 09:08:50 +08:00
5ccef735be 🐛 更新 Docker 镜像拉取地址,修正文档中的镜像源 2025-02-18 09:07:37 +08:00
262002b49a 🐛 更新 GitHub 容器注册表登录配置,修正 Docker 镜像构建和推送步骤 2025-02-18 09:06:52 +08:00
40c6ba6d9e 🐛 更新管道依赖,修复管道句柄错误
Some checks failed
Pre-commit checks / pre-commit (3.10) (push) Failing after 32s
Docker Image Build / build (push) Failing after 55s
Pre-commit checks / pre-commit (3.12) (push) Failing after 39s
Pre-commit checks / pre-commit (3.11) (push) Failing after 3m28s
Pre-commit checks / pre-commit (3.13) (push) Failing after 3m59s
Deploy VitePress site to Pages / build (push) Failing after 10m0s
2025-02-18 06:47:31 +08:00
60093b562b 🐛 移除 Gotify 插件及相关配置,更新依赖项版本 2025-02-18 06:42:42 +08:00
30880ec13b 在 README 中添加 LiteyukiLab 的徽章链接
Some checks failed
Docker Image Build / build (push) Failing after 32s
Deploy VitePress site to Pages / build (push) Failing after 53s
Pre-commit checks / pre-commit (3.10) (push) Failing after 1m36s
Pre-commit checks / pre-commit (3.11) (push) Failing after 1m38s
Pre-commit checks / pre-commit (3.12) (push) Failing after 1m58s
Pre-commit checks / pre-commit (3.13) (push) Failing after 1m47s
2025-01-13 00:57:50 +08:00
cc1d82312a 添加新的图标配置,更新链接以指向新的资源 2025-01-13 00:49:01 +08:00
efca13d397 🐛 移除 requirements.txt 中的 pip 依赖项
Some checks failed
Docker Image Build / build (push) Failing after 18s
Deploy VitePress site to Pages / build (push) Failing after 52s
Pre-commit checks / pre-commit (3.10) (push) Failing after 1m25s
Pre-commit checks / pre-commit (3.11) (push) Failing after 1m7s
Pre-commit checks / pre-commit (3.12) (push) Failing after 1m27s
Pre-commit checks / pre-commit (3.13) (push) Failing after 1m25s
2024-12-14 02:59:55 +08:00
3a8c09d6db 🐛 删除 __pypackages__ 目录的 .gitignore 文件,并更新主 .gitignore 文件以忽略 pdm 相关文件 2024-12-14 02:57:51 +08:00
cc1bb8e5e4 添加 pre-commit 配置和工作流,集成代码格式化和静态检查工具
Some checks failed
Docker Image Build / build (push) Failing after 29s
Deploy VitePress site to Pages / build (push) Failing after 53s
Pre-commit checks / pre-commit (3.10) (push) Failing after 2m17s
Pre-commit checks / pre-commit (3.11) (push) Failing after 2m1s
Pre-commit checks / pre-commit (3.13) (push) Failing after 2m18s
Pre-commit checks / pre-commit (3.12) (push) Failing after 2m57s
2024-12-13 19:35:07 +08:00
93c17b6026 添加新的配置加载器,支持从YAML、TOML、JSON和环境变量加载配置,并修改默认主机地址
Some checks failed
Docker Image Build / build (push) Failing after 1m25s
Deploy VitePress site to Pages / build (push) Failing after 1m50s
2024-12-02 21:46:29 +08:00
fd3f6272f1 🐛 修复获取系统语言代码的逻辑,处理None值的情况
Some checks failed
Docker Image Build / build (push) Failing after 35s
Deploy VitePress site to Pages / build (push) Failing after 2m11s
2024-11-29 00:04:34 +08:00
4d87a3c0b7 Merge branch 'main' of https://git.liteyuki.icu/bot/app 2024-11-29 00:03:14 +08:00
86f47ee411 🐛 修复获取系统语言代码的逻辑,添加对None值的处理 2024-11-29 00:01:49 +08:00
1d6b8d60f3
Merge pull request #89 from Asankilp/main
Some checks failed
Docker Image Build / build (push) Failing after 21s
Deploy VitePress site to Pages / build (push) Failing after 53s
添加uninfo依赖项
2024-11-27 01:47:23 +08:00
3890704045 添加uninfo依赖项 2024-11-27 01:44:49 +08:00
b0761e9873 🐛 更新docker-compose.yml,修改时区设置为Asia/Chongqing
Some checks failed
Docker Image Build / build (push) Failing after 19s
Deploy VitePress site to Pages / build (push) Failing after 55s
2024-11-23 22:31:51 +08:00
291314de93 新增docker-compose.yml文件,定义应用服务及其配置 2024-11-23 22:31:06 +08:00
fd835e9406 更新.gitignore,新增Python工具链缓存目录排除项;更新README.md,调整标题并添加monorepo说明
Some checks failed
Docker Image Build / build (push) Failing after 37s
Deploy VitePress site to Pages / build (push) Failing after 57s
2024-11-22 20:15:04 +08:00
d681c5645a 🐛 更新Dockerfile,新增libpango-1.0-0和libcairo2依赖
Some checks failed
Deploy VitePress site to Pages / build (push) Failing after 1m0s
Docker Image Build / build (push) Failing after 1m8s
2024-11-21 19:53:49 +08:00
d0619f1fe8 优化Dockerfile,移除不必要的sources.list复制步骤,简化pip安装命令
Some checks failed
Deploy VitePress site to Pages / build (push) Failing after 1m2s
Docker Image Build / build (push) Failing after 1m29s
2024-11-16 02:24:47 +08:00
b022a364e3 更新GitHub Actions工作流,修改并发组名称为“docker-build” 2024-11-16 02:20:06 +08:00
df00c61dd8 新增GitHub Actions工作流以构建和推送Docker镜像,更新.gitignore以排除.github目录 2024-11-16 02:19:31 +08:00
94a021bab0 更新安装文档,替换Docker构建步骤为拉取最新夜间版镜像 2024-11-16 02:17:06 +08:00
6b20e9eae0 更新README.md,将“参考及鸣”更正为“参考及鸣谢”
Some checks failed
Deploy VitePress site to Pages / build (push) Failing after 2m9s
2024-11-10 01:20:14 +08:00
0a35a3c6f8 修正README.md中的链接错误,将“lightyuki-link”更正为“liteyuki-link” 2024-11-10 01:19:58 +08:00
2e75c7bc65 更新README.md,新增GitHub和官方仓库链接,优化内容结构
Some checks failed
Deploy VitePress site to Pages / build (push) Failing after 1m17s
2024-11-10 01:15:34 +08:00
3341505715 更新LiteyukiBot克隆命令中的镜像链接
Some checks failed
Deploy VitePress site to Pages / build (push) Failing after 2m52s
2024-11-09 23:52:17 +08:00
bdde9c45fd 优化配置文件格式和清理无用调试信息,修改gitea仓库路径 2024-11-09 23:51:35 +08:00
7bf94a15c8 📝 文档新增插件通信部分内容
Some checks failed
Deploy VitePress site to Pages / build (push) Failing after 1m10s
2024-10-26 02:34:58 +08:00
4510477026 Merge branch 'main' of https://github.com/LiteyukiStudio/LiteyukiBot
Some checks failed
Deploy VitePress site to Pages / build (push) Failing after 15s
2024-10-23 01:06:47 +08:00
86e50e369b 初步对Uninfo的支持 2024-10-23 01:04:42 +08:00
796fc6f233
Merge pull request #88 from EillesWan/main
🌠也许,大家的测试环境都是*nix?
2024-10-22 13:36:57 +08:00
金羿ELS
80c6875567
🌠也许,大家的测试环境都是*nix?
Update file.py
2024-10-22 13:34:09 +08:00
ab89cd1c72 性能提升200倍
Some checks failed
Deploy VitePress site to Pages / build (push) Failing after 11m46s
2024-10-20 23:37:40 +08:00
5e454bc971 性能提升200倍 2024-10-20 23:36:49 +08:00
70bfb0fcee 性能提升200倍 2024-10-20 23:35:44 +08:00
13b95c2732 🐛 修复一些细节小问题 2024-10-20 20:59:30 +08:00
ef5866343d add: nonebot-plugin-gotify 2024-10-20 04:12:17 +08:00
d5ccd105a2 add: nonebot-plugin-gotify 2024-10-20 03:11:26 +08:00
20ad8dc53f 🐛 hotfix: from mypy import 2024-10-19 21:15:37 +08:00
de9c91d8bd 🐛 hotfix: from mypy import 2024-10-19 21:12:55 +08:00
6b64a0c379 🐛 hotfix: from mypy import 2024-10-19 21:10:18 +08:00
f117da7ff3 🎨 更新轻雪依赖版本
Some checks failed
Deploy VitePress site to Pages / build (push) Failing after 7m29s
2024-10-14 20:57:30 +08:00
f548a07230 📝 文档删除常规部署,强制使用虚拟环境 2024-10-14 20:51:37 +08:00
e2e53c21fa 📝 文档删除常规部署,强制使用虚拟环境
Some checks failed
Deploy VitePress site to Pages / build (push) Failing after 15s
2024-10-14 01:03:06 +08:00
3eaf23a56b 📝 文档删除常规部署,强制使用虚拟环境 2024-10-14 01:02:57 +08:00
4a5dd1f727 🐛 修复一些细节小问题 2024-10-14 00:57:33 +08:00
c2cb416b4e 🐛 hotfix: ubl
Some checks failed
Deploy VitePress site to Pages / build (push) Failing after 7m36s
2024-10-13 17:44:24 +08:00
5cd528d5e9 🐛 hotfix: ubl 2024-10-13 17:44:17 +08:00
409 changed files with 2294 additions and 2823 deletions

0
.dockerignore Normal file → Executable file
View File

2
.domain Normal file
View File

@ -0,0 +1,2 @@
bot.liteyuki.icu
docs.app.bot.pages.git.liteyuki.icu

0
.github/ISSUE_TEMPLATE/config.yml vendored Normal file → Executable file
View File

0
.github/ISSUE_TEMPLATE/resource_publish_en.yml vendored Normal file → Executable file
View File

0
.github/ISSUE_TEMPLATE/resource_publish_zh.yml vendored Normal file → Executable file
View File

0
.github/ISSUE_TEMPLATE/问题反馈.md vendored Normal file → Executable file
View File

0
.github/dependabot.yml vendored Normal file → Executable file
View File

43
.github/workflows/build-image.yml vendored Executable file
View File

@ -0,0 +1,43 @@
name: Docker Image Build
on:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: write
concurrency:
group: docker-build
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ secrets.GHCR_USERNAME }}
password: ${{ secrets.GHCR_PASSWORD }}
- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: ghcr.io/liteyukistudio/liteyukibot:latest
- name: Log out from GitHub Container Registry
run: docker logout ghcr.io

View File

@ -1,26 +1,20 @@
# 构建 VitePress 站点并将其部署到 GitHub Pages 的示例工作流程
#
name: Deploy VitePress site to Pages
name: Deploy VitePress site to Liteyuki PaaS
on:
# 在针对 `main` 分支的推送上运行。如果你
# 使用 `master` 分支作为默认分支,请将其更改为 `master`
push:
branches: [main]
# 允许你从 Actions 选项卡手动运行此工作流程
workflow_dispatch:
# 设置 GITHUB_TOKEN 的权限,以允许部署到 GitHub Pages
permissions:
contents: write
statuses: write
# 只允许同时进行一次部署,跳过正在运行和最新队列之间的运行队列
# 但是,不要取消正在进行的运行,因为我们希望允许这些生产部署完成
concurrency:
group: pages
cancel-in-progress: false
env:
MELI_SITE: "800a7c09-dd9c-4ba7-a43f-af9bc69808c4"
jobs:
# 构建工作
build:
@ -30,12 +24,10 @@ jobs:
uses: actions/checkout@v4
with:
fetch-depth: 0 # 如果未启用 lastUpdated则不需要
# - uses: pnpm/action-setup@v3 # 如果使用 pnpm请取消注释
# - uses: oven-sh/setup-bun@v1 # 如果使用 Bun请取消注释
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: '3.11'
python-version: "3.11"
- name: Setup API markdown
run: |-
@ -62,9 +54,13 @@ jobs:
pnpm run docs:build
> .vitepress/dist/.nojekyll
- name: 部署文档
uses: JamesIves/github-pages-deploy-action@v4
with:
# 这是文档部署到的分支名称
branch: docs
folder: docs/.vitepress/dist
- name: "发布"
run: |
npx -p "@getmeli/cli" meli upload docs/.vitepress/dist \
--url "https://dash.apage.dev" \
--site "$MELI_SITE" \
--token "$MELI_TOKEN" \
--release "$GITHUB_SHA"
env:
MELI_TOKEN: ${{ secrets.MELI_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0
.github/workflows/issue_handler.yml vendored Normal file → Executable file
View File

30
.github/workflows/pre-commit.yml vendored Executable file
View File

@ -0,0 +1,30 @@
name: Pre-commit checks
on: [push, pull_request]
jobs:
pre-commit:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13'] # 添加你想要测试的 Python 版本
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }} # 使用矩阵中的 Python 版本
- name: Install dependencies
run: |
python -m pip install pdm
python -m pip install pre-commit
pdm config python.use_venv false
pdm install --no-lock
pre-commit install
- name: Run pre-commit
run: pre-commit run --all-files

0
.github/workflows/pypi-publish.yml vendored Normal file → Executable file
View File

11
.gitignore vendored Normal file → Executable file
View File

@ -24,7 +24,6 @@ config.yml
config.example.yml
# vuepress
.github
# mupy
mypy.ini
@ -64,4 +63,12 @@ mkdoc.bat
# vitepress
docs/.vitepress/dist/
docs/.vitepress/cache
docs/.vitepress/.temp
docs/.vitepress/.temp
# python toolchain
.mypy_cache/
.pytest_cache/
# pdm
__pypackages__/
pdm.lock

26
.pre-commit-config.yaml Executable file
View File

@ -0,0 +1,26 @@
fail_fast: true
repos:
- repo: https://github.com/psf/black
rev: 24.4.2
hooks:
- id: black
args: [--config=./pyproject.toml]
- repo: https://github.com/timothycrosley/isort
rev: 5.13.2
hooks:
- id: isort
args: ["--profile", "black"]
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.13.0
hooks:
- id: mypy
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files

6
Dockerfile Normal file → Executable file
View File

@ -2,17 +2,15 @@ FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/python:3.10-slim
ENV TZ Asia/Shanghai
COPY docker/sources.list /etc/apt/sources.list
RUN apt-get update && apt-get install -y git
WORKDIR /liteyukibot
COPY . /liteyukibot
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install --no-cache-dir -r requirements.txt
RUN apt-get install -y libnss3 libnspr4 libdbus-1-3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libatspi2.0-0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libxkbcommon0 libasound2
RUN apt-get install -y libnss3 libnspr4 libdbus-1-3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libatspi2.0-0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libxkbcommon0 libasound2 libpango-1.0-0 libcairo2
EXPOSE 20216

0
LICENSE Normal file → Executable file
View File

55
README.md Normal file → Executable file
View File

@ -1,15 +1,25 @@
<div align="center">
[//]: # (<img src="https://cdn.liteyuki.icu/static/svg/lylogo-full.svg" style="align-content: center; width: 50%; margin-top:10%;" alt="a">)
[![][banner]][lightyuki-link]
[//]: # (<img src="https://cdn.liteyuki.icu/logos/bot.svg" style="align-content: center; width: 50%; margin-top:10%;" alt="a">)
[![][banner]][liteyuki-link]
<h2><a href="https://bot.liteyuki.icu"> <span style="color: #a2d8f4">轻雪</span> <span style="color: #d0e9ff">6</span></a></h2>
<h4> <span style="color: #a2d8f4">✨ 轻量,高效,易于扩展✨</span></h4>
[![][OneBot]][onebot-link]
[![][NoneBot2]][nonebot-link]
[![][Liteyuki6.0]][lightyuki-link]
[![][Liteyuki6.0]][liteyuki-link]
[![][Python3.10+]][python-link]
[![][Usage]][usage-link]
[![][Repo]][repo-link]
[![][Github]][github-link]
[![][LiteyukiLab]][liteyukilab-link]
![docs uptime](https://uptime.liteyuki.icu/api/badge/8/uptime?labelPrefix=Docs+&style=for-the-badge)
</div>
## 关于
访问[轻雪6.0](https://bot.liteyuki.icu)主页获取更多信息
## 特点及优势
- 原生支持与任意`Python`Bot框架互联有良好的生态支持
- 开箱即用,无需复杂配置
@ -18,32 +28,43 @@
- 国际化支持,支持多种语言
- 高性能500插件2s内启动
<h3>👇更多内容请访问👇</h3>
<h2><a href="https://bot.liteyuki.icu">轻雪机器人主页</a></h2>
</div>
## 服务及支持(敬请期待)
- 提供Liteyuki Cloud官方的容器化托管服务无需担心服务器问题
### 感谢
- 所有贡献者们
**👇所有内容请访问👇**: [bot.liteyuki.icu](https://bot.liteyuki.icu)
## 参考及鸣谢
- [nonebot-plugin-uninfo](https://github.com/RF-Tar-Railt/nonebot-plugin-uninfo)为会话部分用户信息提供了参考
- [nonebot-plugin-alconna](https://github.com/nonebot/plugin-alconna/)为消息部分提供了参考
[OneBot]: https://img.shields.io/badge/OneBot-11/12-blue?style=for-the-badge
## 其他
- 本仓库是一个monorepo包含了框架文档测试内置资源包内置插件预设配置等
[NoneBot2]: https://img.shields.io/badge/Nonebot-2-red?style=for-the-badge
[Liteyuki6.0]: https://img.shields.io/badge/Liteyuki-6.0-blue?style=for-the-badge
[Python3.10+]: https://img.shields.io/badge/Python-3.10+-blue?style=for-the-badge
[Usage]: https://img.shields.io/badge/文档-页面-blue?style=for-the-badge
[Usage]: https://img.shields.io/badge/主页-文档-blue?style=for-the-badge
[onebot-link]:https://onebot.dev/
[Repo]: https://img.shields.io/badge/官方托管-仓库-blue?style=for-the-badge
[Github]: https://img.shields.io/badge/Github-仓库-blue?style=for-the-badge
[LiteyukiLab]: https://img.shields.io/badge/轻雪社区-官方-blue?style=for-the-badge
[nonebot-link]:https://nonebot.dev/
[lightyuki-link]:/
[python-link]:https://www.python.org/
[usage-link]:https://bot.liteyuki.icu/
[banner]: https://socialify.git.ci/LiteyukiStudio/LiteyukiBot/image?description=1&forks=1&issues=1&Plus&pulls=1&stargazers=1&theme=Auto&logo=https%3a%2f%2fcdn.liteyuki.icu%2fstatic%2fsvg%2flylogo-full.svg
[liteyuki-link]:https://bot.liteyuki.icu/
[repo-link]:https://git.liteyuki.icu/bot/app
[github-link]:https://github.com/LiteyukiStudio/LiteyukiBot
[liteyukilab-link]:https://lab.liteyuki.icu/@LiteyukiBot
[banner]: https://socialify.git.ci/LiteyukiStudio/LiteyukiBot/image?description=1&font=Source+Code+Pro&forks=1&issues=1&logo=https%3A%2F%2Fcdn.liteyuki.icu%2Flogos%2Fbot.svg&name=1&owner=1&pattern=Floating+Cogs&pulls=1&stargazers=1&theme=Auto

6
config/default.yml Normal file → Executable file
View File

@ -1,8 +1,10 @@
nonebot:
host: 127.0.0.1
host: 0.0.0.0
port: 20216
command_start: ["", "/"]
nickname: [ "liteyuki" ]
default_language: zh
driver: ~fastapi+~httpx+~websockets
alconna_use_command_start: true
alconna_use_command_start: true
gotify_token: "empty token"

12
docker-compose.yml Executable file
View File

@ -0,0 +1,12 @@
version: '3.8'
services:
app:
image: git.liteyuki.icu/bot/app:latest
ports:
- "20216:20216"
environment:
- TZ=Asia/Chongqing
volumes:
- .:/liteyukibot
command: [ "python", "main.py" ]

0
docker/sources.list Normal file → Executable file
View File

229
docs/.vitepress/config/common.ts Normal file → Executable file
View File

@ -1,21 +1,21 @@
// 共有配置项导入index用
import {defineConfig} from 'vitepress'
import {generateSidebar} from 'vitepress-sidebar';
import {zh} from "./zh";
import {en} from "./en";
import { defineConfig } from "vitepress";
import { generateSidebar } from "vitepress-sidebar";
import { zh } from "./zh";
import { en } from "./en";
let defaultLocale = 'zh';
let defaultLocale = "zh";
const commonSidebarOptions = {
collapsed: true,
convertSameNameSubFileToGroupIndexPage: true,
useTitleFromFrontmatter: true,
useFolderTitleFromIndexFile: true,
useFolderLinkFromIndexFile: true,
includeFolderIndexFile: true,
sortMenusByFrontmatterOrder: true,
rootGroupText: 'LITEYUKIBOT',
}
collapsed: true,
convertSameNameSubFileToGroupIndexPage: true,
useTitleFromFrontmatter: true,
useFolderTitleFromIndexFile: true,
useFolderLinkFromIndexFile: true,
includeFolderIndexFile: true,
sortMenusByFrontmatterOrder: true,
rootGroupText: "LITEYUKIBOT",
};
/**
* Generate sidebar config
@ -23,109 +23,116 @@ const commonSidebarOptions = {
* @returns {any[]}
*/
function generateSidebarConfig(): any[] {
let sections = ["dev", "store", "usage", "deploy"]
let languages = ['zh', 'en']
let ret = []
for (let language of languages) {
for (let section of sections) {
if (language === defaultLocale) {
ret.push({
basePath: `/${section}/`,
scanStartPath: `${language}/${section}`,
resolvePath: `/${section}/`,
...commonSidebarOptions
})
} else {
ret.push({
basePath: `/${language}/${section}/`,
scanStartPath: `${language}/${section}`,
resolvePath: `/${language}/${section}/`,
...commonSidebarOptions
})
}
}
let sections = ["dev", "store", "usage", "deploy"];
let languages = ["zh", "en"];
let ret = [];
for (let language of languages) {
for (let section of sections) {
if (language === defaultLocale) {
ret.push({
basePath: `/${section}/`,
scanStartPath: `${language}/${section}`,
resolvePath: `/${section}/`,
...commonSidebarOptions,
});
} else {
ret.push({
basePath: `/${language}/${section}/`,
scanStartPath: `${language}/${section}`,
resolvePath: `/${language}/${section}/`,
...commonSidebarOptions,
});
}
}
return ret
}
return ret;
}
console.log(generateSidebarConfig())
export const common = defineConfig({
head: [
// 配置favicon.ico
['link', {rel: 'icon', type: 'image/x-icon', href: 'favicon.ico'}],
['link', {rel: 'stylesheet', href: 'https://fonts.font.im/css?family=Cousine:400,400i,700,700i|Poppins:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i'}],
head: [
// 配置favicon.ico
["link", { rel: "icon", type: "image/x-icon", href: "favicon.ico" }],
[
"link",
{
rel: "stylesheet",
href: "https://fonts.font.im/css?family=Cousine:400,400i,700,700i|Poppins:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i",
},
],
rewrites: {
[`${defaultLocale}/:rest*`]: ":rest*",
["script", { src: "https://cdn.liteyuki.icu/js/liteyuki_footer.js" }],
],
rewrites: {
[`${defaultLocale}/:rest*`]: ":rest*",
},
cleanUrls: false,
themeConfig: {
logo: {
light: "https://cdn.liteyuki.icu/logos/bot.svg",
dark: "https://cdn.liteyuki.icu/logos/bot.svg",
alt: "LiteyukiBot Logo",
},
themeConfig: {
logo: {
light: '/liteyuki.svg',
dark: '/liteyuki-dark.svg',
alt: 'LiteyukiBot Logo'
sidebar: generateSidebar([...generateSidebarConfig()]),
socialLinks: [
{ icon: "github", link: "https://github.com/LiteyukiStudio/LiteyukiBot" },
{
icon: {
svg: '<svg t="1725391346807" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5067" width="256" height="256"><path d="M1004.692673 466.396616l-447.094409-447.073929c-25.743103-25.763582-67.501405-25.763582-93.264987 0l-103.873521 103.873521 78.171378 78.171378c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928 0 14.827372-3.358686 28.856031-9.359266 41.389666l127.97824 127.97824c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928s-42.98709 96.00928-96.00928 96.00928-96.00928-42.98709-96.00928-96.00928c0-14.827372 3.358686-28.856031 9.359266-41.389666l-127.97824-127.97824c-3.051489 1.454065-6.184898 2.744293-9.379746 3.870681l0 266.97461c37.273227 13.188988 63.99936 48.721433 63.99936 90.520695 0 53.02219-42.98709 96.00928-96.00928 96.00928s-96.00928-42.98709-96.00928-96.00928c0-41.799262 26.726133-77.331707 63.99936-90.520695l0-266.97461c-37.273227-13.188988-63.99936-48.721433-63.99936-90.520695 0-14.827372 3.358686-28.856031 9.359266-41.389666l-78.171378-78.171378-295.892081 295.871601c-25.743103 25.784062-25.743103 67.542365 0 93.285467l447.114889 447.073929c25.743103 25.743103 67.480925 25.743103 93.264987 0l445.00547-445.00547c25.763582-25.763582 25.763582-67.542365 0-93.285467z" fill="#a2d8f4" p-id="5068"></path></svg>',
},
sidebar: generateSidebar(
[
...generateSidebarConfig()
]
),
socialLinks: [
{icon: 'github', link: 'https://github.com/LiteyukiStudio/LiteyukiBot'},
{
icon: {
svg: '<svg t="1725391346807" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5067" width="256" height="256"><path d="M1004.692673 466.396616l-447.094409-447.073929c-25.743103-25.763582-67.501405-25.763582-93.264987 0l-103.873521 103.873521 78.171378 78.171378c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928 0 14.827372-3.358686 28.856031-9.359266 41.389666l127.97824 127.97824c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928s-42.98709 96.00928-96.00928 96.00928-96.00928-42.98709-96.00928-96.00928c0-14.827372 3.358686-28.856031 9.359266-41.389666l-127.97824-127.97824c-3.051489 1.454065-6.184898 2.744293-9.379746 3.870681l0 266.97461c37.273227 13.188988 63.99936 48.721433 63.99936 90.520695 0 53.02219-42.98709 96.00928-96.00928 96.00928s-96.00928-42.98709-96.00928-96.00928c0-41.799262 26.726133-77.331707 63.99936-90.520695l0-266.97461c-37.273227-13.188988-63.99936-48.721433-63.99936-90.520695 0-14.827372 3.358686-28.856031 9.359266-41.389666l-78.171378-78.171378-295.892081 295.871601c-25.743103 25.784062-25.743103 67.542365 0 93.285467l447.114889 447.073929c25.743103 25.743103 67.480925 25.743103 93.264987 0l445.00547-445.00547c25.763582-25.763582 25.763582-67.542365 0-93.285467z" fill="#a2d8f4" p-id="5068"></path></svg>'
link: "https://git.liteyuki.icu/bot/app",
},
{
icon: {
svg: '<svg t="1736700504329" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="14158" width="200" height="200"><path d="M944.355556 142.222222c-17.066667-22.755556-45.511111-34.133333-79.644445-34.133333-28.444444 0-68.266667 5.688889-108.088889 22.755555h-5.688889c17.066667 11.377778 34.133333 28.444444 51.2 39.822223 56.888889-17.066667 91.022222-11.377778 96.711111 0 11.377778 11.377778 5.688889 45.511111-22.755555 91.022222 11.377778 17.066667 17.066667 34.133333 28.444444 51.2 0 0 0 5.688889 5.688889 5.688889 22.755556-34.133333 34.133333-62.577778 45.511111-91.022222 11.377778-28.444444 5.688889-62.577778-11.377777-85.333334z" p-id="14159" fill="#a2d8f4"></path><path d="M267.377778 512a45.511111 45.511111 0 1 0 91.022222 0 45.511111 45.511111 0 1 0-91.022222 0Z" p-id="14160" fill="#a2d8f4"></path><path d="M625.777778 614.4c-113.777778 85.333333-227.555556 153.6-324.266667 193.422222-11.377778 5.688889-17.066667 5.688889-28.444444 11.377778 22.755556 17.066667 51.2 34.133333 79.644444 45.511111 51.2 22.755556 108.088889 34.133333 164.977778 34.133333s113.777778-11.377778 164.977778-34.133333c51.2-22.755556 96.711111-51.2 136.533333-91.022222 39.822222-39.822222 68.266667-85.333333 91.022222-130.844445 22.755556-51.2 34.133333-108.088889 34.133334-159.288888 0-51.2-11.377778-102.4-28.444445-153.6-5.688889 5.688889-11.377778 17.066667-17.066667 22.755555-68.266667 79.644444-164.977778 176.355556-273.066666 261.688889zM813.511111 187.733333c-5.688889-5.688889-11.377778-5.688889-11.377778-11.377777-17.066667-17.066667-34.133333-28.444444-51.2-39.822223-22.755556-11.377778-45.511111-28.444444-68.266666-34.133333-56.888889-28.444444-108.088889-39.822222-164.977778-39.822222s-113.777778 11.377778-164.977778 34.133333c-51.2 22.755556-96.711111 51.2-136.533333 91.022222-39.822222 34.133333-68.266667 79.644444-91.022222 130.844445-22.755556 51.2-34.133333 108.088889-34.133334 159.288889 0 51.2 11.377778 96.711111 22.755556 142.222222-22.755556 34.133333-39.822222 68.266667-51.2 96.711111-11.377778 39.822222-5.688889 68.266667 11.377778 91.022222 17.066667 22.755556 45.511111 34.133333 79.644444 34.133334h11.377778c28.444444 0 62.577778-11.377778 96.711111-22.755556-17.066667-11.377778-34.133333-28.444444-51.2-39.822222-51.2 11.377778-85.333333 11.377778-96.711111 0 0-17.066667 5.688889-45.511111 34.133333-96.711111 17.066667 34.133333 39.822222 62.577778 68.266667 91.022222h5.688889c17.066667-5.688889 39.822222-11.377778 62.577777-17.066667 91.022222-34.133333 204.8-102.4 307.2-187.733333 108.088889-85.333333 199.111111-170.666667 256-250.311111l34.133334-51.2c-22.755556-28.444444-39.822222-56.888889-68.266667-79.644445z m-500.622222 420.977778c-56.888889 0-102.4-45.511111-102.4-102.4s45.511111-102.4 102.4-102.4S409.6 455.111111 409.6 512c0 51.2-45.511111 96.711111-96.711111 96.711111z" p-id="14161" fill="#a2d8f4"></path></svg>',
},
link: "https://lab.liteyuki.icu/@LiteyukiBot",
},
],
search: {
provider: "local",
options: {
locales: {
root: {
translations: {
button: {
buttonText: "搜索文档",
buttonAriaLabel: "打开搜索框",
},
modal: {
noResultsText: "没有找到搜索结果",
resetButtonTitle: "清除查询条件",
footer: {
selectText: "选择",
navigateText: "切换",
},
link: "https://git.liteyuki.icu/LiteyukiStudio/LiteyukiBot"
}
],
search: {
provider: 'local',
options: {
locales: {
root: {
translations: {
button: {
buttonText: '搜索文档',
buttonAriaLabel: '打开搜索框',
},
modal: {
noResultsText: '没有找到搜索结果',
resetButtonTitle: '清除查询条件',
footer: {
selectText: '选择',
navigateText: '切换',
}
}
},
},
en: {
translations: {
button: {
buttonText: 'Search',
buttonAriaLabel: 'Search',
},
modal: {
noResultsText: 'No results found',
resetButtonTitle: 'Reset search query',
footer: {
selectText: 'Select',
navigateText: 'Navigate',
}
}
}
},
}
}
}
},
},
},
en: {
translations: {
button: {
buttonText: "Search",
buttonAriaLabel: "Search",
},
modal: {
noResultsText: "No results found",
resetButtonTitle: "Reset search query",
footer: {
selectText: "Select",
navigateText: "Navigate",
},
},
},
},
},
},
},
sitemap: {
hostname: 'https://bot.liteyuki.icu'
},
lastUpdated: true,
locales: {
root: {label: "简体中文", ...zh},
en: {label: "English", ...en},
},
})
},
sitemap: {
hostname: "https://bot.liteyuki.icu",
},
lastUpdated: true,
locales: {
root: { label: "简体中文", ...zh },
en: { label: "English", ...en },
},
});

2
docs/.vitepress/config/en.ts Normal file → Executable file
View File

@ -20,7 +20,7 @@ export const en = defineConfig({
'Edit this page on GitHub',
),
footer: {
message: 'Documentation built with <a href="https://vitepress.dev/">VitePress</a> | API references generated by <a href="https://github.com/LiteyukiStudio/litedoc">litedoc</a>',
message: 'Page is deployed at <a href="https://meli.liteyuki.icu" target="_blank">Liteyuki Meli</a> and accelerated by <a href="https://cdn.liteyuki.icu" target="_blank">Liteyukiflare</a><br>Documentation built with <a href="https://vitepress.dev/">VitePress</a> | API references generated by <a href="https://github.com/LiteyukiStudio/litedoc">litedoc</a>',
copyright: ThemeConfig.copyright
},
outline: ThemeConfig.getOutLine("Page Content"),

0
docs/.vitepress/config/index.ts Normal file → Executable file
View File

0
docs/.vitepress/config/utils.ts Normal file → Executable file
View File

2
docs/.vitepress/config/zh.ts Normal file → Executable file
View File

@ -20,7 +20,7 @@ export const zh = defineConfig({
'在 GitHub 上编辑此页',
),
footer: {
message: '文档由 <a href="https://vitepress.dev/">VitePress</a> 构建 | API引用由 <a href="https://github.com/LiteyukiStudio/litedoc">litedoc</a> 生成',
message: '网站部署在 <a href="https://meli.liteyuki.icu" target="_blank">Liteyuki Meli</a> 由 <a href="https://cdn.liteyuki.icu" target="_blank">Liteyukiflare</a> 提供加速服务<br>文档由 <a href="https://vitepress.dev/">VitePress</a> 构建 | API引用由 <a href="https://github.com/LiteyukiStudio/litedoc">litedoc</a> 生成',
copyright: ThemeConfig.copyright
},
outline: ThemeConfig.getOutLine("页面内容"),

0
docs/.vitepress/theme/index.ts Normal file → Executable file
View File

0
docs/.vitepress/theme/liteyuki.scss Normal file → Executable file
View File

0
docs/components/ContributorBar.vue Normal file → Executable file
View File

0
docs/components/Dash.vue Normal file → Executable file
View File

0
docs/components/Geo.vue Normal file → Executable file
View File

0
docs/components/Home.vue Normal file → Executable file
View File

0
docs/components/PluginItemCard.vue Normal file → Executable file
View File

0
docs/components/PluginStore.vue Normal file → Executable file
View File

0
docs/components/ResItemCard.vue Normal file → Executable file
View File

0
docs/components/ResPubWindow.vue Normal file → Executable file
View File

0
docs/components/ResStore.vue Normal file → Executable file
View File

0
docs/components/StatsBar.vue Normal file → Executable file
View File

0
docs/components/Tabs.vue Normal file → Executable file
View File

0
docs/components/ToggleSwitch.vue Normal file → Executable file
View File

0
docs/components/TryLiteyukiWindow.vue Normal file → Executable file
View File

0
docs/components/scripts/const.ts Normal file → Executable file
View File

0
docs/components/scripts/i18n.ts Normal file → Executable file
View File

0
docs/components/scripts/statsApi.ts Normal file → Executable file
View File

0
docs/en/deploy/config.md Normal file → Executable file
View File

34
docs/en/deploy/fandq.md Normal file → Executable file
View File

@ -10,20 +10,11 @@ order: 3
- You can specify which python interpreter to use by using the full path to the python executable, for example, `/path/to/python main.py`
- Use virtual environments to avoid conflicts between different python interpreters
- Why does the bot not respond after I start it?
- Please check the configuration file `command_start` or `superusers`, make sure you have permission to use the command and send it correctly
- Make sure the command header does not conflict with `nickname{}`, for example, a command is `help`, but the `Bot` nickname has a `help`, then it will be parsed as a nickname instead of a command
- Update Liteyuki failed, error `InvalidGitRepositoryError`
- Please install `Git` correctly and deploy Liteyuki using cloning instead of direct download
- How to log in to chat platforms such as Telegram?
- If you have this question, it means you don't know much about this project.
This project does not implement the login function, only the message processing and response.
The login function is provided by the implementation side (protocol side). The implementation side itself does not handle response logic.
It processes and reports messages to Liteyuki according to the OneBot standard.
You need to use an implementation side that complies with the OneBot standard to connect to Liteyuki and report messages to Liteyuki.
Some recommended implementation sides have been listed below
- How to log in to chat platforms?
- Some plugins provide the ability to log in to specific platforms, for example, using the NoneBot plugin to log in to supported adapter platforms
- `Playwright` installation failed
- Enter `playwright install` to install the browser
@ -37,24 +28,3 @@ order: 3
- Join chat group[775840726](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=SzmDYbfR6jY94o9KFNon7AwelRyI6M_u&authKey=ygeBdEmdFNyCWuNR4w0M1M8%2B5oDg7k%2FDfN0tzBkYcnbB%2FGHNnlVEnCIGbdftsnn7&noverify=0&group_code=775840726)
- If you don't have a QQ account, you can [submit an issue on GitHub](https://github.com/LiteyukiStudio/LiteyukiBot/issues/new?assignees=&labels=&projects=&template=%E9%97%AE%E9%A2%98%E5%8F%8D%E9%A6%88.md&title=)
## **Recommended Solution(QQ)**
1. [Lagrange.OneBot](https://github.com/KonataDev/Lagrange.Core), based on `Lagrange.Core`, a Linux QQ implementation, supports OneBotv11 protocol
2. [LLOneBot](https://github.com/LLOneBot/LLOneBot), a plugin for `Liteloader NTQQ`, supports OneBotv11 protocol
3. [OpenShamrock](https://github.com/whitechi73/OpenShamrock), based on Lsposed, supports kritor protocol
4. [TRSS-Yunzai](https://github.com/TimeRainStarSky/Yunzai), based on `Node.js`, supports OneBotv11 protocol
5. [go-cqhttp](https://github.com/Mrs4s/go-cqhttp)A QQ Client based on `go`, supports OneBotv11 protocol
6. [Gensokyo](https://github.com/Hoshinonyaruko/Gensokyo), use QQ protocol
## **Recommended Solution(Minecraft)**
1. [MinecraftOneBot](https://github.com/snowykami/MinecraftOnebot), We develop a Minecraft server chat bot
Other project encountered issues, please prioritize the documentation and issues of the project itself, don't ask LiteyukiBot developers
## **Acknowledgements**
- [Nonebot2](https://nonebot.dev) provides the underlying framework
- [nonebot-plugin-alconna](https://github.com/ArcletProject/nonebot-plugin-alconna) provides the command parser
- [MiSans](https://hyperos.mi.com/font/zh/)[MapleMono](https://gitee.com/mirrors/Maple-Mono) provides the font

29
docs/en/deploy/install.md Normal file → Executable file
View File

@ -9,13 +9,23 @@ order: 1
1. Install [`Git`](https://git-scm.com/download/) and [`Python3.10+`](https://www.python.org/downloads/release/python-31010/) Environment.
```bash
# Clone the project
# Clone Repo
git clone https://github.com/LiteyukiStudio/LiteyukiBot --depth=1
# change directory
# Change directory
cd LiteyukiBot
# install dependencies
# Create virtual environment
python -m venv venv
# Activate virtual environment
.\venv\Scripts\activate # Windows
source venv/bin/activate # Linux
# Install dependencies
pip install -r requirements.txt
# start the bot!
# Run Liteyuki
python main.py
```
@ -27,19 +37,14 @@ python main.py
## **Run with Docker**
1. Install [`Docker`](https://docs.docker.com/get-docker/)
2. Clone Repo `git clone https://github.com/LiteyukiStudio/LiteyukiBot --depth=1`
3. Change directory `cd LiteyukiBot`
4. Build docker image `docker build -t liteyukibot .`
5. Run container `docker run -p 20216:20216 -v $(pwd):/liteyukibot -v $(pwd)/.cache:/root/.cache liteyukibot`
```bash
docker pull ghcr.io/liteyukistudio/liteyukibot:latest # Nightly build
```
> [!tip]
> If you are using Windows, please use the absolute project directory `/path/to/LiteyukiBot` instead of `$&#40;pwd&#41;` <br>
> If you have modified the port number, please replace `20216:20216` with your port number
## **Use TRSS Script**
[TRSS_Liteyuki Management Script](https://timerainstarsky.github.io/TRSS_Liteyuki/), which provides a more convenient way to manage LiteyukiBot, recommended to use `Arch Linux`
## **Device Requirements**
- Windows system version minimum `Windows10+`/`Windows Server 2019+`

0
docs/en/dev/best_practices.md Normal file → Executable file
View File

0
docs/en/dev/comm.md Normal file → Executable file
View File

0
docs/en/dev/guide.md Normal file → Executable file
View File

0
docs/en/dev/lyfunc.md Normal file → Executable file
View File

4
docs/en/dev/plugin.md Normal file → Executable file
View File

@ -1,11 +1,11 @@
---
title: Liteyuki Plugin
title: Plugin
order: 3
---
# 简介
轻雪插件是轻雪内置的一部分功能,运行在主进程中,可以很高程度地扩展轻雪的功能
轻雪插件是轻雪内置的一部分功能,运行在主进程中,可以很高程度地扩展轻雪的功能
## 开始

0
docs/en/dev/resource.md Normal file → Executable file
View File

4
docs/en/index.md Normal file → Executable file
View File

@ -18,8 +18,8 @@ hero:
text: 🛠️ Development
link: ./dev/guide
image:
light: /liteyuki.svg
dark: /liteyuki-dark.svg
light: https://cdn.liteyuki.icu/logos/bot.svg
dark: https://cdn.liteyuki.icu/logos/bot.svg
alt: Liteyuki Logo
features:

0
docs/en/store/plugin.md Normal file → Executable file
View File

0
docs/en/store/resource.md Normal file → Executable file
View File

0
docs/en/usage/agreement.md Normal file → Executable file
View File

0
docs/en/usage/basic.md Normal file → Executable file
View File

0
docs/en/usage/extra.md Normal file → Executable file
View File

0
docs/package.json Normal file → Executable file
View File

2248
docs/pnpm-lock.yaml generated Normal file → Executable file

File diff suppressed because it is too large Load Diff

0
docs/public/favicon.ico Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -1,151 +0,0 @@
<svg width="618" height="419" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<linearGradient y2="0.49996" x2="1.00023" y1="0.49996" x1="0.00001" data-name="未命名的渐变 11" id="_未命名的渐变_11">
<stop stop-color="#73fff1" offset="0"/>
<stop stop-color="#5cefff" offset="1"/>
</linearGradient>
<linearGradient xlink:href="#_未命名的渐变_11" y2="457.99" x2="869.05" y1="457.99" x1="834.98" data-name="未命名的渐变 11" id="_未命名的渐变_11-2"/>
<linearGradient xlink:href="#_未命名的渐变_11" y2="377" x2="870" y1="377" x1="838" data-name="未命名的渐变 11" id="_未命名的渐变_11-3"/>
<linearGradient xlink:href="#_未命名的渐变_11" y2="425.24" x2="981.27" y1="425.24" x1="894.96" data-name="未命名的渐变 11" id="_未命名的渐变_11-4"/>
<linearGradient xlink:href="#_未命名的渐变_11" y2="447.26" x2="1070.42" y1="447.26" x1="986.62" data-name="未命名的渐变 11" id="_未命名的渐变_11-5"/>
<linearGradient y2="0.5" x2="1" y1="0.5" x1="0" data-name="未命名的渐变 240" id="_未命名的渐变_240">
<stop stop-color="#eadeff" offset="0"/>
<stop stop-color="#e0efff" offset="0.28"/>
<stop stop-color="#d9ecff" offset="0.43"/>
<stop stop-color="#aedbff" offset="0.59"/>
<stop stop-color="#00d7ff" offset="1"/>
</linearGradient>
<linearGradient y2="0.50003" x2="1.00001" y1="0.50003" x1="-0.00002" data-name="未命名的渐变 9" id="_未命名的渐变_9">
<stop stop-color="#2ebbff" offset="0"/>
<stop stop-color="#006bff" offset="1"/>
</linearGradient>
<linearGradient xlink:href="#_未命名的渐变_9" y2="632.72" x2="1127.05" y1="632.72" x1="1046.74" data-name="未命名的渐变 9" id="_未命名的渐变_9-2"/>
<linearGradient xlink:href="#_未命名的渐变_9" y2="559" x2="1262.04" y1="559" x1="1236.96" data-name="未命名的渐变 9" id="_未命名的渐变_9-3"/>
<linearGradient xlink:href="#_未命名的渐变_9" y2="621.97" x2="1262.59" y1="621.97" x1="1235.37" data-name="未命名的渐变 9" id="_未命名的渐变_9-4"/>
<linearGradient xlink:href="#_未命名的渐变_9" y2="602.15" x2="1219.09" y1="602.15" x1="1133.96" data-name="未命名的渐变 9" id="_未命名的渐变_9-5"/>
<linearGradient y2="0.5" x2="0.99994" y1="0.5" x1="0" data-name="未命名的渐变 12" id="_未命名的渐变_12">
<stop stop-color="#64a4ff" offset="0"/>
<stop stop-color="#5c98ff" offset="1"/>
</linearGradient>
<linearGradient xlink:href="#_未命名的渐变_12" y2="629.45" x2="751.06" y1="629.45" x1="730.81" data-name="未命名的渐变 12" id="_未命名的渐变_12-2"/>
<linearGradient y2="-0.34151" x2="1.51066" y1="0.36026" x1="0.21368" data-name="未命名的渐变 72" id="_未命名的渐变_72">
<stop stop-color="#c4aeff" offset="0"/>
<stop stop-color="#ce9fff" offset="0.43"/>
<stop stop-color="#af8eff" offset="0.55"/>
<stop stop-color="#7d74ff" offset="0.72"/>
<stop stop-color="#6333ff" offset="0.9"/>
</linearGradient>
<linearGradient y2="0.4727" x2="1.00087" y1="0.52857" x1="0.01203" data-name="未命名的渐变 58" id="_未命名的渐变_58">
<stop stop-color="#b1ccff" offset="0"/>
<stop stop-color="#b8c0ff" offset="0.34"/>
<stop stop-color="#cba2ff" offset="0.94"/>
<stop stop-color="#ce9fff" offset="1"/>
</linearGradient>
<linearGradient y2="0.50006" x2="1" y1="0.50006" x1="0.00045" data-name="未命名的渐变 13" id="_未命名的渐变_13">
<stop stop-color="#5cb1ff" offset="0"/>
<stop stop-color="#64aaff" offset="1"/>
</linearGradient>
<linearGradient xlink:href="#_未命名的渐变_13" y2="640.89" x2="762.01" y1="640.89" x1="755.95" data-name="未命名的渐变 13" id="_未命名的渐变_13-2"/>
<linearGradient y2="0.46723" x2="1.08059" y1="0.5373" x1="0.11482" data-name="未命名的渐变 65" id="_未命名的渐变_65">
<stop stop-color="#64a2ff" offset="0.11"/>
<stop stop-color="#62a6ff" offset="0.28"/>
<stop stop-color="#5cb5ff" offset="1"/>
</linearGradient>
<linearGradient y2="0.61559" x2="1.13197" y1="0.40965" x1="0.09495" data-name="未命名的渐变 66" id="_未命名的渐变_66">
<stop stop-color="#5cb5ff" offset="0"/>
<stop stop-color="#74e0ff" offset="1"/>
</linearGradient>
<linearGradient y2="0.48885" x2="1.08173" y1="0.51016" x1="0.08139" data-name="未命名的渐变 68" id="_未命名的渐变_68">
<stop stop-color="#9cd1ff" offset="0"/>
<stop stop-color="#bae0ff" offset="1"/>
</linearGradient>
<linearGradient y2="0.50005" x2="1.00016" y1="0.50005" x1="0.00009" data-name="未命名的渐变 71" id="_未命名的渐变_71">
<stop stop-color="#a6d3ff" offset="0"/>
<stop stop-color="#b1ccff" offset="0.7"/>
</linearGradient>
<linearGradient xlink:href="#_未命名的渐变_58" y2="631.98" x2="928.63" y1="638.79" x1="890.79" data-name="未命名的渐变 58" id="_未命名的渐变_58-2"/>
<linearGradient y2="0.50004" x2="1.00001" y1="0.50004" x1="-0.00008" data-name="未命名的渐变 14" id="_未命名的渐变_14">
<stop stop-color="#5ca4ff" offset="0"/>
<stop stop-color="#64a2ff" offset="1"/>
</linearGradient>
<linearGradient y2="0.4999" x2="0.99997" y1="0.4999" x1="-0.00009" data-name="未命名的渐变 5" id="_未命名的渐变_5">
<stop stop-color="#64a2ff" offset="0"/>
<stop stop-color="#5cc9ff" offset="1"/>
</linearGradient>
<linearGradient y2="0.50013" x2="0.99983" y1="0.50013" x1="0.00007" data-name="未命名的渐变 69" id="_未命名的渐变_69">
<stop stop-color="#84c9ff" offset="0"/>
<stop stop-color="#b1ccff" offset="0.42"/>
</linearGradient>
<linearGradient y2="0.36565" x2="1.03665" y1="0.6159" x1="0.09061" data-name="未命名的渐变 67" id="_未命名的渐变_67">
<stop stop-color="#74e0ff" offset="0"/>
<stop stop-color="#8dd6ff" offset="0.56"/>
<stop stop-color="#9cd1ff" offset="1"/>
</linearGradient>
<linearGradient y2="0.5" x2="1" y1="0.5" x1="0" data-name="未命名的渐变 6" id="_未命名的渐变_6">
<stop stop-color="#64a2ff" offset="0"/>
<stop stop-color="#5cbfff" offset="1"/>
</linearGradient>
<linearGradient y2="0.5" x2="1" y1="0.5" x1="0" data-name="未命名的渐变 7" id="_未命名的渐变_7">
<stop stop-color="#64ccff" offset="0"/>
<stop stop-color="#84c9ff" offset="1"/>
</linearGradient>
<linearGradient xlink:href="#_未命名的渐变_7" y2="548.5" x2="837" y1="548.5" x1="831.98" data-name="未命名的渐变 7" id="_未命名的渐变_7-2"/>
<linearGradient xlink:href="#_未命名的渐变_7" y2="569.39" x2="846.98" y1="569.39" data-name="未命名的渐变 7" id="_未命名的渐变_7-3"/>
<linearGradient y2="0.5" x2="1" y1="0.5" x1="0" data-name="未命名的渐变 8" id="_未命名的渐变_8">
<stop stop-color="#84c9ff" offset="0.01"/>
<stop stop-color="#b1ccff" offset="1"/>
</linearGradient>
<linearGradient y2="0.5" x2="4.66625" y1="0.5" x1="4.61625" data-name="未命名的渐变 55" id="_未命名的渐变_55">
<stop stop-color="#b1c9ff" offset="0"/>
<stop stop-color="#b1ccff" offset="0.42"/>
</linearGradient>
</defs>
<g>
<title>Layer 1</title>
<g data-name="图层 3" id="_图层_3">
<path id="svg_1" fill="#7a9ec2" stroke-width="0px" d="m74.07715,375.0022c11.04,8.56 30.35,0.82 33,0c14.37,-4.43 15.38,-15.33 26,-15c10.44,0.33 13.16,10.98 24,10c6.48,-0.59 7.04,-4.53 16,-6c8,-1.31 8.66,1.66 17,1c12.76,-1.01 15.73,-8.33 24,-6c8.42,4.47 11.58,6.51 22,5c0,0 11.3,-1.75 32,-10c1.42,-9.07 4.72,6.12 11.99,12c10.1,9.09 19.95,-0.4 31,8c10.86,8.26 13.5,26.66 13,31c-1.65,4.39 6.37,10.16 6,10c-4.41,-0.77 -20.72,-10.82 -25,-11c-6.8,-1.26 -15.53,-2.26 -24,-5c-17.1,-5.24 -15.17,-10.82 -34,-10c-7.53,0.04 -6.69,-0.47 -12,1c-2.54,-0.23 -9.74,0.73 -13,-1c-18.29,-11.87 -9.94,11.78 -36,3c-9.47,1.86 -14.72,0.65 -18.02,-1.12c-2.21,-1.19 -4.61,-5.33 -6.74,-4.61c-0.57,0.19 -0.74,0.58 -2.24,1.74c-1.2,0.93 -2.27,1.58 -3,2c-0.91,0.36 -1.91,0.7 -3,1c-2.93,0.8 -5.59,1.02 -7.75,1.02c-0.74,0 -1.87,-0.01 -3.25,-0.02c-3.97,0 -3.61,0.03 -4,0c-2.87,-0.21 -3.75,-0.93 -7,-1c-0.42,0 -0.77,0 -1,0l-6,0c-3,0.22 -5.39,0.65 -7,1c-1.72,0.37 -3.36,0.82 -10,3c-3.07,1.01 -4.59,1.59 -6,2c-1.81,0.53 -5.13,1.49 -9,2c-5.07,0.67 -9,0.3 -12,0c-6.54,-0.65 -11.56,-2.18 -14,-3c-4.6,-1.55 -26.12,-13.37 -20,-10c0,0 0,0 0,0c-0.03,-0.02 -20.88,-13.37 -28,-32c-1.09,-2.85 -2,-6 -2,-6c-0.52,-1.8 -1.44,-5.03 -2,-9c-0.44,-3.12 -1.34,-9.53 0,-10c1.69,-0.59 6.23,8.51 7.27,10.48c5.15,9.76 18.12,22.54 52.73,35.52l0.01,-0.01z" class="cls-10"/>
<path id="svg_2" fill="#7a9ec2" stroke-width="0px" d="m260.07715,284.0022c-13.63,7.43 -2.93,57.29 2,57c1.82,-0.11 1.13,-6.97 8,-16c3,-3.94 3.81,-3.37 5,-6c0.88,-3.8 2.06,-11.66 -2,-19c-0.61,-1.11 -1.29,-2.11 -2,-3c-0.31,-0.36 -0.8,-1.04 -1,-2c-0.06,-0.32 -0.19,-0.91 0,-1c0.26,-0.13 0.82,0.87 2,2c0.84,0.81 1.71,1.61 3,2c1.06,0.32 1.94,0.17 3,0c1.38,-0.23 2.37,-0.69 3,-1c1.31,-0.64 2.25,-1.09 3,-2c1.84,-2.22 1.14,-5.41 1,-6c-0.33,-1.36 -0.69,-1.29 -2,-4c-0.87,-1.8 -0.57,-1.55 -2,-5c-0.49,-1.19 -1,-2.79 -2,-6c-0.12,-0.39 -0.37,-1.22 0,-2c0,0 0.29,-0.6 1,-1c1.98,-1.11 11.6,0.55 15,1c2.66,0.35 13.92,1.61 15.83,2.95c0.42,0.3 0.8,0.64 1.17,1.05c2.43,2.73 0.93,4.31 3,9c3.83,8.69 13.16,12.57 19,15c5.09,2.12 8.54,2.5 13,3c6.22,0.69 7.53,-0.22 8,-1c0.74,-1.23 -0.27,-2.7 -1,-5c-1.53,-4.78 -0.3,-8.09 0,-12c0.51,-6.64 -1.77,-13.74 -4,-17c-9.26,-13.54 -41.29,4.77 -71,-2c-1.28,-0.29 -9.89,-2.3 -12,1c-1.87,2.94 2.99,7.55 1,12c-1.49,3.33 -5.5,3.63 -8,5z" class="cls-10"/>
<path id="svg_3" fill="#7a9ec2" stroke-width="0px" d="m310.07715,118.0022c-22.42,19.49 74.7,203.11 32,245c-9.08,8.91 -26.9,13.94 -28,28c-0.65,8.33 4.78,18.3 13,23c13.88,7.94 28.83,2.05 33,-1c2.68,-1.96 4,-4 4,-4c1.44,-2.22 1.56,-3.91 3,-8c0.76,-2.17 1.5,-3.9 2,-5c0.43,-1.13 0.95,-2.86 1,-5c0.04,-1.88 -0.32,-2.29 -0.25,-4.13c0.04,-1.01 0.22,-5.22 2.25,-5.87c0.27,-0.09 1.3,-0.35 3,1c-0.17,-0.41 -0.33,-0.87 -0.21,-0.95c0.24,-0.16 1.16,1.42 2.21,1.95c2.87,1.44 7.56,-0.07 8,-2c-10.79,-5.85 -14.4,-6.84 -15,-6c-0.79,1.11 3.49,5.56 3,6c-0.37,0.33 -3.05,-1.93 -3,-2c0.05,-0.07 3.08,1.97 4,3c0.08,0.09 0.44,0.51 1,1c0.23,0.2 0.43,0.36 0.55,0.46c0.1,0.12 0.26,0.31 0.45,0.54c2.9,3.62 4.2,7.01 4.62,8.05c0.92,2.28 2.67,5.77 6.38,10.95c15.05,16.54 34.83,19.18 54,9c16.33,3.81 7.85,10.54 33,5c25.9,-4.5 50.39,1.98 49,-25c-1.26,-10.66 -5.86,-19.02 0,-10c8.68,14.17 21.69,39.51 43,27c1.34,-1.14 2.88,-2.66 4.33,-4.64c2.87,-3.92 4.1,-7.81 4.67,-10.36c0.04,-0.43 0.28,-2.3 1.9,-3.7c1.23,-1.06 2.58,-1.26 3.1,-1.3c0.01,0.08 0.16,1 -0.41,1.5c-0.6,0.53 -1.8,0.43 -2.59,-0.5c0.43,2.03 1.75,6.85 6,11c1.06,1.04 7.1,6.7 16,6c9.28,-0.73 15.02,-7.84 17,-12c1.58,-3.32 2,-7 2,-7c0.25,-2.19 0.1,-3.79 0,-5c-0.36,-4.65 0,-9.33 0,-14l0,-27c0.04,-1.66 0.03,-8.44 0,-22c0,0 -0.42,-5.41 -3,-9c-0.96,-1.33 -2,-2 -2,-2c-0.29,-0.19 -0.31,-0.16 -2,-1l-2,-1l-2,-1c-0.51,-0.2 -1.22,-0.52 -2,-1c-4.12,-2.53 -6.05,-6.97 -6,-7c0.05,-0.03 2.59,3.37 2,4c-0.16,0.18 -0.53,0.07 -1,0c-1.2,-0.18 -1.99,-1.02 -2,-1c-0.02,0.03 0.5,0.41 3,2c0.12,-0.38 0.34,-0.98 0.76,-1.61c1.31,-1.93 3.18,-2.14 5.24,-3.39c1.95,-1.18 3.03,-2.66 4,-4c0.61,-0.85 2.43,-3.41 3,-7c0.69,-4.36 -0.85,-7.8 -1.68,-9.65c-3.9,-8.74 -12.88,-12.43 -15.32,-13.35c-0.13,0.06 -1.05,0.47 -2,0c-0.61,-0.3 -0.9,-0.8 -1,-1c-0.59,-2.25 -2.17,-3.18 -3,-6c-1.01,-2.71 -2.29,-10.67 -2,-12c0.57,-5.41 2.39,-8.84 4,-11c2.1,-2.82 3.85,-3.49 6,-7c1.06,-1.73 2.73,-4.47 3,-8c0.59,-7.63 -5.74,-13.78 -7,-15c-2.59,-2.51 -5.28,-3.88 -7,-6c-0.29,-0.36 -1.32,-1.69 -3.17,-2.63c-0.4,-0.2 -0.68,-0.31 -0.83,-0.37c-2.54,-1.08 -3.91,-5.69 -4,-6c-1.92,-6.71 -2.5,-10.84 -4,-16c-1.04,-3.56 -1.16,-2.94 -2,-6c-1.68,-6.11 -1.81,-10.75 -2,-14c-0.59,-9.95 -1.18,-14.9 -3,-20c0,0 -2.12,-5.94 -7,-12c-15.98,-19.87 -78.67,-21.15 -79,-18c-0.19,1.79 19.52,6.96 19,9c-0.13,0.51 -1.4,1.23 -3.15,3.43c0,0 0,0 0,0c-2.67,4.24 -1.37,8.35 -7.85,14.57c-10.42,10 -22.57,7.8 -34,13c-5.27,2.29 -9.81,3.41 -13,4c-5.08,0.94 -7.67,1.39 -10,0c-2.43,-1.45 -1.99,-3.22 -6,-8c-0.59,-0.71 -2.4,-2.82 -5,-5c-4.84,-4.06 -6.07,-3.05 -9,-6c-1.97,-1.98 -1.39,-2.41 -6,-10c-2.23,-3.66 -3.34,-5.49 -4,-6c-3.01,-2.31 -5.67,-1.38 -15,-3c-2.88,-0.5 -2.43,-0.55 -5,-1c-11.13,-1.94 -15.79,-0.28 -26,-2c-1.7,-0.29 -4.35,-0.8 -7.57,-1.74c-7.85,-9.54 -30.21,6.06 -40.43,13.74z" class="cls-10"/>
<path id="svg_4" fill="#7a9ec2" stroke-width="0px" d="m294.07715,64.0022c-4.66,0.36 -8.11,1.64 -10.79,3.57c-12.46,8.98 -7.88,22.29 -21.35,37.56c-8.93,10.12 -22.26,16.35 -26.86,15.87c-1.25,-0.13 -5.27,-1.1 -8,1c-0.59,0.45 -1.25,1.15 -2,1c-1.15,-0.23 -1.71,-2.29 -2,-4c0,0 1,-2 1,-2c2.92,-5.84 2.97,-5.95 3,-6c2,-4.02 5.56,-11.16 5,-17c-0.84,-8.77 -11.08,-15.9 -20,-18c-12.28,-2.89 -22.17,3.73 -24,5c-12.11,2.27 -15.97,0.27 -17.33,-1.85c-1.94,-3.02 0.84,-6.86 5.33,-19.16c3.86,-10.58 5.89,-16.13 6,-22c0.1,-5.49 -1.43,-13.73 -10,-24c-23.21,-14.8 -47,-13.43 -56,-2c-1.46,1.85 -5.64,7.92 -4,20c-3.3,4.02 -9.31,1.14 -20,4c-10.63,1.96 -20.69,9.46 -13,23c5.63,9.91 94.53,145.36 192.09,115.49c50.17,-15.36 72.52,-65.2 72.91,-66.49c0.03,-0.1 0.51,-1.68 0,-2c-0.15,-0.1 -0.3,-0.03 -1,0l-3,0c-1.55,0 -3.44,-0.77 -4,-1c-0.06,-0.02 -0.12,-0.05 -0.2,-0.08c-1.67,-0.72 -4.91,-2.37 -4.8,-2.92c0.11,-0.56 3.88,-0.54 16,1c-0.74,-0.29 -1.76,-0.66 -3,-1c-1.48,-0.41 -3.48,-0.96 -6,-1c-2.59,-0.05 -2.83,0.27 -5,0c-0.92,-0.12 -2.41,-0.3 -4,-1c-4.1,-1.8 -5.85,-5.64 -6,-6c-0.77,-1.78 -0.86,-3.52 -1,-7c-0.1,-2.49 0.1,-2.7 0,-5c-0.14,-3.15 -0.22,-5.06 -1,-7c-1.47,-3.67 -4.66,-5.59 -7,-7c-2.96,-1.78 -5.54,-2.42 -8,-3c-2.73,-0.65 -6.85,-1.32 -12,-1l0,0.01z" class="cls-10"/>
</g>
<g data-name="背景" id="_背景">
<path id="svg_5" fill="#666" stroke-width="0px" d="m199.07715,72.0022c-16.42,-3.08 -26.21,8.1 -31,4c-7.63,-6.54 18.33,-33.97 9,-55c-6.88,-15.51 -30.12,-21.13 -45,-21c-3.33,0.03 -16.49,0.44 -31,9c-30.76,18.15 -37.62,55.27 -56,109c-20.03,58.55 -43.71,77.3 -45,119c-0.4,13.04 0.88,31.37 1,33c2.91,40.64 9.7,47.97 12,64c0.27,1.85 0.98,7.34 5,12c0.83,0.96 1.59,1.64 2.01,2c0.47,0.48 1.15,1.18 1.99,2c10.84,10.63 27.33,20.18 27.33,20.18c17.89,10.12 26.84,15.18 35.66,13.82c3.19,-0.49 6.88,-1.68 16.62,-3.27c3.46,-0.56 6.46,-0.79 12.39,-1.73c3.95,-0.63 7.36,-0.89 10,-1c3.64,-0.15 6.36,-0.03 7,0c4.66,0.22 8.01,0.84 9,1c3.81,0.61 10.14,0.32 21,-4c3.96,0.13 4.67,2.49 9,4c4.59,1.6 5.73,-0.37 15,0c16.7,2.72 12.4,-0.95 25,-4c5.48,-0.56 5.78,1.97 14,3c9.86,2.45 36.35,-8.51 48,1c6.44,5.27 9.1,4.24 16,6c7.05,3.78 15.85,4.35 23,8c18.2,11.17 34.14,20.96 51,2c5.59,-6.98 3.83,-12.43 8,-14c7.13,-2.81 31.59,30.21 58,23c15.36,-6.57 13.31,-4.51 28,1c5.68,1.04 23.32,-3.84 33,-4c12.6,-0.87 15.51,0.92 21,-2c11.5,-6.32 8.35,-12.82 9,-21c6.52,3 17.82,31.94 43,18c6.28,-4.14 7.41,-10.27 11,-10c3.81,0.29 3.43,7.28 9,11c7.22,4.82 20.84,1.79 26,-6c1.88,-2.84 1.95,-5.28 2,-16c0.06,-12.86 2.5,-34.29 1,-57c-0.27,-4.14 -0.62,-6.12 -2,-8c-1.81,-2.47 -4.68,-3.81 -7.73,-8.57c-0.11,-0.18 -0.21,-0.33 -0.27,-0.43c0,-0.08 -0.02,-0.19 -0.02,-0.33c0.03,-1.6 1.77,-2.75 2.36,-3.17c1.19,-0.85 2.8,-2.4 4.66,-5.5c10.77,-33.99 -34.41,-21.61 -20,-59c3.12,-6.89 6.55,-6.37 8,-12c2.32,-9.04 -4.5,-18.26 -8,-23c-5.99,-8.1 -8.37,-6.45 -17,-17c-2.93,-3.58 -6.84,-8.36 -9.5,-15.5c-2.32,-6.24 -2.48,-11.05 -2.5,-12.5c0,-0.42 0,-0.77 0,-1c0.13,-4.73 -0.28,-14.34 -6,-24c-7.76,-13.12 -28.18,-18.94 -40,-22c-15.86,-4.11 -39.47,-10.22 -51,1c-3.37,3.28 -5.98,8.31 -13,11c-5.03,1.93 -10.55,1.97 -14,2c-4.92,0.04 -8.59,-0.58 -11,-1c-1.86,-0.32 -10.82,-1.96 -17,-6c-0.12,-0.08 -0.17,-0.11 -0.32,-0.21c-0.99,-0.63 -3.29,-1.88 -9.18,-3.72c-18.42,-5.77 -40.67,-7.51 -55.5,-8.07c-2.82,-0.11 -3.62,-0.51 -8,-1c-2.91,-0.33 -4.55,-0.47 -7,-1c-3.02,-0.65 -4.54,-0.98 -6,-2c-2.14,-1.49 -3.17,-3.66 -4,-6c-3.13,-8.82 -0.7,-12.16 -3,-17c-2.84,-5.97 -10.15,-7.96 -14,-9c-2.47,-0.67 -11.2,-2.68 -20,2c-1.88,1 -6.08,3.3 -9,8c-2.37,3.82 -1.56,5.46 -4,14c-2.08,7.28 -3.18,10.97 -6,13c-1.17,0.85 -5.1,3.27 -13,1c-3.07,-0.18 -7.45,0 -12,2c-8.86,3.88 -12,11.82 -14,11c-2.79,-1.15 5.52,-15.64 0,-28c-5.58,-12.5 -22.22,-15.85 -23,-16z" class="cls-6"/>
<g data-name="主体" id="_主体">
<path fill="url(#_未命名的渐变_11)" stroke-width="0px" d="m143.07715,31.0022c-0.07,-9.92 -10.48,-14.93 -19.79,-10.14c-26.5,20.43 -60.22,177.47 -46.22,199.15l0,0c0.82,1.48 2.09,3.31 4,5c0.71,0.63 3.63,3.11 8.06,4.22c0.06,0.02 0.12,0.03 0.15,0.04c0,0 0.25,0 0.25,0c6.98,0.1 42.56,0.64 49.53,0.74c8.08,0 14.43,-3.25 15.96,-8.03c1.6,-4.98 -2.25,-10.37 -3.96,-11.97c-10.75,-10.03 -32.41,-2.79 -46.53,-8.99c1.03,-45.36 25.88,-124.06 38.53,-170.01l0.02,-0.01z" class="cls-3" id="lite-l"/>
<path fill="url(#_未命名的渐变_11-2)" stroke-width="0px" d="m196.07715,130.0022c4.11,0.31 6.91,2.96 8,4c6.83,6.48 6.93,17.68 7,26c0,0.06 0,0.03 0,7c0,14.32 0,21.48 0,22c0.04,13.27 0.66,35.34 -4,42c-1.29,1.84 -3,3 -3,3c-2.97,2.01 -6.17,1.99 -8,2c-1.45,0 -7.74,-0.12 -13,-5c-6.34,-5.87 -6.06,-13.87 -6,-15c0,-0.07 0,-9.93 0,-10c0,-38.04 0,-37.85 0,-38c-0.02,-1.29 -0.01,-3.53 0,-8c0.03,-9.9 0.15,-12.06 1,-15c1.28,-4.42 3.15,-6.95 4,-8c1.1,-1.36 2.19,-2.34 3,-3c0.7,-0.58 1.7,-1.32 3,-2c0.98,-0.52 4.28,-2.28 8,-2z" class="cls-16" id="lite-i-1"/>
<path fill="url(#_未命名的渐变_11-3)" stroke-width="0px" d="m193.85715,86.0722c8.85,-0.96 18.71,7.52 18.2,17.09c-0.5,9.28 -10.62,16.63 -19.33,14.46c-6.93,-1.73 -13.7,-9.65 -12.51,-18.4c1.06,-7.79 7.93,-12.52 13.65,-13.14l-0.01,-0.01z" class="cls-31" id="lite-i-1-1"/>
<path fill="url(#_未命名的渐变_11-4)" stroke-width="0px" d="m270.07715,109.0022c-5.46,4.9 -13.26,-2.45 -24,3c-1.76,0.89 -7.94,4.02 -9,10c-0.32,7.28 1.09,10.38 7,14c1.09,0.46 1.2,0.26 6,1c5.06,0.78 4.17,0.82 6,1c2.65,0.64 5.81,0.21 8,2c-1.37,3.47 -2.84,7.85 -4,13c-1.54,6.84 -1.9,12.21 -2,14c-0.55,9.95 0.87,18.04 1.98,22.78c2.44,10.5 5.56,15.48 9.02,22.22c2.16,4.21 19.54,19.38 30,8c4.48,-5.11 2.13,-12.61 2,-13c-1.5,-4.54 -4.19,-4.73 -8,-10c-2.14,-2.97 -3.9,-6.54 -6,-15c0,0 -3.62,-14.55 -1,-31c0.07,-0.45 0.7,-4.15 3,-7c0.34,-0.42 0.64,-0.72 1,-1c2.08,-1.58 4.79,-1.16 6,-1c0,0 2.62,0.34 11,0c2.39,-0.1 5.82,-0.51 10,-2c1.2,-0.76 4.96,-3.37 6,-8c1.27,-5.69 -2.25,-11.34 -6,-14c-1.62,-1.15 -7.64,-4.84 -14,-5c-0.75,-0.02 -2.43,-0.01 -3,-1c-0.71,-1.24 0.71,-3.39 2,-5c17.38,-27.36 -15.06,-42.63 -26,-19c-5.75,12.08 -1.75,17.19 -6,21z" class="cls-4" id="lite-t"/>
<path fill="url(#_未命名的渐变_11-5)" stroke-width="0px" d="m362.07715,166.0022c-0.58,0.39 -5.22,3.65 -5,8c0.19,3.92 4.21,6.49 5,7c5.42,3.48 9.31,0.51 25,-1c10.15,-0.98 16.08,-0.47 21,-5c1.85,-1.71 2.74,-3.47 3,-4c2.71,-5.47 0.88,-11.23 0,-14c-3.43,-10.82 -12.5,-16.72 -16,-19c-7.86,-5.11 -15.39,-6.53 -19,-7c-4.34,-0.56 -13.27,-1.6 -23,3c-9.69,4.58 -14.55,12.09 -17,16c-1.5,2.4 -5.98,10.02 -7,21c-0.52,5.6 -1.49,16.1 5,26c5.1,7.79 12.21,11.23 16,13c9.03,4.23 17,4.1 23,4c9.99,-0.17 16.58,-2.61 23,-5c2,-0.74 5.17,-2.02 8,-5c1.68,-1.77 4.08,-4.29 4,-8c-0.07,-3.36 -2.16,-6.53 -5,-8c-3.53,-1.83 -7.16,-0.62 -9,0c-1.16,0.39 -1.55,0.69 -4,2c-3.13,1.68 -6.56,3.38 -8,4c-6.18,2.67 -12.7,1.44 -15,1c-3.93,-0.74 -9.92,-1.88 -14,-7c-2.99,-3.76 -3.69,-8.07 -4,-10c-0.23,-1.41 -0.55,-4.21 -0.03,-7.67c0.24,-1.6 0.98,-6.11 4.03,-10.33c0.37,-0.52 7.1,-9.49 18,-9c1.43,0.06 9.65,0.59 14,7c1.16,1.71 2.94,4.33 2,6c-2.22,3.93 -15.76,-4.29 -25,2z" class="cls-8" id="lite-e"/>
<path fill="url(#_未命名的渐变_240)" stroke-width="0px" d="m502.07715,162.0022l13.33,22l9.67,-15l-8,-20l4,-6l6,2l9,13l7,-11l9,1l3,7l-11,13l17,2l4,8l-5,4l-22,-4l-13.5,16.8l27.5,5.2l11,-14l7,1l3,7l-9,11l19,3l4,7l-4,5l-18,-3l7,14l-4,4l-8,-1l-10,-20l-40,-8l-2,-2l-20,-37l-23,-4l-3,-7l4,-5l16,3l-9,-15l4,-6l7,1l9,16l9,-10l7,2l3,6l-10,14z" class="cls-20" id="logo-snow"/>
<path fill="url(#_未命名的渐变_9)" stroke-width="0px" d="m344.07715,316.0022c-5.28,-2.41 -12.58,-6.43 -20,-13c-8.2,-7.27 -12.49,-14.08 -18,-23c-8.92,-14.43 -16.4,-26.53 -12,-35c2.45,-4.71 7.07,-6.66 7.07,-6.66c2.53,-1.08 5.74,-1.4 9.93,-0.34c15.19,5.99 14.64,39.18 45,55c8.67,-18.92 10.28,-33.18 10,-43c-0.12,-4.37 -0.74,-12.15 4,-16c0.82,-0.55 5.22,-3.4 10.85,-2.15c3.86,0.85 6.25,3.17 7.15,4.15c0.5,0.6 1.28,1.58 2.09,2.87c8.99,14.33 0.03,32.06 -11.49,69.45c-4.1,13.3 -6.65,21.58 -9.6,33.68c-5.81,23.86 -8.17,40.38 -20,51c-11.03,9.91 -22.32,0.03 -23,-9c-2.89,-15.02 23.13,-56.98 18,-68z" class="cls-27" id="yuki-y"/>
<path fill="url(#_未命名的渐变_9-2)" stroke-width="0px" d="m403.07715,323.0022c-0.54,-0.11 -5.36,-1.02 -9,2c-2.31,1.92 -3.04,4.55 -4,8c-0.74,2.66 -0.91,4.8 -1,6c-0.59,8.25 0,15 0,15c1.18,13.55 1.77,20.33 3,23c1.04,2.27 4.07,8.71 11,13c6.21,3.85 12.31,3.91 21,4c0.81,0 16.83,0.09 21,-4c0.22,-0.21 1.2,-1.26 2,-1c0.93,0.3 0.69,2.05 2,4c0,0 0.63,0.93 2,2c3.54,2.75 12.53,3.41 16,-1c0.62,-0.79 1.75,-2.64 2,-5c0.07,-0.68 0.05,-1.22 0.02,-1.76c-0.13,-2.75 -0.88,-4.83 -1.02,-5.24c-1.31,-3.73 -3.37,-15.69 -4,-23c-0.58,-6.71 0.42,-5.3 0,-19c-0.11,-3.63 -0.12,-9.19 -3,-15c-1.36,-2.75 -2.63,-4.09 -4,-5c-2.95,-1.96 -6.82,-2.22 -10,-1c-0.8,0.31 -3.48,1.34 -5,4c-1.36,2.37 -1.11,4.83 -1,6c0.66,6.98 0.45,14.01 1,21c0.72,9.13 0.57,11.51 -1,14c-1.8,2.86 -4.42,4.2 -6,5c-7.58,3.86 -15,0.82 -17,0c-2.54,-1.04 -3.49,-2.11 -4,-3c-0.74,-1.29 -0.88,-2.78 -1,-4c-0.13,-1.35 -0.05,-2.34 0,-3l0,-16c-0.19,-7.44 -0.28,-11.16 -2,-14c-0.52,-0.85 -3.02,-4.98 -8,-6z" class="cls-21" id="yuki-u"/>
<path fill="url(#_未命名的渐变_9-3)" stroke-width="0px" d="m591.07715,272.0022c-6.65,0.3 -12.55,6.12 -12,13c0.53,6.56 6.7,11.28 13,11c6.65,-0.3 12.55,-6.12 12,-13c-0.53,-6.56 -6.7,-11.28 -13,-11z" class="cls-2" id="yuki-i-1-1"/>
<path fill="url(#_未命名的渐变_9-4)" stroke-width="0px" d="m591.07715,303.0022c-15.96,1.04 -13.95,25.54 -13,36c1.45,14.24 -7.18,66.6 24,48c5.91,-7.41 -0.33,-25.41 1,-45c-2.16,-11.6 6.6,-38.49 -12,-39z" class="cls-23" id="yuki-i-1"/>
<path fill="url(#_未命名的渐变_9-5)" stroke-width="0px" d="m545.07715,299.0022c-0.26,-0.11 -0.66,-0.27 -1.17,-0.44c0,0 -4.46,-1.53 -9.91,-1c-4.47,0.44 -18.59,11.34 -31.93,31.43c-0.35,-10.53 -0.23,-21.87 0.56,-33.9c0.37,-5.55 0.85,-10.92 1.44,-16.1c0.26,-1.2 0.52,-2.94 0.41,-5.03c-0.09,-1.81 -0.25,-4.96 -2.27,-8.04c-0.56,-0.85 -2.9,-4.42 -7.52,-5.51c-5.61,-1.33 -10.01,2.08 -10.62,2.58c-3.44,2.76 -4.45,6.67 -5,9c-3.6,15.32 -3,27 -3,27c0.42,8.15 1.67,32.57 1,50c-0.22,5.66 0.05,11.33 0,17c-0.05,6.02 -0.13,9.05 1,13c1.45,5.07 4.08,8.75 6,11c1.19,1.11 3.93,3.36 8,4c3.99,0.63 7.79,-0.51 9.84,-1.85c11.06,-7.21 1.65,-39.59 4.55,-40.56c0.39,-0.13 1.19,0.88 2.61,3.4c8.89,11.22 14.99,15.39 30,29c7.7,10.13 23.45,3.59 22,-8c-0.19,-16.59 -39.62,-33.08 -31.91,-39.47c1.89,-2.38 6,-8.21 6.91,-9.53c5.47,-7.8 10.83,-8.44 13,-15c1.34,-4.04 0.69,-6.57 0.43,-7.38c-1.01,-3.15 -3.39,-4.94 -4.43,-5.62l0.01,0.02z" class="cls-28" id="yuki-k"/>
<path fill="url(#_未命名的渐变_12)" stroke-width="0px" d="m79.07715,274.0022c-1.75,-1 -2.61,-0.17 -10,1c-2.22,0.35 -7.11,1.06 -13,3c-1.36,0.45 -2.68,0.93 -3,2c-0.49,1.65 1.56,4.27 4,5c0.32,0.09 0.56,0.13 0.74,0.16c2.19,0.34 3.89,-0.56 5.26,-1.16c1.96,-0.87 3.64,-1.24 7,-2c0,0 4.44,-1 5,0c0.02,0.04 0.04,0.07 0.04,0.07c0.07,0.18 -0.02,0.5 -0.04,2.93c0,0.06 0,0.71 0,2c0,5.01 0.09,5.71 0,7c-0.2,2.74 -0.3,4.11 -1,5c-1.25,1.58 -3.23,1.52 -7,2c-5.62,0.72 -4.41,1.27 -10,2c-7.19,0.94 -9.49,0.07 -11,2c-1.32,1.68 -1.32,4.57 0,6c1.74,1.88 5.46,0.88 9,0c7.35,-1.82 19.55,-4.84 29,-6c4.81,-0.59 12,-1.09 13,-4c0.57,-1.65 0,-3 0,-3c-0.06,-0.14 -0.62,-1.43 -2,-2c-1.19,-0.49 -2.36,-0.18 -3,0c-6.78,1.91 -9.23,2.82 -10,2c-0.45,-0.48 -0.17,-1.39 0,-2c1.77,-6.29 1.22,-12.36 1,-14c-0.23,-1.67 -0.84,-6.18 -4,-8z" class="cls-24" id="lite-jp-1"/>
<path fill="url(#_未命名的渐变_12-2)" stroke-width="0px" d="m75.07715,330.0022c-1.02,0.34 -1.72,1.18 -2,2c-0.31,0.93 -0.06,1.78 0,2c0.38,1.39 0.25,7.26 0,19c-0.12,5.74 -0.36,7.73 0,12c0.21,2.49 0.58,5.11 2,8c0.87,1.76 1.83,3.72 4,5c2.08,1.23 4.09,1.14 7,1c2.69,-0.13 6.51,-0.31 7,-2c0.37,-1.27 -1.18,-3.23 -3,-4c-2.78,-1.18 -4.84,0.97 -7,0c-2.17,-0.97 -2.69,-4.29 -3,-7c-1.07,-9.45 -0.9,-24.04 -1,-30c-0.02,-1.36 -0.12,-5.21 -2,-6c-0.58,-0.25 -1.37,-0.21 -2,0z" class="cls-14" id="liteecho-1"/>
<path fill="url(#_未命名的渐变_72)" stroke-width="0px" d="m263.13715,280.9522c-2.11,0.2 -3.55,1.9 -3.93,2.35c-0.57,0.68 -0.91,1.34 -1.11,1.8c1.09,1.05 6.06,5.64 11.22,4.91c2.33,-0.33 5.1,-1.81 5.34,-2.63c0.03,-0.09 0.03,-0.17 0.03,-0.17c0,-0.29 -0.33,-0.71 -1.89,-1.83c-1.33,-0.96 -2.23,-1.61 -3.3,-2.18c-0.69,-0.37 -1.23,-0.6 -1.68,-0.79c-2.41,-1.04 -3.62,-1.55 -4.68,-1.45l0,-0.01z" class="cls-17" id="yuki-jp-4-1"/>
<path fill="url(#_未命名的渐变_58)" stroke-width="0px" d="m248.07715,265.0022c0.37,-0.49 1.34,-1.8 3,-2c2.33,-0.28 3.93,1.89 4,2c0.33,0.46 0.44,0.81 1,3c0.59,2.3 0.88,3.45 1,4c0.33,1.56 0.71,3.58 1,6c0.21,1.71 0.24,2.18 0.42,3.8c0.24,2.17 0.38,2.81 1.58,10.2c0.66,4.08 0.73,4.55 1,6c0.31,1.64 0.58,3.06 1,5c0.77,3.51 1.13,4.83 1,7c-0.08,1.29 -0.29,2.25 -1,3c-1,1.07 -2.67,1.39 -4,1c-1.46,-0.43 -2.18,-1.63 -3,-3c-0.55,-0.91 -1.1,-2.1 -2,-6c-0.28,-1.22 -0.65,-2.92 -1,-5c-0.33,-2 -0.67,-4 -1,-6c-0.53,-3.92 -1.07,-7.83 -1.6,-11.75c-0.47,-2.42 -0.93,-4.83 -1.4,-7.25c-0.78,-2.06 -0.97,-3.84 -1,-5c-0.05,-1.81 -0.12,-3.5 1,-5z" class="cls-13" id="yuki-jp-4"/>
<path fill="url(#_未命名的渐变_13)" stroke-width="0px" d="m101.07715,341.0022c-1.86,-0.04 -3.59,1.27 -4,3c-0.56,2.38 1.47,5.01 4,5c2.03,-0.01 4,-1.72 4,-4c0,-2.25 -1.92,-3.96 -4,-4z" class="cls-19" id="liteecho-i-1-1"/>
<path fill="url(#_未命名的渐变_13-2)" stroke-width="0px" d="m102.07715,354.0022c-0.61,-0.3 -1.38,-0.31 -2,0c-0.14,0.07 -0.62,0.33 -1,1c-1.18,2.08 -1.01,7.51 -1,8c0.16,5.45 0,9 0,9c-0.08,1.78 -0.22,3.7 1,5c0.21,0.22 0.94,1 2,1c1.08,0 1.81,-0.8 2,-1c1.05,-1.14 1.02,-2.72 1,-4c-0.03,-2.33 0.04,-4.67 0,-7c-0.05,-3.31 0.17,-8.95 -1,-11c-0.12,-0.2 -0.41,-0.71 -1,-1z" class="cls-29" id="liteecho-i-1"/>
<path fill="url(#_未命名的渐变_65)" stroke-width="0px" d="m119.55715,342.6422c-0.52,0.03 -1.3,0.07 -1.92,0.55c-0.25,0.19 -0.76,0.67 -1.1,2.68c-0.15,0.92 -0.29,2.26 -0.14,3.91c-1.17,0.01 -3.52,0.16 -5.32,1.22c-0.38,0.22 -0.77,0.51 -1,1c-0.39,0.85 -0.08,1.91 0.41,2.59c0.74,1.01 1.99,1.19 3.59,1.41c0.85,0.12 1.57,0.12 2.05,0.1c-0.06,0.76 -0.12,1.85 -0.14,3.16c-0.01,1.22 -0.03,2.48 0.14,4.12c0.15,1.49 0.3,2.92 0.96,4.62c0.39,1.03 0.78,1.67 1,2c0.25,0.39 0.74,1.08 1.48,1.76c1.12,1.05 2.67,2.5 4.52,2.24c1.2,-0.17 2.57,-1.06 2.76,-2.24c0.12,-0.76 -0.29,-1.46 -0.55,-1.92c-0.43,-0.76 -0.87,-0.99 -1.51,-1.65c-0.95,-0.97 -1.44,-1.93 -1.78,-2.61c-0.71,-1.41 -0.9,-2.61 -1.1,-3.85c-0.15,-0.97 -0.37,-2.35 -0.14,-4.12c0.09,-0.67 0.22,-1.22 0.32,-1.61c0.56,0 1.35,-0.04 2.29,-0.17c1.54,-0.21 2.32,-0.32 2.88,-0.82c0.8,-0.71 1.27,-2.03 0.83,-3.01c-0.13,-0.3 -0.38,-0.61 -1,-1c-1.52,-0.94 -3.22,-1.02 -4.36,-0.94c0.11,-0.49 0.27,-1.25 0.41,-2.2c0.49,-3.18 0.14,-3.81 -0.14,-4.12c-0.26,-0.3 -0.59,-0.43 -1.24,-0.69c-0.4,-0.16 -1.18,-0.47 -2.2,-0.41z" class="cls-9" id="liteecho-t"/>
<path fill="url(#_未命名的渐变_66)" stroke-width="0px" d="m142.48715,359.4922c-1.24,0 -1.82,0.11 -2.17,0.53c-0.63,0.76 -0.29,2.24 0.31,3.15c1.51,2.31 5.53,2.25 7.8,1.77c1.4,-0.3 4.49,-0.94 5.98,-3.77c1.7,-3.21 -0.04,-6.62 -0.4,-7.27c-1.86,-3.4 -5.47,-4.29 -7.14,-4.7c-3.37,-0.83 -6.16,0.05 -7.27,0.4c-1.07,0.34 -2.81,0.91 -4.53,2.4c-3.45,2.98 -3.92,7.09 -4,8c-0.27,3.05 0.7,5.35 1,6c0.27,0.6 1.17,2.42 3,4c1.04,0.89 2.16,1.53 3,2c0.99,0.56 1.75,0.89 2,1c1.02,0.44 1.88,0.81 3,1c1.17,0.2 2.07,0.1 3,0c0.34,-0.04 1.85,-0.22 4,-1c3.3,-1.2 4.59,-2.54 5,-3c0.47,-0.53 0.68,-0.9 0.71,-1.34c0.06,-1.15 -1.21,-2.31 -2.48,-2.62c-0.51,-0.12 -0.94,-0.08 -1.23,-0.05c-2.01,0.26 -3.04,1.28 -4.31,1.86c-2.59,1.19 -5.84,0.41 -7.69,-0.86c-1.16,-0.8 -1.95,-1.93 -2,-2c-0.26,-0.38 -0.69,-1.07 -1,-2c-0.26,-0.77 -0.95,-2.86 0,-5c0.82,-1.85 2.41,-2.69 3,-3c2.34,-1.23 5.06,-1.05 7,0c0.69,0.37 1.64,0.9 2,2c0.29,0.87 0.26,2.23 -0.52,2.84c-1,0.8 -2.36,-0.34 -6.07,-0.36l0.01,0.02z" class="cls-25" id="liteecho-e"/>
<path fill="url(#_未命名的渐变_68)" stroke-width="0px" d="m197.07715,346.0022c-1.16,0 -4.12,0.04 -7,2c-1.54,1.05 -2.49,2.26 -3,3c-1.62,2.38 -1.87,4.7 -2,6c-0.12,1.26 -0.36,4 1,7c2.14,4.72 6.61,6.52 8,7c1.04,0.36 4.93,1.64 9,0c0.94,-0.38 2.74,-1.13 4,-3c0.45,-0.66 1.99,-2.94 1,-5c-0.54,-1.12 -1.88,-2.25 -3,-2c-1.41,0.32 -1.04,2.48 -3,4c-1.92,1.48 -4.45,1.09 -5,1c-0.54,-0.08 -2.42,-0.41 -4,-2c-2.4,-2.42 -2.04,-5.66 -2,-6c0.07,-0.51 0.43,-3.37 3,-5c2.25,-1.43 5.33,-1.38 7,0c0.93,0.77 0.92,1.55 2,2c1.26,0.52 3.2,0.27 4,-1c0.72,-1.15 0.17,-2.56 0,-3c-0.15,-0.38 -0.69,-1.63 -3,-3c-0.98,-0.58 -3.45,-2.01 -7,-2z" class="cls-30" id="liteecho-c"/>
<path fill="url(#_未命名的渐变_71)" stroke-width="0px" d="m217.07715,329.0022c-0.92,-0.49 -2.08,-0.44 -3,0c-1.8,0.87 -1.99,2.91 -2,3l0,9c0,4 0.04,8 0,12c-0.03,3 0.1,6 0,9c-0.1,3.04 -0.29,5.38 1,8c0.45,0.91 1.42,2.89 3,3c1.63,0.11 2.9,-1.85 3,-2c1.44,-2.28 0.03,-4.1 0,-9c-0.02,-2.85 0,-5.82 2,-8c0.37,-0.4 1.8,-1.97 4,-2c2.44,-0.04 3.91,1.89 4,2c0.92,1.22 1,2.52 1,3c-0.33,1.67 -0.67,3.33 -1,5c-0.41,1.12 -0.91,2.85 -1,5c-0.09,2.3 -0.16,3.99 1,5c1.28,1.11 3.61,1.02 5,0c1.65,-1.21 1.8,-3.61 2,-7c0.08,-1.27 0.04,-2.31 0,-3l0,-8c-0.02,-0.84 -0.16,-2.36 -1,-4c-0.51,-1 -1.73,-2.93 -4,-4c-3.65,-1.72 -7.65,-0.14 -8,0c-1.5,0.62 -2.24,1.36 -3,1c-0.71,-0.34 -0.94,-1.4 -1,-4c-0.12,-5.04 0.61,-6.66 0,-10c-0.56,-3.06 -1.54,-3.76 -2,-4z" class="cls-18" id="liteecho-h"/>
<path fill="url(#_未命名的渐变_58-2)" stroke-width="0px" d="m252.07715,348.0022c-4.27,-0.18 -7.17,2.27 -8,3c-3.05,2.66 -3.79,6 -4,7c-0.18,0.88 -1.21,5.84 2,10c2.08,2.69 4.82,3.62 6,4c1.29,0.42 4.46,1.39 8,0c2.95,-1.16 4.51,-3.31 5,-4c1.43,-2.02 1.81,-3.97 2,-5c0.46,-2.51 0.1,-4.49 0,-5c-0.67,-3.35 -2.52,-5.47 -3,-6c-0.69,-0.76 -3.46,-3.8 -8,-4z" class="cls-33" id="liteecho-o"/>
<path fill="#666" stroke-width="0px" d="m250.57715,354.5022c-2.49,0.24 -3.75,2.55 -4,3c-0.09,0.17 -1.81,3.42 0,6c1.68,2.39 5.6,3.06 8,1c2.1,-1.8 2.13,-4.93 1,-7c-0.84,-1.54 -2.7,-3.22 -5,-3z" class="cls-6" id="liteecho-o-white"/>
<path fill="url(#_未命名的渐变_14)" stroke-width="0px" d="m108.07715,274.0022c-0.71,0.63 -1.32,1.81 -1,3c0.38,1.44 1.86,1.95 2,2c0.77,0.25 1.44,0.12 2,0c4.88,-1.04 5.31,-1.31 6,-1c1.18,0.54 1.54,2.08 2,4c0.41,1.72 0.73,3.08 0,4c-0.65,0.81 -2.11,0.89 -5,1c-1.25,0.05 -2.29,0.03 -3,0c-0.53,0.14 -1.96,0.61 -3,2c-0.4,0.54 -1.21,1.61 -1,3c0.24,1.62 1.7,2.78 3,3c0.44,0.08 0.79,0.03 1,0c4.59,-0.65 6.89,-0.98 7,-1c2.55,-0.43 3.84,-0.64 4.45,-0.34c1.26,0.62 1.41,1.86 2.55,5.34c0,0 1.48,4.5 4,10c0.8,1.75 1.53,3.13 2,4c0.16,0.13 2.42,1.9 5,1c0.16,-0.06 2.44,-0.88 3,-3c0.21,-0.78 0.1,-1.42 0,-2c-0.27,-1.54 -0.96,-2.26 -2,-4c-0.12,-0.21 0.03,0.04 -2,-4c-0.67,-1.33 -1.32,-2.67 -2,-4c-1.91,-3.76 -2.3,-4.3 -2,-5c0.2,-0.46 0.49,-0.53 4,-2c1.13,-0.48 2.45,-1.03 4,-2c1.13,-0.71 1.71,-1.21 2,-2c0.06,-0.17 0.35,-1.03 0,-2c-0.48,-1.32 -1.88,-2.03 -3,-2c-0.31,0 -0.54,0.07 -0.66,0.11c-2.2,0.63 -4.77,1.67 -5.34,1.89c-2.21,0.88 -3.31,1.31 -4,1c-0.42,-0.19 -0.77,-0.54 -2,-4c-1.21,-3.42 -1.11,-3.77 -1,-4c0.42,-0.85 1.37,-0.79 6,-2c2.46,-0.64 3.57,-1.02 4,-2c0.3,-0.68 0.14,-1.39 0,-2c-0.09,-0.4 -0.54,-2.17 -2,-3c-1.17,-0.66 -2.4,-0.38 -4,0c-3.65,0.88 -4.88,2.55 -6,2c-0.55,-0.27 -1.15,-1.13 -1,-4c-0.42,-2 -0.76,-3 -1,-3l0,0c-0.76,-1.48 -2.4,-2.29 -4,-2c-1.51,0.27 -2.7,1.47 -3,3c-0.17,2.45 0.41,4.01 1,5c0.57,0.95 1.14,1.36 1,2c-0.24,1.14 -2.45,1.64 -4,2c-2.38,0.55 -3.11,0.2 -4,1z" class="cls-34" id="lite-jp-2"/>
<path fill="url(#_未命名的渐变_5)" stroke-width="0px" d="m153.07715,286.0022c-0.46,1.12 -0.62,2.69 0,4c0.19,0.41 0.79,1.49 2,2c1.22,0.51 2.43,0.16 3,0c5,-1.43 7.51,-2.15 8,-2c4.42,1.34 3.64,20.08 7,22c2.14,1.22 4,1 4,1c1.43,-0.17 3.03,-0.97 3.02,-1c0,0 0,0 -0.02,0c0.27,-0.2 0.65,-0.52 1,-1c1.53,-2.12 0.85,-5.32 -1,-10c-3.3,-8.33 -6.24,-11.07 -5,-13c0.71,-1.1 1.84,-0.46 5.57,-2.36c2.51,-1.27 4.06,-2.06 4.43,-3.64c0.46,-1.98 -1.11,-4.46 -3,-5c-1.01,-0.29 -2.23,0.21 -4.65,1.22c-3.32,1.39 -3.58,2.02 -4.35,1.78c-2.25,-0.7 -0.9,-6.34 -4,-8c-1.22,-0.65 -2.84,-0.54 -4,0c-0.31,0.14 -1.56,0.73 -2,2c-0.24,0.7 -0.14,1.29 0,2c0.51,2.66 2.08,3.57 2,5.99c0,0 0,0 0,0c0.01,0 0.02,0 0.02,0c0.01,0.1 -10.37,-0.01 -12.02,4l0,0.01z" class="cls-5" id="yuki-jp-1"/>
<path fill="url(#_未命名的渐变_69)" stroke-width="0px" d="m230.07715,276.0022c-0.23,-0.2 -0.95,-0.74 -2,-1c-0.58,-0.14 -1.39,-0.34 -2,0c-0.79,0.44 -0.86,1.6 -1,3c0,0 -0.62,6.23 -2,9c-0.43,0.86 -0.97,1.66 -0.97,1.66c-0.12,0.18 -0.24,0.35 -0.35,0.5c-0.2,0.27 -0.42,0.55 -0.68,0.84c-1.47,1.68 -5.93,4.2 -5.93,4.2c-3.23,1.82 -3.66,2.04 -4.07,2.8c-0.61,1.13 -0.9,2.9 0,4c0.8,0.97 2.17,0.99 3,1c0.7,0 3.05,-0.07 7.17,-3.17c1.64,-1.24 3.78,-2.89 5.83,-5.83c3.15,-4.53 3.72,-8.76 4,-11c0.52,-4.2 -0.4,-5.48 -1,-6z" class="cls-32" id="yuki-jp-2-3"/>
<path fill="url(#_未命名的渐变_67)" stroke-width="0px" d="m167.88715,359.1822c-1.13,0.52 -1.6,0.87 -1.74,1.41c-0.25,0.96 0.69,2.15 1.62,2.72c2.35,1.44 5.96,-0.31 7.81,-1.71c1.14,-0.86 3.66,-2.76 3.81,-5.96c0.17,-3.63 -2.85,-5.97 -3.45,-6.41c-3.13,-2.29 -6.78,-1.55 -8.46,-1.22c-3.41,0.68 -5.55,2.66 -6.41,3.45c-0.83,0.76 -2.15,2.02 -3.08,4.1c-1.85,4.16 -0.53,8.09 -0.22,8.94c1.05,2.88 2.91,4.54 3.46,5c0.5,0.42 2.09,1.69 4.42,2.34c1.32,0.37 2.61,0.46 3.57,0.53c1.13,0.08 1.96,0.06 2.24,0.05c1.11,-0.04 2.04,-0.06 3.14,-0.37c1.14,-0.32 1.92,-0.79 2.71,-1.28c0.29,-0.18 1.58,-0.98 3.19,-2.61c2.48,-2.49 3.07,-4.25 3.25,-4.84c0.2,-0.68 0.24,-1.11 0.07,-1.51c-0.43,-1.07 -2.08,-1.58 -3.36,-1.31c-0.51,0.11 -0.88,0.32 -1.13,0.48c-1.71,1.09 -2.2,2.45 -3.11,3.52c-1.84,2.18 -5.11,2.86 -7.32,2.49c-1.39,-0.23 -2.59,-0.92 -2.66,-0.96c-0.4,-0.23 -1.08,-0.67 -1.76,-1.38c-0.56,-0.59 -2.08,-2.19 -2.13,-4.52c-0.04,-2.02 1.04,-3.46 1.44,-3.99c1.59,-2.11 4.14,-3.1 6.33,-2.98c0.79,0.04 1.86,0.12 2.66,0.96c0.63,0.67 1.18,1.91 0.74,2.79c-0.57,1.15 -2.28,0.69 -5.65,2.26l0.02,0.01z" class="cls-15" id="liteecho-e2"/>
</g>
<circle id="svg_6" fill="url(#_未命名的渐变_6)" stroke-width="0px" r="4" cy="301.0022" cx="162.07715" class="cls-22"/>
<ellipse id="svg_7" fill="url(#_未命名的渐变_7)" stroke-width="0px" ry="2.5" rx="2.51" cy="270.5022" cx="183.56715" class="cls-12"/>
<ellipse id="svg_8" fill="url(#_未命名的渐变_7-2)" stroke-width="0px" ry="2.5" rx="2.51" cy="273.5022" cx="176.56715" class="cls-26"/>
<circle id="svg_9" fill="url(#_未命名的渐变_7-3)" stroke-width="0px" r="4" cy="294.3922" cx="185.05715" class="cls-11"/>
<circle id="svg_10" stroke-width="0px" fill="url(#_未命名的渐变_8)" r="4" cy="281.2622" cx="209.49715" class="cls-1"/>
<circle id="svg_11" fill="url(#_未命名的渐变_55)" stroke-width="0px" r="4" cy="275.2622" cx="217.49715" class="cls-7"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 34 KiB

View File

@ -1,148 +0,0 @@
<svg width="617" height="419" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<linearGradient y2="0.50001" x2="0.99992" y1="0.50001" x1="-0.00009" data-name="未命名的渐变 11" id="_未命名的渐变_11">
<stop stop-color="#73fff1" offset="0"/>
<stop stop-color="#5cefff" offset="1"/>
</linearGradient>
<linearGradient xlink:href="#_未命名的渐变_11" y2="292.99" x2="584.05" y1="292.99" x1="549.98" data-name="未命名的渐变 11" id="_未命名的渐变_11-2"/>
<linearGradient xlink:href="#_未命名的渐变_11" y2="212" x2="585" y1="212" x1="553" data-name="未命名的渐变 11" id="_未命名的渐变_11-3"/>
<linearGradient xlink:href="#_未命名的渐变_11" y2="260.3" x2="698.34" y1="260.3" x1="609.82" data-name="未命名的渐变 11" id="_未命名的渐变_11-4"/>
<linearGradient xlink:href="#_未命名的渐变_11" y2="282.24" x2="784.94" y1="282.24" x1="702.75" data-name="未命名的渐变 11" id="_未命名的渐变_11-5"/>
<linearGradient y2="0.5" x2="1" y1="0.5" x1="0" data-name="未命名的渐变 240" id="_未命名的渐变_240">
<stop stop-color="#eadeff" offset="0"/>
<stop stop-color="#e0efff" offset="0.28"/>
<stop stop-color="#d9ecff" offset="0.43"/>
<stop stop-color="#aedbff" offset="0.59"/>
<stop stop-color="#00d7ff" offset="1"/>
</linearGradient>
<linearGradient y2="0.50003" x2="1.00001" y1="0.50003" x1="0" data-name="未命名的渐变 9" id="_未命名的渐变_9">
<stop stop-color="#2ebbff" offset="0"/>
<stop stop-color="#006bff" offset="1"/>
</linearGradient>
<linearGradient xlink:href="#_未命名的渐变_9" y2="467.72" x2="842.05" y1="467.72" x1="761.74" data-name="未命名的渐变 9" id="_未命名的渐变_9-2"/>
<linearGradient xlink:href="#_未命名的渐变_9" y2="394" x2="977.04" y1="394" x1="951.96" data-name="未命名的渐变 9" id="_未命名的渐变_9-3"/>
<linearGradient xlink:href="#_未命名的渐变_9" y2="456.86" x2="977.56" y1="456.86" x1="952.19" data-name="未命名的渐变 9" id="_未命名的渐变_9-4"/>
<linearGradient xlink:href="#_未命名的渐变_9" y2="437.15" x2="934.09" y1="437.15" x1="848.96" data-name="未命名的渐变 9" id="_未命名的渐变_9-5"/>
<linearGradient y2="0.5" x2="0.99994" y1="0.5" x1="0" data-name="未命名的渐变 4" id="_未命名的渐变_4">
<stop stop-color="#6445ff" offset="0"/>
<stop stop-color="#5c86ff" offset="1"/>
</linearGradient>
<linearGradient xlink:href="#_未命名的渐变_4" y2="464.45" x2="466.06" y1="464.45" x1="445.81" data-name="未命名的渐变 4" id="_未命名的渐变_4-2"/>
<linearGradient y2="-0.23832" x2="1.47603" y1="0.46345" x1="0.17906" data-name="未命名的渐变 72" id="_未命名的渐变_72">
<stop stop-color="#c4aeff" offset="0"/>
<stop stop-color="#ce9fff" offset="0.43"/>
<stop stop-color="#af8eff" offset="0.55"/>
<stop stop-color="#7d74ff" offset="0.72"/>
<stop stop-color="#6333ff" offset="0.9"/>
</linearGradient>
<linearGradient y2="0.47289" x2="0.99937" y1="0.52818" x1="0.02548" data-name="未命名的渐变 58" id="_未命名的渐变_58">
<stop stop-color="#b1ccff" offset="0"/>
<stop stop-color="#b8c0ff" offset="0.34"/>
<stop stop-color="#cba2ff" offset="0.94"/>
<stop stop-color="#ce9fff" offset="1"/>
</linearGradient>
<linearGradient y2="0.50005" x2="1" y1="0.50005" x1="0.00045" data-name="未命名的渐变 3" id="_未命名的渐变_3">
<stop stop-color="#5c86ff" offset="0"/>
<stop stop-color="#64a2ff" offset="1"/>
</linearGradient>
<linearGradient xlink:href="#_未命名的渐变_3" y2="475.89" x2="477.01" y1="475.89" x1="470.95" data-name="未命名的渐变 3" id="_未命名的渐变_3-2"/>
<linearGradient y2="0.4675" x2="1.0805" y1="0.53756" x1="0.11473" data-name="未命名的渐变 65" id="_未命名的渐变_65">
<stop stop-color="#64a2ff" offset="0.11"/>
<stop stop-color="#62a6ff" offset="0.28"/>
<stop stop-color="#5cb5ff" offset="1"/>
</linearGradient>
<linearGradient y2="0.61626" x2="1.13145" y1="0.41032" x1="0.09443" data-name="未命名的渐变 66" id="_未命名的渐变_66">
<stop stop-color="#5cb5ff" offset="0"/>
<stop stop-color="#74e0ff" offset="1"/>
</linearGradient>
<linearGradient y2="0.48885" x2="1.08173" y1="0.51016" x1="0.08139" data-name="未命名的渐变 68" id="_未命名的渐变_68">
<stop stop-color="#9cd1ff" offset="0"/>
<stop stop-color="#bae0ff" offset="1"/>
</linearGradient>
<linearGradient y2="0.50005" x2="1.00016" y1="0.50005" x1="0.00009" data-name="未命名的渐变 71" id="_未命名的渐变_71">
<stop stop-color="#a6d3ff" offset="0"/>
<stop stop-color="#b1ccff" offset="0.7"/>
</linearGradient>
<linearGradient xlink:href="#_未命名的渐变_58" y2="466.98" x2="643.63" y1="473.79" x1="605.79" data-name="未命名的渐变 58" id="_未命名的渐变_58-2"/>
<linearGradient xlink:href="#_未命名的渐变_3" y2="397.6" x2="514.17" y1="397.6" x1="479.91" data-name="未命名的渐变 3" id="_未命名的渐变_3-3"/>
<linearGradient y2="0.4999" x2="0.99997" y1="0.4999" x1="-0.00009" data-name="未命名的渐变 5" id="_未命名的渐变_5">
<stop stop-color="#64a2ff" offset="0"/>
<stop stop-color="#5cc9ff" offset="1"/>
</linearGradient>
<linearGradient y2="0.50013" x2="0.99983" y1="0.50013" x1="0.00007" data-name="未命名的渐变 69" id="_未命名的渐变_69">
<stop stop-color="#84c9ff" offset="0"/>
<stop stop-color="#b1ccff" offset="0.42"/>
</linearGradient>
<linearGradient y2="0.36502" x2="1.03701" y1="0.61527" x1="0.09096" data-name="未命名的渐变 67" id="_未命名的渐变_67">
<stop stop-color="#74e0ff" offset="0"/>
<stop stop-color="#8dd6ff" offset="0.56"/>
<stop stop-color="#9cd1ff" offset="1"/>
</linearGradient>
<linearGradient y2="0.5" x2="1" y1="0.5" x1="0" data-name="未命名的渐变 6" id="_未命名的渐变_6">
<stop stop-color="#64a2ff" offset="0"/>
<stop stop-color="#5cbfff" offset="1"/>
</linearGradient>
<linearGradient y2="0.5" x2="1" y1="0.5" x1="0" data-name="未命名的渐变 7" id="_未命名的渐变_7">
<stop stop-color="#64ccff" offset="0"/>
<stop stop-color="#84c9ff" offset="1"/>
</linearGradient>
<linearGradient xlink:href="#_未命名的渐变_7" y2="383.5" x2="552" y1="383.5" x1="546.98" data-name="未命名的渐变 7" id="_未命名的渐变_7-2"/>
<linearGradient xlink:href="#_未命名的渐变_7" y2="404.39" x2="561.98" y1="404.39" data-name="未命名的渐变 7" id="_未命名的渐变_7-3"/>
<linearGradient y2="0.5" x2="1" y1="0.5" x1="0" data-name="未命名的渐变 8" id="_未命名的渐变_8">
<stop stop-color="#84c9ff" offset="0.01"/>
<stop stop-color="#b1ccff" offset="1"/>
</linearGradient>
<linearGradient y2="0.5" x2="4.66625" y1="0.5" x1="4.61625" data-name="未命名的渐变 55" id="_未命名的渐变_55">
<stop stop-color="#b1c9ff" offset="0"/>
<stop stop-color="#b1ccff" offset="0.42"/>
</linearGradient>
</defs>
<g>
<title>Layer 1</title>
<g data-name="图层 3" id="_图层_3">
<path id="svg_1" fill="#9cf" stroke-width="0px" d="m74.07715,375.0022c11.04,8.56 30.35,0.82 33,0c14.37,-4.43 15.38,-15.33 26,-15c10.44,0.33 13.16,10.98 24,10c6.48,-0.59 7.04,-4.53 16,-6c8,-1.31 8.66,1.66 17,1c12.76,-1.01 15.73,-8.33 24,-6c8.42,4.47 11.58,6.51 22,5c0,0 11.3,-1.75 32,-10c1.42,-9.07 4.72,6.12 11.99,12c10.1,9.09 19.95,-0.4 31,8c10.86,8.26 13.5,26.66 13,31c-1.65,4.39 6.37,10.16 6,10c-4.41,-0.77 -20.72,-10.82 -25,-11c-6.8,-1.26 -15.53,-2.26 -24,-5c-17.1,-5.24 -15.17,-10.82 -34,-10c-7.53,0.04 -6.69,-0.47 -12,1c-2.54,-0.23 -9.74,0.73 -13,-1c-18.29,-11.87 -9.94,11.78 -36,3c-9.47,1.86 -14.72,0.65 -18.02,-1.12c-2.21,-1.19 -4.61,-5.33 -6.74,-4.61c-0.57,0.19 -0.74,0.58 -2.24,1.74c-1.2,0.93 -2.27,1.58 -3,2c-0.91,0.36 -1.91,0.7 -3,1c-2.93,0.8 -5.59,1.02 -7.75,1.02c-0.74,0 -1.87,-0.01 -3.25,-0.02c-3.97,0 -3.61,0.03 -4,0c-2.87,-0.21 -3.75,-0.93 -7,-1c-0.42,0 -0.77,0 -1,0l-6,0c-3,0.22 -5.39,0.65 -7,1c-1.72,0.37 -3.36,0.82 -10,3c-3.07,1.01 -4.59,1.59 -6,2c-1.81,0.53 -5.13,1.49 -9,2c-5.07,0.67 -9,0.3 -12,0c-6.54,-0.65 -11.56,-2.18 -14,-3c-4.6,-1.55 -26.12,-13.37 -20,-10c0,0 0,0 0,0c-0.03,-0.02 -20.88,-13.37 -28,-32c-1.09,-2.85 -2,-6 -2,-6c-0.52,-1.8 -1.44,-5.03 -2,-9c-0.44,-3.12 -1.34,-9.53 0,-10c1.69,-0.59 6.23,8.51 7.27,10.48c5.15,9.76 18.12,22.54 52.73,35.52l0.01,-0.01z" class="cls-32"/>
<path id="svg_2" fill="#9cf" stroke-width="0px" d="m260.07715,284.0022c-13.63,7.43 -2.93,57.29 2,57c1.82,-0.11 1.13,-6.97 8,-16c3,-3.94 3.81,-3.37 5,-6c0.88,-3.8 2.06,-11.66 -2,-19c-0.61,-1.11 -1.29,-2.11 -2,-3c-0.31,-0.36 -0.8,-1.04 -1,-2c-0.06,-0.32 -0.19,-0.91 0,-1c0.26,-0.13 0.82,0.87 2,2c0.84,0.81 1.71,1.61 3,2c1.06,0.32 1.94,0.17 3,0c1.38,-0.23 2.37,-0.69 3,-1c1.31,-0.64 2.25,-1.09 3,-2c1.84,-2.22 1.14,-5.41 1,-6c-0.33,-1.36 -0.69,-1.29 -2,-4c-0.87,-1.8 -0.57,-1.55 -2,-5c-0.49,-1.19 -1,-2.79 -2,-6c-0.12,-0.39 -0.37,-1.22 0,-2c0,0 0.29,-0.6 1,-1c1.98,-1.11 11.6,0.55 15,1c2.66,0.35 13.92,1.61 15.83,2.95c0.42,0.3 0.8,0.64 1.17,1.05c2.43,2.73 0.93,4.31 3,9c3.83,8.69 13.16,12.57 19,15c5.09,2.12 8.54,2.5 13,3c6.22,0.69 7.53,-0.22 8,-1c0.74,-1.23 -0.27,-2.7 -1,-5c-1.53,-4.78 -0.3,-8.09 0,-12c0.51,-6.64 -1.77,-13.74 -4,-17c-9.26,-13.54 -41.29,4.77 -71,-2c-1.28,-0.29 -9.89,-2.3 -12,1c-1.87,2.94 2.99,7.55 1,12c-1.49,3.33 -5.5,3.63 -8,5z" class="cls-32"/>
<path id="svg_3" fill="#9cf" stroke-width="0px" d="m310.07715,118.0022c-22.42,19.49 74.7,203.11 32,245c-9.08,8.91 -26.9,13.94 -28,28c-0.65,8.33 4.78,18.3 13,23c13.88,7.94 28.83,2.05 33,-1c2.68,-1.96 4,-4 4,-4c1.44,-2.22 1.56,-3.91 3,-8c0.76,-2.17 1.5,-3.9 2,-5c0.43,-1.13 0.95,-2.86 1,-5c0.04,-1.88 -0.32,-2.29 -0.25,-4.13c0.04,-1.01 0.22,-5.22 2.25,-5.87c0.27,-0.09 1.3,-0.35 3,1c-0.17,-0.41 -0.33,-0.87 -0.21,-0.95c0.24,-0.16 1.16,1.42 2.21,1.95c2.87,1.44 7.56,-0.07 8,-2c-10.79,-5.85 -14.4,-6.84 -15,-6c-0.79,1.11 3.49,5.56 3,6c-0.37,0.33 -3.05,-1.93 -3,-2c0.05,-0.07 3.08,1.97 4,3c0.08,0.09 0.44,0.51 1,1c0.23,0.2 0.43,0.36 0.55,0.46c0.1,0.12 0.26,0.31 0.45,0.54c2.9,3.62 4.2,7.01 4.62,8.05c0.92,2.28 2.67,5.77 6.38,10.95c15.05,16.54 34.83,19.18 54,9c16.33,3.81 7.85,10.54 33,5c25.9,-4.5 50.39,1.98 49,-25c-1.26,-10.66 -5.86,-19.02 0,-10c8.68,14.17 21.69,39.51 43,27c6.44,-4.99 5.9,-9.29 8,-16c1.22,-1.48 4.53,-4.38 6,-4c0.01,0.08 0.16,1 -0.41,1.5c-0.6,0.53 -1.8,0.43 -2.59,-0.5c2.97,10.52 12.31,17.02 21,16c7.93,-0.94 13.74,-10.13 14.27,-11.06c0.54,-0.96 0.98,-1.97 0.98,-1.97s0.41,-0.95 0.75,-1.97c1.19,-3.64 1.46,-7.4 1.46,-7.4c0.88,-11.86 0.98,-15.27 0.98,-15.27c0.35,-11.02 0.5,-9.78 0.67,-17.66c0.19,-8.34 -0.04,-7.03 0.13,-13.62c0,0 0.55,-21.79 -3.25,-26.05c-0.48,-0.54 -1,-1 -1,-1c-1.02,-0.91 -1.79,-1.28 -3,-2c0,0 -1,-0.67 -3,-2c-1,-0.67 -2.08,-1.22 -3,-2c-1.25,-1.06 -1.85,-1.94 -3,-2c-0.39,-0.02 -0.52,0.07 -1,0c-1.2,-0.18 -1.99,-1.02 -2,-1c-0.02,0.03 0.5,0.41 3,2c0.1,-0.62 1.27,-2.67 2,-3c5.54,-4.98 5.58,-5.38 8,-10c6.12,-15.03 -2.92,-19.21 -14,-26c-1.23,-1.16 -1.87,-0.9 -3,-1c-0.59,-2.25 -2.17,-3.18 -3,-6c-1.01,-2.71 -2.29,-10.67 -2,-12c0.57,-5.41 2.39,-8.84 4,-11c2.1,-2.82 3.85,-3.49 6,-7c1.22,-2 2.84,-4.65 3,-8c0.25,-5.38 -3.39,-9.63 -8,-15c-2.47,-2.87 -5.06,-5.17 -6,-6c-2.42,-2.13 -4.22,-3.42 -5,-4c-5.14,-3.8 -8.31,-10.94 -9.7,-14.15c-5.32,-12.26 -7.9,-23.86 -8.3,-32.85c-1.17,-26.5 -38.54,-51.77 -63,-35c-7.04,5.65 -2.81,10.14 -11,18c-10.42,10 -22.57,7.8 -34,13c-5.71,3.43 -10.18,0.22 -16,-2c-9.95,-3.09 -18.5,-13.48 -24,-22c-1.52,-1.57 -3.98,-3.73 -7.79,-5.64c-30.14,-4.8 -47.97,-7.45 -51.21,-7.36c-0.78,0.02 -4.27,0.18 -7.57,-1.74c-7.85,-9.54 -30.21,6.06 -40.43,13.74l0.01,0z" class="cls-32"/>
<path id="svg_4" fill="#9cf" stroke-width="0px" d="m294.07715,64.0022c-4.66,0.36 -8.11,1.64 -10.79,3.57c-13.35,9.62 -7.67,24.47 -21.35,37.56c-3.88,3.71 -4.86,2.87 -33.86,12.87c-0.06,0.02 -2.46,0.85 -4,0c-0.23,-0.13 -0.75,-0.41 -1,-1c-0.23,-0.54 -0.15,-1.16 -0.12,-1.33c0.02,-0.16 0.09,-0.51 0.12,-0.67l0,0c1.24,-1.71 8.11,-11.55 4.97,-21.02c-3.76,-11.34 -20.93,-19.28 -39.97,-12.98c-12.11,2.27 -15.97,0.27 -17.33,-1.85c-1.94,-3.02 0.84,-6.86 5.33,-19.16c3.86,-10.58 5.89,-16.13 6,-22c0.1,-5.49 -1.43,-13.73 -10,-24c-23.21,-14.8 -47,-13.43 -56,-2c-1.46,1.85 -5.64,7.92 -4,20c-3.3,4.02 -9.31,1.14 -20,4c-10.63,1.96 -20.69,9.46 -13,23c5.63,9.91 94.53,145.36 192.09,115.49c50.17,-15.36 72.52,-65.2 72.91,-66.49c0.03,-0.1 0.51,-1.68 0,-2c-0.15,-0.1 -0.3,-0.03 -1,0l-3,0c-1.55,0 -3.44,-0.77 -4,-1c-0.5,-0.2 -1.8,-0.75 -5,-3c-1.04,-0.73 -2.42,-1.73 -4,-3c-3.1,-0.72 -4.4,-1.96 -5,-3c-0.3,-0.52 -0.38,-0.9 -1,-2c-1.21,-2.14 -1.61,-1.92 -2,-3c-0.34,-0.93 -0.04,-1.09 0,-5c0,-0.35 0,-0.06 0,-2c0,-3.6 0.02,-3.67 0,-4c-0.12,-1.85 -0.9,-3.16 -2,-5c-2.63,-4.41 -6.25,-6.57 -7,-7c-1.67,-0.96 -2.99,-1.38 -5,-2c-2.56,-0.79 -6.28,-1.69 -11,-2l0,0.01z" class="cls-32"/>
</g>
<g data-name="背景" id="_背景">
<path id="svg_5" fill="#fff" stroke-width="0px" d="m199.07715,72.0022c-16.42,-3.08 -26.21,8.1 -31,4c-7.63,-6.54 18.33,-33.97 9,-55c-6.88,-15.51 -30.12,-21.13 -45,-21c-3.33,0.03 -16.49,0.44 -31,9c-30.76,18.15 -37.62,55.27 -56,109c-20.03,58.55 -43.71,77.3 -45,119c-0.4,13.04 0.88,31.37 1,33c2.91,40.64 9.7,47.97 12,64c0.27,1.85 0.98,7.34 5,12c0.83,0.96 1.59,1.64 2.01,2c0.47,0.48 1.15,1.18 1.99,2c10.84,10.63 27.33,20.18 27.33,20.18c17.89,10.12 26.84,15.18 35.66,13.82c3.19,-0.49 6.88,-1.68 16.62,-3.27c3.46,-0.56 6.46,-0.79 12.39,-1.73c3.95,-0.63 7.36,-0.89 10,-1c3.64,-0.15 6.36,-0.03 7,0c4.66,0.22 8.01,0.84 9,1c3.81,0.61 10.14,0.32 21,-4c3.96,0.13 4.67,2.49 9,4c4.59,1.6 5.73,-0.37 15,0c16.7,2.72 12.4,-0.95 25,-4c5.48,-0.56 5.78,1.97 14,3c9.86,2.45 36.35,-8.51 48,1c6.44,5.27 9.1,4.24 16,6c7.05,3.78 15.85,4.35 23,8c18.2,11.17 34.14,20.96 51,2c5.59,-6.98 3.83,-12.43 8,-14c7.13,-2.81 31.59,30.21 58,23c15.36,-6.57 13.31,-4.51 28,1c5.68,1.04 23.32,-3.84 33,-4c12.6,-0.87 15.51,0.92 21,-2c11.5,-6.32 8.35,-12.82 9,-21c6.52,3 17.82,31.94 43,18c6.28,-4.14 7.41,-10.27 11,-10c3.81,0.29 3.43,7.28 9,11c7.22,4.82 20.84,1.79 26,-6c1.88,-2.84 1.95,-5.28 2,-16c0.06,-12.86 2.5,-34.29 1,-57c-0.27,-4.14 -0.62,-6.12 -2,-8c-1.81,-2.47 -4.68,-3.81 -7.73,-8.57c-0.11,-0.18 -0.21,-0.33 -0.27,-0.43c0,-0.08 -0.02,-0.19 -0.02,-0.33c0.03,-1.6 1.77,-2.75 2.36,-3.17c1.19,-0.85 2.8,-2.4 4.66,-5.5c10.77,-33.99 -34.41,-21.61 -20,-59c3.12,-6.89 6.55,-6.37 8,-12c2.32,-9.04 -4.5,-18.26 -8,-23c-5.99,-8.1 -8.37,-6.45 -17,-17c-2.93,-3.58 -6.84,-8.36 -9.5,-15.5c-2.32,-6.24 -2.48,-11.05 -2.5,-12.5c0,-0.42 0,-0.77 0,-1c0.13,-4.73 -0.28,-14.34 -6,-24c-8.66,-14.64 -25.27,-22.26 -40,-22c-22.75,0.41 -39.01,19.59 -41,22c-4.52,5.48 -5.53,9.19 -11,12c-8.17,4.19 -19.82,3.24 -29,-1c-1.04,-0.48 -1.78,-0.88 -2,-1c-13.03,-7.1 -12.62,-18.04 -23,-25c-0.78,-0.52 -2.86,-1.85 -9.5,-3.93c-18.42,-5.77 -40.67,-7.51 -55.5,-8.07c-1.93,0.07 -4.76,-0.05 -8,-1c-3.67,-1.08 -6.36,-2.77 -8,-4c-5.34,-3.78 -6.82,-2.84 -9,-5c-3.59,-3.56 0.14,-10.39 -3,-17c-2.84,-5.97 -10.15,-7.96 -14,-9c-2.47,-0.67 -11.2,-2.68 -20,2c-1.88,1 -6.08,3.3 -9,8c-2.37,3.82 -1.56,5.46 -4,14c-2.08,7.28 -3.18,10.97 -6,13c-1.17,0.85 -5.1,3.27 -13,1c-3.07,-0.18 -7.45,0 -12,2c-8.86,3.88 -12,11.82 -14,11c-2.79,-1.15 5.52,-15.64 0,-28c-5.58,-12.5 -22.22,-15.85 -23,-16z" class="cls-18"/>
<g data-name="主体" id="_主体">
<path fill="url(#_未命名的渐变_11)" stroke-width="0px" d="m143.07715,31.0022c0.03,-1.1 -0.07,-2.97 -1,-5c-0.89,-1.93 -2.11,-3.1 -2.75,-3.7c-0.4,-0.38 -1.57,-1.42 -3.37,-2.29c-1.11,-0.53 -2.12,-0.83 -2.88,-1.01c-0.48,0 -1.16,0 -1.98,0.04c-1.4,0.09 -4.59,0.32 -7.8,1.81c-3.86,1.79 -6.04,4.59 -7.21,6.15c-1.03,1.36 -0.93,1.77 -4,8c-1.08,2.19 -1.79,3.57 -2,4c-5.9,11.79 -12,35 -12,35c-7.65,29.08 -7.7,25.76 -12,44c-2.8,11.87 -4.71,21.49 -6,28c-0.61,3.07 -2.21,11.25 -4,22c0,0 -1.57,9.87 -3,30c-0.1,1.34 -0.46,7.05 1,14c0.85,4.05 3,8 3,8l0,0c2.28,2.98 4.52,4.83 5.99,5.89c11.06,8 23.32,4.35 57.01,4.11c3.06,-0.02 5.53,-0.01 7,0c1.02,-0.28 2.51,-0.84 4,-2c0.52,-0.41 1.27,-1.06 2,-2c0.45,-0.58 1.59,-1.91 2,-4c0.21,-1.08 0.43,-2.87 0,-5c-0.36,-1.17 -0.7,-2.18 -1,-3c-0.3,-0.83 -0.53,-1.39 -1,-2c-0.36,-0.46 -0.73,-0.79 -1,-1c-0.24,-0.23 -0.76,-0.76 -1,-1c-1.73,-1.73 -1.87,-1.87 -2,-2c-1.25,-1.2 -2.82,-1.65 -4,-2c-5.84,-1.71 -23,-2 -23,-2c-4.12,-0.07 -10.14,-0.62 -17.53,-2.99c1.73,-17.19 5.56,-49.39 13.31,-81.46c4.95,-20.51 4.35,-18.09 8.22,-30.55c5.85,-18.81 8.77,-28.22 11,-34c0,0 3.24,-8.41 4.63,-15.69c0.44,-2.32 0.84,-4.8 0.84,-4.8c0.18,-1.17 0.35,-2.34 0.53,-3.5l-0.01,-0.01z" class="cls-3" id="lite-l"/>
<path fill="url(#_未命名的渐变_11-2)" stroke-width="0px" d="m196.07715,130.0022c4.11,0.31 6.91,2.96 8,4c6.83,6.48 6.93,17.68 7,26c0,0.06 0,0.03 0,7c0,14.32 0,21.48 0,22c0.04,13.27 0.66,35.34 -4,42c-1.29,1.84 -3,3 -3,3c-2.97,2.01 -6.17,1.99 -8,2c-1.45,0 -7.74,-0.12 -13,-5c-6.34,-5.87 -6.06,-13.87 -6,-15c0,-0.07 0,-9.93 0,-10c0,-38.04 0,-37.85 0,-38c-0.02,-1.29 -0.01,-3.53 0,-8c0.03,-9.9 0.15,-12.06 1,-15c1.28,-4.42 3.15,-6.95 4,-8c1.1,-1.36 2.19,-2.34 3,-3c0.7,-0.58 1.7,-1.32 3,-2c0.98,-0.52 4.28,-2.28 8,-2z" class="cls-15" id="lite-i-1"/>
<path fill="url(#_未命名的渐变_11-3)" stroke-width="0px" d="m193.85715,86.0722c8.85,-0.96 18.71,7.52 18.2,17.09c-0.5,9.28 -10.62,16.63 -19.33,14.46c-6.93,-1.73 -13.7,-9.65 -12.51,-18.4c1.06,-7.79 7.93,-12.52 13.65,-13.14l-0.01,-0.01z" class="cls-30" id="lite-i-1-1"/>
<path fill="url(#_未命名的渐变_11-4)" stroke-width="0px" d="m270.07715,109.0022c-5.46,4.9 -13.26,-2.45 -24,3c-1.76,0.89 -7.94,4.02 -9,10c-0.72,4.08 0.94,7.61 1.38,8.43c0.48,0.92 2.17,4.11 5.62,5.57c1.09,0.46 1.2,0.26 6,1c5.06,0.78 4.17,0.82 6,1c2.02,0.19 4,0.68 6,1c0.54,0.09 1.55,0.25 2,1c0.42,0.71 0.13,1.6 0,2c-0.61,1.93 -0.44,4.05 -1,6c-1.01,3.51 -0.87,8.39 -1,13c-0.29,10.62 -1.82,12.94 -2,20c-0.11,4.19 -0.42,18.97 9,31c1.49,1.9 10.06,12.84 21,12c1.28,-0.1 5.89,-0.45 9,-4c4.48,-5.11 2.13,-12.61 2,-13c-1.5,-4.54 -4.19,-4.73 -8,-10c-4,-5.53 -5.15,-11 -6,-15c-1.67,-7.89 -0.83,-14.05 0,-20c1.22,-8.76 3.02,-10.14 4,-16c0.13,-0.81 0.46,-2.94 2,-5c0,0 0.85,-1.13 2,-2c2.17,-1.64 8.68,-0.49 12.72,-0.42c3.25,0.06 5.06,0.09 7.28,-0.58c1.17,-0.35 8.31,-2.66 10,-9c1.37,-5.14 -1.51,-11.55 -6,-14c-3.8,-2.07 -12.48,-2.26 -15,-3c-1.03,-0.3 -1.9,-0.93 -2,-1c-0.47,-0.34 -0.82,-0.6 -1,-1c-0.56,-1.23 0.89,-2.87 1,-3c0.54,-0.96 1.27,-2.32 2,-4c1.51,-3.46 2.99,-6.85 3,-11c0,-1.91 0.01,-6.19 -3,-10c-3.3,-4.17 -8.02,-4.99 -9.42,-5.24c-0.92,-0.16 -6.37,-1 -11.58,2.24c-1.61,1 -4.15,3 -7,9c-5.75,12.08 -1.75,17.18 -6,21z" class="cls-4" id="lite-t"/>
<path fill="url(#_未命名的渐变_11-5)" stroke-width="0px" d="m362.07715,166.0022c-0.58,0.39 -5.22,3.65 -5,8c0.19,3.92 4.21,6.49 5,7c5.42,3.48 9.31,0.51 25,-1c10.15,-0.98 16.08,-0.47 21,-5c1.89,-1.74 2.72,-3.39 3,-4c2.32,-5.01 -0.29,-10.09 -1,-14c-1.83,-10.01 -12.11,-17.03 -15,-19c-1.39,-0.95 -8.43,-5.63 -19,-7c-4.47,-0.58 -13.46,-1.75 -23,3c-8.94,4.45 -13.31,11.6 -16,16c-5.84,9.56 -6.79,18.48 -7,21c-0.4,4.87 -1.09,14.86 5,25c4.96,8.26 11.87,12.39 15,14c8.24,4.25 15.6,4.12 23,4c9.99,-0.17 16.58,-2.61 23,-5c2,-0.74 5.17,-2.02 8,-5c1.68,-1.77 4.08,-4.29 4,-8c-0.07,-3.36 -2.16,-6.53 -5,-8c-2.95,-1.53 -5.9,-0.81 -9,0c-6.07,1.58 -6.81,4.01 -12,6c-6.49,2.49 -12.52,1.46 -15,1c-3.77,-0.69 -9.81,-1.81 -14,-7c-3.24,-4.01 -3.72,-8.41 -4,-11c-0.26,-2.43 -1.1,-10.07 4,-17c0.43,-0.59 7.21,-9.48 18,-9c1.43,0.06 9.65,0.59 14,7c1.16,1.71 2.94,4.33 2,6c-2.22,3.93 -15.76,-4.29 -25,2z" class="cls-7" id="lite-e"/>
<path fill="url(#_未命名的渐变_240)" stroke-width="0px" d="m502.07715,162.0022l13.33,22l9.67,-15l-8,-20l4,-6l6,2l9,13l7,-11l9,1l3,7l-11,13l17,2l4,8l-5,4l-22,-4l-13.5,16.8l27.5,5.2l11,-14l7,1l3,7l-9,11l19,3l4,7l-4,5l-18,-3l7,14l-4,4l-8,-1l-10,-20l-40,-8l-2,-2l-20,-37l-23,-4l-3,-7l4,-5l16,3l-9,-15l4,-6l7,1l9,16l9,-10l7,2l3,6l-10,14z" class="cls-21" id="logo-snow"/>
<path fill="url(#_未命名的渐变_9)" stroke-width="0px" d="m344.07715,316.0022c-18.61,-18.39 -62.05,-50.01 -50,-71c2.85,-4.5 7.34,-9.45 17,-7c15.19,5.99 14.64,39.18 45,55c8.67,-18.92 10.28,-33.18 10,-43c-0.12,-4.37 -0.74,-12.15 4,-16c0.82,-0.55 5.22,-3.4 10.85,-2.15c3.86,0.85 6.25,3.17 7.15,4.15c0.5,0.6 1.28,1.58 2.09,2.87c8.99,14.33 0.03,32.06 -11.49,69.45c-4.1,13.3 -6.65,21.58 -9.6,33.68c-5.81,23.86 -8.17,40.38 -20,51c-11.03,9.91 -22.32,0.03 -23,-9c-2.89,-15.02 23.13,-56.98 18,-68z" class="cls-27" id="yuki-y"/>
<path fill="url(#_未命名的渐变_9-2)" stroke-width="0px" d="m403.07715,323.0022c-0.54,-0.11 -5.36,-1.02 -9,2c-2.31,1.92 -3.04,4.55 -4,8c-0.74,2.66 -0.91,4.8 -1,6c-0.59,8.25 0,15 0,15c1.18,13.55 1.77,20.33 3,23c1.04,2.27 4.07,8.71 11,13c6.21,3.85 12.31,3.91 21,4c0.81,0 16.83,0.09 21,-4c0.22,-0.21 1.2,-1.26 2,-1c0.93,0.3 0.69,2.05 2,4c0,0 0.63,0.93 2,2c3.54,2.75 12.53,3.41 16,-1c0.62,-0.79 1.75,-2.64 2,-5c0.07,-0.68 0.05,-1.22 0.02,-1.76c-0.13,-2.75 -0.88,-4.83 -1.02,-5.24c-1.31,-3.73 -3.37,-15.69 -4,-23c-0.58,-6.71 0.42,-5.3 0,-19c-0.11,-3.63 -0.12,-9.19 -3,-15c-1.36,-2.75 -2.63,-4.09 -4,-5c-2.95,-1.96 -6.82,-2.22 -10,-1c-0.8,0.31 -3.48,1.34 -5,4c-1.36,2.37 -1.11,4.83 -1,6c0.66,6.98 0.45,14.01 1,21c0.72,9.13 0.57,11.51 -1,14c-1.8,2.86 -4.42,4.2 -6,5c-7.58,3.86 -15,0.82 -17,0c-2.54,-1.04 -3.49,-2.11 -4,-3c-0.74,-1.29 -0.88,-2.78 -1,-4c-0.13,-1.35 -0.05,-2.34 0,-3l0,-16c-0.19,-7.44 -0.28,-11.16 -2,-14c-0.52,-0.85 -3.02,-4.98 -8,-6z" class="cls-22" id="yuki-u"/>
<path fill="url(#_未命名的渐变_9-3)" stroke-width="0px" d="m591.07715,272.0022c-6.65,0.3 -12.55,6.12 -12,13c0.53,6.56 6.7,11.28 13,11c6.65,-0.3 12.55,-6.12 12,-13c-0.53,-6.56 -6.7,-11.28 -13,-11z" class="cls-2" id="yuki-i-1-1"/>
<path fill="url(#_未命名的渐变_9-4)" stroke-width="0px" d="m591.07715,303.0022c-0.8,0.03 -3.41,0.23 -6,2c0,0 -1.73,1.18 -3,3c-3.44,4.92 -2.32,14.54 -2,25c0.14,4.66 0,9.33 0,14c0,11.92 0,17.88 0,18c-0.51,8.41 -1.54,11.05 0,16c0.77,2.5 1.84,5.92 5,8c3.21,2.11 6.76,1.77 8.36,1.62c0.77,-0.07 5.65,-0.54 8.64,-3.62c3.4,-3.49 2.66,-8.56 2,-17c-0.09,-1.11 -1.18,-15.43 -1,-28c0.1,-7.33 -0.76,-14.71 0,-22c0.11,-1.03 0.52,-4.77 -1,-9c-0.64,-1.78 -1.55,-4.19 -4,-6c-2.89,-2.13 -6.05,-2.04 -7,-2z" class="cls-24" id="yuki-i-1"/>
<path fill="url(#_未命名的渐变_9-5)" stroke-width="0px" d="m545.07715,299.0022c-0.26,-0.11 -0.66,-0.27 -1.17,-0.44c0,0 -4.46,-1.53 -9.91,-1c-4.47,0.44 -18.59,11.34 -31.93,31.43c-0.35,-10.53 -0.23,-21.87 0.56,-33.9c0.37,-5.55 0.85,-10.92 1.44,-16.1c0.26,-1.2 0.52,-2.94 0.41,-5.03c-0.09,-1.81 -0.25,-4.96 -2.27,-8.04c-0.56,-0.85 -2.9,-4.42 -7.52,-5.51c-5.61,-1.33 -10.01,2.08 -10.62,2.58c-3.44,2.76 -4.45,6.67 -5,9c-3.6,15.32 -3,27 -3,27c0.42,8.15 1.67,32.57 1,50c-0.22,5.66 0.05,11.33 0,17c-0.05,6.02 -0.13,9.05 1,13c1.45,5.07 4.08,8.75 6,11c1.19,1.11 3.93,3.36 8,4c3.99,0.63 7.79,-0.51 9.84,-1.85c11.06,-7.21 1.65,-39.59 4.55,-40.56c0.39,-0.13 1.19,0.88 2.61,3.4c8.89,11.22 14.99,15.39 30,29c7.7,10.13 23.45,3.59 22,-8c-0.19,-16.59 -39.62,-33.08 -31.91,-39.47c1.89,-2.38 6,-8.21 6.91,-9.53c5.47,-7.8 10.83,-8.44 13,-15c1.34,-4.04 0.69,-6.57 0.43,-7.38c-1.01,-3.15 -3.39,-4.94 -4.43,-5.62l0.01,0.02z" class="cls-28" id="yuki-k"/>
<path fill="url(#_未命名的渐变_4)" stroke-width="0px" d="m79.07715,274.0022c-1.75,-1 -2.61,-0.17 -10,1c-2.22,0.35 -7.11,1.06 -13,3c-1.36,0.45 -2.68,0.93 -3,2c-0.49,1.65 1.56,4.27 4,5c0.32,0.09 0.56,0.13 0.74,0.16c2.19,0.34 3.89,-0.56 5.26,-1.16c1.96,-0.87 3.64,-1.24 7,-2c0,0 4.44,-1 5,0c0.02,0.04 0.04,0.07 0.04,0.07c0.07,0.18 -0.02,0.5 -0.04,2.93c0,0.06 0,0.71 0,2c0,5.01 0.09,5.71 0,7c-0.2,2.74 -0.3,4.11 -1,5c-1.25,1.58 -3.23,1.52 -7,2c-5.62,0.72 -4.41,1.27 -10,2c-7.19,0.94 -9.49,0.07 -11,2c-1.32,1.68 -1.32,4.57 0,6c1.74,1.88 5.46,0.88 9,0c7.35,-1.82 19.55,-4.84 29,-6c4.81,-0.59 12,-1.09 13,-4c0.57,-1.65 0,-3 0,-3c-0.06,-0.14 -0.62,-1.43 -2,-2c-1.19,-0.49 -2.36,-0.18 -3,0c-6.78,1.91 -9.23,2.82 -10,2c-0.45,-0.48 -0.17,-1.39 0,-2c1.77,-6.29 1.22,-12.36 1,-14c-0.23,-1.67 -0.84,-6.18 -4,-8z" class="cls-19" id="lite-jp-1"/>
<path fill="url(#_未命名的渐变_4-2)" stroke-width="0px" d="m75.07715,330.0022c-1.02,0.34 -1.72,1.18 -2,2c-0.31,0.93 -0.06,1.78 0,2c0.38,1.39 0.25,7.26 0,19c-0.12,5.74 -0.36,7.73 0,12c0.21,2.49 0.58,5.11 2,8c0.87,1.76 1.83,3.72 4,5c2.08,1.23 4.09,1.14 7,1c2.69,-0.13 6.51,-0.31 7,-2c0.37,-1.27 -1.18,-3.23 -3,-4c-2.78,-1.18 -4.84,0.97 -7,0c-2.17,-0.97 -2.69,-4.29 -3,-7c-1.07,-9.45 -0.9,-24.04 -1,-30c-0.02,-1.36 -0.12,-5.21 -2,-6c-0.58,-0.25 -1.37,-0.21 -2,0z" class="cls-34" id="liteecho-1"/>
<path fill="url(#_未命名的渐变_72)" stroke-width="0px" d="m263.13715,280.9522c-2.11,0.2 -3.55,1.9 -3.93,2.35c-0.57,0.68 -0.91,1.34 -1.11,1.8c1.09,1.05 6.06,5.64 11.22,4.91c2.33,-0.33 5.1,-1.81 5.34,-2.63c0.03,-0.09 0.03,-0.17 0.03,-0.17c0,-0.29 -0.33,-0.71 -1.89,-1.83c-1.33,-0.96 -2.23,-1.61 -3.3,-2.18c-0.69,-0.37 -1.23,-0.6 -1.68,-0.79c-2.41,-1.04 -3.62,-1.55 -4.68,-1.45l0,-0.01z" class="cls-16" id="yuki-jp-4-1"/>
<path fill="url(#_未命名的渐变_58)" stroke-width="0px" d="m248.07715,265.0022c0.37,-0.49 1.34,-1.8 3,-2c2.33,-0.28 3.93,1.89 4,2c0.33,0.46 0.44,0.81 1,3c0.59,2.3 0.88,3.45 1,4c0.33,1.56 0.71,3.58 1,6c0.65,5.37 0.61,6.78 1,10c0.79,6.47 1.28,10.5 3,15c0.07,0.18 1.23,3.21 1,7c-0.08,1.29 -0.29,2.25 -1,3c-1,1.07 -2.67,1.39 -4,1c-0.58,-0.17 -1.69,-0.65 -3,-3c-1.53,-2.75 -1.78,-5.26 -2,-7c-0.3,-2.39 -0.86,-5.79 -2,-10c-1,-6.33 -2,-12.67 -3,-19c-0.33,-1.67 -0.67,-3.33 -1,-5c-0.1,-0.53 -0.53,-2.95 1,-5z" class="cls-12" id="yuki-jp-4"/>
<path fill="url(#_未命名的渐变_3)" stroke-width="0px" d="m101.07715,341.0022c-1.86,-0.04 -3.59,1.27 -4,3c-0.56,2.38 1.47,5.01 4,5c2.03,-0.01 4,-1.72 4,-4c0,-2.25 -1.92,-3.96 -4,-4z" class="cls-20" id="liteecho-i-1-1"/>
<path fill="url(#_未命名的渐变_3-2)" stroke-width="0px" d="m102.07715,354.0022c-0.61,-0.3 -1.38,-0.31 -2,0c-0.14,0.07 -0.62,0.33 -1,1c-1.18,2.08 -1.01,7.51 -1,8c0.16,5.45 0,9 0,9c-0.08,1.78 -0.22,3.7 1,5c0.21,0.22 0.94,1 2,1c1.08,0 1.81,-0.8 2,-1c1.05,-1.14 1.02,-2.72 1,-4c-0.03,-2.33 0.04,-4.67 0,-7c-0.05,-3.31 0.17,-8.95 -1,-11c-0.12,-0.2 -0.41,-0.71 -1,-1z" class="cls-9" id="liteecho-i-1"/>
<path fill="url(#_未命名的渐变_65)" stroke-width="0px" d="m119.55715,342.6422c-0.52,0.03 -1.3,0.07 -1.92,0.55c-0.25,0.19 -0.76,0.67 -1.1,2.68c-0.15,0.92 -0.29,2.26 -0.14,3.91c-1.17,0.01 -3.52,0.16 -5.32,1.22c-0.38,0.22 -0.77,0.51 -1,1c-0.39,0.85 -0.08,1.91 0.41,2.59c0.74,1.01 1.99,1.19 3.59,1.41c0.85,0.12 1.57,0.12 2.05,0.1c-0.06,0.76 -0.12,1.85 -0.14,3.16c-0.01,1.22 -0.03,2.48 0.14,4.12c0.15,1.49 0.3,2.92 0.96,4.62c0.39,1.03 0.78,1.67 1,2c0.25,0.39 0.74,1.08 1.48,1.76c1.12,1.05 2.67,2.5 4.52,2.24c1.2,-0.17 2.57,-1.06 2.76,-2.24c0.12,-0.76 -0.29,-1.46 -0.55,-1.92c-0.43,-0.76 -0.87,-0.99 -1.51,-1.65c-0.95,-0.97 -1.44,-1.93 -1.78,-2.61c-0.71,-1.41 -0.9,-2.61 -1.1,-3.85c-0.15,-0.97 -0.37,-2.35 -0.14,-4.12c0.09,-0.67 0.22,-1.22 0.32,-1.61c0.56,0 1.35,-0.04 2.29,-0.17c1.54,-0.21 2.32,-0.32 2.88,-0.82c0.8,-0.71 1.27,-2.03 0.83,-3.01c-0.13,-0.3 -0.38,-0.61 -1,-1c-1.52,-0.94 -3.22,-1.02 -4.36,-0.94c0.11,-0.49 0.27,-1.25 0.41,-2.2c0.49,-3.18 0.14,-3.81 -0.14,-4.12c-0.26,-0.3 -0.59,-0.43 -1.24,-0.69c-0.4,-0.16 -1.18,-0.47 -2.2,-0.41z" class="cls-8" id="liteecho-t"/>
<path fill="url(#_未命名的渐变_66)" stroke-width="0px" d="m142.48715,359.4922c-1.24,0 -1.82,0.11 -2.17,0.53c-0.63,0.76 -0.29,2.24 0.31,3.15c1.51,2.31 5.53,2.25 7.8,1.77c1.4,-0.3 4.49,-0.94 5.98,-3.77c1.7,-3.21 -0.04,-6.62 -0.4,-7.27c-1.86,-3.4 -5.47,-4.29 -7.14,-4.7c-3.37,-0.83 -6.16,0.05 -7.27,0.4c-1.07,0.34 -2.81,0.91 -4.53,2.4c-3.45,2.98 -3.92,7.09 -4,8c-0.27,3.05 0.7,5.35 1,6c0.27,0.6 1.17,2.42 3,4c1.04,0.89 2.16,1.53 3,2c0.99,0.56 1.75,0.89 2,1c1.02,0.44 1.88,0.81 3,1c1.17,0.2 2.07,0.1 3,0c0.34,-0.04 1.85,-0.22 4,-1c3.3,-1.2 4.59,-2.54 5,-3c0.47,-0.53 0.68,-0.9 0.71,-1.34c0.06,-1.15 -1.21,-2.31 -2.48,-2.62c-0.51,-0.12 -0.94,-0.08 -1.23,-0.05c-2.01,0.26 -3.04,1.28 -4.31,1.86c-2.59,1.19 -5.84,0.41 -7.69,-0.86c-1.16,-0.8 -1.95,-1.93 -2,-2c-0.26,-0.38 -0.69,-1.07 -1,-2c-0.26,-0.77 -0.95,-2.86 0,-5c0.82,-1.85 2.41,-2.69 3,-3c2.34,-1.23 5.06,-1.05 7,0c0.69,0.37 1.64,0.9 2,2c0.29,0.87 0.26,2.23 -0.52,2.84c-1,0.8 -2.36,-0.34 -6.07,-0.36l0.01,0.02z" class="cls-25" id="liteecho-e"/>
<path fill="url(#_未命名的渐变_68)" stroke-width="0px" d="m197.07715,346.0022c-1.16,0 -4.12,0.04 -7,2c-1.54,1.05 -2.49,2.26 -3,3c-1.62,2.38 -1.87,4.7 -2,6c-0.12,1.26 -0.36,4 1,7c2.14,4.72 6.61,6.52 8,7c1.04,0.36 4.93,1.64 9,0c0.94,-0.38 2.74,-1.13 4,-3c0.45,-0.66 1.99,-2.94 1,-5c-0.54,-1.12 -1.88,-2.25 -3,-2c-1.41,0.32 -1.04,2.48 -3,4c-1.92,1.48 -4.45,1.09 -5,1c-0.54,-0.08 -2.42,-0.41 -4,-2c-2.4,-2.42 -2.04,-5.66 -2,-6c0.07,-0.51 0.43,-3.37 3,-5c2.25,-1.43 5.33,-1.38 7,0c0.93,0.77 0.92,1.55 2,2c1.26,0.52 3.2,0.27 4,-1c0.72,-1.15 0.17,-2.56 0,-3c-0.15,-0.38 -0.69,-1.63 -3,-3c-0.98,-0.58 -3.45,-2.01 -7,-2z" class="cls-29" id="liteecho-c"/>
<path fill="url(#_未命名的渐变_71)" stroke-width="0px" d="m217.07715,329.0022c-0.92,-0.49 -2.08,-0.44 -3,0c-1.8,0.87 -1.99,2.91 -2,3l0,9c0,4 0.04,8 0,12c-0.03,3 0.1,6 0,9c-0.1,3.04 -0.29,5.38 1,8c0.45,0.91 1.42,2.89 3,3c1.63,0.11 2.9,-1.85 3,-2c1.44,-2.28 0.03,-4.1 0,-9c-0.02,-2.85 0,-5.82 2,-8c0.37,-0.4 1.8,-1.97 4,-2c2.44,-0.04 3.91,1.89 4,2c0.92,1.22 1,2.52 1,3c-0.33,1.67 -0.67,3.33 -1,5c-0.41,1.12 -0.91,2.85 -1,5c-0.09,2.3 -0.16,3.99 1,5c1.28,1.11 3.61,1.02 5,0c1.65,-1.21 1.8,-3.61 2,-7c0.08,-1.27 0.04,-2.31 0,-3l0,-8c-0.02,-0.84 -0.16,-2.36 -1,-4c-0.51,-1 -1.73,-2.93 -4,-4c-3.65,-1.72 -7.65,-0.14 -8,0c-1.5,0.62 -2.24,1.36 -3,1c-0.71,-0.34 -0.94,-1.4 -1,-4c-0.12,-5.04 0.61,-6.66 0,-10c-0.56,-3.06 -1.54,-3.76 -2,-4z" class="cls-17" id="liteecho-h"/>
<path fill="url(#_未命名的渐变_58-2)" stroke-width="0px" d="m252.07715,348.0022c-4.27,-0.18 -7.17,2.27 -8,3c-3.05,2.66 -3.79,6 -4,7c-0.18,0.88 -1.21,5.84 2,10c2.08,2.69 4.82,3.62 6,4c1.29,0.42 4.46,1.39 8,0c2.95,-1.16 4.51,-3.31 5,-4c1.43,-2.02 1.81,-3.97 2,-5c0.46,-2.51 0.1,-4.49 0,-5c-0.67,-3.35 -2.52,-5.47 -3,-6c-0.69,-0.76 -3.46,-3.8 -8,-4z" class="cls-33" id="liteecho-o"/>
<path stroke-miterlimit="10" stroke="#fff" fill="#fff" d="m250.57715,354.5022c-2.49,0.24 -3.75,2.55 -4,3c-0.09,0.17 -1.81,3.42 0,6c1.68,2.39 5.6,3.06 8,1c2.1,-1.8 2.13,-4.93 1,-7c-0.84,-1.54 -2.7,-3.22 -5,-3z" class="cls-35" id="liteecho-o-white"/>
<path fill="url(#_未命名的渐变_3-3)" stroke-width="0px" d="m108.07715,274.0022c-0.71,0.63 -1.32,1.81 -1,3c0.38,1.44 1.86,1.95 2,2c0.77,0.25 1.44,0.12 2,0c4.88,-1.04 5.31,-1.31 6,-1c1.18,0.54 1.54,2.08 2,4c0.41,1.72 0.73,3.08 0,4c-0.65,0.81 -2.11,0.89 -5,1c-1.25,0.05 -2.29,0.03 -3,0c-0.53,0.14 -1.96,0.61 -3,2c-0.4,0.54 -1.21,1.61 -1,3c0.24,1.62 1.7,2.78 3,3c0.44,0.08 0.79,0.03 1,0c4.59,-0.65 6.89,-0.98 7,-1c2.55,-0.43 3.84,-0.64 4.45,-0.34c1.26,0.62 1.41,1.86 2.55,5.34c0,0 1.48,4.5 4,10c0.8,1.75 1.53,3.13 2,4c0.16,0.13 2.42,1.9 5,1c0.16,-0.06 2.44,-0.88 3,-3c0.21,-0.78 0.1,-1.42 0,-2c-0.27,-1.54 -0.96,-2.26 -2,-4c-0.12,-0.21 0.03,0.04 -2,-4c-0.67,-1.33 -1.32,-2.67 -2,-4c-1.91,-3.76 -2.3,-4.3 -2,-5c0.2,-0.46 0.49,-0.53 4,-2c1.13,-0.48 2.45,-1.03 4,-2c1.13,-0.71 1.71,-1.21 2,-2c0.06,-0.17 0.35,-1.03 0,-2c-0.48,-1.32 -1.88,-2.03 -3,-2c-0.31,0 -0.54,0.07 -0.66,0.11c-2.2,0.63 -4.77,1.67 -5.34,1.89c-2.21,0.88 -3.31,1.31 -4,1c-0.42,-0.19 -0.77,-0.54 -2,-4c-1.21,-3.42 -1.11,-3.77 -1,-4c0.42,-0.85 1.37,-0.79 6,-2c2.46,-0.64 3.57,-1.02 4,-2c0.3,-0.68 0.14,-1.39 0,-2c-0.09,-0.4 -0.54,-2.17 -2,-3c-1.17,-0.66 -2.4,-0.38 -4,0c-3.65,0.88 -4.88,2.55 -6,2c-0.55,-0.27 -1.15,-1.13 -1,-4c-0.42,-2 -0.76,-3 -1,-3l0,0c-0.76,-1.48 -2.4,-2.29 -4,-2c-1.51,0.27 -2.7,1.47 -3,3c-0.17,2.45 0.41,4.01 1,5c0.57,0.95 1.14,1.36 1,2c-0.24,1.14 -2.45,1.64 -4,2c-2.38,0.55 -3.11,0.2 -4,1z" class="cls-13" id="lite-jp-2"/>
<path fill="url(#_未命名的渐变_5)" stroke-width="0px" d="m153.07715,286.0022c-0.46,1.12 -0.62,2.69 0,4c0.19,0.41 0.79,1.49 2,2c1.22,0.51 2.43,0.16 3,0c5,-1.43 7.51,-2.15 8,-2c4.42,1.34 3.64,20.08 7,22c2.14,1.22 4,1 4,1c1.43,-0.17 3.03,-0.97 3.02,-1c0,0 0,0 -0.02,0c0.27,-0.2 0.65,-0.52 1,-1c1.53,-2.12 0.85,-5.32 -1,-10c-3.3,-8.33 -6.24,-11.07 -5,-13c0.71,-1.1 1.84,-0.46 5.57,-2.36c2.51,-1.27 4.06,-2.06 4.43,-3.64c0.46,-1.98 -1.11,-4.46 -3,-5c-1.01,-0.29 -2.23,0.21 -4.65,1.22c-3.32,1.39 -3.58,2.02 -4.35,1.78c-2.25,-0.7 -0.9,-6.34 -4,-8c-1.22,-0.65 -2.84,-0.54 -4,0c-0.31,0.14 -1.56,0.73 -2,2c-0.24,0.7 -0.14,1.29 0,2c0.51,2.66 2.08,3.57 2,5.99c0,0 0,0 0,0c0.01,0 0.02,0 0.02,0c0.01,0.1 -10.37,-0.01 -12.02,4l0,0.01z" class="cls-5" id="yuki-jp-1"/>
<path fill="url(#_未命名的渐变_69)" stroke-width="0px" d="m230.07715,276.0022c-0.23,-0.2 -0.95,-0.74 -2,-1c-0.58,-0.14 -1.39,-0.34 -2,0c-0.79,0.44 -0.86,1.6 -1,3c0,0 -0.62,6.23 -2,9c-0.43,0.86 -0.97,1.66 -0.97,1.66c-0.12,0.18 -0.24,0.35 -0.35,0.5c-0.2,0.27 -0.42,0.55 -0.68,0.84c-1.47,1.68 -5.93,4.2 -5.93,4.2c-3.23,1.82 -3.66,2.04 -4.07,2.8c-0.61,1.13 -0.9,2.9 0,4c0.8,0.97 2.17,0.99 3,1c0.7,0 3.05,-0.07 7.17,-3.17c1.64,-1.24 3.78,-2.89 5.83,-5.83c3.15,-4.53 3.72,-8.76 4,-11c0.52,-4.2 -0.4,-5.48 -1,-6z" class="cls-31" id="yuki-jp-2-3"/>
<path fill="url(#_未命名的渐变_67)" stroke-width="0px" d="m167.88715,359.1822c-1.13,0.52 -1.6,0.87 -1.74,1.41c-0.25,0.96 0.69,2.15 1.62,2.72c2.35,1.44 5.96,-0.31 7.81,-1.71c1.14,-0.86 3.66,-2.76 3.81,-5.96c0.17,-3.63 -2.85,-5.97 -3.45,-6.41c-3.13,-2.29 -6.78,-1.55 -8.46,-1.22c-3.41,0.68 -5.55,2.66 -6.41,3.45c-0.83,0.76 -2.15,2.02 -3.08,4.1c-1.85,4.16 -0.53,8.09 -0.22,8.94c1.05,2.88 2.91,4.54 3.46,5c0.5,0.42 2.09,1.69 4.42,2.34c1.32,0.37 2.61,0.46 3.57,0.53c1.13,0.08 1.96,0.06 2.24,0.05c1.11,-0.04 2.04,-0.06 3.14,-0.37c1.14,-0.32 1.92,-0.79 2.71,-1.28c0.29,-0.18 1.58,-0.98 3.19,-2.61c2.48,-2.49 3.07,-4.25 3.25,-4.84c0.2,-0.68 0.24,-1.11 0.07,-1.51c-0.43,-1.07 -2.08,-1.58 -3.36,-1.31c-0.51,0.11 -0.88,0.32 -1.13,0.48c-1.71,1.09 -2.2,2.45 -3.11,3.52c-1.84,2.18 -5.11,2.86 -7.32,2.49c-1.39,-0.23 -2.59,-0.92 -2.66,-0.96c-0.4,-0.23 -1.08,-0.67 -1.76,-1.38c-0.56,-0.59 -2.08,-2.19 -2.13,-4.52c-0.04,-2.02 1.04,-3.46 1.44,-3.99c1.59,-2.11 4.14,-3.1 6.33,-2.98c0.79,0.04 1.86,0.12 2.66,0.96c0.63,0.67 1.18,1.91 0.74,2.79c-0.57,1.15 -2.28,0.69 -5.65,2.26l0.02,0.01z" class="cls-14" id="liteecho-e2"/>
</g>
<circle id="svg_6" fill="url(#_未命名的渐变_6)" stroke-width="0px" r="4" cy="301.0022" cx="162.07715" class="cls-23"/>
<ellipse id="svg_7" fill="url(#_未命名的渐变_7)" stroke-width="0px" ry="2.5" rx="2.51" cy="270.5022" cx="183.56715" class="cls-11"/>
<ellipse id="svg_8" fill="url(#_未命名的渐变_7-2)" stroke-width="0px" ry="2.5" rx="2.51" cy="273.5022" cx="176.56715" class="cls-26"/>
<circle id="svg_9" fill="url(#_未命名的渐变_7-3)" stroke-width="0px" r="4" cy="294.3922" cx="185.05715" class="cls-10"/>
<circle id="svg_10" stroke-width="0px" fill="url(#_未命名的渐变_8)" r="4" cy="281.2622" cx="209.49715" class="cls-1"/>
<circle id="svg_11" fill="url(#_未命名的渐变_55)" stroke-width="0px" r="4" cy="275.2622" cx="217.49715" class="cls-6"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 34 KiB

0
docs/public/plugins.json Normal file → Executable file
View File

0
docs/public/resources.json Normal file → Executable file
View File

0
docs/tsconfig.json Normal file → Executable file
View File

27
docs/zh/deploy/adapter.md Normal file
View File

@ -0,0 +1,27 @@
---
title: 适配器
order: 3
---
## **示例与NoneBot对接的OneBot实现端配置**
生产环境中推荐反向WebSocket
不同的实现端给出的字段可能不同,但是基本上都是一样的,这里给出一个参考值
| 字段 | 参考值 | 说明 |
|----------------|--------------------------------|----------------------------------------------------------------------|
| 协议 | 反向 WebSocket | 推荐使用反向 WebSocket 协议进行通信,即轻雪作为服务端运行。 |
| 地址 | `ws://127.0.0.1:20216/onebot/v11/ws` | 地址取决于配置文件,本机默认为 `127.0.0.1:20216`。 |
| AccessToken | `""` | 如果你给轻雪配置了 `AccessToken`,请在此填写相同的值。 |
> **注意**:要使用其他通信方式,请访问 [OneBot Adapter](https://onebot.adapters.nonebot.dev/) 获取详细信息。
## **其他**
轻雪不局限于OneBot适配器你可以使用[NoneBot2支持的任何适配器](https://github.com/nonebot/)(链接指向nonebot的github主页)或使用轻雪讯息传递插件
例如:
- [Console Adapter](https://github.com/nonebot/adapter-console)
- [Mirai Adapter](https://github.com/nonebot/adapter-mirai)

117
docs/zh/deploy/config.md Normal file → Executable file
View File

@ -4,30 +4,75 @@ order: 2
---
# 配置
轻雪支持`yaml``json``toml`作为配置文件,取决于你个人的喜好
## 轻雪配置文件说明
首次运行后生成`config.yml``config`目录,你可修改配置项后重启轻雪,绝大多数情况下,你只需要修改`superusers``nickname`字段即可
轻雪支持 `.yaml``.json``.toml` 三种文件类型作为配置文件, 您可以根据个人喜好选择使用
启动时会加载项目目录下`config.yml/yaml/json/toml``config`目录下的所有配置文件,你可在`config`目录下创建多个配置文件,轻雪会自动合并这些配置文件
### 配置文件生成
## **基础配置项**
首次运行轻雪后,会生成以下文件和目录结构:
```
./
├── config.yml # 默认生成的配置文件
└── config/ # 配置目录,可包含多个配置文件
└── file1.yaml # 示例配置文件1
└── file2.json # 示例配置文件2
└── file3.toml # 示例配置文件3
```
### 配置文件修改
您可以修改生成的 `config.yml` 文件或在 `config` 目录下添加新的配置文件
绝大多数情况下,您只需要修改以下字段:
- `superusers`:超级用户列表
- `nickname`:昵称配置
修改完成后,重启轻雪以应用新的配置
### 配置文件加载
启动轻雪时,会加载项目目录下以下文件和 `config` 目录下的所有配置文件:
- `config.yml`
- `config.yaml`
- `config.json`
- `config.toml`
轻雪会自动合并 `config` 目录下的所有配置文件
这意味着您可以在 `config` 目录下创建多个配置文件, 轻雪会将它们的内容合并为一个完整的配置
## 示例配置文件
### **基础配置项**
> 请注意, 文档中的配置代码是被拆分的, 实际上为一个配置文件(`config.yml`),此处仅为方便阅读拆分
**Nonebot配置**
```yaml
nonebot:
# Nonebot机器人的配置以前的最外层配置项仍可为Nonebot服务但是部分内容会被覆盖请尽快迁移
command_start: [ "/", "" ] # 指令前缀,若没有""空命令头请开启alconna_use_command_start保证alconna解析正常
host: 127.0.0.1 # 监听地址默认为本机若要接收外部请求请填写0.0.0.0
port: 20216 # 绑定端口
nickname: [ "liteyuki" ] # 机器人昵称列表
superusers: [ "1919810" ] # 超级用户列表
# Nonebot机器人的配置6.3.10版本后NoneBot下配置已迁移至nonebot键下不再使用外层配置但是部分内容会被覆盖请尽快迁移
command_start: [ "/", "" ] # 指令前缀,若没有""空命令头请开启alconna_use_command_start保证alconna解析正常
host: 127.0.0.1 # 监听地址默认为本机若要接收外部请求请填写0.0.0.0
port: 20216 # 绑定端口
nickname: [ "liteyuki" ] # 机器人昵称列表
superusers: [ "1919810" ] # 超级用户列表
```
**Liteyuki配置**
```yaml
liteyuki:
# 写在外层的配置项将会被覆盖建议迁移到liteyuki下
log_level: "INFO" # 日志等级
log_icon: true # 是否显示日志等级图标(某些控制台字体不可用)
auto_report: true # 是否自动上报问题给轻雪服务器
auto_update: true # 是否自动更新轻雪每天4点检查更新
plugins: [ ] # 轻雪插件列表
plugin_dirs: [ ] # 轻雪插件目录列表
log_level: "INFO" # 日志等级
log_icon: true # 是否显示日志等级图标(某些控制台字体不可用)
auto_report: true # 是否自动上报问题给轻雪服务器
auto_update: true # 是否自动更新轻雪每天4点检查更新
plugins: [ ] # 轻雪插件列表
plugin_dirs: [ ] # 轻雪插件目录列表
```
## **其他配置**
@ -37,35 +82,21 @@ liteyuki:
```yaml
# 高级NoneBot配置
nonebot:
onebot_access_token: "" # 访问令牌,对公开放时建议设置
default_language: "zh-CN" # 默认语言
alconna_auto_completion: false # alconna是否自动补全指令默认false建议开启
safe_mode: false # 安全模式开启后将不会加载任何第三方NoneBot插件
onebot_access_token: "" # 访问令牌,对公开放时建议设置
default_language: "zh-CN" # 默认语言
alconna_auto_completion: false # alconna是否自动补全指令默认false建议开启
safe_mode: false # 安全模式开启后将不会加载任何第三方NoneBot插件
# 其他Nonebot插件的配置项
custom_config_1: "custom_value1"
custom_config_2: "custom_value2"
# 开发者选项
liteyuki:
allow_update: true # 是否允许更新
debug: false # 轻雪调试开启会自动重载Bot或者资源其他插件自带的调试功能也将开启
dev_mode: false # 开发者模式,开启后将会启动监视者,监视文件变化并自动重载
...
```
## **示例与NoneBot对接的OneBot实现端配置**
生产环境中推荐反向WebSocket
不同的实现端给出的字段可能不同,但是基本上都是一样的,这里给出一个参考值
| 字段 | 参考值 | 说明 |
|-------------|------------------------------------|----------------------------------|
| 协议 | 反向WebSocket | 推荐使用反向ws协议进行通信即轻雪作为服务端 |
| 地址 | ws://127.0.0.1:20216/onebot/v11/ws | 地址取决于配置文件,本机默认为`127.0.0.1:20216` |
| AccessToken | `""` | 如果你给轻雪配置了`AccessToken`,请在此填写相同的值 |
- 要使用其他通信方式请访问[OneBot Adapter](https://onebot.adapters.nonebot.dev/)获取详细信息
## **其他**
- 轻雪不局限于OneBot适配器你可以使用NoneBot2支持的任何适配器或使用轻雪讯息传递插件
```yaml
# 开发者选项
liteyuki:
allow_update: true # 是否允许更新
debug: false # 轻雪调试开启会自动重载Bot或者资源其他插件自带的调试功能也将开启
dev_mode: false # 开发者模式,开启后将会启动监视者,监视文件变化并自动重载
# ...其他配置项...
```

80
docs/zh/deploy/fandq.md Normal file → Executable file
View File

@ -1,52 +1,58 @@
---
title: 答疑
order: 3
order: 4
---
# 答疑
## **常见问题**
- 设备上Python环境太乱了pip和python不对应怎么办
- 请使用`/path/to/python -m pip install -r requirements.txt`来安装依赖,
然后用`/path/to/python main.py`来启动Bot
其中`/path/to/python`是你要用来运行Bot的可执行文件
## 常见问题
- 为什么我启动后机器人没有反应?
- 请检查配置文件的`command_start``superusers`,确认你有权限使用命令并按照正确的命令发送
- 确认命令头没有和`nickname{}`冲突,例如一个命令是`help`,但是`Bot`昵称有一个`help`那么将会被解析为nickname而不是命令
以下是一些常见问题的解答和解决方案:
- 更新轻雪失败,报错`InvalidGitRepositoryError`
- 请正确安装`Git`,并使用克隆而非直接下载的方式部署轻雪
### **设备上 Python 环境太乱了pip 和 python 不对应怎么办?**
- 怎么登录聊天平台例如QQ
- 你有这个问题说明你不是很了解这个项目,本项目不负责实现登录功能,只负责处理和回应消息,登录功能由实现端(协议端)提供,
实现端本身不负责处理响应逻辑将消息按照OneBot标准处理好上报给轻雪
你需要使用Onebot标准的实现端来连接到轻雪并将消息上报给轻雪下面已经列出一些推荐的实现端
- `Playwright`安装失败
- 输入`playwright install`安装浏览器
- 有的插件安装后报错无法启动
- 请先查阅插件文档,确认插件必要配置项完好后,仍然出现问题,请联系插件作者或在安全模式`safe_mode: true`下启动轻雪,在安全模式下你可以使用`npm uninstall`卸载问题插件
- 其他问题
-
加入QQ群[775840726](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=SzmDYbfR6jY94o9KFNon7AwelRyI6M_u&authKey=ygeBdEmdFNyCWuNR4w0M1M8%2B5oDg7k%2FDfN0tzBkYcnbB%2FGHNnlVEnCIGbdftsnn7&noverify=0&group_code=775840726)
请使用以下命令来安装依赖, 并启动 Bot:
## **推荐方案(QQ)**
```bash
/path/to/python -m pip install -r requirements.txt
/path/to/python main.py
```
1. [Lagrange.OneBot](https://github.com/KonataDev/Lagrange.Core)基于NTQQ的OneBot实现目前Markdown消息支持Lagrange
2. [LLOneBot](https://github.com/LLOneBot/LLOneBot)NTQQ的OneBot插件需要安装NTQQ
3. [OpenShamrock](https://github.com/whitechi73/OpenShamrock)基于Lsposed的OneBot11实现
4. [TRSS-Yunzai](https://github.com/TimeRainStarSky/Yunzai),基于`node.js`,可使用`ws-plugin`进行通信
5. [go-cqhttp](https://github.com/Mrs4s/go-cqhttp)`go`语言实现的OneBot11实现端目前可用性较低
6. [Gensokyo](https://github.com/Hoshinonyaruko/Gensokyo),基于 OneBot QQ官方机器人Api Golang 原生实现,需要官方机器人权限
7. 人工实现的`Onebot`协议自己整一个WebSocket客户端看着QQ的消息然后给轻雪传输数据
其中 `/path/to/python` 是你要用来运行 Bot 的 Python 可执行文件的路径
## **推荐方案(Minecraft)**
### **更新轻雪失败,报错 `InvalidGitRepositoryError`**
1. [MinecraftOneBot](https://github.com/snowykami/MinecraftOnebot)我们专门为Minecraft开发的服务器Bot支持OneBotV11标准
请确保正确安装了 `Git` , 并使用克隆而非直接下载的方式部署轻雪
使用其他项目连接请先自行查阅文档若有困难请联系对应开发者而不是Liteyuki的开发者
如果你已经正确安装了 `Git` 但仍然遇到问题,请尝试使用手动下载的方式来更新轻雪(这对于一些特殊的网络环境有效)
### **怎么对接聊天平台?**
Bot 部分插件提供了对接特定平台的能力, 例如, 使用 NoneBot 插件可以对接支持的[适配器平台](https://bot.liteyuki.icu/deploy/adapter.html)
### **`Playwright` 安装失败**
运行以下命令来安装浏览器:
```bash
playwright install
```
### **有的插件安装后报错无法启动**
请先查阅插件文档,确认插件必要配置项完好, 如果问题仍然存在,请联系插件作者或在安全模式下启动轻雪:
```yaml
safe_mode: true
```
在安全模式下,你可以使用以下命令卸载问题插件:
```bash
npm uninstall <plugin-name>
```
## 其他问题
如果以上解答无法解决您的问题,欢迎加入我们的 QQ 群 [775840726](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=SzmDYbfR6jY94o9KFNon7AwelRyI6M_u&authKey=ygeBdEmdFNyCWuNR4w0M1M8%2B5oDg7k%2FDfN0tzBkYcnbB%2FGHNnlVEnCIGbdftsnn7&noverify=0&group_code=775840726) 进行进一步的交流和讨论
## **鸣谢**
- [Nonebot2](https://nonebot.dev)提供的框架支持
- [nonebot-plugin-alconna](https://github.com/ArcletProject/nonebot-plugin-alconna)提供的命令解析功能
- [MiSans](https://hyperos.mi.com/font/zh/)[MapleMono](https://gitee.com/mirrors/Maple-Mono)提供的字体,且遵守了相关字体开源协议

90
docs/zh/deploy/install.md Normal file → Executable file
View File

@ -2,55 +2,95 @@
title: 安装
order: 1
---
# 安装
## **常规部署**
1. 安装 [`Git`](https://git-scm.com/download/) 和 [`Python3.10+`](https://www.python.org/downloads/release/python-31010/) 环境
### 安装基本环境
```bash
# 克隆项目到本地轻雪使用Git进行版本管理该步骤为必要项
git clone https://github.com/LiteyukiStudio/LiteyukiBot --depth=1 # 若你不能访问Github可以使用Liteyuki镜像https://git.liteyuki.icu/LiteyukiStudio/LiteyukiBot
**Git 版本管理工具**
[Git](https://git-scm.com/download/)
# 切换到Bot目录下
cd LiteyukiBot
# 安装依赖
pip install -r requirements.txt
# 启动Bot
python main.py
```
**Python3.10+**
[Python3.10+](https://www.python.org/downloads/release/python-31010/)
### 克隆项目到本地轻雪使用Git进行版本管理该步骤为必要项
`git clone https://github.com/LiteyukiStudio/LiteyukiBot --depth=1`
> 若你不能访问Github可以使用Liteyuki镜像`https://git.liteyuki.icu/bot/app`
### 切换到Bot目录下
`cd LiteyukiBot`
> 如果存在文件夹缺失报错, 尝试使用绝对路径进行路径跳转
### 创建虚拟环境
`python -m venv venv`
> 如果出现相关虚拟环境错误, 建议查询 [Python Venv](https://docs.python.org/3/library/venv.html)
### 激活虚拟环境
Windows:
`.\venv\Scripts\activate`
> 出现`'activate' 不是内部或外部命令,也不是可运行的程序或批处理文件。`错误, 请使用完整路径激活虚拟环境
Linux:
`source venv/bin/activate`
> 如果出现`source: command not found`, 请使用完整路径激活虚拟环境
### 安装依赖
`pip install -r requirements.txt`
> 若出现`ERROR: Could not open requirements file: [Errno 2] No such file or directory`错误, 请检查是否在Bot目录下执行命令
> 若出现`ERROR: Could not build wheels for xx, which is required to install pyproject.toml-based projects`错误,请尝试使用手动命令安装相关依赖(虚拟环境下执行`pip install xx`,例如`pip install Pillow`)
### 启动Bot
`python main.py`
> 若出现`ModuleNotFoundError: No module named 'xx'`错误, 请尝试重新执行安装依赖步骤
> [!tip]
> 推荐使用虚拟环境来运行轻雪,以避免依赖冲突,你可以使用`python -m venv .venv`来创建虚拟环境,然后使用`.venv\Scripts\activate`来激活虚拟环境Linux下使用`source .venv/bin/activate`激活)
## **使用Docker构建**
1. 安装 [`Docker`](https://docs.docker.com/get-docker/)
2. 克隆项目 `git clone https://github.com/LiteyukiStudio/LiteyukiBot --depth=1`
3. 进入轻雪目录 `cd LiteyukiBot`
4. 构建镜像 `docker build -t liteyukibot .`
5. 启动容器 `docker run -p 20216:20216 -v $(pwd):/liteyukibot -v $(pwd)/.cache:/root/.cache liteyukibot`
```bash
docker pull ghcr.io/liteyukistudio/liteyukibot:latest # 每夜版镜像
```
> [!tip]
> Windows请使用项目绝对目录`/path/to/LiteyukiBot`代替`$(pwd)` <br>
> 若你修改了端口号请将`20216:20216`中的`20216`替换为你的端口号
## **使用TRSS Scripts部署**
[TRSS_Liteyuki轻雪机器人管理脚本](https://timerainstarsky.github.io/TRSS_Liteyuki/)该功能由TRSS提供支持不是LiteyukiBot官方提供的功能推荐使用`Arch Linux`
## **装置要求**
- Windows系统版本最低`Windows10+`/`Windows Server 2019+`
- Windows系统版本推荐最低版本: `Windows 10 21H2` / `Windows Server 2019+`
>版本低于`Windows 10 21H2` 可能无法正常使用Bot, 建议升级系统版本或使用Docker部署
- Linux系统要支持Python3.10+,推荐`Ubuntu 20.04+`(~~别用你那b CentOS~~)
- CPU: 至少`1vCPU`
- 内存: Bot无其他插件会占用`300~500MB`,包括`chromium``node`等进程,其他插件占用视具体插件而定,建议`1GB`以上
- 硬盘: 至少`1GB`空间
> [!warning]
> 如果装置上有多个环境,请使用`path/to/python -m pip install -r requirements.txt`来安装依赖,`path/to/python`为你的Python可执行文件路径
> 如果装置上有多个环境,请使用`path/to/python -m pip install -r requirements.txt`来安装依赖,`path/to/python`
> 为你的Python可执行文件路径
> [!warning]
> 轻雪的更新功能依赖Git如果你没有安装Git直接下载源代码运行你将无法使用更新功能
> 轻雪的更新功能依赖Git如果你没有安装Git直接下载源代码运行你将无法使用更新功能(除非你闲的手动下载源代码更新轻雪~~)
#### 其他问题请移步至[答疑](./fandq)

0
docs/zh/dev/best_practices.md Normal file → Executable file
View File

4
docs/zh/dev/comm.md Normal file → Executable file
View File

@ -7,9 +7,7 @@ order: 4
### 简介
轻雪运行在主进程 MainProcess 里,其他插件框架进程是伴随的子进程,因此无法通过内存共享和直接对象传递的方式进行通信,
轻雪提供了一个通道[`Channel`](./api/comm/channel#class-channel-generic-t)用于跨进程通信,
你可以通过[`Channel`](./api/comm/channel#class-channel-generic-t)发送消息给其他进程,也可以监听其他进程的消息。
轻雪运行在主进程 MainProcess 里,有部分实现插件为了一些功能在子进程中运行,这样两个进程上下文是不会互相干扰的,因此无法通过共享内存和直接对象传递进行通信。
例如子进程接收到用户信息需要重启机器人,这时可以通过通道对主进程发送消息,主进程接收到消息后重启对应子进程。

0
docs/zh/dev/guide.md Normal file → Executable file
View File

0
docs/zh/dev/lyfunc.md Normal file → Executable file
View File

12
docs/zh/dev/plugin.md Normal file → Executable file
View File

@ -1,5 +1,5 @@
---
title: 轻雪插件开发
title: 插件开发
order: 3
---
@ -7,6 +7,16 @@ order: 3
轻雪插件是轻雪内置的一部分功能,运行在主进程中,可以很高程度地扩展轻雪的功能
插件大致可分为应用(Application)、实现(Implementation)及服务(Service)等几种类型,大部分情况下一个插件通常承担着多个责任,可按需调整
应用:从总线通道接收到消息后进行处理,响应,以实现某些功能,例如`echo`
实现:对接特定平台,把平台的消息转换为轻雪消息格式传入总线通道
服务提供一系列对外的ipc/rpc/http等服务供其他插件调用
我们鼓励使用`magicoca`进行对象传递来进行插件间通信而不是依赖关系,这样可以避免很多潜在的问题。
## 开始
### 创建插件

0
docs/zh/dev/resource.md Normal file → Executable file
View File

6
docs/zh/index.md Normal file → Executable file
View File

@ -18,8 +18,8 @@ hero:
text: 🛠️ 开发
link: ./dev/guide
image:
light: ./liteyuki.svg
dark: ./liteyuki-dark.svg
light: https://cdn.liteyuki.icu/logos/bot.svg
dark: https://cdn.liteyuki.icu/logos/bot.svg
alt: Liteyuki Logo
features:
@ -58,6 +58,6 @@ features:
- title: 开源项目
icon: 📄
details: 项目遵循LSO LICENCE开源欢迎各位的贡献
details: 项目遵循LSO LICENSE开源欢迎各位的贡献
link: https://github.com/LiteyukiStudio/LiteyukiStudioOpensourceLICENSE
---

0
docs/zh/store/plugin.md Normal file → Executable file
View File

0
docs/zh/store/resource.md Normal file → Executable file
View File

2
docs/zh/usage/agreement.md Normal file → Executable file
View File

@ -4,7 +4,7 @@ order: 3
---
# 用户协议
1. 本项目遵循`MIT`协议,你可以自由使用,修改,分发,但是请保留原作者信息
1. 本项目遵循`LSO`协议,你可以自由使用,修改,分发,但是请保留原作者信息
2. 你可以选择开启`auto_report`(默认开启),轻雪会收集以下内容
- 运行环境的设备信息CPU内存系统信息及Python信息
- 插件信息(不含插件数据)

0
docs/zh/usage/basic.md Normal file → Executable file
View File

0
docs/zh/usage/extra.md Normal file → Executable file
View File

0
liteyuki/EN.LICENSE Normal file → Executable file
View File

0
liteyuki/LICENSE Normal file → Executable file
View File

0
liteyuki/__init__.py Normal file → Executable file
View File

32
liteyuki/bot/__init__.py Normal file → Executable file
View File

@ -1,22 +1,22 @@
import asyncio
import atexit
import os
import platform
import signal
import sys
import threading
import time
from typing import Any, Optional
from magicoca import Chan
from liteyuki.bot.lifespan import LIFESPAN_FUNC, Lifespan, PROCESS_LIFESPAN_FUNC
from liteyuki.comm.channel import get_channel
from liteyuki.core.manager import ProcessManager
from liteyuki.log import init_log, logger
from liteyuki.plugin import load_plugin
from liteyuki.utils import IS_MAIN_PROCESS
# new version
from liteyuki.core.manager import sub_process_manager
from liteyuki.log import init_log, logger
from liteyuki.plugin import load_plugin
from liteyuki.session import message_handler_thread
from liteyuki.utils import IS_MAIN_PROCESS
__all__ = [
"LiteyukiBot",
@ -33,6 +33,10 @@ class LiteyukiBot:
Args:
**kwargs: 配置
"""
"""总通道"""
self.i_chan = Chan[Any]() # 外部输入通道
self.o_chan = Chan[Any]() # 外部输出通道
"""常规操作"""
print_logo()
global _BOT_INSTANCE
@ -65,7 +69,7 @@ class LiteyukiBot:
await self.lifespan.before_start() # 启动前钩子
sub_process_manager.start_all()
await self.lifespan.after_start() # 启动后钩子
await self.keep_alive()
message_handler_thread([_.ctx.sub_chan for _ in sub_process_manager.processes.values()])
def run(self):
"""
@ -77,19 +81,7 @@ class LiteyukiBot:
except KeyboardInterrupt:
logger.opt(colors=True).info("<y>Liteyuki is stopping...</y>")
self.stop()
logger.opt(colors=True).info("<y>Liteyuki is stopped...</y>")
async def keep_alive(self):
"""
保持轻雪运行
"""
logger.info("Liteyuki is keeping alive...")
try:
while not self.stop_event.is_set():
await asyncio.sleep(0.1)
except Exception:
logger.info("Liteyuki is exiting...")
self.stop()
logger.opt(colors=True).info("<y>Liteyuki is stopped !</y>")
def restart(self, delay: int = 0):
"""

0
liteyuki/bot/lifespan.py Normal file → Executable file
View File

0
liteyuki/comm/__init__.py Normal file → Executable file
View File

5
liteyuki/comm/channel.py Normal file → Executable file
View File

@ -75,11 +75,6 @@ class Channel(Generic[T]):
if name in _channel:
raise ValueError(f"Channel {name} already exists")
_channel[name] = self
logger.debug(f"Channel {name} initialized in main process")
else:
logger.debug(
f"Channel {name} initialized in sub process, should manually set in main process"
)
def _get_generic_type(self) -> Optional[type]:
"""

0
liteyuki/comm/event.py Normal file → Executable file
View File

View File

@ -1,48 +0,0 @@
# -*- coding: utf-8 -*-
"""
基于socket的通道
"""
class SocksChannel:
"""
通道类可以在进程间和进程内通信双向但同时只能有一个发送者和一个接收者
有两种接收工作方式但是只能选择一种主动接收和被动接收主动接收使用 `receive` 方法被动接收使用 `on_receive` 装饰器
"""
def __init__(self, name: str):
"""
初始化通道
Args:
name: 通道ID
"""
self._name = name
self._conn_send = None
self._conn_recv = None
self._closed = False
def send(self, data):
"""
发送数据
Args:
data: 数据
"""
pass
def receive(self):
"""
接收数据
Returns:
data: 数据
"""
pass
def close(self):
"""
关闭通道
"""
pass

0
liteyuki/comm/storage.py Normal file → Executable file
View File

51
liteyuki/config.py Normal file → Executable file
View File

@ -11,8 +11,8 @@
import os
import json
import copy
import toml
import yaml
import toml # type: ignore
import yaml # type: ignore
from typing import Any
@ -118,6 +118,8 @@ def load_config_in_default(no_waring: bool = False) -> dict[str, Any]:
从一个标准的轻雪项目加载配置文件
项目目录下的config.*和config目录下的所有配置文件
项目目录下的配置文件优先
Args:
no_waring: 是否关闭警告
"""
config = load_configs_from_dirs("config", no_waring=no_waring)
config.update(
@ -130,3 +132,48 @@ def load_config_in_default(no_waring: bool = False) -> dict[str, Any]:
)
)
return config
# new config loader
class Loader:
def __init__(self):
self.config = {}
def load_from_yaml(self, fp: str) -> "Loader":
"""从yaml文件加载配置
Args:
fp
"""
with open(fp, 'r') as file:
self.config.update(yaml.safe_load(file))
return self
def load_from_toml(self, fp: str) -> "Loader":
"""从toml文件加载配置"""
with open(fp, 'r') as file:
self.config.update(toml.load(file))
return self
def load_from_json(self, fp: str) -> "Loader":
"""从json文件加载配置"""
with open(fp, 'r') as file:
self.config.update(json.load(file))
return self
def load_from_env(self, prefix: str = "") -> "Loader":
"""从环境变量加载配置"""
for key, value in os.environ.items():
if key.startswith(prefix):
self.config[key[len(prefix):]] = value
return self
def merge(self, loader: "Loader") -> "Loader":
"""合并两个Loader键值对树"""
self.config.update(loader.config)
return self
def get(self, key: str, default: Any = None) -> Any:
"""获取配置值"""
return self.config.get(key, default)
def __repr__(self) -> str:
return f"Loader(config={self.config})"

0
liteyuki/core/__init__.py Normal file → Executable file
View File

41
liteyuki/core/manager.py Normal file → Executable file
View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
"""
Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved
Copyright (C) 2020-2025 LiteyukiStudio. All Rights Reserved
@Time : 2024/7/27 上午11:12
@Author : snowykami
@ -225,17 +225,14 @@ class ProcessManager:
class _SubProcessManager:
"""
子进程管理器
若要子进程间通信请先在子进程A中发送通信事件给主进程包含当前进程信息及上下文信息主进程再将信息发送给子进程B子进程B再根据信息进行操作
"""
def __init__(self):
self.processes: dict[str, SubProcess] = {}
def new_process(
self, name: str, *args, **kwargs
) -> Callable[[ProcessFuncType], None]:
def decorator(func: ProcessFuncType):
self.processes[name] = SubProcess(name, func, *args, **kwargs)
return decorator
def add(self, name: str, func: ProcessFuncType, *args, **kwargs):
"""
@ -268,5 +265,33 @@ class _SubProcessManager:
process.start()
logger.debug(f"Starting process {name}")
def terminate(self, name: str):
"""
终止指定子进程
Args:
name: 子进程名称
Returns:
"""
if name not in self.processes:
raise KeyError(f"Process {name} not found.")
self.processes[name].terminate()
def terminate_all(self):
"""
终止所有子进程
"""
for name, process in self.processes.items():
process.terminate()
logger.debug(f"Terminating process {name}")
def get_process(self, name: str) -> SubProcess | None:
"""
获取指定子进程
Args:
name: 子进程名称
Returns:
"""
return self.processes.get(name, None)
sub_process_manager = _SubProcessManager()

0
liteyuki/dev/__init__.py Normal file → Executable file
View File

0
liteyuki/dev/observer.py Normal file → Executable file
View File

2
liteyuki/dev/plugin.py Normal file → Executable file
View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
"""
Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved
Copyright (C) 2020-2025 LiteyukiStudio. All Rights Reserved
@Time : 2024/8/18 上午5:04
@Author : snowykami

0
liteyuki/exception.py Normal file → Executable file
View File

56
liteyuki/log.py Normal file → Executable file
View File

@ -12,26 +12,34 @@ import sys
import loguru
logger = loguru.logger
logger = loguru.logger.bind()
# DEBUG日志格式
debug_format: str = (
"<c>{time:YYYY-MM-DD HH:mm:ss}</c> "
"<lvl>[{level.icon}]</lvl> "
"<c><{name}.{module}.{function}:{line}></c> "
"{message}"
"<c>{time:YYYY-MM-DD HH:mm:ss}</c> "
"<lvl>[{level.icon}{level}]</lvl> "
"<c><{name}.{module}.{function}:{line}></c> "
"{message}"
)
# 默认日志格式
default_format: str = (
"<c>{time:MM-DD HH:mm:ss}</c> "
"<lvl>[{level.icon}]</lvl> "
"<c><{name}></c> "
"{message}"
"<c>{time:MM-DD HH:mm:ss}</c> "
"<lvl>[{level.icon}{level}]</lvl> "
"<c><{name}></c> "
"{message}"
)
def get_format(level: str) -> str:
"""
获取日志格式
Args:
level: 日志等级
Returns: 日志格式
"""
# DEBUG日志格式
if level == "DEBUG":
return debug_format
else:
@ -41,23 +49,27 @@ def get_format(level: str) -> str:
def init_log(config: dict):
"""
在语言加载完成后执行
Returns:
Args:
config: 配置
"""
global logger
level = config.get("log_level", "DEBUG")
logger.remove()
logger.add(
sys.stdout,
level=0,
level=level,
diagnose=False,
format=get_format(config.get("log_level", "INFO")),
format=get_format(level),
)
show_icon = config.get("log_icon", True)
logger.level("DEBUG", color="<blue>", icon=f"{'🐛' if show_icon else ''}DEBUG")
logger.level("INFO", color="<normal>", icon=f"{'' if show_icon else ''}INFO")
logger.level("SUCCESS", color="<green>", icon=f"{'' if show_icon else ''}SUCCESS")
logger.level("WARNING", color="<yellow>", icon=f"{'⚠️' if show_icon else ''}WARNING")
logger.level("ERROR", color="<red>", icon=f"{'' if show_icon else ''}ERROR")
logger.level("DEBUG", color="<blue>", icon=f"{'🐛' if show_icon else ''}")
logger.level("INFO", color="<normal>", icon=f"{'' if show_icon else ''}")
logger.level("SUCCESS", color="<green>", icon=f"{'' if show_icon else ''}")
logger.level("WARNING", color="<yellow>", icon=f"{'⚠️' if show_icon else ''}")
logger.level("ERROR", color="<red>", icon=f"{'' if show_icon else ''}")
logger.level("CRITICAL", color="<red>", icon=f"{'' if show_icon else ''}")
logger.level("TRACE", color="<cyan>", icon=f"{'🔍' if show_icon else ''}")
logger.bind()
init_log(config={})
init_log(config={"log_level": "DEBUG", "log_icon": True})

Some files were not shown because too many files have changed in this diff Show More