36 Commits

Author SHA1 Message Date
0957a6e183 feat: Complete frontend-backend integration with JWT authentication
Implemented full JWT-based authentication integration between frontend and backend:

Frontend Changes:
- Updated login.html to store JWT tokens in localStorage after successful login
- Updated setup.html to use correct API payload format (master_password)
- Modified app.js and queue.js to include Bearer tokens in all authenticated requests
- Updated makeAuthenticatedRequest() to add Authorization header with JWT token
- Enhanced checkAuthentication() to verify token and redirect on 401 responses
- Updated logout() to clear tokens from localStorage

API Endpoint Updates:
- Mapped queue API endpoints to new backend structure
- /api/queue/clear → /api/queue/completed (DELETE) for clearing completed
- /api/queue/remove → /api/queue/{item_id} (DELETE) for single removal
- /api/queue/retry payload changed to {item_ids: []} array format
- /api/download/pause|resume|cancel → /api/queue/pause|resume|stop

Testing:
- Created test_frontend_integration_smoke.py with JWT token validation tests
- Verified login returns access_token, token_type, and expires_at
- Tested Bearer token authentication on protected endpoints
- Smoke tests passing for authentication flow

Documentation:
- Updated infrastructure.md with JWT authentication implementation details
- Documented token storage, API endpoint changes, and response formats
- Marked Frontend Integration task as completed in instructions.md
- Added frontend integration testing section

WebSocket:
- Verified WebSocket integration with new backend (already functional)
- Dual event handlers support both old and new message types
- Room-based subscriptions working correctly

This completes Task 7: Frontend Integration from the development instructions.
2025-10-17 19:27:52 +02:00
8f7c489bd2 feat: Complete frontend integration with native WebSocket and FastAPI backend
- Created websocket_client.js: Native WebSocket wrapper with Socket.IO-compatible interface
  - Automatic reconnection with exponential backoff
  - Room-based subscriptions for targeted updates
  - Message queueing during disconnection

- Updated HTML templates (index.html, queue.html):
  - Replaced Socket.IO CDN with native websocket_client.js
  - No external dependencies needed

- Updated JavaScript files (app.js, queue.js):
  - Added room subscriptions on WebSocket connect (scan_progress, download_progress, downloads)
  - Added dual event handlers for backward compatibility
  - Support both old (scan_completed) and new (scan_complete) message types
  - Support both old (download_error) and new (download_failed) message types
  - Support both old (queue_updated) and new (queue_status) message types

- Registered anime router in fastapi_app.py:
  - Added anime_router import and registration
  - All API routers now properly included

- Documentation:
  - Created FRONTEND_INTEGRATION.md with comprehensive integration guide
  - Updated infrastructure.md with frontend integration section
  - Updated instructions.md to mark task as completed

- Testing:
  - Verified anime endpoint tests pass (pytest)
  - API endpoint mapping documented
  - WebSocket message format changes documented

Benefits:
  - Native WebSocket API (faster, smaller footprint)
  - No external CDN dependencies
  - Full backward compatibility with existing code
  - Proper integration with backend services
  - Real-time updates via room-based messaging
2025-10-17 12:12:47 +02:00
99e24a2fc3 feat: Integrate HTML templates with FastAPI
- Created template_helpers.py for centralized template rendering
- Added ux_features.css for enhanced UX styling
- Implemented JavaScript modules for:
  - Keyboard shortcuts (Ctrl+K, Ctrl+R navigation)
  - User preferences persistence
  - Undo/redo functionality (Ctrl+Z/Ctrl+Y)
  - Mobile responsive features
  - Touch gesture support
  - Accessibility features (ARIA, focus management)
  - Screen reader support
  - Color contrast compliance (WCAG)
  - Multi-screen support
