95 lines
5.5 KiB
Markdown
95 lines
5.5 KiB
Markdown
# gdown Porting TODO (Motrix 기준)
|
|
|
|
마지막 업데이트: 2026-02-24
|
|
|
|
## 규칙
|
|
- 모든 기능은 `/Users/A/Work/Motrix` 기준으로 비교/포팅
|
|
- 작업 후 반드시 이 파일과 `PORTING_PLAN.md` 동시 업데이트
|
|
|
|
## 현재 진행률
|
|
- 전체: 약 45%
|
|
- 엔진/RPC: 70%+
|
|
- UI 동등성: 55~60%
|
|
- 고급 기능: 40~50%
|
|
|
|
## In Progress
|
|
- [~] Native Messaging 기반 브라우저 연동 전환 (Step-by-step)
|
|
- [x] Step 1: Native Host 스캐폴드(프로토콜/설치 스크립트/템플릿 manifest)
|
|
- [x] Step 2: 확장에서 Native Host 1차 연결(우클릭 + 자동 경로 공통 addUri)
|
|
- [~] Step 3: gdown 앱 제어 채널 정식화(다운로드 추가/포커스)
|
|
- [ ] Step 4: 링크 자동 후킹 경로 Native Host로 전환
|
|
- [ ] Step 5: 장애 복구/재시도/로깅 정리
|
|
- [ ] Step 6: 설정 UI/배포 문서 정리
|
|
- [~] Task Detail 패널 1차 포팅
|
|
- [x] General
|
|
- [x] Activity
|
|
- [x] Files
|
|
- [x] Peers
|
|
- [x] Trackers
|
|
- [~] 하단 액션바/상세 인터랙션 Motrix 동등화
|
|
- [x] 하단 액션바(재개/중지/삭제/폴더/링크)
|
|
- [x] 탭 아이콘/간격/텍스트 밀도 디테일 튜닝
|
|
- [x] 피어 %/클라이언트 파싱 고도화
|
|
|
|
## Next
|
|
- [~] 설정 저장소(local) 연결
|
|
- [x] RPC Port / Secret / Binary Path 저장/복원
|
|
- [x] Download Dir / Split / Concurrent 저장/복원
|
|
- [x] 테마/고급 설정 키 저장/복원
|
|
- [x] aria2 global option 반영 커맨드
|
|
- [x] `changeGlobalOption` 대응
|
|
- [ ] 리스트 인터랙션 강화
|
|
- [ ] 행 선택 상태
|
|
- [ ] 다중 선택
|
|
- [ ] 선택 항목 일괄 액션
|
|
- [ ] Task Detail 패널 1차 포팅 마무리
|
|
- [ ] General
|
|
- [ ] Activity
|
|
- [ ] Files
|
|
- [ ] Peers
|
|
- [ ] Trackers
|
|
|
|
## Done
|
|
- [x] Native Host 설치/삭제/스모크 스크립트 추가 (`tools/native-host/install-macos.sh`, `uninstall-macos.sh`, `smoke.mjs`)
|
|
- [x] Native Messaging Host 1차 스캐폴드 추가 (`tools/native-host/*`)
|
|
- [x] 앱 종료 시 aria2 종료 루틴 보강 (강제 정리 + 메인 윈도우 close 이벤트 훅)
|
|
- [x] Browser extension 연동 UX: `gdown://focus` 딥링크 수신 시 앱 창 `show/unminimize/focus` 처리
|
|
- [x] Add Task 모달 고급 옵션(접기/펼치기) 구현: 사용자 에이전트/권한 부여/리퍼러/쿠키/프록시/다운로드로 이동
|
|
- [x] Add Task 고급 옵션 값의 aria2 전달 연결 (`header`, `all-proxy`, `user-agent`)
|
|
- [x] aria2 addUri/addTorrent 요청에 `options`/`position` 확장 지원
|
|
- [x] 작업 카드 `i` 버튼 우측 슬라이드 Task Info 패널 구현 (General/Activity/Trackers/Peers/Files)
|
|
- [x] Task Detail API 확장: 토렌트 생성일/코멘트/트래커 목록 필드 추가
|
|
- [x] 고급 설정 RPC 확장 연동 보조 기능 구현 (RPC URL/토큰 복사, RPC 연결 테스트)
|
|
- [x] 엔진 실행 정책 정식화: 외부 aria2 자동 재사용 제거, 포트 충돌 시 명시적 오류 처리
|
|
- [x] 작업 추가 임시 재시도 로직 제거, TLS 설정 기반 단일 경로로 정리
|
|
- [x] 설정 화면 저장/적용 시 하단 중앙 토스트 피드백 추가 및 애니메이션 적용
|
|
- [x] 다운로드 필터에 `다운로드 완료` 추가 및 완료 항목 자동 분류
|
|
- [x] 다운로드 중 항목 삭제 신뢰성 개선 (`forceRemove -> remove -> removeDownloadResult`)
|
|
- [x] 고급 설정 탭 1차 구현 (업데이트/프록시/트래커/RPC/포트/프로토콜/UA) + 런타임 즉시 반영
|
|
- [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 저장/복원
|