215 lines
7.2 KiB
Markdown
215 lines
7.2 KiB
Markdown
# Content
|
|
|
|
> God node · 24 connections · [/home/scheianu/digiserver-v2/app/models/content.py](file:///home/scheianu/digiserver-v2/app/models/content.py#L8)
|
|
|
|
## Call Trace Diagram
|
|
|
|
```mermaid
|
|
sequenceDiagram
|
|
participant P0 as Content
|
|
participant P1 as Playlist
|
|
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 API blueprint for REST endpoints and player communication.
|
|
participant P12 as Rate limiting decorator. Args: max_requests: Maximum number of
|
|
participant P13 as Decorator to verify player authentication via auth code.
|
|
participant P14 as API health check endpoint.
|
|
participant P15 as Get server SSL certificate.
|
|
participant P16 as Authenticate a player and return auth code and configuration. Request J
|
|
participant P17 as Verify an auth code and return player information. Request JSON:
|
|
participant P18 as Get playlist using hostname and quickconnect code (Kivy player compatible).
|
|
participant P19 as Get playlist for a specific player. Requires player authentication via
|
|
participant P20 as Get current playlist version for a player. Lightweight endpoint for pla
|
|
participant P21 as Get cached playlist for a player based on assigned playlist.
|
|
participant P22 as Receive feedback/status updates from players (Kivy player compatible).
|
|
participant P23 as Get current status of a player (public endpoint for monitoring).
|
|
participant P24 as Get progress of a file upload.
|
|
participant P25 as Get system information and statistics.
|
|
participant P26 as List all content with basic information.
|
|
participant P27 as Get recent server logs. Query parameters: limit: Number of logs
|
|
participant P28 as Receive edited media from player. Expected multipart/form-data: - i
|
|
participant P29 as Test SSH connection to a remote host. Request JSON: hostname: T
|
|
participant P30 as Deploy player code to a remote host via SSH. Request JSON: host
|
|
participant P31 as Handle 404 errors in API.
|
|
participant P32 as Handle 405 errors in API.
|
|
participant P33 as Handle 500 errors in API.
|
|
participant P34 as Main Blueprint - Dashboard and Home Routes
|
|
participant P35 as Health check endpoint
|
|
participant P36 as create_playlist()
|
|
participant P37 as upload_media()
|
|
participant P38 as process_file_in_background()
|
|
participant P39 as upload_content()
|
|
participant P40 as add_weblink()
|
|
participant P41 as add_weblink_to_playlist()
|
|
participant P42 as Playlist model for managing content collections.
|
|
participant P43 as Playlist model representing a collection of content. Attributes:
|
|
participant P44 as String representation of Playlist.
|
|
participant P45 as Increment playlist version for sync detection.
|
|
participant P46 as Get content items ordered by position.
|
|
participant P47 as Get number of players assigned to this playlist.
|
|
participant P48 as Get number of content items in this playlist.
|
|
participant P49 as Calculate total duration of all content in seconds.
|
|
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->>+ P1: uses
|
|
P1-->>- P2: return
|
|
P2->>+ P5: uses
|
|
P5-->>- P2: return
|
|
P2->>+ P0: uses
|
|
P0-->>- 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: uses
|
|
P11-->>- P1: return
|
|
P11->>+ P3: uses
|
|
P3-->>- P11: return
|
|
P11->>+ P4: uses
|
|
P4-->>- P11: return
|
|
P11->>+ P1: uses
|
|
P1-->>- P11: return
|
|
P1->>+ P12: uses
|
|
P12-->>- P1: return
|
|
P1->>+ P13: uses
|
|
P13-->>- P1: return
|
|
P1->>+ P14: uses
|
|
P14-->>- P1: return
|
|
P1->>+ P15: uses
|
|
P15-->>- P1: return
|
|
P1->>+ P16: uses
|
|
P16-->>- P1: return
|
|
P1->>+ P17: uses
|
|
P17-->>- P1: return
|
|
P1->>+ P18: uses
|
|
P18-->>- P1: return
|
|
P1->>+ P19: uses
|
|
P19-->>- P1: return
|
|
P1->>+ P20: uses
|
|
P20-->>- P1: return
|
|
P1->>+ P21: uses
|
|
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
|
|
P1->>+ P32: uses
|
|
P32-->>- P1: return
|
|
P1->>+ P33: uses
|
|
P33-->>- P1: return
|
|
P1->>+ P34: uses
|
|
P34-->>- P1: return
|
|
P1->>+ P35: uses
|
|
P35-->>- P1: return
|
|
P1->>+ P36: calls
|
|
P36-->>- P1: return
|
|
P0->>+ P2: uses
|
|
P2-->>- P0: return
|
|
P0->>+ P37: calls
|
|
P37-->>- P0: return
|
|
P0->>+ P38: calls
|
|
P38-->>- P0: return
|
|
P0->>+ P39: calls
|
|
P39-->>- P0: return
|
|
P0->>+ P40: calls
|
|
P40-->>- P0: return
|
|
P0->>+ P41: calls
|
|
P41-->>- P0: return
|
|
P0->>+ P34: uses
|
|
P34-->>- P0: return
|
|
P0->>+ P35: uses
|
|
P35-->>- 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
|
|
```
|
|
|
|
## Connections by Relation
|
|
|
|
### calls
|
|
- [[upload_media()]] `INFERRED`
|
|
- [[process_file_in_background()]] `INFERRED`
|
|
- [[upload_content()]] `INFERRED`
|
|
- [[add_weblink()]] `INFERRED`
|
|
- [[add_weblink_to_playlist()]] `INFERRED`
|
|
|
|
### contains
|
|
- [[content.py]] `EXTRACTED`
|
|
|
|
### method
|
|
- [[.__repr__()]] `EXTRACTED`
|
|
- [[.is_image()]] `EXTRACTED`
|
|
- [[.is_video()]] `EXTRACTED`
|
|
- [[.is_pdf()]] `EXTRACTED`
|
|
- [[.is_weblink()]] `EXTRACTED`
|
|
|
|
### rationale_for
|
|
- [[Content model representing media files for display. Attributes:]] `EXTRACTED`
|
|
|
|
### uses
|
|
- [[Playlist]] `INFERRED`
|
|
- [[Models package for digiserver-v2.]] `INFERRED`
|
|
- [[Main Blueprint - Dashboard and Home Routes]] `INFERRED`
|
|
- [[Health check endpoint]] `INFERRED`
|
|
- [[Playlist model for managing content collections.]] `INFERRED`
|
|
- [[Playlist model representing a collection of content. Attributes:]] `INFERRED`
|
|
- [[String representation of Playlist.]] `INFERRED`
|
|
- [[Increment playlist version for sync detection.]] `INFERRED`
|
|
- [[Get content items ordered by position.]] `INFERRED`
|
|
- [[Get number of players assigned to this playlist.]] `INFERRED`
|
|
- [[Get number of content items in this playlist.]] `INFERRED`
|
|
- [[Calculate total duration of all content in seconds.]] `INFERRED`
|
|
|
|
---
|
|
|
|
*Part of the graphify knowledge wiki. See [[index]] to navigate.* |