- Updated page_controller.py and error_controller.py to use template helpers
- Created comprehensive template integration tests
- All templates verified: index.html, login.html, setup.html, queue.html, error.html
- Maintained responsive layout and theme switching
- Updated instructions.md (removed completed task)
- Updated infrastructure.md with template integration details
2025-10-17 12:01:22 +02:00
2867ebae09 health check 2025-10-12 23:06:29 +02:00
7481a33c15 instruction2 2025-10-12 22:39:51 +02:00
7a71715183 backup 2025-10-12 18:05:31 +02:00
57d49bcf78 Fix setup to login redirect issue
- Fix setup.html to use redirect_url from API response instead of hardcoded '/'
- Add database creation (aniworld.db, cache.db) during setup process
- Setup now properly creates all required files for validation
- After setup completion, users are correctly redirected to /login
- Tested: setup API returns correct redirect_url, database files created, redirect works
2025-10-06 13:32:35 +02:00
90dc5f11d2 Fix middleware file corruption issues and enable FastAPI server startup 2025-10-06 10:20:19 +02:00
00a68deb7b Fix SeriesApp: Add missing class variable and clean up unused imports 2025-10-06 09:17:35 +02:00
888acfd33d Remove unused Flask imports and dependencies - Cleaned up old Flask middleware files and updated requirements.txt with FastAPI dependencies 2025-10-06 09:08:49 +02:00
2199d256b6 Update logging middleware for FastAPI - Enhanced logging with request tracking, performance monitoring, and security logging 2025-10-06 08:45:07 +02:00
721326ecaf Migrate request/response interceptors to FastAPI middleware - Created FastAPI-compatible auth and validation middleware 2025-10-06 08:42:42 +02:00
e0c80c178d Complete responsive design testing - CSS patterns verified and working 2025-10-06 08:39:49 +02:00
1fe8482349 Task 4: Added missing API endpoints for JavaScript compatibility - Added /api/add_series and /api/download endpoints to FastAPI app to match JavaScript expectations 2025-10-06 08:30:33 +02:00
8121031969 Task 1: Converted form and file upload handling in config.py to FastAPI - Updated upload endpoint to use UploadFile instead of Flask request.files 2025-10-06 08:27:31 +02:00
e3b752a2a7 Add /api/auth/status endpoint for JavaScript compatibility 2025-10-05 23:42:59 +02:00
2c8c9a788c Update HTML templates and JavaScript for FastAPI compatibility
- Replace Flask url_for() with direct /static/ paths in all HTML templates
- Update CSS and JavaScript file references to use FastAPI static mount
- Convert Flask-specific template patterns to FastAPI-compatible syntax
- Update JavaScript API endpoints to match new FastAPI route structure:
  * /api/series -> /api/v1/anime
  * /api/search -> /api/v1/anime/search
  * /api/rescan -> /api/v1/anime/rescan
- Add web interface routes for serving HTML templates
- Add template response endpoints for /app, /login, /setup, /queue
- Mark HTML template and JavaScript migration tasks as completed
- Maintain Jinja2 template compatibility with FastAPI
2025-10-05 23:14:31 +02:00
6e136e832b Add comprehensive Pydantic models and configure templates/static files
- Create detailed Pydantic models for anime requests and responses
- Add AnimeCreateRequest, AnimeUpdateRequest, PaginatedAnimeResponse, etc.
- Update route signatures to use proper response models
- Convert return values to use Pydantic models instead of raw dicts
- Configure Jinja2Templates in FastAPI application
- Mount StaticFiles for CSS, JS, images at /static endpoint
- Update anime search and list endpoints to use typed responses
- Mark completed Pydantic models and template configuration tasks in web_todo.md
2025-10-05 23:10:11 +02:00
e15c0a21e0 Convert Flask routes to FastAPI in anime controller
- Convert Flask Blueprint to FastAPI router
- Replace @app.route() with FastAPI route decorators (@router.get, @router.post)
- Update route parameter syntax from <int:id> to {id: int} format
- Convert Flask request object usage to FastAPI Query/Depends parameters
- Update response handling to return dicts instead of Flask jsonify()
- Integrate SeriesApp as business logic layer for anime operations
- Add anime list, search, and rescan endpoints using SeriesApp
- Include anime router in main FastAPI application
- Mark route conversion tasks as completed in web_todo.md
2025-10-05 23:05:37 +02:00
969533f1de logfile 2025-10-05 22:29:22 +02:00
85f2d2c6f7 cleanup 2 2025-10-05 22:22:04 +02:00
d30aa7cfea latest api use 2025-10-05 21:42:08 +02:00
64434ccd44 cleanup contollers 2025-10-05 11:39:33 +02:00
94e6b77456 backup 2025-10-04 20:24:00 +02:00
e477780ed6 refactoring 2025-09-29 21:18:42 +02:00
1719a36f57 emoved empty folder and files 2025-09-29 16:14:52 +02:00
083eefe697 some routing fixes 2025-09-29 15:53:18 +02:00
54ca564db8 fix routing issue 2025-09-29 15:14:06 +02:00
9497633e78 backup 2025-09-29 14:53:25 +02:00
3ab4467423 fix duplication run 2025-09-29 14:19:29 +02:00
423b77033c moved routing 2025-09-29 14:13:15 +02:00
b2d77a099b backup 2025-09-29 11:51:58 +02:00
f9102d7bcd fix loading icon 2025-09-29 11:08:49 +02:00
7286b9b3e8 added some tests 2025-09-29 10:20:20 +02:00
6b300dc2f5 better format 2025-09-29 09:36:37 +02:00
78fc6068fb new folder structure 2025-09-29 09:17:13 +02:00