Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
153 commits
Select commit Hold shift + click to select a range
d9ede8e
refactor(ocr): replace mxnet/cnocr backend with onnxruntime
Joxos Aug 14, 2026
b0196e1
chore(tooling): migrate to uv and ruff, upgrade web dependencies
Joxos Aug 14, 2026
ff263d4
refactor(webui): replace pywebio GUI with FastAPI REST + WebSocket API
Joxos Aug 14, 2026
c8e4493
feat(shell): replace Electron with Tauri 2 and Vue 3 SPA
Joxos Aug 14, 2026
c0d366e
feat(webui): restructure pages to match the original layout
Joxos Aug 14, 2026
cdabede
chore: ignore MaaFramework runtime checkout, drop empty dir artifact
Joxos Aug 14, 2026
bf3e8e7
fix(webui): language switching, theme-adaptive controls and aside dro…
Joxos Aug 14, 2026
af7cc91
chore: ignore runtime checkout directories
Joxos Aug 14, 2026
53d742c
fix(webui): migrate full original styles, reactive language switch, d…
Joxos Aug 14, 2026
06bd940
fix(webui): port dark/light theme shell styles from dark-alas.css/lig…
Joxos Aug 14, 2026
963bf8c
fix(webui): aside icons matching the original layout
Joxos Aug 14, 2026
c43814c
fix(webui): seven style and rendering issues
Joxos Aug 14, 2026
b4ba4f9
fix(webui): nine refinement items against the original
Joxos Aug 14, 2026
97e9abc
refactor(shell): migrate the SPA from Vue 3 to Svelte 5
Joxos Aug 14, 2026
81a4f27
fix(webui): collapse flicker, favicon, navigator and layout metrics
Joxos Aug 14, 2026
f569c7b
fix(webui): aside icon colors per theme, original Alas window icons
Joxos Aug 14, 2026
1fcefa3
fix(webui): six layout/style details against the original
Joxos Aug 14, 2026
b20e9bd
fix(webui): bare buttons inherit the theme text color
Joxos Aug 14, 2026
c2786ab
fix(webui): align hover colors, overview grid, tool page and updater …
Joxos Aug 14, 2026
2015eee
chore: drop unused updater color styles
Joxos Aug 14, 2026
5b14c98
fix(webui): button metrics and details measured against the original
Joxos Aug 14, 2026
5b71b0c
fix(webui): root backgrounds, icon png, state labels, shared accent v…
Joxos Aug 14, 2026
1b53966
fix(webui): log color, running row height, menu gap, theme accent pri…
Joxos Aug 14, 2026
cf0b3f5
fix(template): restore grayscale GIF frames wrapped as RGB by imageio…
Joxos Aug 15, 2026
7c3ede1
chore(gitignore): ignore .qoder workspace directory
Joxos Aug 15, 2026
b5f2f27
merge: restore local dev line (ocr onnxruntime, uv, webui)
Joxos Aug 15, 2026
e4342f2
fix(build): sync requirements with pyproject.toml
Joxos Aug 15, 2026
adb5a19
fix(aidlux): parse >= constraints in requirements generator
Joxos Aug 15, 2026
5c78636
chore(docs): move docs out of git tracking into .qoder workspace
Joxos Aug 15, 2026
b9a977a
chore(deps): stage A baseline (py3.13, numpy 2.5, pydantic v2, fastap…
Joxos Aug 15, 2026
363c86e
fix(webui): restore colored logs (ANSI render + theme-aware frontend …
Joxos Aug 15, 2026
1817c2e
fix(base): strip UTF-8 BOM from module/base/utils.py (ruff format crash)
Joxos Aug 15, 2026
cd580b0
chore(lint): stage B-2 round 1 — expand ruff rules, format codebase, …
Joxos Aug 15, 2026
7160315
chore(lint): stage B-2 round 2 — fix B006/B007/B023/E721/B032/F601/F7…
Joxos Aug 15, 2026
9e88fda
refactor(base): use project cached_property instead of external cache…
Joxos Aug 15, 2026
004845c
refactor(imports): expand non-data-bundle star imports to explicit im…
Joxos Aug 15, 2026
2ad3469
chore(tooling): add pyright (baseline 2117 errors) + pyrightconfig, d…
Joxos Aug 15, 2026
704dcb4
fix(imports): restore re-export imports removed by F401 auto-fix (Tem…
Joxos Aug 15, 2026
d54f33c
refactor(game_setting): annotate Field.default as Any (mixed int/floa…
Joxos Aug 15, 2026
df7c3bc
revert game_setting Field default annotation to original with noqa F722
Joxos Aug 15, 2026
1e44489
perf(webui): incremental log rendering (append-only DOM, backend rend…
Joxos Aug 15, 2026
b5b92c5
Revert "perf(webui): incremental log rendering (append-only DOM, back…
Joxos Aug 15, 2026
3e88d0e
revert(webui): remove colored logs, back to plain text rendering
Joxos Aug 15, 2026
eb8e8b2
fix(map_detection): wrap generator in list for np.vstack (numpy 2 req…
Joxos Aug 15, 2026
b3bdb1e
perf(cpu): cap opencv/onnxruntime thread pools and lower automation p…
Joxos Aug 15, 2026
1e72431
Revert "revert(webui): remove colored logs, back to plain text render…
Joxos Aug 15, 2026
456d4f5
Reapply "perf(webui): incremental log rendering (append-only DOM, bac…
Joxos Aug 15, 2026
14ae1b2
chore(dev): expose vite dev server on LAN and update gitignore for ru…
Joxos Aug 15, 2026
1b9b949
feat(webui): set default theme to dark
Joxos Aug 15, 2026
db74298
refactor(webui): split 545-line single-file FastAPI app into APIRoute…
Joxos Aug 15, 2026
5a840d4
feat(webui): dev CORS middleware gated by ALAS_CORS_ORIGINS env (vite…
Joxos Aug 15, 2026
d5fea50
feat(webui): replace /ws polling with SSE stream (server-sent events)
Joxos Aug 15, 2026
d3afab7
feat(ocr): dynamic batch, per-model lock, crash watchdog, client reco…
Joxos Aug 15, 2026
62423fb
chore: remove legacy --electron naming and stale mxnet comments (phas…
Joxos Aug 15, 2026
515aa8c
fix(webui): restore /ws as compatibility shim so pre-SSE SPA bundles …
Joxos Aug 15, 2026
88a14ca
fix(shell): repair shell-backend links (phase D-1)
Joxos Aug 15, 2026
525249b
chore(webapp): toolchain modernization (phase D-2)
Joxos Aug 15, 2026
37ebe09
chore: anchor generic Python-artifact gitignore rules to repo root (l…
Joxos Aug 15, 2026
9546662
feat(packaging): updater plugin + PyInstaller sidecar skeleton (phase…
Joxos Aug 15, 2026
dad11d7
chore: track the hand-authored PyInstaller spec (un-ignore deploy/pac…
Joxos Aug 15, 2026
4c9feb7
refactor(webui): converge component colors onto shared CSS design tok…
Joxos Aug 15, 2026
01f8f2a
chore(webui): drop the /ws shim now that dist is rebuilt against /sse…
Joxos Aug 15, 2026
d96ec22
chore(shell): track Cargo.lock and the regenerated tauri ACL schemas …
Joxos Aug 15, 2026
e147df3
fix(shell): add updater pubkey config; fix Home overview missing scro…
Joxos Aug 16, 2026
988fefb
fix(webui): translate state-field option values and make Scheduler.Ne…
Joxos Aug 16, 2026
235e447
fix(webui): numeric select options rendered blank (Fleet index/step e…
Joxos Aug 16, 2026
7016d3b
fix(gui): Ctrl+C left the uvicorn child orphaned; reap it on every ex…
Joxos Aug 16, 2026
025ef42
fix(os): restore ndarray arithmetic reverted by the B-2 RUF005 auto-fix
Joxos Aug 16, 2026
d3c0243
feat(webui): push live scheduler state from the bot to the overview c…
Joxos Aug 16, 2026
0647b5e
refactor(webui): go full push for status/scheduler reads; silence uvi…
Joxos Aug 16, 2026
3ace161
fix(webui): restore one-shot REST scheduler bootstrap at mount
Joxos Aug 16, 2026
b837f66
chore(refactor): baseline import smoke script + recorded baseline (35…
Joxos Aug 16, 2026
3eff9a1
refactor(core): split module/base/utils.py god module into module/cor…
Joxos Aug 16, 2026
98e881f
refactor(imports): annotate all 169 intentional star imports with noq…
Joxos Aug 16, 2026
aa5bff8
fix(dev_tools): correct annotate_star_imports.py top-level exclusion …
Joxos Aug 16, 2026
480dda5
refactor(packages): add __init__.py to all 59 module/ directories (P1.3)
Joxos Aug 16, 2026
d426f9e
refactor(tasks): replace ~70 alas.py boilerplate methods with declara…
Joxos Aug 16, 2026
69f033e
chore(imports): annotate star imports in campaign/ and submodule/ (P1…
Joxos Aug 16, 2026
06831d7
refactor(ui): centralize ui->business asset imports in assets_bridge.…
Joxos Aug 16, 2026
29f06b2
refactor(scheduler): extract TaskRecord from alas.py scheduler loop (…
Joxos Aug 16, 2026
0ad66d0
refactor(device): add DeviceBase protocol contract + Device capabilit…
Joxos Aug 17, 2026
99db749
fix(device): patch pkg_resources in method/utils.py; add delivery ver…
Joxos Aug 17, 2026
85e6f63
refactor(scheduler): extract scheduler loop into Scheduler mixin (P2.3)
Joxos Aug 17, 2026
1aff8bf
refactor(layers): cut base/device/config upward dependency inversions…
Joxos Aug 17, 2026
078c139
test: add pytest test foundation and CI (S7)
Joxos Aug 17, 2026
bc25fee
feat(webui): redirect all unmatched paths to the SPA home page
Joxos Aug 17, 2026
3751d58
feat(webui): redirect unknown hash routes to home in the SPA router
Joxos Aug 17, 2026
e75bac3
refactor(logger): rewrite the logging stack on loguru (L1)
Joxos Aug 17, 2026
e3102a5
feat(scheduler): bind the task name to every log record during run (L3)
Joxos Aug 17, 2026
e02e353
fix(alas): annotate stop_event as Event | None (pre-existing pyright …
Joxos Aug 17, 2026
adf397e
refactor(logger): remove old-adaptation remnants from the loguru rewrite
Joxos Aug 17, 2026
1bbafe8
refactor(logger): drop legacy stdlib logging config remnants
Joxos Aug 17, 2026
a19feb5
refactor(deploy): remove dead if-False Uiautomator2 Init blocks
Joxos Aug 17, 2026
7f17e56
refactor(logger): drop the obsolete basicConfig neutralization
Joxos Aug 17, 2026
92bf262
chore(cleanup): remove old tech stack remnants found by full sweep
Joxos Aug 17, 2026
e2f4ea9
refactor(deploy): remove AidLux and the legacy toolkit installer
Joxos Aug 17, 2026
de1f7ff
chore(lint): clean module/config ruff findings; sync generated deploy…
Joxos Aug 17, 2026
b5394af
chore(quality): frontend biome fixes, dependency declarations, pytest…
Joxos Aug 17, 2026
43c6cbf
test(routing): migrate webui routing tests off starlette TestClient
Joxos Aug 17, 2026
94386bb
test(routing): hoist dist-built check out of async tests (ASYNC240)
Joxos Aug 17, 2026
d816310
Merge pull request #5898 from LmeSzinc/dev
LmeSzinc Aug 17, 2026
681a6ce
fix(logger): restore pre-loguru rich styles for console and webui log…
Joxos Aug 18, 2026
7c41250
chore(deps): sync uv.lock with pyproject dependencies
Joxos Aug 18, 2026
66a035e
refactor(deploy): keep only source/tauri/docker forms, drop self-upda…
Joxos Aug 18, 2026
f5dc3e3
fix(tasks): route campaign kwargs to run() instead of the constructor
Joxos Aug 18, 2026
8e47208
Merge remote-tracking branch 'origin/master'
Joxos Aug 18, 2026
4a2db0f
fix(webui): define ANSI palette CSS vars so log level/time colors res…
Joxos Aug 18, 2026
79a13d0
feat(webui): migrate shell styling to UnoCSS with token-based themes
Joxos Aug 18, 2026
ffb0b3e
fix(webui): button metrics, cursors and manage table i18n
Joxos Aug 18, 2026
64c28f8
chore: remove OCR RPC server and pip-era toolchain leftovers
Joxos Aug 18, 2026
57809c5
docs: codebase audit report and cleanup plan
Joxos Aug 18, 2026
fd257df
dev: add rope to dev group and AST-based find_refs tool
Joxos Aug 18, 2026
652f1e1
deps: remove unused prettytable, aiofiles, pycryptodome, wrapt, anyio
Joxos Aug 18, 2026
5e6be43
fix(dev): bind loop vars in find_refs closure (B023)
Joxos Aug 18, 2026
513413d
lint: fix redundant conversion rules (C4xx, RUF046, RUF015)
Joxos Aug 18, 2026
a0e6291
lint: fix SIM210/RUF007/SIM109/UP028/SIM110 via auto-fix
Joxos Aug 18, 2026
d665405
lint: fix E731/B008/SIM116/B005, drop 4 more ignore entries
Joxos Aug 18, 2026
7c71dc6
lint: sort imports after pairwise fixes (I001)
Joxos Aug 18, 2026
be05e47
lint: fix E722/SIM105 positively, drop 20 ignore entries total (34->14)
Joxos Aug 18, 2026
995a306
chore(dead-code): remove unreachable returns, DockScanner class, unus…
Joxos Aug 18, 2026
1f25337
chore(dead-code): remove 26 unused functions in base/config/deploy layer
Joxos Aug 18, 2026
a924102
chore: drop stray temp file
Joxos Aug 18, 2026
790bfd0
chore(dead-code): remove 29 unused device-layer methods (scrcpy/pool/…
Joxos Aug 18, 2026
cf42a3e
chore: drop temp batch file
Joxos Aug 18, 2026
e36bb97
chore(dead-code): remove handler-layer dead code incl. uiautomator2 X…
Joxos Aug 18, 2026
0bba958
chore(dead-code): remove 19 map/detection/os-layer unused methods
Joxos Aug 18, 2026
6da401f
chore: drop temp batch file
Joxos Aug 18, 2026
7f44c31
chore(dead-code): remove 40 unused business-layer methods and dead as…
Joxos Aug 18, 2026
56580ed
chore(dead-code): remove 41 more unused methods from rescan, restore …
Joxos Aug 18, 2026
1b702d6
docs: Phase 4/5/6 detailed plans with pilot reports (4A equivalence P…
Joxos Aug 18, 2026
285d74c
refactor(webui): rewrite styling utility-first on UnoCSS (v2)
Joxos Aug 19, 2026
7ea8531
docs: move UNOCSS plan docs into .qoder/doc (local notes)
Joxos Aug 19, 2026
5f96ece
fix: restore device-detection property, console tracebacks, setuptool…
Joxos Aug 19, 2026
867e2a7
fix: restore three more properties removed as dead code but still used
Joxos Aug 19, 2026
a053c4a
fix(webui): log box alignment, pre-push logs on SSE connect, running-…
Joxos Aug 19, 2026
3216b32
feat(fork): brand home page and README, fix dev-mode i18n, py3.12+ di…
Joxos Aug 19, 2026
63038e3
fix(desktop): reliable backend spawn and startup failure surfacing
Joxos Aug 19, 2026
e4f0a4f
fix(desktop): working window controls, tray menu, close quits cleanly
Joxos Aug 19, 2026
d2d939a
chore(desktop): sync Cargo.lock and regenerated capability schema
Joxos Aug 19, 2026
8c8115c
fix(desktop): grant app commands ACL for remote origin, wildcard ports
Joxos Aug 20, 2026
0ffd8b7
refactor(desktop): native window controls, drop the custom IPC chain
Joxos Aug 20, 2026
6248ba8
chore(desktop): update stale comment referencing removed window_close
Joxos Aug 20, 2026
2e1c203
feat(updater): release-based update channel (backend + frontend + sid…
Joxos Aug 20, 2026
260a34a
fix(desktop): file-stdio backend spawn, sidecar packaging, 0.1.0 rele…
Joxos Aug 20, 2026
728321c
fix(updater): installer survives job teardown (CREATE_BREAKAWAY_FROM_…
Joxos Aug 20, 2026
af4c3fd
fix(ci): green pipelines - scoped pyright gates, pnpm version, frozen…
Joxos Aug 20, 2026
ed41ae3
fix(release): deterministic asset copy - expression-based name, fail …
Joxos Aug 20, 2026
afcab3d
http readiness, install-dir data, drop backend glue (0.1.2)
Joxos Aug 21, 2026
4cdd481
fix(shell): mode decision independent of launch CWD
Joxos Aug 21, 2026
b5dee2d
fix(shell): allow job breakaway so the updater installer survives she…
Joxos Aug 21, 2026
7f44c54
release: date-based versions (260821), update release docs
Joxos Aug 21, 2026
1a71dd8
release: tag naming vYYYY.MM.DD (release title matches tag)
Joxos Aug 21, 2026
34a0c8c
fix(webui): select config saves lost - store string values with schem…
Joxos Aug 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
43 changes: 43 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: CI

on:
push:
branches: [master, "refactor/*"]
pull_request:

jobs:
test:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v6

- name: Set up Python 3.13
run: uv python install 3.13

- name: Sync dependencies
run: uv sync --frozen

# The lint/type gates are scoped to the directories that are currently
# clean; widen them as the legacy codebase goes green (module/config,
# module/core and friends still carry pre-existing findings - the cv2
# stubs reject scalar/tuple image ops all over module/core).
- name: Lint (scoped)
run: uv run ruff check alas.py module/logger.py module/scheduler module/tasks module/core module/base module/device module/map_detection tests dev_tools/verify_alas_structure.py

- name: Type check (scoped)
run: uv run pyright module/logger.py module/scheduler module/tasks tests

- name: Import smoke (full tree)
run: uv run python dev_tools/smoke_import_all.py

- name: Structure verification
run: |
uv run python dev_tools/verify_alas_structure.py
uv run python dev_tools/verify_task_registry.py
uv run python dev_tools/verify_task_record.py

- name: Tests
run: uv run pytest tests -v
73 changes: 73 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Release

# Build the desktop release asset and publish it as a GitHub Release.
# A release is a single NSIS installer (shell + bundled sidecar); the
# installed app's updater (module/webui/updater.py) lists releases,
# downloads the installer and runs it silently - the installer replaces
# the shell and sidecar files and restarts the app.

on:
push:
# Version tags (vYYYY.MM.DD, e.g. v2026.08.21); see deploy/packaging/README.md
tags: ["v*"]
workflow_dispatch:

permissions:
contents: write

jobs:
release:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v6

- name: Set up Python 3.13
run: uv python install 3.13

- name: Set up pnpm
uses: pnpm/action-setup@v4
with:
version: 11

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 24

# Main dependency group only; the dev group is not needed to package.
- name: Sync dependencies
run: uv sync --frozen --no-group dev

- name: Build frontend
working-directory: webapp-tauri
run: |
pnpm install --frozen-lockfile
pnpm build

- name: Build backend sidecar
run: |
uv tool install "pyinstaller>=6.19"
$env:PATH = "$env:USERPROFILE\.local\bin;$env:PATH"
pyinstaller --clean --noconfirm deploy/packaging/alas_backend.spec
# version.txt = the release tag; the updater reports it as the
# current version of the running build.
Set-Content -Path "dist/alas-backend/version.txt" -Value "$env:GITHUB_REF_NAME" -NoNewline

- name: Build NSIS installer
working-directory: webapp-tauri
env:
CI: "true"
run: |
pnpm tauri build
Copy-Item -ErrorAction Stop "src-tauri/target/release/bundle/nsis/*-setup.exe" "..\Alas_${{ github.ref_name }}_x64-setup.exe" -Force
Get-ChildItem "..\Alas_*" | ForEach-Object { $_.FullName }

- name: Publish release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
Alas_${{ github.ref_name }}_x64-setup.exe
31 changes: 28 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ dev_tools/debug_tools
/campaign/test/
/toolkit
*.lock
!uv.lock
# The Tauri shell's lockfile is source-controlled (reproducible builds)
!webapp-tauri/src-tauri/Cargo.lock
config/reloadflag
config/reloadalas
test.py
Expand Down Expand Up @@ -112,8 +115,8 @@ dist/
downloads/
eggs/
.eggs/
lib/
lib64/
/lib/
/lib64/
parts/
sdist/
var/
Expand All @@ -130,6 +133,8 @@ MANIFEST
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Hand-authored packaging spec is source-controlled
!deploy/packaging/*.spec

# Installer logs
pip-log.txt
Expand Down Expand Up @@ -254,4 +259,24 @@ console.bat
.vscode/*

# Pylance configuration file
pyrightconfig.json
pyrightconfig.json
# Qoder files
.qoder/

# Python virtual environments created by uv
.venv*

# Tauri shell
webapp-tauri/node_modules/
webapp-tauri/src-tauri/target/
webapp-tauri/dist/
webapp-tauri/.env.development

# Runtime adb copied from adbutils (dev environment)
/bin/adb/

# Rope refactoring config
.ropeproject/

# Local pnpm content-addressable store (sandbox/dev artifact)
.pnpm-store/
25 changes: 24 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@
# AzurLaneAutoScript(Joxos fork)

本仓库是 [LmeSzinc/AzurLaneAutoScript](https://github.com/LmeSzinc/AzurLaneAutoScript) 的 fork。

仓库地址:https://github.com/Joxos/AzurLaneAutoScript

## 改动聚焦

- **前端从零重写**:`webapp-tauri/` 用 Svelte 5 + Vite + UnoCSS 从零重写,与原版样式视觉等观;语义化设计令牌(design tokens),hover/active 态由 `color-mix` 派生,主题通过 `data-theme` 切换。
- **桌面应用**:Tauri 2 桌面壳(`webapp-tauri/src-tauri/`),自动拉起/回收后端进程、系统托盘、单实例、NSIS 安装包与更新签名基建。
- **WebUI 修复**:日志盒 CJK 等宽对齐、SSE 连接时预推送已有日志、运行中任务时间跨页面保留、日志按级别渲染等。
- **代码清理**:全量死代码审计与清理,并恢复被误删的运行时属性(`finish_time`、`is_accessible_2`、`is_nearby`、`may_mumu12_family` 等)。
- **工程化**:uv 依赖锁定、ruff/pyright 配置、Tauri 打包与 PyInstaller 后端侧车规范(`deploy/packaging/alas_backend.spec`,DRAFT)。

## 开发

- 后端环境:`uv sync`(Python ≥ 3.12)
- 前端:`cd webapp-tauri && pnpm install && pnpm dev`(vite 开发服务器把 API/SSE 代理到 `127.0.0.1:22267` 的后端)
- 桌面(开发模式):`cd webapp-tauri && pnpm tauri dev`(需先停止占用 22267 端口的后端实例)
- 桌面(打包):`cd webapp-tauri && pnpm tauri build`
- 测试:`cd webapp-tauri && pnpm test`

---

**| [English](README_en.md) | 简体中文 | [日本語](README_jp.md) |**

# AzurLaneAutoScript
Expand Down Expand Up @@ -177,4 +201,3 @@ Alas 仍在活跃开发中,我们会不定期发布未来的工作在 [Issues]
- QQ 八群:[938081688](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=3h8Gl323WkIt6yGx8Jx5Ht93puZxeA8T&authKey=xPT6kPm7W9jWO2TNzPdohJ27l1njxorwKmkDrbwwYGGA6Oni1xQSJhHsRIJ8w7GZ&noverify=0&group_code=938081688)
- QQ 一群:[1087735381](https://jq.qq.com/?_wv=1027&k=I4NSqX7g) (有开发意向请加一群,入群需要提供你的Github用户名)
- Bilibili 直播间:https://live.bilibili.com/22216705 ,偶尔直播写Alas,~~为了拯救Alas,Lme决定出道成为偶像~~

Loading