Files
digiserver-v2/docs/graphify-out/wiki/Playlist.md
T
ske087 46602f1933 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.
2026-09-11 12:18:34 +03:00

8.2 KiB

Playlist

God node · 33 connections · /home/scheianu/digiserver-v2/app/models/playlist.py

Call Trace Diagram

sequenceDiagram
    participant P0 as Playlist
    participant P1 as Content
    participant P2 as Models package for digiserver-v2.
    participant P3 as PlayerEdit
    participant P4 as PlayerUser
    participant P5 as HTTPSConfig
    participant P6 as User
    participant P7 as Player
    participant P8 as ServerLog
    participant P9 as Group
    participant P10 as PlayerFeedback
    participant P11 as upload_media()
    participant P12 as log_action()
    participant P13 as .increment_version()
    participant P14 as process_presentation_file()
    participant P15 as process_video_file_extended()
    participant P16 as process_pdf_file()
    participant P17 as process_image_file()
    participant P18 as process_file_in_background()
    participant P19 as upload_content()
    participant P20 as add_weblink()
    participant P21 as add_weblink_to_playlist()
    participant P22 as Main Blueprint - Dashboard and Home Routes
    participant P23 as Health check endpoint
    participant P24 as Playlist model for managing content collections.
    participant P25 as Playlist model representing a collection of content.          Attributes:
    participant P26 as String representation of Playlist.
    participant P27 as Increment playlist version for sync detection.
    participant P28 as Get content items ordered by position.
    participant P29 as Get number of players assigned to this playlist.
    participant P30 as Get number of content items in this playlist.
    participant P31 as Calculate total duration of all content in seconds.
    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 create_playlist()
    P0->>+ P1: uses
    P1-->>- P0: return
    P1->>+ P0: uses
    P0-->>- P1: return
    P1->>+ P2: uses
    P2-->>- P1: return
    P2->>+ P3: uses
    P3-->>- P2: return
    P2->>+ P4: uses
    P4-->>- P2: return
    P2->>+ P0: uses
    P0-->>- P2: return
    P2->>+ P5: uses
    P5-->>- P2: return
    P2->>+ P1: uses
    P1-->>- 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
    P1->>+ P11: calls
    P11-->>- P1: return
    P11->>+ P12: calls
    P12-->>- P11: return
    P11->>+ P1: calls
    P1-->>- P11: return
    P11->>+ P13: calls
    P13-->>- P11: return
    P11->>+ P14: calls
    P14-->>- P11: return
    P11->>+ P15: calls
    P15-->>- P11: return
    P11->>+ P16: calls
    P16-->>- P11: return
    P11->>+ P17: calls
    P17-->>- P11: return
    P1->>+ P18: calls
    P18-->>- P1: return
    P1->>+ P19: calls
    P19-->>- P1: return
    P1->>+ P20: calls
    P20-->>- P1: return
    P1->>+ P21: calls
    P21-->>- P1: return
    P1->>+ P22: uses
    P22-->>- P1: return
    P1->>+ P23: uses
    P23-->>- P1: return
    P1->>+ P24: uses
    P24-->>- P1: return
    P1->>+ P25: uses
    P25-->>- P1: return
    P1->>+ P26: uses
    P26-->>- P1: return
    P1->>+ P27: uses
    P27-->>- P1: return
    P1->>+ P28: uses
    P28-->>- P1: return
    P1->>+ P29: uses
    P29-->>- P1: return
    P1->>+ P30: uses
    P30-->>- P1: return
    P1->>+ P31: uses
    P31-->>- P1: return
    P0->>+ P2: uses
    P2-->>- 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->>+ P22: uses
    P22-->>- P0: return
    P0->>+ P23: uses
    P23-->>- P0: return
    P0->>+ P55: calls
    P55-->>- P0: return

Connections by Relation

calls

contains

method

rationale_for

uses


Part of the graphify knowledge wiki. See index to navigate.