diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d1c31e1..8919d86 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -87,6 +87,9 @@ jobs: with: python-version: '3.12' + - name: Tokens visuais (web e Windows) gerados de tools/tokens.json + run: python3 tools/generate-tokens.py --check + - name: Dependências do E2E (pyftpdlib, 7-Zip com RAR) run: | pip install pyftpdlib diff --git a/CHANGELOG.md b/CHANGELOG.md index 78ff738..0a85da6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,21 @@ All notable changes to Ferry are documented here. The format follows [Keep a Cha ## [Unreleased] +### Changed + +- Redesigned interface (web and Windows), keeping the dark identity: the **Queue** is now grouped into *Needs you* (error, PKG uploaded, check on PS5, pending password), *Sending*, *Queued* and *Finished* (collapsed by default, with **Clear finished** in the group header). Idle cards are compact and only show numbers that mean something; the active card keeps %, MB/s and time remaining. +- Queue header with overall progress and the estimated finish time (only when every item has a known size). +- PS5 status moved from the sidebar footer to a badge at the top of every page. +- **Settings** split into sections with an index that follows scrolling (PS5, Destinations, Transfer, Passwords, Notifications, General; on Windows also Power). A single scroll with the scrollbar at the window edge; the passwords box grows with its content instead of scrolling on its own in the middle of the screen. +- Mobile: brand and tabs on one line, compact cards and a fixed **Add files** button at the bottom. +- Colors and sizes come from one file (`tools/tokens.json`) for web and Windows; CI flags drift. + +### Fixed + +- Web: repeated password requests for the same game (e.g. after a wrong password) stacked identical notices; the existing notice is now refreshed. Error and PKG notices get **View**, which jumps to the card. +- Web: long Windows paths were shown with the `\\?\` prefix; they are now shown without it (the saved value is unchanged). +- Web: the queue rewrote every card on each update; now only changed cards are (≈6× faster with 200 games). + ## [1.6.2-beta.1] - 2026-10-07 ### Added diff --git a/CHANGELOG.pt-BR.md b/CHANGELOG.pt-BR.md index e2b5aec..1d62a42 100644 --- a/CHANGELOG.pt-BR.md +++ b/CHANGELOG.pt-BR.md @@ -11,6 +11,21 @@ Todas as mudanças relevantes do Ferry ficam aqui. O formato segue o [Keep a Cha ## [Não lançado] +### Alterado + +- Interface redesenhada (web e Windows), mantendo a identidade escura: a **Fila** agora é agrupada em *Precisa de você* (erro, PKG enviado, verifique no PS5, senha pendente), *Enviando*, *Na fila* e *Concluídos* (recolhido por padrão, com **Limpar concluídos** no cabeçalho do grupo). Cartões parados ficam compactos e só mostram números que dizem algo; o ativo mantém %, MB/s e tempo restante. +- Cabeçalho da Fila com o progresso total e o horário previsto de término (só quando todos os itens têm tamanho conhecido). +- Status do PS5 saiu do rodapé da barra lateral e virou um selo no topo de todas as páginas. +- **Configurações** em seções com índice que acompanha a rolagem (PS5, Destinos, Envio, Senhas, Avisos, Geral; no Windows também Energia). Uma rolagem só, com a barra na borda da janela; a caixa de senhas cresce com o conteúdo em vez de rolar sozinha no meio da tela. +- Celular: marca e abas numa linha, cartões compactos e botão **Adicionar arquivos** fixo no rodapé. +- Cores e medidas vêm de um arquivo só (`tools/tokens.json`) para web e Windows; a CI acusa divergência. + +### Corrigido + +- Web: pedidos repetidos de senha para o mesmo jogo (ex.: depois de uma senha incorreta) empilhavam avisos iguais; agora o aviso existente é renovado. Avisos de erro e de PKG ganham **Ver**, que leva ao cartão. +- Web: caminhos longos do Windows apareciam com o prefixo `\\?\`; agora aparecem sem ele (o valor salvo não muda). +- Web: a fila reescrevia todos os cartões a cada atualização; agora só os que mudaram (≈6× mais rápido com 200 jogos). + ## [1.6.2-beta.1] - 2026-10-07 ### Adicionado diff --git a/README.es.md b/README.es.md index e0ef743..cf736b5 100644 --- a/README.es.md +++ b/README.es.md @@ -62,7 +62,7 @@ Abre `http://:8021`. La primera vez, la página pide crear el u ## Cómo usar 1. Ejecuta un payload de FTP en la PS5 (**ftpsrv**, puerto 2121, o el FTP de **etaHEN**, puerto 1337). -2. Abre la app → **Configurações** (Ajustes): IP de la PS5, puerto, destino (**M.2** `/mnt/ext1/homebrew` o **SSD interno** `/data/homebrew`). Todo se guarda solo. El pie de la barra lateral muestra si la PS5 está en línea. +2. Abre la app → **Configurações** (Ajustes): IP de la PS5, puerto, destino (**M.2** `/mnt/ext1/homebrew` o **SSD interno** `/data/homebrew`). Todo se guarda solo. El sello en la parte superior de cada página muestra si la PS5 está en línea. 3. En **Fila** (Cola), haz clic en el centro de la pantalla (abre el selector de archivos) o arrastra los archivos a la ventana. Selecciona **todas las partes** a la vez. 4. Listo: cuando estén todas las partes, el juego se extrae y se envía a `/`. diff --git a/README.md b/README.md index 42f56a8..70ba31f 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ Open `http://:8021`. On first open the page asks you to create a user ## How to use 1. Run an FTP payload on the PS5 (**ftpsrv**, port 2121, or **etaHEN**'s FTP, port 1337). -2. Open **Settings**: PS5 IP, port, destination (**M.2** `/mnt/ext1/homebrew` or **internal SSD** `/data/homebrew`). Everything saves automatically. The bottom of the sidebar shows whether the PS5 is online. +2. Open **Settings**: PS5 IP, port, destination (**M.2** `/mnt/ext1/homebrew` or **internal SSD** `/data/homebrew`). Everything saves automatically. The badge at the top of every page shows whether the PS5 is online. 3. In **Queue**, click the middle of the screen (opens the file picker) or drag the files onto the window. Select **all parts** at once. 4. Done: once every part is present, the game is extracted and sent to `/`. diff --git a/README.pt-BR.md b/README.pt-BR.md index 5552da7..abb7ead 100644 --- a/README.pt-BR.md +++ b/README.pt-BR.md @@ -62,7 +62,7 @@ Abra `http://:8021`. Na primeira abertura a página pede para cr ## Como usar 1. Rode o payload de FTP no PS5 (**ftpsrv**, porta 2121, ou o FTP do **etaHEN**, porta 1337). -2. Abra o app → **Configurações**: IP do PS5, porta, destino (**M.2** `/mnt/ext1/homebrew` ou **SSD interno** `/data/homebrew`). Tudo salva sozinho. O pé da barra lateral mostra se o PS5 está online. +2. Abra o app → **Configurações**: IP do PS5, porta, destino (**M.2** `/mnt/ext1/homebrew` ou **SSD interno** `/data/homebrew`). Tudo salva sozinho. O selo no topo de todas as páginas mostra se o PS5 está online. 3. Na **Fila**, clique no centro da tela (abre o seletor do Windows) ou arraste os arquivos para a janela. Selecione **todas as partes** de uma vez. 4. Pronto: quando todas as partes estiverem presentes, o jogo é extraído e enviado para `/`. diff --git a/app/App.xaml b/app/App.xaml index 3cd719a..86cea27 100644 --- a/app/App.xaml +++ b/app/App.xaml @@ -1,29 +1,50 @@ - #6F97FF + + #0A0D12 + #0D1117 + #0F141B + #121821 + #1B222D + #29323F #E9EDF3 #A9B3C2 + #8490A2 + #4A5363 + #6F97FF + #9DB8FF #4ADE80 #FF7A7A #F2B84B - - - - - + + + + + + - + + - + + 34 + 22 + 26 + 28 + 13 + 6 + #6F97FF @@ -47,6 +68,8 @@ pack://application:,,,/Ferry;component/fonts/#Geist Segoe Fluent Icons, Segoe MDL2 Assets + + + + + + + + + + + - + @@ -140,13 +228,16 @@ - + + + - +