Skip to content

Conversation

@ch4d1
Copy link

@ch4d1 ch4d1 commented Aug 29, 2025

🚀 New Features

Regex Debugger

  • Test and debug regex patterns directly in the UI
  • Live preview of regex matches on file names
  • Helps users create and verify file matching patterns

Plugin-based FTP Viewer System

  • Pluggable Architecture: Plugins can register custom FTP viewer components
  • Pattern-based Routing: Components are selected based on path patterns and priority
  • Dynamic Loading: Components are loaded and refreshed automatically via WebSocket
  • Fallback Support: Default FTP viewer remains available for unsupported paths

AniList Seasons Integration

  • Anime Metadata: Fetches comprehensive anime information from AniList API
  • Version Grouping: Intelligently groups different versions of the same anime
  • Advanced Search: Search by title, studio, genre, and other metadata
  • Multiple Sort Options: Sort by title, year, score, popularity, episodes
  • Rate Limiting: Implements proper API rate limiting and caching
  • Proactive Caching: Pre-loads metadata for better performance

Enhanced UI Components

  • AnimeSeasonViewer: Specialized component for anime directory viewing
  • LocalStorageViewer: New component for local directory browsing
  • Improved FtpViewer: Enhanced with plugin integration and better UX
  • Auto-sync Timer: Visual countdown display for automatic sync intervals
  • Added responsive viewport meta tag
  • Better mobile interface usability
  • Moved Save/Sync Button to bottombar closes Umplatzierung von Sync- und Save-Buttons #6

Infrastructure & PerformanceFixes Issue #12

Modern Docker Setup

  • Updated to Node.js 22 Alpine (from issue request for 18-alpine)
  • Reduced image size and improved performance
  • Better build process and caching

Complete CI/CD Overhaul

  • NEW: Comprehensive nightly build workflow with multi-arch Docker support
  • Native Builds: Linux (x64/ARM64), Windows (x64), macOS (Intel/Apple Silicon)
  • Docker Strategy: nightly tags for development, latest for releases
  • Security: Integrated vulnerability scanning and dependency updates
  • Automation: Dependabot configuration for automated dependency management

Enhanced Configuration

  • Better error handling for config file creation
  • Improved config validation and loading

Closes: #12

Technical improvements that may help with: #9 (better state management, but editing during sync still needs dedicated work)

ch4d1 and others added 25 commits August 29, 2025 01:44
- Replace deprecated .eslintrc with modern eslint.config.js
- Update configuration for TypeScript and Vue support
- Improve code quality rules and Prettier integration
- Update Node.js to version 22 across all packages
- Migrate to modern @rollup/plugin-terser from deprecated rollup-plugin-terser
- Update @vitejs/plugin-vue to v6.0.1 for Vite 7 compatibility
- Update Fastify to v4.26.2 and related dependencies
- Modernize build tools and improve compatibility
- Add Pinia store for improved state management
- Create composables for Socket.io and communication logic
- Add proper TypeScript type definitions
- Implement modern Vue 3 patterns and best practices
- Enable strict mode for better type safety
- Add comprehensive compiler options
- Include modern TypeScript settings
- Add Vuetify styles configuration
- Fix plugin type incompatibilities in Vite configuration
- Add proper type annotations for Vue refs and reactive data
- Remove unused ESLint disable directives
- Fix unused parameter warnings with underscore prefix
- Enhance sync functionality with better pause/resume controls
- Improve FTP client connection management and speed limiting
- Add proper TypeScript error handling patterns
- Optimize plugin system and configuration management
- Remove legacy code and improve code organization
- Replace var declarations with const for better scoping
- Follow modern JavaScript coding standards
- Improve code consistency across plugin files
- Upgrade from Node.js 18 to Node.js 22 in development container
- Use JSON array format for CMD instruction (Docker best practice)
- Fix environment variable syntax for better compatibility
- Add comprehensive environment file patterns
- Include OS-specific files (macOS, Windows, Linux)
- Add build tool caches and temporary files
- Include log files and runtime data patterns
- Improve coverage for modern development workflows
- Update yarn.lock to reflect new dependency versions
- Ensure consistent package resolution across environments
- Add better error handling for build process
- Improve console output and feedback
Bumps the npm_and_yarn group with 2 updates in the / directory: [esbuild](https://github.com/evanw/esbuild) and [tar-fs](https://github.com/mafintosh/tar-fs).
Bumps the npm_and_yarn group with 1 update in the /server directory: [esbuild](https://github.com/evanw/esbuild).

Updates `esbuild` from 0.24.2 to 0.25.0
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG-2024.md)
- [Commits](evanw/esbuild@v0.24.2...v0.25.0)

Updates `tar-fs` from 2.1.1 to 2.1.3
- [Commits](mafintosh/tar-fs@v2.1.1...v2.1.3)

Updates `esbuild` from 0.24.2 to 0.25.0
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG-2024.md)
- [Commits](evanw/esbuild@v0.24.2...v0.25.0)

