feat: align motrix-style download UI/actions and stabilize aria2 ops
This commit is contained in:
@@ -25,17 +25,24 @@
|
||||
- [x] Tauri + Vue 프로젝트 초기화
|
||||
- [x] Rust command: `engine_start`, `engine_stop`, `engine_status`
|
||||
- [x] Vue 대시보드에서 엔진 제어 UI 연결
|
||||
- [ ] aria2 번들 바이너리 경로 자동 탐지 (`resources/engine/*`)
|
||||
- [ ] 에러 메시지 분류(파일 없음, 권한 오류, 포트 충돌)
|
||||
- [x] aria2 바이너리 경로 자동 탐지 커맨드 추가 (`detect_aria2_binary`)
|
||||
- [x] 시작 실패 에러 분류(파일 없음, 권한 오류, 즉시 종료)
|
||||
- [x] aria2 번들 바이너리 리소스 구조 확정 (`src-tauri/resources/engine/*`)
|
||||
- [~] 실배포 번들 검증 (플랫폼별 smoke test 진행 중)
|
||||
|
||||
### Phase 2: 다운로드 RPC/큐
|
||||
- [ ] aria2 JSON-RPC client 계층 구현 (Rust 또는 Vue 중 1안 선택)
|
||||
- [ ] 작업 추가/중지/재시도/삭제
|
||||
- [ ] 작업 목록/속도/진행률 실시간 갱신
|
||||
- [ ] Magnet/Torrent 입력 파이프라인
|
||||
- [x] aria2 JSON-RPC client 계층 구현 (Rust command 래퍼)
|
||||
- [x] 작업 추가 (URI/Torrent)
|
||||
- [x] 작업 목록/속도/진행률 갱신
|
||||
- [x] 작업 제어(개별 pause/resume/remove, 전체 pause/resume)
|
||||
- [~] Magnet/Torrent 입력 파이프라인 (입력/추가는 완료, 메타데이터 UX 개선 필요)
|
||||
- [ ] 작업 상세 패널(파일/피어/트래커/활동) 구현
|
||||
- [ ] 선택 기반 배치 액션(다중 선택, 일괄 정지/재개/삭제)
|
||||
|
||||
### Phase 3: 설정/세션/마이그레이션
|
||||
- [ ] 설정 저장소 도입 (다운로드 폴더, 동시작업 수, 속도 제한 등)
|
||||
- [~] 설정 저장소 도입 (다운로드 폴더, 동시작업 수, 속도 제한 등)
|
||||
- [x] 기본 실행 설정(localStorage) 저장/복원
|
||||
- [ ] aria2 글로벌 옵션과 완전 동기화
|
||||
- [ ] 세션 파일 관리(종료 시 저장, 시작 시 복구)
|
||||
- [ ] Motrix 설정 키 매핑표 작성 및 자동 마이그레이션 도구
|
||||
|
||||
@@ -55,13 +62,32 @@
|
||||
- Electron API 차이: 기능별 대체표를 먼저 만들고 Tauri plugin으로 대응
|
||||
- 설정 호환성: 기존 키를 그대로 유지하지 않고 매핑 테이블로 이관
|
||||
|
||||
## 6. 현재 구현 상태 (2026-02-23)
|
||||
## 6. 현재 구현 상태 (2026-02-24)
|
||||
- 완료:
|
||||
- `scripts/version-bump.sh`: 빌드 전 patch 버전 자동 증가 훅 추가
|
||||
- `scripts/sync-aria2-from-motrix.sh`: Motrix extra 엔진 리소스 동기화
|
||||
- `src-tauri/resources/engine`: Motrix 기반 번들 aria2 바이너리 포함
|
||||
- `src-tauri/src/engine.rs`: RPC 포트 점유 시 기존 aria2 인스턴스 재사용
|
||||
- `@tauri-apps/plugin-dialog` 연동: 기본 저장 폴더 네이티브 선택 구현
|
||||
- `src/App.vue`: 엔진 제어를 수동 버튼 방식에서 자동 관리(Motrix 스타일)로 전환
|
||||
- `src/App.vue` + `src/style.css`: 메인 다운로드 화면의 엔진 하단 패널 제거(자동 엔진 관리 기반으로 UI 단순화)
|
||||
- `src/App.vue`: 저장 폴더 선택 버튼 상호작용 안정화(label 중첩 제거)
|
||||
- `src/style.css`: 설정 드롭다운(select) 플랫 스타일 적용
|
||||
- `src-tauri/capabilities/default.json`: dialog open 권한 추가
|
||||
- `src-tauri/tauri.conf.json`: 초기 창 크기 확대 및 `main` 라벨 명시
|
||||
- `src-tauri/src/engine.rs`: 삭제 동작 안정화(`aria2.remove` 실패 시 `aria2.removeDownloadResult` 폴백, 이미 삭제된 GID idempotent 처리)
|
||||
- `src/App.vue` + `src/style.css`: 다운로드 리스트를 테이블에서 Motrix형 카드 + 아이콘 액션 버튼 UI로 재구성
|
||||
- `src/App.vue` + `src/style.css`: 다운로드 화면 레이아웃을 스크린샷 기준(라이트 톤, 좌측 작업 패널, 상단 아이콘 툴바)으로 재정렬
|
||||
- `src-tauri/src/engine.rs` + `src/lib/engineApi.ts`: 파일관리자에서 경로 열기 커맨드(`open_path_in_file_manager`) 추가
|
||||
- `src-tauri/src/engine.rs`: task summary에 `uri` 노출 추가(링크 복사용)
|
||||
- `src/App.vue`: Motrix `TaskActions`/`TaskItemActions` 기능 매핑에 맞춘 상단/항목 아이콘 동작 연결
|
||||
- `src-tauri/src/engine.rs`: aria2 프로세스 시작/중지/상태 조회
|
||||
- `src-tauri/src/engine.rs`: 바이너리 자동 탐지 + 에러 분류 + 작업 제어 RPC 커맨드
|
||||
- `src-tauri/src/lib.rs`: Tauri invoke handler 연결
|
||||
- `src/lib/engineApi.ts`: 프런트 command 호출 래퍼
|
||||
- `src/App.vue`: 엔진 제어 UI
|
||||
- `src/lib/engineApi.ts`: 프런트 command 호출 래퍼(엔진 + 작업 제어)
|
||||
- `src/App.vue`: Motrix 스타일 사이드바/목록/추가 모달/액션 버튼
|
||||
- `src/style.css`: 작업 액션 UI 스타일 보강
|
||||
- 다음 우선순위:
|
||||
1. aria2 바이너리 경로 자동 탐지 + 리소스 번들 구조 확정
|
||||
2. JSON-RPC 기반 다운로드 목록 API 구현
|
||||
3. 설정 저장소 도입
|
||||
1. Motrix `Task Detail` 동등 기능(파일/피어/트래커/활동) 구현
|
||||
2. 설정 저장소 도입(local persist + aria2 global option 적용)
|
||||
3. 선택 기반 배치 작업 액션 및 리스트 인터랙션 개선
|
||||
|
||||
61
docs/TODO.md
Normal file
61
docs/TODO.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# gdown Porting TODO (Motrix 기준)
|
||||
|
||||
마지막 업데이트: 2026-02-24
|
||||
|
||||
## 규칙
|
||||
- 모든 기능은 `/Users/A/Work/Motrix` 기준으로 비교/포팅
|
||||
- 작업 후 반드시 이 파일과 `PORTING_PLAN.md` 동시 업데이트
|
||||
|
||||
## 현재 진행률
|
||||
- 전체: 약 30%
|
||||
- 엔진/RPC: 60%+
|
||||
- UI 동등성: 35~40%
|
||||
- 고급 기능: 10~20%
|
||||
|
||||
## In Progress
|
||||
- [ ] Task Detail 패널 1차 포팅
|
||||
- [ ] General
|
||||
- [ ] Activity
|
||||
- [ ] Files
|
||||
- [ ] Peers
|
||||
- [ ] Trackers
|
||||
|
||||
## Next
|
||||
- [~] 설정 저장소(local) 연결
|
||||
- [x] RPC Port / Secret / Binary Path 저장/복원
|
||||
- [x] Download Dir / Split / Concurrent 저장/복원
|
||||
- [ ] 테마/고급 설정 키 저장/복원
|
||||
- [ ] aria2 global option 반영 커맨드
|
||||
- [ ] `changeGlobalOption` 대응
|
||||
- [ ] 리스트 인터랙션 강화
|
||||
- [ ] 행 선택 상태
|
||||
- [ ] 다중 선택
|
||||
- [ ] 선택 항목 일괄 액션
|
||||
|
||||
## Done
|
||||
- [x] Motrix `TaskActions.vue` / `TaskItemActions.vue` 분석 기반 아이콘 기능 매핑 적용
|
||||
- [x] 항목 아이콘 기능 확장: 폴더 열기(네이티브 파일관리자), 링크 복사(URI 우선), 정보 표시
|
||||
- [x] 다운로드 화면을 스크린샷 기준으로 재정렬(라이트 톤, 좌측 작업 패널, 상단 아이콘 툴바)
|
||||
- [x] 다운로드 리스트를 Motrix 톤의 카드형 레이아웃 + 아이콘 액션 버튼(재개/일시정지/삭제)으로 리디자인
|
||||
- [x] 삭제 시 aria2 상태 경합 보완: `remove` 실패 시 `removeDownloadResult` 폴백 + 이미 삭제된 GID는 성공 처리
|
||||
- [x] dialog 권한(`dialog:allow-open`) 추가로 저장 폴더 선택 버튼 무반응 이슈 보완
|
||||
- [x] Tauri 초기 창 크기 확대(1280x860, 최소 1080x720)
|
||||
- [x] 저장 폴더 탐색 버튼 클릭 전달 구조 수정 (label 중첩 제거 + 클릭 이벤트 안정화)
|
||||
- [x] 설정 페이지 드롭다운(select) 플랫 스타일 적용
|
||||
- [x] 메인 다운로드 하단 엔진 패널 제거 (자동 엔진 관리 UX에 맞게 단일 리스트 집중형 레이아웃 적용)
|
||||
- [x] 기본 폴더 네이티브 선택 다이얼로그 구현 (`@tauri-apps/plugin-dialog`)
|
||||
- [x] 설정 페이지 여백/레이아웃을 Motrix 스크린샷 톤으로 재조정
|
||||
- [x] 설정 페이지 UI를 Motrix 스타일의 컴팩트 밀도 중심으로 재조정
|
||||
- [x] RPC 포트 점유 시 기존 aria2 엔진 재사용 로직 추가
|
||||
- [x] Motrix extra 기반 aria2 번들 리소스 도입 (`src-tauri/resources/engine`)
|
||||
- [x] Motrix -> gdown 엔진 리소스 동기화 스크립트 추가 (`npm run sync:aria2`)
|
||||
- [x] 엔진 수동 버튼 제거, Motrix 스타일 자동 엔진 관리로 전환
|
||||
- [x] 빌드 시 패치 버전 자동 증가 훅 추가 (`scripts/version-bump.sh`, `tauri:build`)
|
||||
- [x] 엔진 시작/중지/상태 조회
|
||||
- [x] URI/Torrent 추가
|
||||
- [x] 토렌트 드래그&드롭
|
||||
- [x] 작업 목록(Active/Waiting/Stopped) 표시
|
||||
- [x] 개별 작업 pause/resume/remove
|
||||
- [x] 전체 pause/resume
|
||||
- [x] aria2 바이너리 자동 탐지 + 시작 오류 분류
|
||||
- [x] 기본 실행 설정 localStorage 저장/복원
|
||||
Reference in New Issue
Block a user