Sanitize codebase, reorganize docs, and add missing deploy files
Remove dead code identified in docs/SANITIZATION-REVIEW.md:
- app/blueprints/content_old.py and app/blueprints/playlist.py
- app/models/group.py, app/utils/nginx_config_reader.py
- orphaned templates (content_list, edit_content, upload_content,
player_page) and the related group/Template references
Result: 6 blueprints, 82 routes, no dead modules or orphan templates.
Add files that deploy.sh and docker-entrypoint.sh already require but
which were never tracked:
- https_manager.py (referenced by deploy.sh, migrate_network.sh,
docker-entrypoint.sh)
- Caddyfile.example (seeded by deploy.sh; its absence aborts deploy)
Relocate generated Graphify artifacts from graphify-out/ to
docs/graphify-out/ (110 files, no content change) and archive the
superseded docs under docs/.
Ignore hygiene:
- ignore ad-hoc .env backups (.env.bak*) — they contain live secrets
- keep the pre-sanitization snapshots (docs/legacy code/,
docs/old_code_documentation/) on disk but out of the repo
Fix .env.example: drop a duplicated config block, genericize the
hardcoded host IP, and document HOSTNAME_INTERNAL.
This commit is contained in:
@@ -0,0 +1,506 @@
|
||||
# PlayerEdit
|
||||
|
||||
> God node · 99 connections · [/home/scheianu/digiserver-v2/app/models/player_edit.py](file:///home/scheianu/digiserver-v2/app/models/player_edit.py#L8)
|
||||
|
||||
## Call Trace Diagram
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant P0 as PlayerEdit
|
||||
participant P1 as Models package for digiserver-v2.
|
||||
participant P2 as PlayerUser
|
||||
participant P3 as receive_edited_media()
|
||||
participant P4 as Admin blueprint for user management and system settings.
|
||||
participant P5 as Decorator to require admin role for route access.
|
||||
participant P6 as Display admin panel with system overview.
|
||||
participant P7 as Create a new user account.
|
||||
participant P8 as Change user role between user and admin.
|
||||
participant P9 as Delete a user account.
|
||||
participant P10 as Change application theme.
|
||||
participant P11 as Upload custom logo for application.
|
||||
participant P12 as Clear all server logs.
|
||||
participant P13 as Display user management page.
|
||||
participant P14 as Get system information as JSON.
|
||||
participant P15 as Display leftover media files not assigned to any playlist.
|
||||
participant P16 as Delete all leftover images that are not part of any playlist
|
||||
participant P17 as Delete all leftover videos that are not part of any playlist
|
||||
participant P18 as Delete a single leftover content file
|
||||
participant P19 as Show system dependencies status.
|
||||
participant P20 as Install LibreOffice for PPTX conversion.
|
||||
participant P21 as Install Emoji Fonts for better UI display.
|
||||
participant P22 as Logo customization page.
|
||||
participant P23 as Upload login page logo.
|
||||
participant P24 as Display and manage users that edit images on players.
|
||||
participant P25 as Update editing user name.
|
||||
participant P26 as Display HTTPS configuration management page.
|
||||
participant P27 as Update HTTPS configuration.
|
||||
participant P28 as Get current HTTPS configuration status as JSON.
|
||||
participant P29 as Path to the persisted player-build settings (in the instance folder).
|
||||
participant P30 as Display the 'Build player files for deployment' admin page.
|
||||
participant P31 as Build/refresh the staged player code and/or write its base config.
|
||||
participant P32 as API blueprint for REST endpoints and player communication.
|
||||
participant P33 as Rate limiting decorator. Args: max_requests: Maximum number of
|
||||
participant P34 as Decorator to verify player authentication via auth code.
|
||||
participant P35 as API health check endpoint.
|
||||
participant P36 as Get server SSL certificate.
|
||||
participant P37 as Authenticate a player and return auth code and configuration. Request J
|
||||
participant P38 as Verify an auth code and return player information. Request JSON:
|
||||
participant P39 as Get playlist using hostname and quickconnect code (Kivy player compatible).
|
||||
participant P40 as Get playlist for a specific player. Requires player authentication via
|
||||
participant P41 as Get current playlist version for a player. Lightweight endpoint for pla
|
||||
participant P42 as Get cached playlist for a player based on assigned playlist.
|
||||
participant P43 as Receive feedback/status updates from players (Kivy player compatible).
|
||||
participant P44 as Get current status of a player (public endpoint for monitoring).
|
||||
participant P45 as Get progress of a file upload.
|
||||
participant P46 as Get system information and statistics.
|
||||
participant P47 as List all content with basic information.
|
||||
participant P48 as Get recent server logs. Query parameters: limit: Number of logs
|
||||
participant P49 as Receive edited media from player. Expected multipart/form-data: - i
|
||||
participant P50 as Test SSH connection to a remote host. Request JSON: hostname: T
|
||||
participant P51 as Deploy player code to a remote host via SSH. Request JSON: host
|
||||
participant P52 as Handle 404 errors in API.
|
||||
participant P53 as Handle 405 errors in API.
|
||||
participant P54 as Handle 500 errors in API.
|
||||
participant P55 as Players blueprint for player management and display.
|
||||
participant P56 as Display list of all players.
|
||||
participant P57 as Add a new player with optional SSH deployment.
|
||||
participant P58 as Regenerate authentication code for a player.
|
||||
participant P59 as Redirect to manage player page (combined view).
|
||||
participant P60 as Manage player - edit credentials, assign playlist, view logs.
|
||||
participant P61 as Display all edited media files from this player.
|
||||
participant P62 as Display a tabular report of all edited media from this player.
|
||||
participant P63 as Display player fullscreen view (no authentication required for players).
|
||||
participant P64 as Get playlist for a player based on their assigned playlist. Args:
|
||||
participant P65 as Legacy endpoint - Content reordering now handled in playlist management.
|
||||
participant P66 as Delete multiple players at once.
|
||||
participant P67 as Assign multiple players to a playlist.
|
||||
participant P68 as Return deployment status for all players (used by polling JS).
|
||||
participant P69 as Reorder items in player's playlist.
|
||||
participant P70 as Remove content from player's playlist.
|
||||
participant P71 as Add player_user table for user code mappings.
|
||||
participant P72 as Playlist
|
||||
participant P73 as HTTPSConfig
|
||||
participant P74 as Content
|
||||
participant P75 as User
|
||||
participant P76 as Player
|
||||
participant P77 as ServerLog
|
||||
participant P78 as Group
|
||||
participant P79 as PlayerFeedback
|
||||
participant P80 as Content model for media files.
|
||||
participant P81 as Main playlist management page.
|
||||
participant P82 as View all media files in the library.
|
||||
participant P83 as Delete a media file and remove it from all playlists.
|
||||
participant P84 as Create a new playlist.
|
||||
participant P85 as Manage content in a specific playlist.
|
||||
participant P86 as Add content to playlist.
|
||||
participant P87 as Create a web link content item from the Upload Media page. Optionally adds
|
||||
participant P88 as Create a web link content item and add it to the playlist.
|
||||
participant P89 as Remove content from playlist.
|
||||
participant P90 as Remove multiple content items from playlist.
|
||||
participant P91 as Reorder content in playlist.
|
||||
participant P92 as Update content muted setting in playlist.
|
||||
participant P93 as Update content edit_on_player_enabled setting in playlist.
|
||||
participant P94 as Update content duration in playlist.
|
||||
participant P95 as Display upload media page.
|
||||
participant P96 as Process and optimize image files.
|
||||
participant P97 as Process and optimize video files for Raspberry Pi playback.
|
||||
participant P98 as Process PDF files by converting each page to PNG images.
|
||||
participant P99 as Process large files (PDF, PPTX, Video) in background thread.
|
||||
participant P100 as Process PowerPoint presentation files by converting slides to images.
|
||||
participant P101 as Create a Full HD (1920x1080) image from PIL Image object, centered on white back
|
||||
participant P102 as Resize image to exactly Full HD (1920x1080) maintaining aspect ratio with center
|
||||
participant P103 as Optimize and resize image file to Full HD (1920x1080) maintaining aspect ratio.
|
||||
participant P104 as Upload media files to library with type-specific processing.
|
||||
participant P105 as Assign a player to a playlist.
|
||||
P0->>+ P1: uses
|
||||
P1-->>- P0: return
|
||||
P1->>+ P0: uses
|
||||
P0-->>- P1: return
|
||||
P1->>+ P2: uses
|
||||
P2-->>- P1: return
|
||||
P2->>+ P1: uses
|
||||
P1-->>- P2: return
|
||||
P2->>+ P3: calls
|
||||
P3-->>- P2: return
|
||||
P2->>+ P4: uses
|
||||
P4-->>- P2: return
|
||||
P2->>+ P5: uses
|
||||
P5-->>- P2: return
|
||||
P2->>+ P6: uses
|
||||
P6-->>- P2: return
|
||||
P2->>+ P7: uses
|
||||
P7-->>- P2: return
|
||||
P2->>+ P8: uses
|
||||
P8-->>- P2: return
|
||||
P2->>+ P9: uses
|
||||
P9-->>- P2: return
|
||||
P2->>+ P10: uses
|
||||
P10-->>- P2: return
|
||||
P2->>+ P11: uses
|
||||
P11-->>- P2: return
|
||||
P2->>+ P12: uses
|
||||
P12-->>- P2: return
|
||||
P2->>+ P13: uses
|
||||
P13-->>- P2: return
|
||||
P2->>+ P14: uses
|
||||
P14-->>- P2: return
|
||||
P2->>+ P15: uses
|
||||
P15-->>- P2: return
|
||||
P2->>+ P16: uses
|
||||
P16-->>- P2: return
|
||||
P2->>+ P17: uses
|
||||
P17-->>- P2: return
|
||||
P2->>+ P18: uses
|
||||
P18-->>- P2: return
|
||||
P2->>+ P19: uses
|
||||
P19-->>- P2: return
|
||||
P2->>+ P20: uses
|
||||
P20-->>- P2: return
|
||||
P2->>+ P21: uses
|
||||
P21-->>- P2: return
|
||||
P2->>+ P22: uses
|
||||
P22-->>- P2: return
|
||||
P2->>+ P23: uses
|
||||
P23-->>- P2: return
|
||||
P2->>+ P24: uses
|
||||
P24-->>- P2: return
|
||||
P2->>+ P25: uses
|
||||
P25-->>- P2: return
|
||||
P2->>+ P26: uses
|
||||
P26-->>- P2: return
|
||||
P2->>+ P27: uses
|
||||
P27-->>- P2: return
|
||||
P2->>+ P28: uses
|
||||
P28-->>- P2: return
|
||||
P2->>+ P29: uses
|
||||
P29-->>- P2: return
|
||||
P2->>+ P30: uses
|
||||
P30-->>- P2: return
|
||||
P2->>+ P31: uses
|
||||
P31-->>- P2: return
|
||||
P2->>+ P32: uses
|
||||
P32-->>- P2: return
|
||||
P2->>+ P33: uses
|
||||
P33-->>- P2: return
|
||||
P2->>+ P34: uses
|
||||
P34-->>- P2: return
|
||||
P2->>+ P35: uses
|
||||
P35-->>- P2: return
|
||||
P2->>+ P36: uses
|
||||
P36-->>- P2: return
|
||||
P2->>+ P37: uses
|
||||
P37-->>- P2: return
|
||||
P2->>+ P38: uses
|
||||
P38-->>- P2: return
|
||||
P2->>+ P39: uses
|
||||
P39-->>- P2: return
|
||||
P2->>+ P40: uses
|
||||
P40-->>- P2: return
|
||||
P2->>+ P41: uses
|
||||
P41-->>- P2: return
|
||||
P2->>+ P42: uses
|
||||
P42-->>- P2: return
|
||||
P2->>+ P43: uses
|
||||
P43-->>- P2: return
|
||||
P2->>+ P44: uses
|
||||
P44-->>- P2: return
|
||||
P2->>+ P45: uses
|
||||
P45-->>- P2: return
|
||||
P2->>+ P46: uses
|
||||
P46-->>- P2: return
|
||||
P2->>+ P47: uses
|
||||
P47-->>- P2: return
|
||||
P2->>+ P48: uses
|
||||
P48-->>- P2: return
|
||||
P2->>+ P49: uses
|
||||
P49-->>- P2: return
|
||||
P2->>+ P50: uses
|
||||
P50-->>- P2: return
|
||||
P2->>+ P51: uses
|
||||
P51-->>- P2: return
|
||||
P2->>+ P52: uses
|
||||
P52-->>- P2: return
|
||||
P2->>+ P53: uses
|
||||
P53-->>- P2: return
|
||||
P2->>+ P54: uses
|
||||
P54-->>- P2: return
|
||||
P2->>+ P55: uses
|
||||
P55-->>- P2: return
|
||||
P2->>+ P56: uses
|
||||
P56-->>- P2: return
|
||||
P2->>+ P57: uses
|
||||
P57-->>- P2: return
|
||||
P2->>+ P58: uses
|
||||
P58-->>- P2: return
|
||||
P2->>+ P59: uses
|
||||
P59-->>- P2: return
|
||||
P2->>+ P60: uses
|
||||
P60-->>- P2: return
|
||||
P2->>+ P61: uses
|
||||
P61-->>- P2: return
|
||||
P2->>+ P62: uses
|
||||
P62-->>- P2: return
|
||||
P2->>+ P63: uses
|
||||
P63-->>- P2: return
|
||||
P2->>+ P64: uses
|
||||
P64-->>- P2: return
|
||||
P2->>+ P65: uses
|
||||
P65-->>- P2: return
|
||||
P2->>+ P66: uses
|
||||
P66-->>- P2: return
|
||||
P2->>+ P67: uses
|
||||
P67-->>- P2: return
|
||||
P2->>+ P68: uses
|
||||
P68-->>- P2: return
|
||||
P2->>+ P69: uses
|
||||
P69-->>- P2: return
|
||||
P2->>+ P70: uses
|
||||
P70-->>- P2: return
|
||||
P2->>+ P71: uses
|
||||
P71-->>- P2: return
|
||||
P1->>+ P72: uses
|
||||
P72-->>- P1: return
|
||||
P1->>+ P73: uses
|
||||
P73-->>- P1: return
|
||||
P1->>+ P74: uses
|
||||
P74-->>- P1: return
|
||||
P1->>+ P75: uses
|
||||
P75-->>- P1: return
|
||||
P1->>+ P76: uses
|
||||
P76-->>- P1: return
|
||||
P1->>+ P77: uses
|
||||
P77-->>- P1: return
|
||||
P1->>+ P78: uses
|
||||
P78-->>- P1: return
|
||||
P1->>+ P79: uses
|
||||
P79-->>- P1: return
|
||||
P0->>+ P3: calls
|
||||
P3-->>- P0: return
|
||||
P0->>+ P4: uses
|
||||
P4-->>- P0: return
|
||||
P0->>+ P5: uses
|
||||
P5-->>- P0: return
|
||||
P0->>+ P6: uses
|
||||
P6-->>- P0: return
|
||||
P0->>+ P7: uses
|
||||
P7-->>- P0: return
|
||||
P0->>+ P8: uses
|
||||
P8-->>- P0: return
|
||||
P0->>+ P9: uses
|
||||
P9-->>- P0: return
|
||||
P0->>+ P10: uses
|
||||
P10-->>- P0: return
|
||||
P0->>+ P11: uses
|
||||
P11-->>- P0: return
|
||||
P0->>+ P12: uses
|
||||
P12-->>- P0: return
|
||||
P0->>+ P13: uses
|
||||
P13-->>- P0: return
|
||||
P0->>+ P14: uses
|
||||
P14-->>- P0: return
|
||||
P0->>+ P15: uses
|
||||
P15-->>- P0: return
|
||||
P0->>+ P16: uses
|
||||
P16-->>- P0: return
|
||||
P0->>+ P17: uses
|
||||
P17-->>- P0: return
|
||||
P0->>+ P18: uses
|
||||
P18-->>- P0: return
|
||||
P0->>+ P19: uses
|
||||
P19-->>- P0: return
|
||||
P0->>+ P20: uses
|
||||
P20-->>- P0: return
|
||||
P0->>+ P21: uses
|
||||
P21-->>- P0: return
|
||||
P0->>+ P22: uses
|
||||
P22-->>- P0: return
|
||||
P0->>+ P23: uses
|
||||
P23-->>- P0: return
|
||||
P0->>+ P24: uses
|
||||
P24-->>- P0: return
|
||||
P0->>+ P25: uses
|
||||
P25-->>- P0: return
|
||||
P0->>+ P26: uses
|
||||
P26-->>- P0: return
|
||||
P0->>+ P27: uses
|
||||
P27-->>- P0: return
|
||||
P0->>+ P28: uses
|
||||
P28-->>- P0: return
|
||||
P0->>+ P29: uses
|
||||
P29-->>- P0: return
|
||||
P0->>+ P30: uses
|
||||
P30-->>- P0: return
|
||||
P0->>+ P31: uses
|
||||
P31-->>- P0: return
|
||||
P0->>+ P32: uses
|
||||
P32-->>- P0: return
|
||||
P0->>+ P33: uses
|
||||
P33-->>- P0: return
|
||||
P0->>+ P34: uses
|
||||
P34-->>- P0: return
|
||||
P0->>+ P35: uses
|
||||
P35-->>- P0: return
|
||||
P0->>+ P36: uses
|
||||
P36-->>- P0: return
|
||||
P0->>+ P37: uses
|
||||
P37-->>- P0: return
|
||||
P0->>+ P38: uses
|
||||
P38-->>- P0: return
|
||||
P0->>+ P39: uses
|
||||
P39-->>- P0: return
|
||||
P0->>+ P40: uses
|
||||
P40-->>- P0: return
|
||||
P0->>+ P41: uses
|
||||
P41-->>- P0: return
|
||||
P0->>+ P42: uses
|
||||
P42-->>- P0: return
|
||||
P0->>+ P43: uses
|
||||
P43-->>- P0: return
|
||||
P0->>+ P44: uses
|
||||
P44-->>- P0: return
|
||||
P0->>+ P45: uses
|
||||
P45-->>- P0: return
|
||||
P0->>+ P46: uses
|
||||
P46-->>- P0: return
|
||||
P0->>+ P47: uses
|
||||
P47-->>- P0: return
|
||||
P0->>+ P48: uses
|
||||
P48-->>- P0: return
|
||||
P0->>+ P49: uses
|
||||
P49-->>- P0: return
|
||||
P0->>+ P50: uses
|
||||
P50-->>- P0: return
|
||||
P0->>+ P51: uses
|
||||
P51-->>- P0: return
|
||||
P0->>+ P52: uses
|
||||
P52-->>- P0: return
|
||||
P0->>+ P53: uses
|
||||
P53-->>- P0: return
|
||||
P0->>+ P54: uses
|
||||
P54-->>- P0: return
|
||||
P0->>+ P55: uses
|
||||
P55-->>- P0: return
|
||||
P0->>+ P56: uses
|
||||
P56-->>- P0: return
|
||||
P0->>+ P57: uses
|
||||
P57-->>- P0: return
|
||||
P0->>+ P58: uses
|
||||
P58-->>- P0: return
|
||||
P0->>+ P59: uses
|
||||
P59-->>- P0: return
|
||||
P0->>+ P60: uses
|
||||
P60-->>- P0: return
|
||||
P0->>+ P61: uses
|
||||
P61-->>- P0: return
|
||||
P0->>+ P62: uses
|
||||
P62-->>- P0: return
|
||||
P0->>+ P63: uses
|
||||
P63-->>- P0: return
|
||||
P0->>+ P64: uses
|
||||
P64-->>- P0: return
|
||||
P0->>+ P65: uses
|
||||
P65-->>- P0: return
|
||||
P0->>+ P66: uses
|
||||
P66-->>- P0: return
|
||||
P0->>+ P67: uses
|
||||
P67-->>- P0: return
|
||||
P0->>+ P68: uses
|
||||
P68-->>- P0: return
|
||||
P0->>+ P69: uses
|
||||
P69-->>- P0: return
|
||||
P0->>+ P70: uses
|
||||
P70-->>- P0: return
|
||||
P0->>+ P80: uses
|
||||
P80-->>- P0: return
|
||||
P0->>+ P81: uses
|
||||
P81-->>- P0: return
|
||||
P0->>+ P82: uses
|
||||
P82-->>- P0: return
|
||||
P0->>+ P83: uses
|
||||
P83-->>- P0: return
|
||||
P0->>+ P84: uses
|
||||
P84-->>- P0: return
|
||||
P0->>+ P85: uses
|
||||
P85-->>- P0: return
|
||||
P0->>+ P86: uses
|
||||
P86-->>- P0: return
|
||||
P0->>+ P87: uses
|
||||
P87-->>- P0: return
|
||||
P0->>+ P88: uses
|
||||
P88-->>- P0: return
|
||||
P0->>+ P89: uses
|
||||
P89-->>- P0: return
|
||||
P0->>+ P90: uses
|
||||
P90-->>- P0: return
|
||||
P0->>+ P91: uses
|
||||
P91-->>- P0: return
|
||||
P0->>+ P92: uses
|
||||
P92-->>- P0: return
|
||||
P0->>+ P93: uses
|
||||
P93-->>- P0: return
|
||||
P0->>+ P94: uses
|
||||
P94-->>- P0: return
|
||||
P0->>+ P95: uses
|
||||
P95-->>- P0: return
|
||||
P0->>+ P96: uses
|
||||
P96-->>- P0: return
|
||||
P0->>+ P97: uses
|
||||
P97-->>- P0: return
|
||||
P0->>+ P98: uses
|
||||
P98-->>- P0: return
|
||||
P0->>+ P99: uses
|
||||
P99-->>- P0: return
|
||||
P0->>+ P100: uses
|
||||
P100-->>- P0: return
|
||||
P0->>+ P101: uses
|
||||
P101-->>- P0: return
|
||||
P0->>+ P102: uses
|
||||
P102-->>- P0: return
|
||||
P0->>+ P103: uses
|
||||
P103-->>- P0: return
|
||||
P0->>+ P104: uses
|
||||
P104-->>- P0: return
|
||||
P0->>+ P105: uses
|
||||
P105-->>- P0: return
|
||||
```
|
||||
|
||||
## Connections by Relation
|
||||
|
||||
### calls
|
||||
- [[receive_edited_media()]] `INFERRED`
|
||||
|
||||
### contains
|
||||
- [[player_edit.py]] `EXTRACTED`
|
||||
|
||||
### method
|
||||
- [[.to_dict()]] `EXTRACTED`
|
||||
- [[.__repr__()]] `EXTRACTED`
|
||||
|
||||
### rationale_for
|
||||
- [[Player edit model for tracking media files edited on player devices. At]] `EXTRACTED`
|
||||
|
||||
### uses
|
||||
- [[Models package for digiserver-v2.]] `INFERRED`
|
||||
- [[Admin blueprint for user management and system settings.]] `INFERRED`
|
||||
- [[Decorator to require admin role for route access.]] `INFERRED`
|
||||
- [[Display admin panel with system overview.]] `INFERRED`
|
||||
- [[Create a new user account.]] `INFERRED`
|
||||
- [[Change user role between user and admin.]] `INFERRED`
|
||||
- [[Delete a user account.]] `INFERRED`
|
||||
- [[Change application theme.]] `INFERRED`
|
||||
- [[Upload custom logo for application.]] `INFERRED`
|
||||
- [[Clear all server logs.]] `INFERRED`
|
||||
- [[Display user management page.]] `INFERRED`
|
||||
- [[Get system information as JSON.]] `INFERRED`
|
||||
- [[Display leftover media files not assigned to any playlist.]] `INFERRED`
|
||||
- [[Delete all leftover images that are not part of any playlist]] `INFERRED`
|
||||
- [[Delete all leftover videos that are not part of any playlist]] `INFERRED`
|
||||
- [[Delete a single leftover content file]] `INFERRED`
|
||||
- [[Show system dependencies status.]] `INFERRED`
|
||||
- [[Install LibreOffice for PPTX conversion.]] `INFERRED`
|
||||
- [[Install Emoji Fonts for better UI display.]] `INFERRED`
|
||||
- [[Logo customization page.]] `INFERRED`
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
Reference in New Issue
Block a user