Updates `esbuild` from 0.24.2 to 0.25.9
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG-2024.md)
- [Commits](evanw/esbuild@v0.24.2...v0.25.0)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-version: 0.25.0
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: tar-fs
  dependency-version: 2.1.3
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: esbuild
  dependency-version: 0.25.0
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: esbuild
  dependency-version: 0.25.9
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <[email protected]>
- Implemented build-sea.js to automate the creation of a single executable application for Linux, Windows, and macOS.
- Added functionality to generate a SEA blob using a specified configuration.
- Included error handling for missing Node.js executables and provided user guidance for manual downloads.
- Created sea-config.json to define the main entry point, output file, and asset management for the SEA build process.
- Switch Windows build from cmd to PowerShell for better error handling
- Remove non-working Windows ARM64 build target from package configuration
- Enhance Windows executable detection and error reporting
- Add comprehensive artifact validation to all native builds
- Improve Docker build pipeline with optimized configuration
- Update Docker image tagging to include v prefix for consistency with git tags
- Enhanced release notes formatting with bold filenames for better visibility
- Configure proper tagging strategy: releases get 'latest', main builds get 'nightly'
- Add extensive debugging capabilities and build status reporting
- Streamline Docker section formatting in release documentation
Copilot AI review requested due to automatic review settings August 29, 2025 00:27

This comment was marked as outdated.

@ch4d1 ch4d1 requested a review from Copilot August 29, 2025 01:06

This comment was marked as outdated.

@ch4d1 ch4d1 requested a review from Copilot August 29, 2025 14:12
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This comprehensive PR modernizes WeebSync from a basic FTP sync tool to a feature-rich automation platform with enhanced user experience, Docker support, and improved CI/CD infrastructure. The upgrade includes new debugging capabilities, speed controls, pause/resume functionality, and modern build tooling while maintaining backward compatibility.

Key Changes

  • New features: Regex debugger, download speed limiting, sync pause/resume controls, and auto-sync timer display
  • Modern infrastructure: Updated to Node.js 22, comprehensive CI/CD with multi-platform builds, and production-ready Docker support
  • Enhanced UI/UX: Mobile-responsive design, modern Vue 3 composition API, and improved control interface

Reviewed Changes

Copilot reviewed 56 out of 62 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
server/tsconfig.json Updated TypeScript configuration to ES2022 with stricter type checking
server/src/validation.ts New comprehensive input validation system using Joi schemas
server/src/sync.ts Enhanced sync engine with pause/resume, speed limiting, and improved error handling
server/src/ftp.ts Modernized FTP client with connection pooling and controlled download speeds
client/src/App.vue Redesigned UI with sync control bar and integrated regex debugger
Dockerfile Production-optimized multi-stage Docker build with security improvements
.github/workflows/ Complete CI/CD overhaul with multi-platform builds and security scanning

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@ch4d1 ch4d1 marked this pull request as draft August 29, 2025 19:01
…ntegration

- Implement plugin system for custom FTP view components
- Add AnimeSeasonViewer for anime directory handling
- Extend FTP viewer with search, filtering, and metadata display
- Add LocalStorageViewer for destination folder selection
- Include comprehensive anime version grouping and metadata
- Update UI with responsive layout and improved user experience
- Add rate limiting and caching for AniList API integration
- Streamline sync controls and remove pause functionality
@ch4d1 ch4d1 marked this pull request as ready for review September 1, 2025 18:43
@ch4d1 ch4d1 changed the title feat: Add Regex Debugger, Download Speed Control & Sync Pause/Resume feat: Add Regex Debugger and Anilist Plugin Sep 1, 2025
…a loading

- Add TreeChild to AnimeItem conversion in FtpViewer to resolve type mismatch
- Fix 'Object is possibly undefined' errors in AnimeSeasonViewer with null checks
- Implement proper metadata update handling between AnimeSeasonViewer and FtpViewer
- Restore metadata loading functionality in season directories after type conversion
- Add reactive convertedAnimeItems computed property for seamless type mapping
@ch4d1 ch4d1 force-pushed the master branch 2 times, most recently from 42c7896 to 7be809b Compare September 2, 2025 00:50
…ewer

- Fix TreeChild versionDescription interface to support structured language data
- Update FtpViewer conversion to prioritize versionDescription over versionInfo
- Remove debug logging and temporary socket.io-client dependency
- Fix TypeScript interfaces to support language/type structure correctly
- Language filters now show "German", "English", "Japanese" instead of generic tags
…status display

- Replace star ratings with percentage-based smiley icons (happy/neutral/sad)
- Add fallback to meanScore when averageScore is unavailable
- Implement dual status chips on anime card covers (general status left, next episode right)
- Enhance episode display with "current/?" format for unknown totals
- Update AniList plugin to fetch meanScore and nextAiringEpisode data
- Improve version select modal with inline episode and airing status display
- Add proper spacing and tooltips for long titles
- Show version count chips for all anime including single versions
- Fix TypeScript type compatibility issues
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Umplatzierung von Sync- und Save-Buttons

1 participant