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,243 @@
|
||||
# CaddyConfigGenerator
|
||||
|
||||
> God node · 31 connections · [/home/scheianu/digiserver-v2/app/utils/caddy_manager.py](file:///home/scheianu/digiserver-v2/app/utils/caddy_manager.py#L36)
|
||||
|
||||
## Call Trace Diagram
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant P0 as CaddyConfigGenerator
|
||||
participant P1 as HTTPSConfig
|
||||
participant P2 as Models package for digiserver-v2.
|
||||
participant P3 as PlayerEdit
|
||||
participant P4 as PlayerUser
|
||||
participant P5 as Playlist
|
||||
participant P6 as Content
|
||||
participant P7 as User
|
||||
participant P8 as Player
|
||||
participant P9 as ServerLog
|
||||
participant P10 as Group
|
||||
participant P11 as PlayerFeedback
|
||||
participant P12 as Players blueprint for player management and display.
|
||||
participant P13 as Display list of all players.
|
||||
participant P14 as Add a new player with optional SSH deployment.
|
||||
participant P15 as Regenerate authentication code for a player.
|
||||
participant P16 as Redirect to manage player page (combined view).
|
||||
participant P17 as Manage player - edit credentials, assign playlist, view logs.
|
||||
participant P18 as Display all edited media files from this player.
|
||||
participant P19 as Display a tabular report of all edited media from this player.
|
||||
participant P20 as Display player fullscreen view (no authentication required for players).
|
||||
participant P21 as Get playlist for a player based on their assigned playlist. Args:
|
||||
participant P22 as Legacy endpoint - Content reordering now handled in playlist management.
|
||||
participant P23 as Delete multiple players at once.
|
||||
participant P24 as Assign multiple players to a playlist.
|
||||
participant P25 as Return deployment status for all players (used by polling JS).
|
||||
participant P26 as Reorder items in player's playlist.
|
||||
participant P27 as Remove content from player's playlist.
|
||||
participant P28 as Add https_config table for HTTPS configuration management.
|
||||
participant P29 as Caddy configuration generator and manager.
|
||||
participant P30 as Generate Caddyfile configuration based on HTTPSConfig.
|
||||
participant P31 as Generate a complete Caddyfile. Behaviour: - HTTPS disabled / no
|
||||
participant P32 as Write Caddyfile to disk. The default path is /etc/caddy/Caddyfile — the
|
||||
participant P33 as Push the current Caddyfile to Caddy via its admin API (/load). Caddy ap
|
||||
participant P34 as Write Caddyfile to disk. Args: caddyfile_content: C
|
||||
participant P35 as Reload Caddy configuration without restart. Note: Caddy monitor
|
||||
participant P36 as Admin blueprint for user management and system settings.
|
||||
participant P37 as Decorator to require admin role for route access.
|
||||
participant P38 as Display admin panel with system overview.
|
||||
participant P39 as Create a new user account.
|
||||
participant P40 as Change user role between user and admin.
|
||||
participant P41 as Delete a user account.
|
||||
participant P42 as Change application theme.
|
||||
participant P43 as Upload custom logo for application.
|
||||
participant P44 as Clear all server logs.
|
||||
participant P45 as Display user management page.
|
||||
participant P46 as Get system information as JSON.
|
||||
participant P47 as Display leftover media files not assigned to any playlist.
|
||||
participant P48 as Delete all leftover images that are not part of any playlist
|
||||
participant P49 as Delete all leftover videos that are not part of any playlist
|
||||
participant P50 as Delete a single leftover content file
|
||||
participant P51 as Show system dependencies status.
|
||||
participant P52 as Install LibreOffice for PPTX conversion.
|
||||
participant P53 as Install Emoji Fonts for better UI display.
|
||||
participant P54 as Logo customization page.
|
||||
participant P55 as Upload login page logo.
|
||||
participant P56 as Display and manage users that edit images on players.
|
||||
participant P57 as Update editing user name.
|
||||
participant P58 as Display HTTPS configuration management page.
|
||||
participant P59 as Update HTTPS configuration.
|
||||
participant P60 as Get current HTTPS configuration status as JSON.
|
||||
participant P61 as Path to the persisted player-build settings (in the instance folder).
|
||||
participant P62 as Display the 'Build player files for deployment' admin page.
|
||||
participant P63 as Build/refresh the staged player code and/or write its base config.
|
||||
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->>+ 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
|
||||
P2->>+ P11: uses
|
||||
P11-->>- P2: return
|
||||
P1->>+ P12: uses
|
||||
P12-->>- P1: return
|
||||
P12->>+ P3: uses
|
||||
P3-->>- P12: return
|
||||
P12->>+ P4: uses
|
||||
P4-->>- P12: return
|
||||
P12->>+ P1: uses
|
||||
P1-->>- P12: 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
|
||||
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
|
||||
```
|
||||
|
||||
## Connections by Relation
|
||||
|
||||
### contains
|
||||
- [[caddy_manager.py]] `EXTRACTED`
|
||||
|
||||
### rationale_for
|
||||
- [[Generate Caddyfile configuration based on HTTPSConfig.]] `EXTRACTED`
|
||||
|
||||
### uses
|
||||
- [[HTTPSConfig]] `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.*
|
||||
@@ -0,0 +1,66 @@
|
||||
# Community 0
|
||||
|
||||
> 90 nodes · cohesion 0.03
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [log_action()](file:///home/scheianu/digiserver-v2/app/utils/logger.py#L9) (116 connections)
|
||||
- [content_old.py](file:///home/scheianu/digiserver-v2/app/blueprints/content_old.py#L1) (13 connections)
|
||||
- [blueprint_groups.py](file:///home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py#L1) (13 connections)
|
||||
- [ServerLog](file:///home/scheianu/digiserver-v2/app/models/server_log.py#L8) (12 connections)
|
||||
- [group_player_management.py](file:///home/scheianu/digiserver-v2/app/utils/group_player_management.py#L1) (8 connections)
|
||||
- [get_player_status_info()](file:///home/scheianu/digiserver-v2/app/utils/group_player_management.py#L10) (7 connections)
|
||||
- [logger.py](file:///home/scheianu/digiserver-v2/app/utils/logger.py#L1) (7 connections)
|
||||
- [auth.py](file:///home/scheianu/digiserver-v2/app/blueprints/auth.py#L1) (5 connections)
|
||||
- [server_log.py](file:///home/scheianu/digiserver-v2/app/models/server_log.py#L1) (5 connections)
|
||||
- [group_fullscreen()](file:///home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py#L214) (4 connections)
|
||||
- [group_stats()](file:///home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py#L394) (4 connections)
|
||||
- [groups_list()](file:///home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py#L16) (4 connections)
|
||||
- [manage_group()](file:///home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py#L175) (4 connections)
|
||||
- [get_group_statistics()](file:///home/scheianu/digiserver-v2/app/utils/group_player_management.py#L54) (4 connections)
|
||||
- [add_content_to_group()](file:///home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py#L298) (3 connections)
|
||||
- [add_player_to_group()](file:///home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py#L239) (3 connections)
|
||||
- [remove_content_from_group()](file:///home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py#L335) (3 connections)
|
||||
- [remove_player_from_group()](file:///home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py#L269) (3 connections)
|
||||
- [reorder_group_content()](file:///home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py#L365) (3 connections)
|
||||
- [bulk_delete_content()](file:///home/scheianu/digiserver-v2/app/blueprints/content_old.py#L337) (3 connections)
|
||||
- [check_duplicates()](file:///home/scheianu/digiserver-v2/app/blueprints/content_old.py#L453) (3 connections)
|
||||
- [content_groups_info()](file:///home/scheianu/digiserver-v2/app/blueprints/content_old.py#L478) (3 connections)
|
||||
- [content_list()](file:///home/scheianu/digiserver-v2/app/blueprints/content_old.py#L30) (3 connections)
|
||||
- [content_statistics()](file:///home/scheianu/digiserver-v2/app/blueprints/content_old.py#L419) (3 connections)
|
||||
- [delete_by_filename()](file:///home/scheianu/digiserver-v2/app/blueprints/content_old.py#L289) (3 connections)
|
||||
- *... and 65 more nodes in this community*
|
||||
|
||||
## Class Diagram
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class ServerLog {
|
||||
+server_log.py()
|
||||
+.__repr__()
|
||||
}
|
||||
```
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/auth.py](file:///home/scheianu/digiserver-v2/app/blueprints/auth.py)
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/content_old.py](file:///home/scheianu/digiserver-v2/app/blueprints/content_old.py)
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/main.py](file:///home/scheianu/digiserver-v2/app/blueprints/main.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/server_log.py](file:///home/scheianu/digiserver-v2/app/models/server_log.py)
|
||||
- [/home/scheianu/digiserver-v2/app/utils/group_player_management.py](file:///home/scheianu/digiserver-v2/app/utils/group_player_management.py)
|
||||
- [/home/scheianu/digiserver-v2/app/utils/logger.py](file:///home/scheianu/digiserver-v2/app/utils/logger.py)
|
||||
- [/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py](file:///home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 180 (52%)
|
||||
- INFERRED: 165 (48%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,69 @@
|
||||
# Community 1
|
||||
|
||||
> 80 nodes · cohesion 0.04
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [PlayerUser](file:///home/scheianu/digiserver-v2/app/models/player_user.py#L7) (74 connections)
|
||||
- [CaddyConfigGenerator](file:///home/scheianu/digiserver-v2/app/utils/caddy_manager.py#L36) (31 connections)
|
||||
- [admin.py](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L1) (31 connections)
|
||||
- [get_config()](file:///home/scheianu/digiserver-v2/app/models/https_config.py#L43) (8 connections)
|
||||
- [build_player()](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L1028) (7 connections)
|
||||
- [update_https_config()](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L886) (7 connections)
|
||||
- [https_config_status()](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L995) (5 connections)
|
||||
- [caddy_manager.py](file:///home/scheianu/digiserver-v2/app/utils/caddy_manager.py#L1) (5 connections)
|
||||
- [create_user()](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L79) (4 connections)
|
||||
- [https_config()](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L856) (4 connections)
|
||||
- [_player_build_meta_path()](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L1019) (4 connections)
|
||||
- [Admin blueprint for user management and system settings.](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L1) (4 connections)
|
||||
- [Path to the persisted player-build settings (in the instance folder).](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L1020) (4 connections)
|
||||
- [Display the 'Build player files for deployment' admin page.](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L1029) (4 connections)
|
||||
- [Change user role between user and admin.](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L126) (4 connections)
|
||||
- [Delete a user account.](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L160) (4 connections)
|
||||
- [Change application theme.](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L188) (4 connections)
|
||||
- [Decorator to require admin role for route access.](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L19) (4 connections)
|
||||
- [Upload custom logo for application.](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L212) (4 connections)
|
||||
- [Clear all server logs.](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L254) (4 connections)
|
||||
- [Display user management page.](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L274) (4 connections)
|
||||
- [Get system information as JSON.](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L323) (4 connections)
|
||||
- [Display leftover media files not assigned to any playlist.](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L355) (4 connections)
|
||||
- [Display admin panel with system overview.](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L36) (4 connections)
|
||||
- [Delete all leftover images that are not part of any playlist](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L407) (4 connections)
|
||||
- *... and 55 more nodes in this community*
|
||||
|
||||
## Class Diagram
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class CaddyConfigGenerator {
|
||||
+caddy_manager.py()
|
||||
}
|
||||
class PlayerUser {
|
||||
+player_user.py()
|
||||
+.__repr__()
|
||||
+.to_dict()
|
||||
}
|
||||
```
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/admin.py](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/https_config.py](file:///home/scheianu/digiserver-v2/app/models/https_config.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/player_edit.py](file:///home/scheianu/digiserver-v2/app/models/player_edit.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/player_user.py](file:///home/scheianu/digiserver-v2/app/models/player_user.py)
|
||||
- [/home/scheianu/digiserver-v2/app/utils/caddy_manager.py](file:///home/scheianu/digiserver-v2/app/utils/caddy_manager.py)
|
||||
- [/home/scheianu/digiserver-v2/migrations/add_player_user_table.py](file:///home/scheianu/digiserver-v2/migrations/add_player_user_table.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 156 (41%)
|
||||
- INFERRED: 229 (59%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,45 @@
|
||||
# Community 10
|
||||
|
||||
> 20 nodes · cohesion 0.12
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [ssh_deploy.py](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L1) (8 connections)
|
||||
- [deploy_player_to_host()](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L311) (8 connections)
|
||||
- [background_player_deployment()](file:///home/scheianu/digiserver-v2/app/utils/background_tasks.py#L29) (4 connections)
|
||||
- [generate_app_config()](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L267) (4 connections)
|
||||
- [get_local_player_code_status()](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L15) (4 connections)
|
||||
- [run_background_task()](file:///home/scheianu/digiserver-v2/app/utils/background_tasks.py#L9) (3 connections)
|
||||
- [background_tasks.py](file:///home/scheianu/digiserver-v2/app/utils/background_tasks.py#L1) (3 connections)
|
||||
- [parse_server_address()](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L241) (3 connections)
|
||||
- [test_ssh_connection()](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L85) (3 connections)
|
||||
- [generate_player_config()](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L149) (2 connections)
|
||||
- [Background task execution for long-running operations.](file:///home/scheianu/digiserver-v2/app/utils/background_tasks.py#L1) (1 connections)
|
||||
- [Run a function in a background thread, with a Flask app context pushed.](file:///home/scheianu/digiserver-v2/app/utils/background_tasks.py#L10) (1 connections)
|
||||
- [Deploy player code to host in background. Args: hostname: SSH h](file:///home/scheianu/digiserver-v2/app/utils/background_tasks.py#L43) (1 connections)
|
||||
- [SSH deployment utilities for player provisioning.](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L1) (1 connections)
|
||||
- [Generate player configuration JSON for connecting to DigiServer. Args:](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L156) (1 connections)
|
||||
- [Check status of pre-staged player code. Args: player_code_dir: Opti](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L16) (1 connections)
|
||||
- [Derive the values the player needs from a DigiServer URL. The player's conf](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L242) (1 connections)
|
||||
- [Generate the config/app_config.json the player actually reads. This is what](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L277) (1 connections)
|
||||
- [Deploy player code to remote host. Args: hostname: Target hostn](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L326) (1 connections)
|
||||
- [Test SSH connection to a remote host. Args: hostname: Target ho](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L86) (1 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/utils/background_tasks.py](file:///home/scheianu/digiserver-v2/app/utils/background_tasks.py)
|
||||
- [/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 45 (87%)
|
||||
- INFERRED: 7 (13%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,44 @@
|
||||
# Community 11
|
||||
|
||||
> 19 nodes · cohesion 0.15
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [build_player_action()](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L1074) (9 connections)
|
||||
- [player_build.py](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L1) (9 connections)
|
||||
- [build_player_files()](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L49) (5 connections)
|
||||
- [get_short_head()](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L38) (5 connections)
|
||||
- [Build/refresh the staged player code and/or write its base config.](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py#L1075) (4 connections)
|
||||
- [get_player_server_settings()](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L188) (4 connections)
|
||||
- [load_build_settings()](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L165) (4 connections)
|
||||
- [write_base_config()](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L128) (4 connections)
|
||||
- [make_build_record()](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L208) (3 connections)
|
||||
- [_run_git()](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L28) (3 connections)
|
||||
- [save_build_settings()](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L176) (3 connections)
|
||||
- [Utilities for building/staging the player files on the server. Admins use the "](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L1) (1 connections)
|
||||
- [Write a base ``config/app_config.json`` into the staged player code. ``scre](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L137) (1 connections)
|
||||
- [Load saved build settings from ``meta_path`` (or None if absent/invalid).](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L166) (1 connections)
|
||||
- [Persist build settings to ``meta_path``.](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L177) (1 connections)
|
||||
- [Return the saved server address settings for deployment, if available. Retu](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L189) (1 connections)
|
||||
- [Assemble the metadata record to persist after a build.](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L210) (1 connections)
|
||||
- [Return the short git commit of the staged code, or 'unknown'.](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L39) (1 connections)
|
||||
- [Clone or refresh the player source into ``player_code_dir``. If the directo](file:///home/scheianu/digiserver-v2/app/utils/player_build.py#L50) (1 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/admin.py](file:///home/scheianu/digiserver-v2/app/blueprints/admin.py)
|
||||
- [/home/scheianu/digiserver-v2/app/utils/player_build.py](file:///home/scheianu/digiserver-v2/app/utils/player_build.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 44 (72%)
|
||||
- INFERRED: 17 (28%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,32 @@
|
||||
# Community 12
|
||||
|
||||
> 8 nodes · cohesion 0.29
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [pptx_converter.py](file:///home/scheianu/digiserver-v2/app/utils/pptx_converter.py#L1) (4 connections)
|
||||
- [cleanup_libreoffice_processes()](file:///home/scheianu/digiserver-v2/app/utils/pptx_converter.py#L11) (3 connections)
|
||||
- [pptx_to_pdf_libreoffice()](file:///home/scheianu/digiserver-v2/app/utils/pptx_converter.py#L20) (3 connections)
|
||||
- [validate_pptx_file()](file:///home/scheianu/digiserver-v2/app/utils/pptx_converter.py#L86) (2 connections)
|
||||
- [PowerPoint to PDF converter using LibreOffice.](file:///home/scheianu/digiserver-v2/app/utils/pptx_converter.py#L1) (1 connections)
|
||||
- [Clean up any hanging LibreOffice processes.](file:///home/scheianu/digiserver-v2/app/utils/pptx_converter.py#L12) (1 connections)
|
||||
- [Convert PPTX to PDF using LibreOffice for highest quality. This functio](file:///home/scheianu/digiserver-v2/app/utils/pptx_converter.py#L21) (1 connections)
|
||||
- [Validate if file is a valid PowerPoint file. Args: filepath: Pa](file:///home/scheianu/digiserver-v2/app/utils/pptx_converter.py#L87) (1 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/utils/pptx_converter.py](file:///home/scheianu/digiserver-v2/app/utils/pptx_converter.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 16 (100%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,28 @@
|
||||
# Community 13
|
||||
|
||||
> 4 nodes · cohesion 0.50
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [migrate_add_edit_enabled.py](file:///home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py#L1) (2 connections)
|
||||
- [migrate()](file:///home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py#L7) (2 connections)
|
||||
- [Migration: Add edit_on_player_enabled column to playlist_content table.](file:///home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py#L1) (1 connections)
|
||||
- [Add edit_on_player_enabled column to playlist_content.](file:///home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py#L8) (1 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py](file:///home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 6 (100%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,26 @@
|
||||
# Community 14
|
||||
|
||||
> 2 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [migrate_player_user_global.py](file:///home/scheianu/digiserver-v2/migrations/migrate_player_user_global.py#L1) (1 connections)
|
||||
- [Migrate player_user table to remove player_id and make user_code unique globally](file:///home/scheianu/digiserver-v2/migrations/migrate_player_user_global.py#L1) (1 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/migrations/migrate_player_user_global.py](file:///home/scheianu/digiserver-v2/migrations/migrate_player_user_global.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 2 (100%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,26 @@
|
||||
# Community 15
|
||||
|
||||
> 2 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Add original_filename column to content table. This preserves the pristine uplo](file:///home/scheianu/digiserver-v2/migrations/add_original_filename_to_content.py#L1) (1 connections)
|
||||
- [add_original_filename_to_content.py](file:///home/scheianu/digiserver-v2/migrations/add_original_filename_to_content.py#L1) (1 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/migrations/add_original_filename_to_content.py](file:///home/scheianu/digiserver-v2/migrations/add_original_filename_to_content.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 2 (100%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,26 @@
|
||||
# Community 16
|
||||
|
||||
> 2 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Add url column to content table for weblink support.](file:///home/scheianu/digiserver-v2/migrations/add_url_to_content.py#L1) (1 connections)
|
||||
- [add_url_to_content.py](file:///home/scheianu/digiserver-v2/migrations/add_url_to_content.py#L1) (1 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/migrations/add_url_to_content.py](file:///home/scheianu/digiserver-v2/migrations/add_url_to_content.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 2 (100%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,26 @@
|
||||
# Community 17
|
||||
|
||||
> 2 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Add deployment tracking columns to player table.](file:///home/scheianu/digiserver-v2/migrations/add_deployment_fields_to_player.py#L1) (1 connections)
|
||||
- [add_deployment_fields_to_player.py](file:///home/scheianu/digiserver-v2/migrations/add_deployment_fields_to_player.py#L1) (1 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/migrations/add_deployment_fields_to_player.py](file:///home/scheianu/digiserver-v2/migrations/add_deployment_fields_to_player.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 2 (100%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,26 @@
|
||||
# Community 18
|
||||
|
||||
> 2 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Add email field to https_config table.](file:///home/scheianu/digiserver-v2/migrations/add_email_to_https_config.py#L1) (1 connections)
|
||||
- [add_email_to_https_config.py](file:///home/scheianu/digiserver-v2/migrations/add_email_to_https_config.py#L1) (1 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/migrations/add_email_to_https_config.py](file:///home/scheianu/digiserver-v2/migrations/add_email_to_https_config.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 2 (100%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,26 @@
|
||||
# Community 19
|
||||
|
||||
> 2 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Flask extensions initialization Centralized extension management for the applica](file:///home/scheianu/digiserver-v2/app/extensions.py#L1) (1 connections)
|
||||
- [extensions.py](file:///home/scheianu/digiserver-v2/app/extensions.py#L1) (1 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/extensions.py](file:///home/scheianu/digiserver-v2/app/extensions.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 2 (100%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,52 @@
|
||||
# Community 2
|
||||
|
||||
> 68 nodes · cohesion 0.04
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [content.py](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L1) (27 connections)
|
||||
- [.increment_version()](file:///home/scheianu/digiserver-v2/app/models/playlist.py#L70) (18 connections)
|
||||
- [upload_media()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L1220) (9 connections)
|
||||
- [playlist.py](file:///home/scheianu/digiserver-v2/app/blueprints/playlist.py#L1) (8 connections)
|
||||
- [process_file_in_background()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L798) (7 connections)
|
||||
- [process_presentation_file()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L977) (7 connections)
|
||||
- [add_weblink()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L272) (5 connections)
|
||||
- [add_weblink_to_playlist()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L352) (5 connections)
|
||||
- [process_pdf_file()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L727) (5 connections)
|
||||
- [process_video_file_extended()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L702) (5 connections)
|
||||
- [playlist.py](file:///home/scheianu/digiserver-v2/app/models/playlist.py#L1) (5 connections)
|
||||
- [add_content_to_playlist()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L222) (4 connections)
|
||||
- [bulk_remove_from_playlist()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L455) (4 connections)
|
||||
- [optimize_image_to_fullhd()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L1203) (4 connections)
|
||||
- [process_image_file()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L676) (4 connections)
|
||||
- [remove_content_from_playlist()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L418) (4 connections)
|
||||
- [reorder_playlist_content()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L497) (4 connections)
|
||||
- [resize_image_to_fullhd()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L1145) (4 connections)
|
||||
- [update_playlist_content_duration()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L620) (4 connections)
|
||||
- [update_playlist_content_edit_enabled()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L579) (4 connections)
|
||||
- [update_playlist_content_muted()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L538) (4 connections)
|
||||
- [add_to_playlist()](file:///home/scheianu/digiserver-v2/app/blueprints/playlist.py#L33) (4 connections)
|
||||
- [clear_playlist()](file:///home/scheianu/digiserver-v2/app/blueprints/playlist.py#L278) (4 connections)
|
||||
- [remove_from_playlist()](file:///home/scheianu/digiserver-v2/app/blueprints/playlist.py#L88) (4 connections)
|
||||
- [reorder_playlist()](file:///home/scheianu/digiserver-v2/app/blueprints/playlist.py#L143) (4 connections)
|
||||
- *... and 43 more nodes in this community*
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/content.py](file:///home/scheianu/digiserver-v2/app/blueprints/content.py)
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/playlist.py](file:///home/scheianu/digiserver-v2/app/blueprints/playlist.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/playlist.py](file:///home/scheianu/digiserver-v2/app/models/playlist.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 154 (64%)
|
||||
- INFERRED: 86 (36%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 20
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Check if feedback indicates an error.](file:///home/scheianu/digiserver-v2/app/models/player_feedback.py#L43) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/player_feedback.py](file:///home/scheianu/digiserver-v2/app/models/player_feedback.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 21
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Get age of feedback in seconds.](file:///home/scheianu/digiserver-v2/app/models/player_feedback.py#L48) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/player_feedback.py](file:///home/scheianu/digiserver-v2/app/models/player_feedback.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 22
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Get most recent feedback for a player. Args: player](file:///home/scheianu/digiserver-v2/app/models/player_feedback.py#L54) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/player_feedback.py](file:///home/scheianu/digiserver-v2/app/models/player_feedback.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 23
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Get the current HTTPS configuration. Returns: HTTPS](file:///home/scheianu/digiserver-v2/app/models/https_config.py#L44) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/https_config.py](file:///home/scheianu/digiserver-v2/app/models/https_config.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 24
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Create or update HTTPS configuration. Args: https_e](file:///home/scheianu/digiserver-v2/app/models/https_config.py#L56) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/https_config.py](file:///home/scheianu/digiserver-v2/app/models/https_config.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 25
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Check if user has admin role.](file:///home/scheianu/digiserver-v2/app/models/user.py#L38) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/user.py](file:///home/scheianu/digiserver-v2/app/models/user.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 26
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Check if player is online (seen in last 5 minutes).](file:///home/scheianu/digiserver-v2/app/models/player.py#L61) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/player.py](file:///home/scheianu/digiserver-v2/app/models/player.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 27
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Authenticate a player by hostname and password or quickconnect code.](file:///home/scheianu/digiserver-v2/app/models/player.py#L122) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/player.py](file:///home/scheianu/digiserver-v2/app/models/player.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 28
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Create an info level log entry. Args: message: Log](file:///home/scheianu/digiserver-v2/app/models/server_log.py#L31) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/server_log.py](file:///home/scheianu/digiserver-v2/app/models/server_log.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 29
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Create a warning level log entry. Args: message: Lo](file:///home/scheianu/digiserver-v2/app/models/server_log.py#L46) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/server_log.py](file:///home/scheianu/digiserver-v2/app/models/server_log.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,71 @@
|
||||
# Community 3
|
||||
|
||||
> 62 nodes · cohesion 0.06
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [PlayerEdit](file:///home/scheianu/digiserver-v2/app/models/player_edit.py#L8) (99 connections)
|
||||
- [Playlist](file:///home/scheianu/digiserver-v2/app/models/playlist.py#L19) (33 connections)
|
||||
- [api.py](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L1) (23 connections)
|
||||
- [receive_edited_media()](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L736) (6 connections)
|
||||
- [authenticate_player()](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L107) (5 connections)
|
||||
- [get_cached_playlist()](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L378) (5 connections)
|
||||
- [get_playlist_by_quickconnect()](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L207) (5 connections)
|
||||
- [receive_player_feedback()](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L429) (5 connections)
|
||||
- [.get_content_ordered()](file:///home/scheianu/digiserver-v2/app/models/playlist.py#L75) (5 connections)
|
||||
- [deploy_player()](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L980) (4 connections)
|
||||
- [get_player_playlist()](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L305) (4 connections)
|
||||
- [API blueprint for REST endpoints and player communication.](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L1) (4 connections)
|
||||
- [Get server SSL certificate.](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L101) (4 connections)
|
||||
- [Handle 404 errors in API.](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L1050) (4 connections)
|
||||
- [Handle 405 errors in API.](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L1056) (4 connections)
|
||||
- [Handle 500 errors in API.](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L1062) (4 connections)
|
||||
- [Authenticate a player and return auth code and configuration. Request J](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L108) (4 connections)
|
||||
- [Verify an auth code and return player information. Request JSON:](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L164) (4 connections)
|
||||
- [Get playlist using hostname and quickconnect code (Kivy player compatible).](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L208) (4 connections)
|
||||
- [Rate limiting decorator. Args: max_requests: Maximum number of](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L22) (4 connections)
|
||||
- [Get playlist for a specific player. Requires player authentication via](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L306) (4 connections)
|
||||
- [Get current playlist version for a player. Lightweight endpoint for pla](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L350) (4 connections)
|
||||
- [Get cached playlist for a player based on assigned playlist.](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L379) (4 connections)
|
||||
- [Receive feedback/status updates from players (Kivy player compatible).](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L430) (4 connections)
|
||||
- [Get current status of a player (public endpoint for monitoring).](file:///home/scheianu/digiserver-v2/app/blueprints/api.py#L541) (4 connections)
|
||||
- *... and 37 more nodes in this community*
|
||||
|
||||
## Class Diagram
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class PlayerEdit {
|
||||
+player_edit.py()
|
||||
+.__repr__()
|
||||
+.to_dict()
|
||||
}
|
||||
class Playlist {
|
||||
+playlist.py()
|
||||
+.__repr__()
|
||||
+.increment_version()
|
||||
+.get_content_ordered()
|
||||
}
|
||||
```
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/api.py](file:///home/scheianu/digiserver-v2/app/blueprints/api.py)
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/content.py](file:///home/scheianu/digiserver-v2/app/blueprints/content.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/player.py](file:///home/scheianu/digiserver-v2/app/models/player.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/player_edit.py](file:///home/scheianu/digiserver-v2/app/models/player_edit.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/playlist.py](file:///home/scheianu/digiserver-v2/app/models/playlist.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 123 (35%)
|
||||
- INFERRED: 228 (65%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 30
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Create an error level log entry. Args: message: Log](file:///home/scheianu/digiserver-v2/app/models/server_log.py#L61) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/server_log.py](file:///home/scheianu/digiserver-v2/app/models/server_log.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 31
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Get number of content items in this group.](file:///home/scheianu/digiserver-v2/app/models/group.py#L46) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/group.py](file:///home/scheianu/digiserver-v2/app/models/group.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 32
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Get file size in megabytes.](file:///home/scheianu/digiserver-v2/app/models/content.py#L50) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/content.py](file:///home/scheianu/digiserver-v2/app/models/content.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 33
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Get number of groups containing this content.](file:///home/scheianu/digiserver-v2/app/models/content.py#L57) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/content.py](file:///home/scheianu/digiserver-v2/app/models/content.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 34
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Name of the original (unedited) file for display purposes.](file:///home/scheianu/digiserver-v2/app/models/content.py#L62) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/content.py](file:///home/scheianu/digiserver-v2/app/models/content.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 35
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Path (relative to uploads/) where the original unedited file lives. Whe](file:///home/scheianu/digiserver-v2/app/models/content.py#L67) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/content.py](file:///home/scheianu/digiserver-v2/app/models/content.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 36
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Path (relative to uploads/) of the current/latest version to display.](file:///home/scheianu/digiserver-v2/app/models/content.py#L79) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/content.py](file:///home/scheianu/digiserver-v2/app/models/content.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 37
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Whether this content has been edited on a player.](file:///home/scheianu/digiserver-v2/app/models/content.py#L100) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/content.py](file:///home/scheianu/digiserver-v2/app/models/content.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 38
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Display name of the original (unedited) file.](file:///home/scheianu/digiserver-v2/app/models/content.py#L105) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/content.py](file:///home/scheianu/digiserver-v2/app/models/content.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 39
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [uploads/-relative path of the pristine original file. After a player ed](file:///home/scheianu/digiserver-v2/app/models/content.py#L110) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/models/content.py](file:///home/scheianu/digiserver-v2/app/models/content.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,91 @@
|
||||
# Community 4
|
||||
|
||||
> 55 nodes · cohesion 0.07
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [User](file:///home/scheianu/digiserver-v2/app/models/user.py#L10) (19 connections)
|
||||
- [create_app()](file:///home/scheianu/digiserver-v2/app/app.py#L17) (13 connections)
|
||||
- [ScriptNameFix](file:///home/scheianu/digiserver-v2/app/utils/script_name_fix.py#L15) (12 connections)
|
||||
- [DevelopmentConfig](file:///home/scheianu/digiserver-v2/app/config.py#L56) (11 connections)
|
||||
- [ProductionConfig](file:///home/scheianu/digiserver-v2/app/config.py#L78) (11 connections)
|
||||
- [TestingConfig](file:///home/scheianu/digiserver-v2/app/config.py#L102) (11 connections)
|
||||
- [app.py](file:///home/scheianu/digiserver-v2/app/app.py#L1) (8 connections)
|
||||
- [DigiServer v2 - Application Factory Modern Flask application with blueprint arch](file:///home/scheianu/digiserver-v2/app/app.py#L1) (6 connections)
|
||||
- [Configure Flask-Login](file:///home/scheianu/digiserver-v2/app/app.py#L111) (6 connections)
|
||||
- [Register error handlers](file:///home/scheianu/digiserver-v2/app/app.py#L124) (6 connections)
|
||||
- [Register CLI commands](file:///home/scheianu/digiserver-v2/app/app.py#L149) (6 connections)
|
||||
- [Application factory pattern Args: config_name: Configuration en](file:///home/scheianu/digiserver-v2/app/app.py#L18) (6 connections)
|
||||
- [Register context processors for templates](file:///home/scheianu/digiserver-v2/app/app.py#L190) (6 connections)
|
||||
- [Register custom Jinja2 template filters](file:///home/scheianu/digiserver-v2/app/app.py#L214) (6 connections)
|
||||
- [Register application blueprints](file:///home/scheianu/digiserver-v2/app/app.py#L91) (6 connections)
|
||||
- [config.py](file:///home/scheianu/digiserver-v2/app/config.py#L1) (6 connections)
|
||||
- [Config](file:///home/scheianu/digiserver-v2/app/config.py#L9) (4 connections)
|
||||
- [add_muted_column()](file:///home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py#L6) (3 connections)
|
||||
- [configure_login_manager()](file:///home/scheianu/digiserver-v2/app/app.py#L110) (3 connections)
|
||||
- [register_blueprints()](file:///home/scheianu/digiserver-v2/app/app.py#L90) (3 connections)
|
||||
- [register_commands()](file:///home/scheianu/digiserver-v2/app/app.py#L148) (3 connections)
|
||||
- [register_context_processors()](file:///home/scheianu/digiserver-v2/app/app.py#L189) (3 connections)
|
||||
- [register_error_handlers()](file:///home/scheianu/digiserver-v2/app/app.py#L123) (3 connections)
|
||||
- [register_template_filters()](file:///home/scheianu/digiserver-v2/app/app.py#L213) (3 connections)
|
||||
- [user.py](file:///home/scheianu/digiserver-v2/app/models/user.py#L1) (3 connections)
|
||||
- *... and 30 more nodes in this community*
|
||||
|
||||
## Class Diagram
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class Config {
|
||||
+config.py()
|
||||
}
|
||||
class DevelopmentConfig {
|
||||
+config.py()
|
||||
}
|
||||
class ProductionConfig {
|
||||
+config.py()
|
||||
}
|
||||
class TestingConfig {
|
||||
+config.py()
|
||||
}
|
||||
class ScriptNameFix {
|
||||
+script_name_fix.py()
|
||||
+.__init__()
|
||||
+.__call__()
|
||||
}
|
||||
class User {
|
||||
+user.py()
|
||||
+.__repr__()
|
||||
+.update_last_login()
|
||||
}
|
||||
DevelopmentConfig <|-- Config
|
||||
ProductionConfig <|-- Config
|
||||
TestingConfig <|-- Config
|
||||
Config <|-- DevelopmentConfig
|
||||
Config <|-- ProductionConfig
|
||||
Config <|-- TestingConfig
|
||||
```
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/app.py](file:///home/scheianu/digiserver-v2/app/app.py)
|
||||
- [/home/scheianu/digiserver-v2/app/config.py](file:///home/scheianu/digiserver-v2/app/config.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/user.py](file:///home/scheianu/digiserver-v2/app/models/user.py)
|
||||
- [/home/scheianu/digiserver-v2/app/utils/portal_sso.py](file:///home/scheianu/digiserver-v2/app/utils/portal_sso.py)
|
||||
- [/home/scheianu/digiserver-v2/app/utils/script_name_fix.py](file:///home/scheianu/digiserver-v2/app/utils/script_name_fix.py)
|
||||
- [/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py](file:///home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py)
|
||||
- [/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py](file:///home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py)
|
||||
- [/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 112 (53%)
|
||||
- INFERRED: 99 (47%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,25 @@
|
||||
# Community 40
|
||||
|
||||
> 1 nodes · cohesion 1.00
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [check_fix_player.py](file:///home/scheianu/digiserver-v2/old_code_documentation/check_fix_player.py#L1) (0 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/old_code_documentation/check_fix_player.py](file:///home/scheianu/digiserver-v2/old_code_documentation/check_fix_player.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 0 (0%)
|
||||
- INFERRED: 0 (0%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,84 @@
|
||||
# Community 5
|
||||
|
||||
> 54 nodes · cohesion 0.04
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [Content](file:///home/scheianu/digiserver-v2/app/models/content.py#L8) (24 connections)
|
||||
- [Models package for digiserver-v2.](file:///home/scheianu/digiserver-v2/app/models/__init__.py#L1) (13 connections)
|
||||
- [Player](file:///home/scheianu/digiserver-v2/app/models/player.py#L8) (12 connections)
|
||||
- [content.py](file:///home/scheianu/digiserver-v2/app/models/content.py#L1) (8 connections)
|
||||
- [player_feedback.py](file:///home/scheianu/digiserver-v2/app/models/player_feedback.py#L1) (5 connections)
|
||||
- [PlayerFeedback](file:///home/scheianu/digiserver-v2/app/models/player_feedback.py#L8) (5 connections)
|
||||
- [.check_quickconnect_code()](file:///home/scheianu/digiserver-v2/app/models/player.py#L106) (5 connections)
|
||||
- [player.py](file:///home/scheianu/digiserver-v2/app/models/player.py#L1) (4 connections)
|
||||
- [Main Blueprint - Dashboard and Home Routes](file:///home/scheianu/digiserver-v2/app/blueprints/main.py#L1) (4 connections)
|
||||
- [Health check endpoint](file:///home/scheianu/digiserver-v2/app/blueprints/main.py#L50) (4 connections)
|
||||
- [authenticate()](file:///home/scheianu/digiserver-v2/app/models/player.py#L121) (4 connections)
|
||||
- [Content model for media files.](file:///home/scheianu/digiserver-v2/app/models/content.py#L1) (3 connections)
|
||||
- [main.py](file:///home/scheianu/digiserver-v2/app/blueprints/main.py#L1) (3 connections)
|
||||
- [.check_password()](file:///home/scheianu/digiserver-v2/app/models/player.py#L85) (3 connections)
|
||||
- [.is_image()](file:///home/scheianu/digiserver-v2/app/models/content.py#L82) (2 connections)
|
||||
- [.is_pdf()](file:///home/scheianu/digiserver-v2/app/models/content.py#L90) (2 connections)
|
||||
- [.is_video()](file:///home/scheianu/digiserver-v2/app/models/content.py#L86) (2 connections)
|
||||
- [.is_weblink()](file:///home/scheianu/digiserver-v2/app/models/content.py#L94) (2 connections)
|
||||
- [.__repr__()](file:///home/scheianu/digiserver-v2/app/models/content.py#L44) (2 connections)
|
||||
- [health()](file:///home/scheianu/digiserver-v2/app/blueprints/main.py#L49) (2 connections)
|
||||
- [.__repr__()](file:///home/scheianu/digiserver-v2/app/models/player_feedback.py#L37) (2 connections)
|
||||
- [.__repr__()](file:///home/scheianu/digiserver-v2/app/models/player.py#L55) (2 connections)
|
||||
- [.__repr__()](file:///home/scheianu/digiserver-v2/app/models/playlist.py#L48) (2 connections)
|
||||
- [String representation of Playlist.](file:///home/scheianu/digiserver-v2/app/models/playlist.py#L49) (2 connections)
|
||||
- [current_media_path()](file:///home/scheianu/digiserver-v2/app/models/content.py#L78) (1 connections)
|
||||
- *... and 29 more nodes in this community*
|
||||
|
||||
## Class Diagram
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class Content {
|
||||
+content.py()
|
||||
+.__repr__()
|
||||
+.is_image()
|
||||
+.is_video()
|
||||
+.is_pdf()
|
||||
+.is_weblink()
|
||||
}
|
||||
class PlayerFeedback {
|
||||
+player_feedback.py()
|
||||
+.__repr__()
|
||||
}
|
||||
class Player {
|
||||
+player.py()
|
||||
+.__repr__()
|
||||
+.update_status()
|
||||
+.set_password()
|
||||
+.check_password()
|
||||
+.set_quickconnect_code()
|
||||
+.check_quickconnect_code()
|
||||
}
|
||||
```
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/__init__.py](file:///home/scheianu/digiserver-v2/app/blueprints/__init__.py)
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/main.py](file:///home/scheianu/digiserver-v2/app/blueprints/main.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/__init__.py](file:///home/scheianu/digiserver-v2/app/models/__init__.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/content.py](file:///home/scheianu/digiserver-v2/app/models/content.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/player.py](file:///home/scheianu/digiserver-v2/app/models/player.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/player_feedback.py](file:///home/scheianu/digiserver-v2/app/models/player_feedback.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/playlist.py](file:///home/scheianu/digiserver-v2/app/models/playlist.py)
|
||||
- [/home/scheianu/digiserver-v2/app/utils/__init__.py](file:///home/scheianu/digiserver-v2/app/utils/__init__.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 100 (68%)
|
||||
- INFERRED: 47 (32%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,66 @@
|
||||
# Community 6
|
||||
|
||||
> 51 nodes · cohesion 0.05
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [HTTPSConfig](file:///home/scheianu/digiserver-v2/app/models/https_config.py#L8) (30 connections)
|
||||
- [players.py](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L1) (18 connections)
|
||||
- [add_player()](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L56) (10 connections)
|
||||
- [manage_player()](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L328) (6 connections)
|
||||
- [.set_password()](file:///home/scheianu/digiserver-v2/app/models/player.py#L76) (4 connections)
|
||||
- [.set_quickconnect_code()](file:///home/scheianu/digiserver-v2/app/models/player.py#L97) (4 connections)
|
||||
- [get_player_playlist()](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L545) (4 connections)
|
||||
- [player_fullscreen()](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L522) (4 connections)
|
||||
- [Players blueprint for player management and display.](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L1) (4 connections)
|
||||
- [Regenerate authentication code for a player.](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L299) (4 connections)
|
||||
- [Redirect to manage player page (combined view).](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L322) (4 connections)
|
||||
- [Manage player - edit credentials, assign playlist, view logs.](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L329) (4 connections)
|
||||
- [Display all edited media files from this player.](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L446) (4 connections)
|
||||
- [Display a tabular report of all edited media from this player.](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L490) (4 connections)
|
||||
- [Display player fullscreen view (no authentication required for players).](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L523) (4 connections)
|
||||
- [Get playlist for a player based on their assigned playlist. Args:](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L546) (4 connections)
|
||||
- [Add a new player with optional SSH deployment.](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L57) (4 connections)
|
||||
- [Legacy endpoint - Content reordering now handled in playlist management.](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L591) (4 connections)
|
||||
- [Delete multiple players at once.](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L601) (4 connections)
|
||||
- [Assign multiple players to a playlist.](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L633) (4 connections)
|
||||
- [Return deployment status for all players (used by polling JS).](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L670) (4 connections)
|
||||
- [Reorder items in player's playlist.](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L694) (4 connections)
|
||||
- [Remove content from player's playlist.](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L747) (4 connections)
|
||||
- [detect_server_ip()](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py#L208) (4 connections)
|
||||
- [bulk_assign_playlist()](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L632) (3 connections)
|
||||
- *... and 26 more nodes in this community*
|
||||
|
||||
## Class Diagram
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class HTTPSConfig {
|
||||
+https_config.py()
|
||||
+.__repr__()
|
||||
+.to_dict()
|
||||
}
|
||||
```
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/players.py](file:///home/scheianu/digiserver-v2/app/blueprints/players.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/https_config.py](file:///home/scheianu/digiserver-v2/app/models/https_config.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/player.py](file:///home/scheianu/digiserver-v2/app/models/player.py)
|
||||
- [/home/scheianu/digiserver-v2/app/utils/caddy_manager.py](file:///home/scheianu/digiserver-v2/app/utils/caddy_manager.py)
|
||||
- [/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py](file:///home/scheianu/digiserver-v2/app/utils/ssh_deploy.py)
|
||||
- [/home/scheianu/digiserver-v2/migrations/add_https_config_table.py](file:///home/scheianu/digiserver-v2/migrations/add_https_config_table.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 87 (45%)
|
||||
- INFERRED: 107 (55%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,78 @@
|
||||
# Community 7
|
||||
|
||||
> 42 nodes · cohesion 0.06
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [NginxConfigReader](file:///home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py#L7) (13 connections)
|
||||
- [Group](file:///home/scheianu/digiserver-v2/app/models/group.py#L15) (11 connections)
|
||||
- [.get_status()](file:///home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py#L24) (11 connections)
|
||||
- [list()](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L19) (9 connections)
|
||||
- [delete_media()](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L71) (4 connections)
|
||||
- [get_nginx_status()](file:///home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py#L117) (4 connections)
|
||||
- [._extract_client_max_body_size()](file:///home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py#L102) (4 connections)
|
||||
- [._extract_http_ports()](file:///home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py#L53) (4 connections)
|
||||
- [._extract_https_ports()](file:///home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py#L61) (4 connections)
|
||||
- [._extract_ssl_protocols()](file:///home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py#L92) (4 connections)
|
||||
- [._extract_upstream_servers()](file:///home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py#L69) (4 connections)
|
||||
- [Display list of all players.](file:///home/scheianu/digiserver-v2/app/blueprints/players.py#L20) (4 connections)
|
||||
- [create_group()](file:///home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py#L38) (3 connections)
|
||||
- [group.py](file:///home/scheianu/digiserver-v2/app/models/group.py#L1) (3 connections)
|
||||
- [nginx_config_reader.py](file:///home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py#L1) (3 connections)
|
||||
- [._check_gzip_enabled()](file:///home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py#L110) (3 connections)
|
||||
- [._check_ssl_enabled()](file:///home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py#L47) (3 connections)
|
||||
- [._extract_server_names()](file:///home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py#L80) (3 connections)
|
||||
- [Delete a media file and remove it from all playlists.](file:///home/scheianu/digiserver-v2/app/blueprints/content.py#L72) (2 connections)
|
||||
- [.add_player()](file:///home/scheianu/digiserver-v2/app/models/group.py#L49) (2 connections)
|
||||
- [.remove_player()](file:///home/scheianu/digiserver-v2/app/models/group.py#L58) (2 connections)
|
||||
- [.__repr__()](file:///home/scheianu/digiserver-v2/app/models/group.py#L38) (2 connections)
|
||||
- [.__init__()](file:///home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py#L10) (2 connections)
|
||||
- [content_count()](file:///home/scheianu/digiserver-v2/app/models/group.py#L45) (1 connections)
|
||||
- [Group model for organizing players and content.](file:///home/scheianu/digiserver-v2/app/models/group.py#L1) (1 connections)
|
||||
- *... and 17 more nodes in this community*
|
||||
|
||||
## Class Diagram
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class Group {
|
||||
+group.py()
|
||||
+.__repr__()
|
||||
+.add_player()
|
||||
+.remove_player()
|
||||
}
|
||||
class NginxConfigReader {
|
||||
+nginx_config_reader.py()
|
||||
+.__init__()
|
||||
+.get_status()
|
||||
+._check_ssl_enabled()
|
||||
+._extract_http_ports()
|
||||
+._extract_https_ports()
|
||||
+._extract_upstream_servers()
|
||||
+._extract_server_names()
|
||||
+._extract_ssl_protocols()
|
||||
+._extract_client_max_body_size()
|
||||
}
|
||||
```
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/content.py](file:///home/scheianu/digiserver-v2/app/blueprints/content.py)
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/players.py](file:///home/scheianu/digiserver-v2/app/blueprints/players.py)
|
||||
- [/home/scheianu/digiserver-v2/app/models/group.py](file:///home/scheianu/digiserver-v2/app/models/group.py)
|
||||
- [/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py](file:///home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py)
|
||||
- [/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py](file:///home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 97 (79%)
|
||||
- INFERRED: 26 (21%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,57 @@
|
||||
# Community 8
|
||||
|
||||
> 24 nodes · cohesion 0.23
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [test_edit_media_api.py](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L1) (14 connections)
|
||||
- [main()](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L309) (13 connections)
|
||||
- [print_section()](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L25) (10 connections)
|
||||
- [print_error()](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L34) (9 connections)
|
||||
- [get_player_auth_code()](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L97) (8 connections)
|
||||
- [get_sample_content()](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L137) (8 connections)
|
||||
- [print_success()](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L31) (8 connections)
|
||||
- [test_endpoint_exists()](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L65) (8 connections)
|
||||
- [check_database_integrity()](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L271) (7 connections)
|
||||
- [test_authentication()](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L171) (7 connections)
|
||||
- [test_full_upload()](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L202) (7 connections)
|
||||
- [print_info()](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L37) (6 connections)
|
||||
- [print_warning()](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L40) (6 connections)
|
||||
- [test_server_health()](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L43) (6 connections)
|
||||
- [Colors](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L14) (1 connections)
|
||||
- [Get a sample content file to use for testing](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L138) (1 connections)
|
||||
- [Test if authentication works](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L172) (1 connections)
|
||||
- [Test a full media upload](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L203) (1 connections)
|
||||
- [Print a section header](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L26) (1 connections)
|
||||
- [Check database tables and records](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L272) (1 connections)
|
||||
- [Run all diagnostic tests](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L310) (1 connections)
|
||||
- [Test if server is accessible](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L44) (1 connections)
|
||||
- [Test if the endpoint is available](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L66) (1 connections)
|
||||
- [Get a valid player auth code from the database](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py#L98) (1 connections)
|
||||
|
||||
## Class Diagram
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class Colors {
|
||||
+test_edit_media_api.py()
|
||||
}
|
||||
```
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py](file:///home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 126 (99%)
|
||||
- INFERRED: 1 (1%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,46 @@
|
||||
# Community 9
|
||||
|
||||
> 21 nodes · cohesion 0.11
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- [uploads.py](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L1) (9 connections)
|
||||
- [upload_content()](file:///home/scheianu/digiserver-v2/app/blueprints/content_old.py#L86) (5 connections)
|
||||
- [process_video_file()](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L94) (5 connections)
|
||||
- [set_upload_progress()](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L33) (5 connections)
|
||||
- [process_pdf_file()](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L176) (4 connections)
|
||||
- [upload_progress_status()](file:///home/scheianu/digiserver-v2/app/blueprints/content_old.py#L374) (3 connections)
|
||||
- [delete_file()](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L224) (3 connections)
|
||||
- [get_upload_progress()](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L17) (3 connections)
|
||||
- [save_uploaded_file()](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L60) (3 connections)
|
||||
- [clear_upload_progress()](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L50) (2 connections)
|
||||
- [get_file_size()](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L209) (2 connections)
|
||||
- [Get upload progress for a specific upload.](file:///home/scheianu/digiserver-v2/app/blueprints/content_old.py#L375) (1 connections)
|
||||
- [Upload utilities for handling file uploads and processing.](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L1) (1 connections)
|
||||
- [Process PDF file (convert to images for display). Args: filepat](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L177) (1 connections)
|
||||
- [Get upload progress for a specific upload ID. Args: upload_id:](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L18) (1 connections)
|
||||
- [Get file size in bytes. Args: filepath: Path to file](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L210) (1 connections)
|
||||
- [Delete a file from disk. Args: filepath: Path to file](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L225) (1 connections)
|
||||
- [Set upload progress for a specific upload ID. Args: upload_id:](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L35) (1 connections)
|
||||
- [Clear upload progress for a specific upload ID. Args: upload_id](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L51) (1 connections)
|
||||
- [Save an uploaded file to the upload folder. Args: file: FileSto](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L62) (1 connections)
|
||||
- [Process video file for optimization (H.264, 30fps, max 1080p). Args:](file:///home/scheianu/digiserver-v2/app/utils/uploads.py#L95) (1 connections)
|
||||
|
||||
## Relationships
|
||||
|
||||
- No strong cross-community connections detected
|
||||
|
||||
## Source Files
|
||||
|
||||
- [/home/scheianu/digiserver-v2/app/blueprints/content_old.py](file:///home/scheianu/digiserver-v2/app/blueprints/content_old.py)
|
||||
- [/home/scheianu/digiserver-v2/app/utils/uploads.py](file:///home/scheianu/digiserver-v2/app/utils/uploads.py)
|
||||
|
||||
## Audit Trail
|
||||
|
||||
- EXTRACTED: 42 (78%)
|
||||
- INFERRED: 12 (22%)
|
||||
- AMBIGUOUS: 0 (0%)
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,215 @@
|
||||
# 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.*
|
||||
@@ -0,0 +1,232 @@
|
||||
# HTTPSConfig
|
||||
|
||||
> God node · 30 connections · [/home/scheianu/digiserver-v2/app/models/https_config.py](file:///home/scheianu/digiserver-v2/app/models/https_config.py#L8)
|
||||
|
||||
## Call Trace Diagram
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant P0 as HTTPSConfig
|
||||
participant P1 as CaddyConfigGenerator
|
||||
participant P2 as Admin blueprint for user management and system settings.
|
||||
participant P3 as PlayerEdit
|
||||
participant P4 as PlayerUser
|
||||
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 Models package for digiserver-v2.
|
||||
participant P33 as Players blueprint for player management and display.
|
||||
participant P34 as Display list of all players.
|
||||
participant P35 as Add a new player with optional SSH deployment.
|
||||
participant P36 as Regenerate authentication code for a player.
|
||||
participant P37 as Redirect to manage player page (combined view).
|
||||
participant P38 as Manage player - edit credentials, assign playlist, view logs.
|
||||
participant P39 as Display all edited media files from this player.
|
||||
participant P40 as Display a tabular report of all edited media from this player.
|
||||
participant P41 as Display player fullscreen view (no authentication required for players).
|
||||
participant P42 as Get playlist for a player based on their assigned playlist. Args:
|
||||
participant P43 as Legacy endpoint - Content reordering now handled in playlist management.
|
||||
participant P44 as Delete multiple players at once.
|
||||
participant P45 as Assign multiple players to a playlist.
|
||||
participant P46 as Return deployment status for all players (used by polling JS).
|
||||
participant P47 as Reorder items in player's playlist.
|
||||
participant P48 as Remove content from player's playlist.
|
||||
participant P49 as Add https_config table for HTTPS configuration management.
|
||||
participant P50 as Caddy configuration generator and manager.
|
||||
participant P51 as Generate Caddyfile configuration based on HTTPSConfig.
|
||||
participant P52 as Generate a complete Caddyfile. Behaviour: - HTTPS disabled / no
|
||||
participant P53 as Write Caddyfile to disk. The default path is /etc/caddy/Caddyfile — the
|
||||
participant P54 as Push the current Caddyfile to Caddy via its admin API (/load). Caddy ap
|
||||
participant P55 as Write Caddyfile to disk. Args: caddyfile_content: C
|
||||
participant P56 as Reload Caddy configuration without restart. Note: Caddy monitor
|
||||
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
|
||||
P1->>+ P5: uses
|
||||
P5-->>- P1: return
|
||||
P5->>+ P3: uses
|
||||
P3-->>- P5: return
|
||||
P5->>+ P4: uses
|
||||
P4-->>- P5: return
|
||||
P5->>+ P1: uses
|
||||
P1-->>- P5: return
|
||||
P1->>+ P6: uses
|
||||
P6-->>- P1: return
|
||||
P6->>+ P3: uses
|
||||
P3-->>- P6: return
|
||||
P6->>+ P4: uses
|
||||
P4-->>- P6: return
|
||||
P6->>+ P1: uses
|
||||
P1-->>- P6: return
|
||||
P1->>+ P7: uses
|
||||
P7-->>- P1: return
|
||||
P1->>+ P8: uses
|
||||
P8-->>- P1: return
|
||||
P1->>+ P9: uses
|
||||
P9-->>- P1: return
|
||||
P1->>+ P10: uses
|
||||
P10-->>- P1: return
|
||||
P1->>+ P11: uses
|
||||
P11-->>- P1: 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
|
||||
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
|
||||
```
|
||||
|
||||
## Connections by Relation
|
||||
|
||||
### contains
|
||||
- [[https_config.py]] `EXTRACTED`
|
||||
|
||||
### method
|
||||
- [[.__repr__()]] `EXTRACTED`
|
||||
- [[.to_dict()]] `EXTRACTED`
|
||||
|
||||
### rationale_for
|
||||
- [[HTTPS configuration model for managing secure connections. Attributes:]] `EXTRACTED`
|
||||
|
||||
### uses
|
||||
- [[CaddyConfigGenerator]] `INFERRED`
|
||||
- [[Models package for digiserver-v2.]] `INFERRED`
|
||||
- [[Players blueprint for player management and display.]] `INFERRED`
|
||||
- [[Display list of all players.]] `INFERRED`
|
||||
- [[Add a new player with optional SSH deployment.]] `INFERRED`
|
||||
- [[Regenerate authentication code for a player.]] `INFERRED`
|
||||
- [[Redirect to manage player page (combined view).]] `INFERRED`
|
||||
- [[Manage player - edit credentials, assign playlist, view logs.]] `INFERRED`
|
||||
- [[Display all edited media files from this player.]] `INFERRED`
|
||||
- [[Display a tabular report of all edited media from this player.]] `INFERRED`
|
||||
- [[Display player fullscreen view (no authentication required for players).]] `INFERRED`
|
||||
- [[Get playlist for a player based on their assigned playlist. Args:]] `INFERRED`
|
||||
- [[Legacy endpoint - Content reordering now handled in playlist management.]] `INFERRED`
|
||||
- [[Delete multiple players at once.]] `INFERRED`
|
||||
- [[Assign multiple players to a playlist.]] `INFERRED`
|
||||
- [[Return deployment status for all players (used by polling JS).]] `INFERRED`
|
||||
- [[Reorder items in player's playlist.]] `INFERRED`
|
||||
- [[Remove content from player's playlist.]] `INFERRED`
|
||||
- [[Add https_config table for HTTPS configuration management.]] `INFERRED`
|
||||
- [[Caddy configuration generator and manager.]] `INFERRED`
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,369 @@
|
||||
# Models package for digiserver-v2.
|
||||
|
||||
> God node · 13 connections · [/home/scheianu/digiserver-v2/app/models/__init__.py](file:///home/scheianu/digiserver-v2/app/models/__init__.py#L1)
|
||||
|
||||
## Call Trace Diagram
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant P0 as Models package for digiserver-v2.
|
||||
participant P1 as PlayerEdit
|
||||
participant P2 as receive_edited_media()
|
||||
participant P3 as log_action()
|
||||
participant P4 as PlayerUser
|
||||
participant P5 as Group
|
||||
participant P6 as Admin blueprint for user management and system settings.
|
||||
participant P7 as CaddyConfigGenerator
|
||||
participant P8 as Decorator to require admin role for route access.
|
||||
participant P9 as Display admin panel with system overview.
|
||||
participant P10 as Create a new user account.
|
||||
participant P11 as Change user role between user and admin.
|
||||
participant P12 as Delete a user account.
|
||||
participant P13 as Change application theme.
|
||||
participant P14 as Upload custom logo for application.
|
||||
participant P15 as Clear all server logs.
|
||||
participant P16 as Display user management page.
|
||||
participant P17 as Get system information as JSON.
|
||||
participant P18 as Display leftover media files not assigned to any playlist.
|
||||
participant P19 as Delete all leftover images that are not part of any playlist
|
||||
participant P20 as Delete all leftover videos that are not part of any playlist
|
||||
participant P21 as Delete a single leftover content file
|
||||
participant P22 as Show system dependencies status.
|
||||
participant P23 as Install LibreOffice for PPTX conversion.
|
||||
participant P24 as Install Emoji Fonts for better UI display.
|
||||
participant P25 as Logo customization page.
|
||||
participant P26 as Upload login page logo.
|
||||
participant P27 as Display and manage users that edit images on players.
|
||||
participant P28 as Update editing user name.
|
||||
participant P29 as Display HTTPS configuration management page.
|
||||
participant P30 as Update HTTPS configuration.
|
||||
participant P31 as Get current HTTPS configuration status as JSON.
|
||||
participant P32 as Path to the persisted player-build settings (in the instance folder).
|
||||
participant P33 as Display the 'Build player files for deployment' admin page.
|
||||
participant P34 as Build/refresh the staged player code and/or write its base config.
|
||||
participant P35 as API blueprint for REST endpoints and player communication.
|
||||
participant P36 as Rate limiting decorator. Args: max_requests: Maximum number of
|
||||
participant P37 as Decorator to verify player authentication via auth code.
|
||||
participant P38 as API health check endpoint.
|
||||
participant P39 as Get server SSL certificate.
|
||||
participant P40 as Authenticate a player and return auth code and configuration. Request J
|
||||
participant P41 as Verify an auth code and return player information. Request JSON:
|
||||
participant P42 as Get playlist using hostname and quickconnect code (Kivy player compatible).
|
||||
participant P43 as Get playlist for a specific player. Requires player authentication via
|
||||
participant P44 as Get current playlist version for a player. Lightweight endpoint for pla
|
||||
participant P45 as Get cached playlist for a player based on assigned playlist.
|
||||
participant P46 as Receive feedback/status updates from players (Kivy player compatible).
|
||||
participant P47 as Get current status of a player (public endpoint for monitoring).
|
||||
participant P48 as Get progress of a file upload.
|
||||
participant P49 as Get system information and statistics.
|
||||
participant P50 as List all content with basic information.
|
||||
participant P51 as Get recent server logs. Query parameters: limit: Number of logs
|
||||
participant P52 as Receive edited media from player. Expected multipart/form-data: - i
|
||||
participant P53 as Test SSH connection to a remote host. Request JSON: hostname: T
|
||||
participant P54 as Deploy player code to a remote host via SSH. Request JSON: host
|
||||
participant P55 as Handle 404 errors in API.
|
||||
participant P56 as Handle 405 errors in API.
|
||||
participant P57 as Handle 500 errors in API.
|
||||
participant P58 as Players blueprint for player management and display.
|
||||
participant P59 as Display list of all players.
|
||||
participant P60 as Add a new player with optional SSH deployment.
|
||||
participant P61 as Regenerate authentication code for a player.
|
||||
participant P62 as Redirect to manage player page (combined view).
|
||||
participant P63 as Manage player - edit credentials, assign playlist, view logs.
|
||||
participant P64 as Display all edited media files from this player.
|
||||
participant P65 as Display a tabular report of all edited media from this player.
|
||||
participant P66 as Display player fullscreen view (no authentication required for players).
|
||||
participant P67 as Get playlist for a player based on their assigned playlist. Args:
|
||||
participant P68 as Legacy endpoint - Content reordering now handled in playlist management.
|
||||
participant P69 as Delete multiple players at once.
|
||||
participant P70 as Assign multiple players to a playlist.
|
||||
participant P71 as Return deployment status for all players (used by polling JS).
|
||||
participant P72 as Reorder items in player's playlist.
|
||||
participant P73 as Remove content from player's playlist.
|
||||
participant P74 as Content model for media files.
|
||||
participant P75 as Main playlist management page.
|
||||
participant P76 as View all media files in the library.
|
||||
participant P77 as Delete a media file and remove it from all playlists.
|
||||
participant P78 as Create a new playlist.
|
||||
participant P79 as Manage content in a specific playlist.
|
||||
participant P80 as Add content to playlist.
|
||||
participant P81 as Create a web link content item from the Upload Media page. Optionally adds
|
||||
participant P82 as Create a web link content item and add it to the playlist.
|
||||
participant P83 as Remove content from playlist.
|
||||
participant P84 as Remove multiple content items from playlist.
|
||||
participant P85 as Reorder content in playlist.
|
||||
participant P86 as Update content muted setting in playlist.
|
||||
participant P87 as Update content edit_on_player_enabled setting in playlist.
|
||||
participant P88 as Update content duration in playlist.
|
||||
participant P89 as Display upload media page.
|
||||
participant P90 as Process and optimize image files.
|
||||
participant P91 as Process and optimize video files for Raspberry Pi playback.
|
||||
participant P92 as Process PDF files by converting each page to PNG images.
|
||||
participant P93 as Process large files (PDF, PPTX, Video) in background thread.
|
||||
participant P94 as Process PowerPoint presentation files by converting slides to images.
|
||||
participant P95 as Create a Full HD (1920x1080) image from PIL Image object, centered on white back
|
||||
participant P96 as Resize image to exactly Full HD (1920x1080) maintaining aspect ratio with center
|
||||
participant P97 as Optimize and resize image file to Full HD (1920x1080) maintaining aspect ratio.
|
||||
participant P98 as Upload media files to library with type-specific processing.
|
||||
participant P99 as Assign a player to a playlist.
|
||||
participant P100 as Playlist
|
||||
participant P101 as HTTPSConfig
|
||||
participant P102 as Content
|
||||
participant P103 as User
|
||||
participant P104 as Player
|
||||
participant P105 as ServerLog
|
||||
participant P106 as PlayerFeedback
|
||||
P0->>+ P1: uses
|
||||
P1-->>- P0: return
|
||||
P1->>+ P0: uses
|
||||
P0-->>- P1: return
|
||||
P1->>+ P2: calls
|
||||
P2-->>- P1: return
|
||||
P2->>+ P3: calls
|
||||
P3-->>- P2: return
|
||||
P2->>+ P1: calls
|
||||
P1-->>- P2: return
|
||||
P2->>+ P4: calls
|
||||
P4-->>- P2: return
|
||||
P2->>+ P5: calls
|
||||
P5-->>- P2: return
|
||||
P1->>+ P6: uses
|
||||
P6-->>- P1: return
|
||||
P6->>+ P1: uses
|
||||
P1-->>- P6: return
|
||||
P6->>+ P4: uses
|
||||
P4-->>- P6: return
|
||||
P6->>+ P7: uses
|
||||
P7-->>- P6: return
|
||||
P1->>+ P8: uses
|
||||
P8-->>- P1: return
|
||||
P8->>+ P1: uses
|
||||
P1-->>- P8: return
|
||||
P8->>+ P4: uses
|
||||
P4-->>- P8: return
|
||||
P8->>+ P7: uses
|
||||
P7-->>- P8: return
|
||||
P1->>+ P9: uses
|
||||
P9-->>- P1: return
|
||||
P1->>+ P10: uses
|
||||
P10-->>- P1: return
|
||||
P1->>+ P11: uses
|
||||
P11-->>- P1: 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: uses
|
||||
P36-->>- P1: return
|
||||
P1->>+ P37: uses
|
||||
P37-->>- P1: return
|
||||
P1->>+ P38: uses
|
||||
P38-->>- P1: return
|
||||
P1->>+ P39: uses
|
||||
P39-->>- P1: return
|
||||
P1->>+ P40: uses
|
||||
P40-->>- P1: return
|
||||
P1->>+ P41: uses
|
||||
P41-->>- P1: return
|
||||
P1->>+ P42: uses
|
||||
P42-->>- P1: return
|
||||
P1->>+ P43: uses
|
||||
P43-->>- P1: return
|
||||
P1->>+ P44: uses
|
||||
P44-->>- P1: return
|
||||
P1->>+ P45: uses
|
||||
P45-->>- P1: return
|
||||
P1->>+ P46: uses
|
||||
P46-->>- P1: return
|
||||
P1->>+ P47: uses
|
||||
P47-->>- P1: return
|
||||
P1->>+ P48: uses
|
||||
P48-->>- P1: return
|
||||
P1->>+ P49: uses
|
||||
P49-->>- P1: return
|
||||
P1->>+ P50: uses
|
||||
P50-->>- P1: return
|
||||
P1->>+ P51: uses
|
||||
P51-->>- P1: return
|
||||
P1->>+ P52: uses
|
||||
P52-->>- P1: return
|
||||
P1->>+ P53: uses
|
||||
P53-->>- P1: return
|
||||
P1->>+ P54: uses
|
||||
P54-->>- P1: return
|
||||
P1->>+ P55: uses
|
||||
P55-->>- P1: return
|
||||
P1->>+ P56: uses
|
||||
P56-->>- P1: return
|
||||
P1->>+ P57: uses
|
||||
P57-->>- P1: return
|
||||
P1->>+ P58: uses
|
||||
P58-->>- P1: return
|
||||
P1->>+ P59: uses
|
||||
P59-->>- P1: return
|
||||
P1->>+ P60: uses
|
||||
P60-->>- P1: return
|
||||
P1->>+ P61: uses
|
||||
P61-->>- P1: return
|
||||
P1->>+ P62: uses
|
||||
P62-->>- P1: return
|
||||
P1->>+ P63: uses
|
||||
P63-->>- P1: return
|
||||
P1->>+ P64: uses
|
||||
P64-->>- P1: return
|
||||
P1->>+ P65: uses
|
||||
P65-->>- P1: return
|
||||
P1->>+ P66: uses
|
||||
P66-->>- P1: return
|
||||
P1->>+ P67: uses
|
||||
P67-->>- P1: return
|
||||
P1->>+ P68: uses
|
||||
P68-->>- P1: return
|
||||
P1->>+ P69: uses
|
||||
P69-->>- P1: return
|
||||
P1->>+ P70: uses
|
||||
P70-->>- P1: return
|
||||
P1->>+ P71: uses
|
||||
P71-->>- P1: 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
|
||||
P1->>+ P80: uses
|
||||
P80-->>- P1: return
|
||||
P1->>+ P81: uses
|
||||
P81-->>- P1: return
|
||||
P1->>+ P82: uses
|
||||
P82-->>- P1: return
|
||||
P1->>+ P83: uses
|
||||
P83-->>- P1: return
|
||||
P1->>+ P84: uses
|
||||
P84-->>- P1: return
|
||||
P1->>+ P85: uses
|
||||
P85-->>- P1: return
|
||||
P1->>+ P86: uses
|
||||
P86-->>- P1: return
|
||||
P1->>+ P87: uses
|
||||
P87-->>- P1: return
|
||||
P1->>+ P88: uses
|
||||
P88-->>- P1: return
|
||||
P1->>+ P89: uses
|
||||
P89-->>- P1: return
|
||||
P1->>+ P90: uses
|
||||
P90-->>- P1: return
|
||||
P1->>+ P91: uses
|
||||
P91-->>- P1: return
|
||||
P1->>+ P92: uses
|
||||
P92-->>- P1: return
|
||||
P1->>+ P93: uses
|
||||
P93-->>- P1: return
|
||||
P1->>+ P94: uses
|
||||
P94-->>- P1: return
|
||||
P1->>+ P95: uses
|
||||
P95-->>- P1: return
|
||||
P1->>+ P96: uses
|
||||
P96-->>- P1: return
|
||||
P1->>+ P97: uses
|
||||
P97-->>- P1: return
|
||||
P1->>+ P98: uses
|
||||
P98-->>- P1: return
|
||||
P1->>+ P99: uses
|
||||
P99-->>- P1: return
|
||||
P0->>+ P4: uses
|
||||
P4-->>- 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
|
||||
P0->>+ P5: uses
|
||||
P5-->>- P0: return
|
||||
P0->>+ P106: uses
|
||||
P106-->>- P0: return
|
||||
```
|
||||
|
||||
## Connections by Relation
|
||||
|
||||
### rationale_for
|
||||
- [[__init__.py]] `EXTRACTED`
|
||||
- [[__init__.py]] `EXTRACTED`
|
||||
- [[__init__.py]] `EXTRACTED`
|
||||
|
||||
### uses
|
||||
- [[PlayerEdit]] `INFERRED`
|
||||
- [[PlayerUser]] `INFERRED`
|
||||
- [[Playlist]] `INFERRED`
|
||||
- [[HTTPSConfig]] `INFERRED`
|
||||
- [[Content]] `INFERRED`
|
||||
- [[User]] `INFERRED`
|
||||
- [[Player]] `INFERRED`
|
||||
- [[ServerLog]] `INFERRED`
|
||||
- [[Group]] `INFERRED`
|
||||
- [[PlayerFeedback]] `INFERRED`
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -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.*
|
||||
@@ -0,0 +1,506 @@
|
||||
# PlayerUser
|
||||
|
||||
> God node · 74 connections · [/home/scheianu/digiserver-v2/app/models/player_user.py](file:///home/scheianu/digiserver-v2/app/models/player_user.py#L7)
|
||||
|
||||
## Call Trace Diagram
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant P0 as PlayerUser
|
||||
participant P1 as Models package for digiserver-v2.
|
||||
participant P2 as PlayerEdit
|
||||
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 Content model for media files.
|
||||
participant P72 as Main playlist management page.
|
||||
participant P73 as View all media files in the library.
|
||||
participant P74 as Delete a media file and remove it from all playlists.
|
||||
participant P75 as Create a new playlist.
|
||||
participant P76 as Manage content in a specific playlist.
|
||||
participant P77 as Add content to playlist.
|
||||
participant P78 as Create a web link content item from the Upload Media page. Optionally adds
|
||||
participant P79 as Create a web link content item and add it to the playlist.
|
||||
participant P80 as Remove content from playlist.
|
||||
participant P81 as Remove multiple content items from playlist.
|
||||
participant P82 as Reorder content in playlist.
|
||||
participant P83 as Update content muted setting in playlist.
|
||||
participant P84 as Update content edit_on_player_enabled setting in playlist.
|
||||
participant P85 as Update content duration in playlist.
|
||||
participant P86 as Display upload media page.
|
||||
participant P87 as Process and optimize image files.
|
||||
participant P88 as Process and optimize video files for Raspberry Pi playback.
|
||||
participant P89 as Process PDF files by converting each page to PNG images.
|
||||
participant P90 as Process large files (PDF, PPTX, Video) in background thread.
|
||||
participant P91 as Process PowerPoint presentation files by converting slides to images.
|
||||
participant P92 as Create a Full HD (1920x1080) image from PIL Image object, centered on white back
|
||||
participant P93 as Resize image to exactly Full HD (1920x1080) maintaining aspect ratio with center
|
||||
participant P94 as Optimize and resize image file to Full HD (1920x1080) maintaining aspect ratio.
|
||||
participant P95 as Upload media files to library with type-specific processing.
|
||||
participant P96 as Assign a player to a playlist.
|
||||
participant P97 as Playlist
|
||||
participant P98 as HTTPSConfig
|
||||
participant P99 as Content
|
||||
participant P100 as User
|
||||
participant P101 as Player
|
||||
participant P102 as ServerLog
|
||||
participant P103 as Group
|
||||
participant P104 as PlayerFeedback
|
||||
participant P105 as Add player_user table for user code mappings.
|
||||
P0->>+ P1: uses
|
||||
P1-->>- P0: 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
|
||||
P2->>+ P72: uses
|
||||
P72-->>- P2: return
|
||||
P2->>+ P73: uses
|
||||
P73-->>- P2: return
|
||||
P2->>+ P74: uses
|
||||
P74-->>- P2: return
|
||||
P2->>+ P75: uses
|
||||
P75-->>- P2: return
|
||||
P2->>+ P76: uses
|
||||
P76-->>- P2: return
|
||||
P2->>+ P77: uses
|
||||
P77-->>- P2: return
|
||||
P2->>+ P78: uses
|
||||
P78-->>- P2: return
|
||||
P2->>+ P79: uses
|
||||
P79-->>- P2: return
|
||||
P2->>+ P80: uses
|
||||
P80-->>- P2: return
|
||||
P2->>+ P81: uses
|
||||
P81-->>- P2: return
|
||||
P2->>+ P82: uses
|
||||
P82-->>- P2: return
|
||||
P2->>+ P83: uses
|
||||
P83-->>- P2: return
|
||||
P2->>+ P84: uses
|
||||
P84-->>- P2: return
|
||||
P2->>+ P85: uses
|
||||
P85-->>- P2: return
|
||||
P2->>+ P86: uses
|
||||
P86-->>- P2: return
|
||||
P2->>+ P87: uses
|
||||
P87-->>- P2: return
|
||||
P2->>+ P88: uses
|
||||
P88-->>- P2: return
|
||||
P2->>+ P89: uses
|
||||
P89-->>- P2: return
|
||||
P2->>+ P90: uses
|
||||
P90-->>- P2: return
|
||||
P2->>+ P91: uses
|
||||
P91-->>- P2: return
|
||||
P2->>+ P92: uses
|
||||
P92-->>- P2: return
|
||||
P2->>+ P93: uses
|
||||
P93-->>- P2: return
|
||||
P2->>+ P94: uses
|
||||
P94-->>- P2: return
|
||||
P2->>+ P95: uses
|
||||
P95-->>- P2: return
|
||||
P2->>+ P96: uses
|
||||
P96-->>- P2: return
|
||||
P1->>+ P0: uses
|
||||
P0-->>- P1: return
|
||||
P1->>+ P97: uses
|
||||
P97-->>- P1: return
|
||||
P1->>+ P98: uses
|
||||
P98-->>- P1: return
|
||||
P1->>+ P99: uses
|
||||
P99-->>- P1: return
|
||||
P1->>+ P100: uses
|
||||
P100-->>- P1: return
|
||||
P1->>+ P101: uses
|
||||
P101-->>- P1: return
|
||||
P1->>+ P102: uses
|
||||
P102-->>- P1: return
|
||||
P1->>+ P103: uses
|
||||
P103-->>- P1: return
|
||||
P1->>+ P104: uses
|
||||
P104-->>- 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->>+ P105: uses
|
||||
P105-->>- P0: return
|
||||
```
|
||||
|
||||
## Connections by Relation
|
||||
|
||||
### calls
|
||||
- [[receive_edited_media()]] `INFERRED`
|
||||
|
||||
### contains
|
||||
- [[player_user.py]] `EXTRACTED`
|
||||
|
||||
### method
|
||||
- [[.__repr__()]] `EXTRACTED`
|
||||
- [[.to_dict()]] `EXTRACTED`
|
||||
|
||||
### rationale_for
|
||||
- [[Player user model for managing user codes and names globally. Attribute]] `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.*
|
||||
@@ -0,0 +1,231 @@
|
||||
# Playlist
|
||||
|
||||
> God node · 33 connections · [/home/scheianu/digiserver-v2/app/models/playlist.py](file:///home/scheianu/digiserver-v2/app/models/playlist.py#L19)
|
||||
|
||||
## Call Trace Diagram
|
||||
|
||||
```mermaid
|
||||
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
|
||||
- [[create_playlist()]] `INFERRED`
|
||||
|
||||
### contains
|
||||
- [[playlist.py]] `EXTRACTED`
|
||||
|
||||
### method
|
||||
- [[.increment_version()]] `EXTRACTED`
|
||||
- [[.get_content_ordered()]] `EXTRACTED`
|
||||
- [[.__repr__()]] `EXTRACTED`
|
||||
|
||||
### rationale_for
|
||||
- [[Playlist model representing a collection of content. Attributes:]] `EXTRACTED`
|
||||
|
||||
### uses
|
||||
- [[Content]] `INFERRED`
|
||||
- [[Models package for digiserver-v2.]] `INFERRED`
|
||||
- [[API blueprint for REST endpoints and player communication.]] `INFERRED`
|
||||
- [[Rate limiting decorator. Args: max_requests: Maximum number of]] `INFERRED`
|
||||
- [[Decorator to verify player authentication via auth code.]] `INFERRED`
|
||||
- [[API health check endpoint.]] `INFERRED`
|
||||
- [[Get server SSL certificate.]] `INFERRED`
|
||||
- [[Authenticate a player and return auth code and configuration. Request J]] `INFERRED`
|
||||
- [[Verify an auth code and return player information. Request JSON:]] `INFERRED`
|
||||
- [[Get playlist using hostname and quickconnect code (Kivy player compatible).]] `INFERRED`
|
||||
- [[Get playlist for a specific player. Requires player authentication via]] `INFERRED`
|
||||
- [[Get current playlist version for a player. Lightweight endpoint for pla]] `INFERRED`
|
||||
- [[Get cached playlist for a player based on assigned playlist.]] `INFERRED`
|
||||
- [[Receive feedback/status updates from players (Kivy player compatible).]] `INFERRED`
|
||||
- [[Get current status of a player (public endpoint for monitoring).]] `INFERRED`
|
||||
- [[Get progress of a file upload.]] `INFERRED`
|
||||
- [[Get system information and statistics.]] `INFERRED`
|
||||
- [[List all content with basic information.]] `INFERRED`
|
||||
- [[Get recent server logs. Query parameters: limit: Number of logs]] `INFERRED`
|
||||
- [[Receive edited media from player. Expected multipart/form-data: - i]] `INFERRED`
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,402 @@
|
||||
# User
|
||||
|
||||
> God node · 19 connections · [/home/scheianu/digiserver-v2/app/models/user.py](file:///home/scheianu/digiserver-v2/app/models/user.py#L10)
|
||||
|
||||
## Call Trace Diagram
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant P0 as User
|
||||
participant P1 as Models package for digiserver-v2.
|
||||
participant P2 as PlayerEdit
|
||||
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 Content model for media files.
|
||||
participant P72 as Main playlist management page.
|
||||
participant P73 as View all media files in the library.
|
||||
participant P74 as Delete a media file and remove it from all playlists.
|
||||
participant P75 as Create a new playlist.
|
||||
participant P76 as Manage content in a specific playlist.
|
||||
participant P77 as Add content to playlist.
|
||||
participant P78 as Create a web link content item from the Upload Media page. Optionally adds
|
||||
participant P79 as Create a web link content item and add it to the playlist.
|
||||
participant P80 as Remove content from playlist.
|
||||
participant P81 as Remove multiple content items from playlist.
|
||||
participant P82 as Reorder content in playlist.
|
||||
participant P83 as Update content muted setting in playlist.
|
||||
participant P84 as Update content edit_on_player_enabled setting in playlist.
|
||||
participant P85 as Update content duration in playlist.
|
||||
participant P86 as Display upload media page.
|
||||
participant P87 as Process and optimize image files.
|
||||
participant P88 as Process and optimize video files for Raspberry Pi playback.
|
||||
participant P89 as Process PDF files by converting each page to PNG images.
|
||||
participant P90 as Process large files (PDF, PPTX, Video) in background thread.
|
||||
participant P91 as Process PowerPoint presentation files by converting slides to images.
|
||||
participant P92 as Create a Full HD (1920x1080) image from PIL Image object, centered on white back
|
||||
participant P93 as Resize image to exactly Full HD (1920x1080) maintaining aspect ratio with center
|
||||
participant P94 as Optimize and resize image file to Full HD (1920x1080) maintaining aspect ratio.
|
||||
participant P95 as Upload media files to library with type-specific processing.
|
||||
participant P96 as Assign a player to a playlist.
|
||||
participant P97 as PlayerUser
|
||||
participant P98 as Playlist
|
||||
participant P99 as HTTPSConfig
|
||||
participant P100 as Content
|
||||
participant P101 as Player
|
||||
participant P102 as ServerLog
|
||||
participant P103 as Group
|
||||
participant P104 as PlayerFeedback
|
||||
participant P105 as DigiServer v2 - Application Factory Modern Flask application with blueprint arch
|
||||
participant P106 as Application factory pattern Args: config_name: Configuration en
|
||||
participant P107 as Register application blueprints
|
||||
participant P108 as Configure Flask-Login
|
||||
participant P109 as Register error handlers
|
||||
participant P110 as Register CLI commands
|
||||
participant P111 as Register context processors for templates
|
||||
participant P112 as Register custom Jinja2 template filters
|
||||
participant P113 as create_user()
|
||||
participant P114 as Portal SSO middleware for DigiServer v2. When the umbrella nginx verifies the p
|
||||
participant P115 as Register the SSO before_request handler on the given Flask app.
|
||||
participant P116 as register()
|
||||
participant P117 as _get_or_create_user()
|
||||
P0->>+ P1: uses
|
||||
P1-->>- P0: 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
|
||||
P2->>+ P72: uses
|
||||
P72-->>- P2: return
|
||||
P2->>+ P73: uses
|
||||
P73-->>- P2: return
|
||||
P2->>+ P74: uses
|
||||
P74-->>- P2: return
|
||||
P2->>+ P75: uses
|
||||
P75-->>- P2: return
|
||||
P2->>+ P76: uses
|
||||
P76-->>- P2: return
|
||||
P2->>+ P77: uses
|
||||
P77-->>- P2: return
|
||||
P2->>+ P78: uses
|
||||
P78-->>- P2: return
|
||||
P2->>+ P79: uses
|
||||
P79-->>- P2: return
|
||||
P2->>+ P80: uses
|
||||
P80-->>- P2: return
|
||||
P2->>+ P81: uses
|
||||
P81-->>- P2: return
|
||||
P2->>+ P82: uses
|
||||
P82-->>- P2: return
|
||||
P2->>+ P83: uses
|
||||
P83-->>- P2: return
|
||||
P2->>+ P84: uses
|
||||
P84-->>- P2: return
|
||||
P2->>+ P85: uses
|
||||
P85-->>- P2: return
|
||||
P2->>+ P86: uses
|
||||
P86-->>- P2: return
|
||||
P2->>+ P87: uses
|
||||
P87-->>- P2: return
|
||||
P2->>+ P88: uses
|
||||
P88-->>- P2: return
|
||||
P2->>+ P89: uses
|
||||
P89-->>- P2: return
|
||||
P2->>+ P90: uses
|
||||
P90-->>- P2: return
|
||||
P2->>+ P91: uses
|
||||
P91-->>- P2: return
|
||||
P2->>+ P92: uses
|
||||
P92-->>- P2: return
|
||||
P2->>+ P93: uses
|
||||
P93-->>- P2: return
|
||||
P2->>+ P94: uses
|
||||
P94-->>- P2: return
|
||||
P2->>+ P95: uses
|
||||
P95-->>- P2: return
|
||||
P2->>+ P96: uses
|
||||
P96-->>- P2: return
|
||||
P1->>+ P97: uses
|
||||
P97-->>- P1: return
|
||||
P1->>+ P98: uses
|
||||
P98-->>- P1: return
|
||||
P1->>+ P99: uses
|
||||
P99-->>- P1: return
|
||||
P1->>+ P100: uses
|
||||
P100-->>- P1: return
|
||||
P1->>+ P0: uses
|
||||
P0-->>- P1: return
|
||||
P1->>+ P101: uses
|
||||
P101-->>- P1: return
|
||||
P1->>+ P102: uses
|
||||
P102-->>- P1: return
|
||||
P1->>+ P103: uses
|
||||
P103-->>- P1: return
|
||||
P1->>+ P104: uses
|
||||
P104-->>- P1: return
|
||||
P0->>+ P105: uses
|
||||
P105-->>- P0: return
|
||||
P0->>+ P106: uses
|
||||
P106-->>- P0: return
|
||||
P0->>+ P107: uses
|
||||
P107-->>- P0: return
|
||||
P0->>+ P108: uses
|
||||
P108-->>- P0: return
|
||||
P0->>+ P109: uses
|
||||
P109-->>- P0: return
|
||||
P0->>+ P110: uses
|
||||
P110-->>- P0: return
|
||||
P0->>+ P111: uses
|
||||
P111-->>- P0: return
|
||||
P0->>+ P112: uses
|
||||
P112-->>- P0: return
|
||||
P0->>+ P113: calls
|
||||
P113-->>- P0: return
|
||||
P0->>+ P114: uses
|
||||
P114-->>- P0: return
|
||||
P0->>+ P115: uses
|
||||
P115-->>- P0: return
|
||||
P0->>+ P116: calls
|
||||
P116-->>- P0: return
|
||||
P0->>+ P117: calls
|
||||
P117-->>- P0: return
|
||||
```
|
||||
|
||||
## Connections by Relation
|
||||
|
||||
### calls
|
||||
- [[create_user()]] `INFERRED`
|
||||
- [[register()]] `INFERRED`
|
||||
- [[_get_or_create_user()]] `INFERRED`
|
||||
|
||||
### contains
|
||||
- [[user.py]] `EXTRACTED`
|
||||
|
||||
### inherits
|
||||
- [[UserMixin]] `EXTRACTED`
|
||||
|
||||
### method
|
||||
- [[.__repr__()]] `EXTRACTED`
|
||||
- [[.update_last_login()]] `EXTRACTED`
|
||||
|
||||
### rationale_for
|
||||
- [[User model for application authentication. Attributes: id: Prim]] `EXTRACTED`
|
||||
|
||||
### uses
|
||||
- [[Models package for digiserver-v2.]] `INFERRED`
|
||||
- [[DigiServer v2 - Application Factory Modern Flask application with blueprint arch]] `INFERRED`
|
||||
- [[Application factory pattern Args: config_name: Configuration en]] `INFERRED`
|
||||
- [[Register application blueprints]] `INFERRED`
|
||||
- [[Configure Flask-Login]] `INFERRED`
|
||||
- [[Register error handlers]] `INFERRED`
|
||||
- [[Register CLI commands]] `INFERRED`
|
||||
- [[Register context processors for templates]] `INFERRED`
|
||||
- [[Register custom Jinja2 template filters]] `INFERRED`
|
||||
- [[Portal SSO middleware for DigiServer v2. When the umbrella nginx verifies the p]] `INFERRED`
|
||||
- [[Register the SSO before_request handler on the given Flask app.]] `INFERRED`
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,118 @@
|
||||
# create_app()
|
||||
|
||||
> God node · 13 connections · [/home/scheianu/digiserver-v2/app/app.py](file:///home/scheianu/digiserver-v2/app/app.py#L17)
|
||||
|
||||
## Call Trace Diagram
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant P0 as create_app()
|
||||
participant P1 as ScriptNameFix
|
||||
participant P2 as DigiServer v2 - Application Factory Modern Flask application with blueprint arch
|
||||
participant P3 as User
|
||||
participant P4 as DevelopmentConfig
|
||||
participant P5 as ProductionConfig
|
||||
participant P6 as TestingConfig
|
||||
participant P7 as Application factory pattern Args: config_name: Configuration en
|
||||
participant P8 as Register application blueprints
|
||||
participant P9 as Configure Flask-Login
|
||||
participant P10 as Register error handlers
|
||||
participant P11 as Register CLI commands
|
||||
participant P12 as Register context processors for templates
|
||||
participant P13 as Register custom Jinja2 template filters
|
||||
participant P14 as configure_login_manager()
|
||||
participant P15 as register_blueprints()
|
||||
participant P16 as register_error_handlers()
|
||||
participant P17 as register_commands()
|
||||
participant P18 as register_context_processors()
|
||||
participant P19 as register_template_filters()
|
||||
participant P20 as init_portal_sso()
|
||||
participant P21 as test_edit_media_endpoint()
|
||||
participant P22 as add_muted_column()
|
||||
participant P23 as main()
|
||||
P0->>+ P1: calls
|
||||
P1-->>- P0: return
|
||||
P1->>+ P0: calls
|
||||
P0-->>- P1: return
|
||||
P1->>+ P2: uses
|
||||
P2-->>- P1: return
|
||||
P2->>+ P3: uses
|
||||
P3-->>- P2: return
|
||||
P2->>+ P1: uses
|
||||
P1-->>- P2: return
|
||||
P2->>+ P4: uses
|
||||
P4-->>- P2: return
|
||||
P2->>+ P5: uses
|
||||
P5-->>- P2: return
|
||||
P2->>+ P6: uses
|
||||
P6-->>- P2: return
|
||||
P1->>+ P7: uses
|
||||
P7-->>- P1: return
|
||||
P7->>+ P3: uses
|
||||
P3-->>- P7: return
|
||||
P7->>+ P1: uses
|
||||
P1-->>- P7: return
|
||||
P7->>+ P4: uses
|
||||
P4-->>- P7: return
|
||||
P7->>+ P5: uses
|
||||
P5-->>- P7: return
|
||||
P7->>+ P6: uses
|
||||
P6-->>- P7: return
|
||||
P1->>+ P8: uses
|
||||
P8-->>- P1: return
|
||||
P1->>+ P9: uses
|
||||
P9-->>- P1: return
|
||||
P1->>+ P10: uses
|
||||
P10-->>- P1: return
|
||||
P1->>+ P11: uses
|
||||
P11-->>- P1: return
|
||||
P1->>+ P12: uses
|
||||
P12-->>- P1: return
|
||||
P1->>+ P13: uses
|
||||
P13-->>- P1: return
|
||||
P0->>+ P14: calls
|
||||
P14-->>- P0: return
|
||||
P0->>+ P15: calls
|
||||
P15-->>- P0: return
|
||||
P0->>+ P16: calls
|
||||
P16-->>- P0: return
|
||||
P0->>+ P17: calls
|
||||
P17-->>- P0: return
|
||||
P0->>+ P18: calls
|
||||
P18-->>- P0: return
|
||||
P0->>+ P19: calls
|
||||
P19-->>- P0: return
|
||||
P0->>+ P20: calls
|
||||
P20-->>- P0: return
|
||||
P0->>+ P21: calls
|
||||
P21-->>- P0: return
|
||||
P0->>+ P22: calls
|
||||
P22-->>- P0: return
|
||||
P0->>+ P23: calls
|
||||
P23-->>- P0: return
|
||||
```
|
||||
|
||||
## Connections by Relation
|
||||
|
||||
### calls
|
||||
- [[ScriptNameFix]] `INFERRED`
|
||||
- [[configure_login_manager()]] `EXTRACTED`
|
||||
- [[register_blueprints()]] `EXTRACTED`
|
||||
- [[register_error_handlers()]] `EXTRACTED`
|
||||
- [[register_commands()]] `EXTRACTED`
|
||||
- [[register_context_processors()]] `EXTRACTED`
|
||||
- [[register_template_filters()]] `EXTRACTED`
|
||||
- [[init_portal_sso()]] `INFERRED`
|
||||
- [[test_edit_media_endpoint()]] `INFERRED`
|
||||
- [[add_muted_column()]] `INFERRED`
|
||||
- [[main()]] `INFERRED`
|
||||
|
||||
### contains
|
||||
- [[app.py]] `EXTRACTED`
|
||||
|
||||
### rationale_for
|
||||
- [[Application factory pattern Args: config_name: Configuration en]] `EXTRACTED`
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
@@ -0,0 +1,163 @@
|
||||
# Knowledge Graph Index
|
||||
|
||||
> Auto-generated by graphify. Start here — read community articles for context, then drill into god nodes for detail.
|
||||
|
||||
**631 nodes · 1162 edges · 41 communities**
|
||||
|
||||
---
|
||||
|
||||
## System Architecture Flowchart
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
C0["Community 0 (90 nodes)"]
|
||||
C1["Community 1 (80 nodes)"]
|
||||
C2["Community 2 (68 nodes)"]
|
||||
C3["Community 3 (62 nodes)"]
|
||||
C4["Community 4 (55 nodes)"]
|
||||
C5["Community 5 (54 nodes)"]
|
||||
C6["Community 6 (51 nodes)"]
|
||||
C7["Community 7 (42 nodes)"]
|
||||
C8["Community 8 (24 nodes)"]
|
||||
C9["Community 9 (21 nodes)"]
|
||||
C10["Community 10 (20 nodes)"]
|
||||
C11["Community 11 (19 nodes)"]
|
||||
C12["Community 12 (8 nodes)"]
|
||||
C13["Community 13 (4 nodes)"]
|
||||
C14["Community 14 (2 nodes)"]
|
||||
C15["Community 15 (2 nodes)"]
|
||||
C16["Community 16 (2 nodes)"]
|
||||
C17["Community 17 (2 nodes)"]
|
||||
C18["Community 18 (2 nodes)"]
|
||||
C19["Community 19 (2 nodes)"]
|
||||
C20["Community 20 (1 nodes)"]
|
||||
C21["Community 21 (1 nodes)"]
|
||||
C22["Community 22 (1 nodes)"]
|
||||
C23["Community 23 (1 nodes)"]
|
||||
C24["Community 24 (1 nodes)"]
|
||||
C25["Community 25 (1 nodes)"]
|
||||
C26["Community 26 (1 nodes)"]
|
||||
C27["Community 27 (1 nodes)"]
|
||||
C28["Community 28 (1 nodes)"]
|
||||
C29["Community 29 (1 nodes)"]
|
||||
C30["Community 30 (1 nodes)"]
|
||||
C31["Community 31 (1 nodes)"]
|
||||
C32["Community 32 (1 nodes)"]
|
||||
C33["Community 33 (1 nodes)"]
|
||||
C34["Community 34 (1 nodes)"]
|
||||
C35["Community 35 (1 nodes)"]
|
||||
C36["Community 36 (1 nodes)"]
|
||||
C37["Community 37 (1 nodes)"]
|
||||
C38["Community 38 (1 nodes)"]
|
||||
C39["Community 39 (1 nodes)"]
|
||||
C40["Community 40 (1 nodes)"]
|
||||
C1 -->|27 edges| C3
|
||||
C2 -->|25 edges| C3
|
||||
C2 -->|25 edges| C0
|
||||
C3 -->|25 edges| C1
|
||||
C1 -->|21 edges| C0
|
||||
C6 -->|16 edges| C1
|
||||
C6 -->|16 edges| C3
|
||||
C3 -->|14 edges| C0
|
||||
C6 -->|14 edges| C0
|
||||
C5 -->|9 edges| C3
|
||||
C2 -->|6 edges| C5
|
||||
C1 -->|5 edges| C6
|
||||
C9 -->|5 edges| C0
|
||||
C3 -->|5 edges| C5
|
||||
C1 -->|3 edges| C11
|
||||
C7 -->|3 edges| C0
|
||||
C5 -->|3 edges| C6
|
||||
C11 -->|2 edges| C1
|
||||
C0 -->|2 edges| C9
|
||||
C2 -->|2 edges| C7
|
||||
C7 -->|2 edges| C3
|
||||
C5 -->|2 edges| C0
|
||||
C0 -->|2 edges| C7
|
||||
C1 -->|1 edges| C4
|
||||
C1 -->|1 edges| C10
|
||||
C11 -->|1 edges| C0
|
||||
C11 -->|1 edges| C3
|
||||
C9 -->|1 edges| C5
|
||||
C5 -->|1 edges| C4
|
||||
C5 -->|1 edges| C7
|
||||
C5 -->|1 edges| C1
|
||||
C3 -->|1 edges| C7
|
||||
C3 -->|1 edges| C10
|
||||
C6 -->|1 edges| C7
|
||||
C7 -->|1 edges| C8
|
||||
C6 -->|1 edges| C5
|
||||
C6 -->|1 edges| C11
|
||||
C6 -->|1 edges| C10
|
||||
C7 -->|1 edges| C6
|
||||
C7 -->|1 edges| C1
|
||||
C0 -->|1 edges| C4
|
||||
C10 -->|1 edges| C6
|
||||
C10 -->|1 edges| C11
|
||||
C0 -->|1 edges| C10
|
||||
C5 -->|1 edges| C2
|
||||
C3 -->|1 edges| C2
|
||||
```
|
||||
|
||||
## Communities
|
||||
(sorted by size, largest first)
|
||||
|
||||
- [[Community 0]] — 90 nodes
|
||||
- [[Community 1]] — 80 nodes
|
||||
- [[Community 2]] — 68 nodes
|
||||
- [[Community 3]] — 62 nodes
|
||||
- [[Community 4]] — 55 nodes
|
||||
- [[Community 5]] — 54 nodes
|
||||
- [[Community 6]] — 51 nodes
|
||||
- [[Community 7]] — 42 nodes
|
||||
- [[Community 8]] — 24 nodes
|
||||
- [[Community 9]] — 21 nodes
|
||||
- [[Community 10]] — 20 nodes
|
||||
- [[Community 11]] — 19 nodes
|
||||
- [[Community 12]] — 8 nodes
|
||||
- [[Community 13]] — 4 nodes
|
||||
- [[Community 14]] — 2 nodes
|
||||
- [[Community 15]] — 2 nodes
|
||||
- [[Community 16]] — 2 nodes
|
||||
- [[Community 17]] — 2 nodes
|
||||
- [[Community 18]] — 2 nodes
|
||||
- [[Community 19]] — 2 nodes
|
||||
- [[Community 20]] — 1 nodes
|
||||
- [[Community 21]] — 1 nodes
|
||||
- [[Community 22]] — 1 nodes
|
||||
- [[Community 23]] — 1 nodes
|
||||
- [[Community 24]] — 1 nodes
|
||||
- [[Community 25]] — 1 nodes
|
||||
- [[Community 26]] — 1 nodes
|
||||
- [[Community 27]] — 1 nodes
|
||||
- [[Community 28]] — 1 nodes
|
||||
- [[Community 29]] — 1 nodes
|
||||
- [[Community 30]] — 1 nodes
|
||||
- [[Community 31]] — 1 nodes
|
||||
- [[Community 32]] — 1 nodes
|
||||
- [[Community 33]] — 1 nodes
|
||||
- [[Community 34]] — 1 nodes
|
||||
- [[Community 35]] — 1 nodes
|
||||
- [[Community 36]] — 1 nodes
|
||||
- [[Community 37]] — 1 nodes
|
||||
- [[Community 38]] — 1 nodes
|
||||
- [[Community 39]] — 1 nodes
|
||||
- [[Community 40]] — 1 nodes
|
||||
|
||||
## God Nodes
|
||||
(most connected concepts — the load-bearing abstractions)
|
||||
|
||||
- [[log_action()]] — 116 connections
|
||||
- [[PlayerEdit]] — 99 connections
|
||||
- [[PlayerUser]] — 74 connections
|
||||
- [[Playlist]] — 33 connections
|
||||
- [[CaddyConfigGenerator]] — 31 connections
|
||||
- [[HTTPSConfig]] — 30 connections
|
||||
- [[Content]] — 24 connections
|
||||
- [[User]] — 19 connections
|
||||
- [[create_app()]] — 13 connections
|
||||
- [[Models package for digiserver-v2.]] — 13 connections
|
||||
|
||||
---
|
||||
|
||||
*Generated by [graphify](https://github.com/safishamsi/graphify)*
|
||||
@@ -0,0 +1,443 @@
|
||||
# log_action()
|
||||
|
||||
> God node · 116 connections · [/home/scheianu/digiserver-v2/app/utils/logger.py](file:///home/scheianu/digiserver-v2/app/utils/logger.py#L9)
|
||||
|
||||
## Call Trace Diagram
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant P0 as log_action()
|
||||
participant P1 as ServerLog
|
||||
participant P2 as Models package for digiserver-v2.
|
||||
participant P3 as PlayerEdit
|
||||
participant P4 as PlayerUser
|
||||
participant P5 as Playlist
|
||||
participant P6 as HTTPSConfig
|
||||
participant P7 as Content
|
||||
participant P8 as User
|
||||
participant P9 as Player
|
||||
participant P10 as Group
|
||||
participant P11 as PlayerFeedback
|
||||
participant P12 as Logging utility for tracking system events.
|
||||
participant P13 as Log an action to the database with specified level. Args: level
|
||||
participant P14 as Get the most recent log entries. Args: limit: Maximum number of
|
||||
participant P15 as Delete logs older than specified days. Args: days: Number of da
|
||||
participant P16 as Log an info level message.
|
||||
participant P17 as Log a warning level message.
|
||||
participant P18 as Log an error level message.
|
||||
participant P19 as add_player()
|
||||
participant P20 as build_player_action()
|
||||
participant P21 as upload_media()
|
||||
participant P22 as list()
|
||||
participant P23 as update_https_config()
|
||||
participant P24 as process_file_in_background()
|
||||
participant P25 as process_presentation_file()
|
||||
participant P26 as receive_edited_media()
|
||||
participant P27 as manage_player()
|
||||
participant P28 as https_config_status()
|
||||
participant P29 as upload_content()
|
||||
participant P30 as add_weblink()
|
||||
participant P31 as add_weblink_to_playlist()
|
||||
participant P32 as process_video_file_extended()
|
||||
participant P33 as process_pdf_file()
|
||||
participant P34 as authenticate_player()
|
||||
participant P35 as get_playlist_by_quickconnect()
|
||||
participant P36 as receive_player_feedback()
|
||||
participant P37 as process_video_file()
|
||||
participant P38 as create_user()
|
||||
participant P39 as https_config()
|
||||
participant P40 as delete_media()
|
||||
participant P41 as create_playlist()
|
||||
participant P42 as add_content_to_playlist()
|
||||
participant P43 as remove_content_from_playlist()
|
||||
participant P44 as bulk_remove_from_playlist()
|
||||
participant P45 as reorder_playlist_content()
|
||||
participant P46 as update_playlist_content_muted()
|
||||
participant P47 as update_playlist_content_edit_enabled()
|
||||
participant P48 as update_playlist_content_duration()
|
||||
participant P49 as process_image_file()
|
||||
participant P50 as resize_image_to_fullhd()
|
||||
participant P51 as optimize_image_to_fullhd()
|
||||
participant P52 as get_player_playlist()
|
||||
participant P53 as deploy_player()
|
||||
participant P54 as player_fullscreen()
|
||||
participant P55 as add_to_playlist()
|
||||
participant P56 as remove_from_playlist()
|
||||
participant P57 as reorder_playlist()
|
||||
participant P58 as update_duration()
|
||||
participant P59 as update_muted()
|
||||
participant P60 as clear_playlist()
|
||||
participant P61 as process_pdf_file()
|
||||
participant P62 as background_player_deployment()
|
||||
participant P63 as groups_list()
|
||||
participant P64 as manage_group()
|
||||
participant P65 as group_fullscreen()
|
||||
participant P66 as group_stats()
|
||||
participant P67 as clear_old_logs()
|
||||
participant P68 as log_info()
|
||||
participant P69 as log_warning()
|
||||
participant P70 as log_error()
|
||||
participant P71 as admin_panel()
|
||||
participant P72 as change_user_role()
|
||||
participant P73 as delete_user()
|
||||
participant P74 as change_theme()
|
||||
participant P75 as upload_logo()
|
||||
participant P76 as clear_logs()
|
||||
participant P77 as user_management()
|
||||
participant P78 as system_info()
|
||||
participant P79 as leftover_media()
|
||||
participant P80 as install_libreoffice()
|
||||
participant P81 as install_emoji_fonts()
|
||||
participant P82 as upload_login_logo()
|
||||
participant P83 as manage_editing_users()
|
||||
participant P84 as update_editing_user()
|
||||
participant P85 as content_list()
|
||||
participant P86 as edit_content()
|
||||
participant P87 as delete_content()
|
||||
participant P88 as delete_by_filename()
|
||||
participant P89 as bulk_delete_content()
|
||||
participant P90 as preview_content()
|
||||
participant P91 as download_content()
|
||||
participant P92 as content_statistics()
|
||||
participant P93 as check_duplicates()
|
||||
participant P94 as content_groups_info()
|
||||
participant P95 as assign_player_to_playlist()
|
||||
participant P96 as get_playlist_version()
|
||||
participant P97 as get_player_status()
|
||||
participant P98 as get_upload_progress()
|
||||
participant P99 as system_info()
|
||||
participant P100 as list_content()
|
||||
participant P101 as get_logs()
|
||||
participant P102 as test_ssh_connection()
|
||||
participant P103 as regenerate_auth_code()
|
||||
participant P104 as edited_media()
|
||||
participant P105 as edited_media_report()
|
||||
participant P106 as bulk_delete_players()
|
||||
participant P107 as bulk_assign_playlist()
|
||||
participant P108 as deployment_status()
|
||||
participant P109 as reorder_playlist()
|
||||
participant P110 as remove_from_playlist()
|
||||
participant P111 as assign_player_to_group()
|
||||
participant P112 as bulk_assign_players_to_group()
|
||||
participant P113 as save_uploaded_file()
|
||||
participant P114 as delete_file()
|
||||
participant P115 as create_group()
|
||||
participant P116 as add_player_to_group()
|
||||
participant P117 as remove_player_from_group()
|
||||
participant P118 as add_content_to_group()
|
||||
participant P119 as remove_content_from_group()
|
||||
participant P120 as reorder_group_content()
|
||||
participant P121 as reset_user_password()
|
||||
participant P122 as upload_header_logo()
|
||||
participant P123 as delete_editing_user()
|
||||
participant P124 as delete_playlist()
|
||||
participant P125 as edit_player()
|
||||
participant P126 as delete_player()
|
||||
participant P127 as login()
|
||||
participant P128 as logout()
|
||||
participant P129 as change_password()
|
||||
participant P130 as edit_group()
|
||||
participant P131 as delete_group()
|
||||
P0->>+ P1: calls
|
||||
P1-->>- P0: return
|
||||
P1->>+ P0: calls
|
||||
P0-->>- P1: return
|
||||
P1->>+ P2: uses
|
||||
P2-->>- P1: return
|
||||
P2->>+ P3: uses
|
||||
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->>+ P1: uses
|
||||
P1-->>- P2: return
|
||||
P2->>+ P10: uses
|
||||
P10-->>- P2: return
|
||||
P2->>+ P11: uses
|
||||
P11-->>- P2: return
|
||||
P1->>+ P12: uses
|
||||
P12-->>- P1: return
|
||||
P12->>+ P1: uses
|
||||
P1-->>- P12: 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
|
||||
P0->>+ P19: calls
|
||||
P19-->>- P0: return
|
||||
P0->>+ P20: calls
|
||||
P20-->>- P0: return
|
||||
P0->>+ P21: calls
|
||||
P21-->>- P0: return
|
||||
P0->>+ P22: calls
|
||||
P22-->>- P0: return
|
||||
P0->>+ P23: calls
|
||||
P23-->>- P0: return
|
||||
P0->>+ P24: calls
|
||||
P24-->>- P0: return
|
||||
P0->>+ P25: calls
|
||||
P25-->>- P0: return
|
||||
P0->>+ P26: calls
|
||||
P26-->>- P0: return
|
||||
P0->>+ P27: calls
|
||||
P27-->>- P0: return
|
||||
P0->>+ P28: calls
|
||||
P28-->>- P0: return
|
||||
P0->>+ P29: calls
|
||||
P29-->>- P0: return
|
||||
P0->>+ P30: calls
|
||||
P30-->>- P0: return
|
||||
P0->>+ P31: calls
|
||||
P31-->>- P0: return
|
||||
P0->>+ P32: calls
|
||||
P32-->>- P0: return
|
||||
P0->>+ P33: calls
|
||||
P33-->>- P0: return
|
||||
P0->>+ P34: calls
|
||||
P34-->>- P0: return
|
||||
P0->>+ P35: calls
|
||||
P35-->>- P0: return
|
||||
P0->>+ P36: calls
|
||||
P36-->>- 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->>+ P42: calls
|
||||
P42-->>- P0: return
|
||||
P0->>+ P43: calls
|
||||
P43-->>- P0: return
|
||||
P0->>+ P44: calls
|
||||
P44-->>- P0: return
|
||||
P0->>+ P45: calls
|
||||
P45-->>- P0: return
|
||||
P0->>+ P46: calls
|
||||
P46-->>- P0: return
|
||||
P0->>+ P47: calls
|
||||
P47-->>- P0: return
|
||||
P0->>+ P48: calls
|
||||
P48-->>- P0: return
|
||||
P0->>+ P49: calls
|
||||
P49-->>- P0: return
|
||||
P0->>+ P50: calls
|
||||
P50-->>- P0: return
|
||||
P0->>+ P51: calls
|
||||
P51-->>- P0: return
|
||||
P0->>+ P52: calls
|
||||
P52-->>- P0: return
|
||||
P0->>+ P53: calls
|
||||
P53-->>- P0: return
|
||||
P0->>+ P54: calls
|
||||
P54-->>- P0: return
|
||||
P0->>+ P55: calls
|
||||
P55-->>- P0: return
|
||||
P0->>+ P56: calls
|
||||
P56-->>- P0: return
|
||||
P0->>+ P57: calls
|
||||
P57-->>- P0: return
|
||||
P0->>+ P58: calls
|
||||
P58-->>- P0: return
|
||||
P0->>+ P59: calls
|
||||
P59-->>- P0: return
|
||||
P0->>+ P60: calls
|
||||
P60-->>- P0: return
|
||||
P0->>+ P61: calls
|
||||
P61-->>- P0: return
|
||||
P0->>+ P62: calls
|
||||
P62-->>- P0: return
|
||||
P0->>+ P63: calls
|
||||
P63-->>- P0: return
|
||||
P0->>+ P64: calls
|
||||
P64-->>- P0: return
|
||||
P0->>+ P65: calls
|
||||
P65-->>- P0: return
|
||||
P0->>+ P66: calls
|
||||
P66-->>- P0: return
|
||||
P0->>+ P67: calls
|
||||
P67-->>- P0: return
|
||||
P0->>+ P68: calls
|
||||
P68-->>- P0: return
|
||||
P0->>+ P69: calls
|
||||
P69-->>- P0: return
|
||||
P0->>+ P70: calls
|
||||
P70-->>- P0: return
|
||||
P0->>+ P71: calls
|
||||
P71-->>- P0: return
|
||||
P0->>+ P72: calls
|
||||
P72-->>- P0: return
|
||||
P0->>+ P73: calls
|
||||
P73-->>- P0: return
|
||||
P0->>+ P74: calls
|
||||
P74-->>- P0: return
|
||||
P0->>+ P75: calls
|
||||
P75-->>- P0: return
|
||||
P0->>+ P76: calls
|
||||
P76-->>- P0: return
|
||||
P0->>+ P77: calls
|
||||
P77-->>- P0: return
|
||||
P0->>+ P78: calls
|
||||
P78-->>- P0: return
|
||||
P0->>+ P79: calls
|
||||
P79-->>- P0: return
|
||||
P0->>+ P80: calls
|
||||
P80-->>- P0: return
|
||||
P0->>+ P81: calls
|
||||
P81-->>- P0: return
|
||||
P0->>+ P82: calls
|
||||
P82-->>- P0: return
|
||||
P0->>+ P83: calls
|
||||
P83-->>- P0: return
|
||||
P0->>+ P84: calls
|
||||
P84-->>- P0: return
|
||||
P0->>+ P85: calls
|
||||
P85-->>- P0: return
|
||||
P0->>+ P86: calls
|
||||
P86-->>- P0: return
|
||||
P0->>+ P87: calls
|
||||
P87-->>- P0: return
|
||||
P0->>+ P88: calls
|
||||
P88-->>- P0: return
|
||||
P0->>+ P89: calls
|
||||
P89-->>- P0: return
|
||||
P0->>+ P90: calls
|
||||
P90-->>- P0: return
|
||||
P0->>+ P91: calls
|
||||
P91-->>- P0: return
|
||||
P0->>+ P92: calls
|
||||
P92-->>- P0: return
|
||||
P0->>+ P93: calls
|
||||
P93-->>- P0: return
|
||||
P0->>+ P94: calls
|
||||
P94-->>- P0: return
|
||||
P0->>+ P95: calls
|
||||
P95-->>- P0: return
|
||||
P0->>+ P96: calls
|
||||
P96-->>- P0: return
|
||||
P0->>+ P97: calls
|
||||
P97-->>- P0: return
|
||||
P0->>+ P98: calls
|
||||
P98-->>- P0: return
|
||||
P0->>+ P99: calls
|
||||
P99-->>- P0: return
|
||||
P0->>+ P100: calls
|
||||
P100-->>- P0: return
|
||||
P0->>+ P101: calls
|
||||
P101-->>- P0: return
|
||||
P0->>+ P102: calls
|
||||
P102-->>- P0: return
|
||||
P0->>+ P103: calls
|
||||
P103-->>- P0: return
|
||||
P0->>+ P104: calls
|
||||
P104-->>- P0: return
|
||||
P0->>+ P105: calls
|
||||
P105-->>- P0: return
|
||||
P0->>+ P106: calls
|
||||
P106-->>- P0: return
|
||||
P0->>+ P107: calls
|
||||
P107-->>- P0: return
|
||||
P0->>+ P108: calls
|
||||
P108-->>- P0: return
|
||||
P0->>+ P109: calls
|
||||
P109-->>- P0: return
|
||||
P0->>+ P110: calls
|
||||
P110-->>- P0: return
|
||||
P0->>+ P111: calls
|
||||
P111-->>- P0: return
|
||||
P0->>+ P112: calls
|
||||
P112-->>- P0: return
|
||||
P0->>+ P113: calls
|
||||
P113-->>- P0: return
|
||||
P0->>+ P114: calls
|
||||
P114-->>- P0: return
|
||||
P0->>+ P115: calls
|
||||
P115-->>- P0: return
|
||||
P0->>+ P116: calls
|
||||
P116-->>- P0: return
|
||||
P0->>+ P117: calls
|
||||
P117-->>- P0: return
|
||||
P0->>+ P118: calls
|
||||
P118-->>- P0: return
|
||||
P0->>+ P119: calls
|
||||
P119-->>- P0: return
|
||||
P0->>+ P120: calls
|
||||
P120-->>- P0: return
|
||||
P0->>+ P121: calls
|
||||
P121-->>- P0: return
|
||||
P0->>+ P122: calls
|
||||
P122-->>- P0: return
|
||||
P0->>+ P123: calls
|
||||
P123-->>- P0: return
|
||||
P0->>+ P124: calls
|
||||
P124-->>- P0: return
|
||||
P0->>+ P125: calls
|
||||
P125-->>- P0: return
|
||||
P0->>+ P126: calls
|
||||
P126-->>- P0: return
|
||||
P0->>+ P127: calls
|
||||
P127-->>- P0: return
|
||||
P0->>+ P128: calls
|
||||
P128-->>- P0: return
|
||||
P0->>+ P129: calls
|
||||
P129-->>- P0: return
|
||||
P0->>+ P130: calls
|
||||
P130-->>- P0: return
|
||||
P0->>+ P131: calls
|
||||
P131-->>- P0: return
|
||||
```
|
||||
|
||||
## Connections by Relation
|
||||
|
||||
### calls
|
||||
- [[ServerLog]] `INFERRED`
|
||||
- [[add_player()]] `INFERRED`
|
||||
- [[build_player_action()]] `INFERRED`
|
||||
- [[upload_media()]] `INFERRED`
|
||||
- [[list()]] `INFERRED`
|
||||
- [[update_https_config()]] `INFERRED`
|
||||
- [[process_file_in_background()]] `INFERRED`
|
||||
- [[process_presentation_file()]] `INFERRED`
|
||||
- [[receive_edited_media()]] `INFERRED`
|
||||
- [[manage_player()]] `INFERRED`
|
||||
- [[https_config_status()]] `INFERRED`
|
||||
- [[upload_content()]] `INFERRED`
|
||||
- [[add_weblink()]] `INFERRED`
|
||||
- [[add_weblink_to_playlist()]] `INFERRED`
|
||||
- [[process_video_file_extended()]] `INFERRED`
|
||||
- [[process_pdf_file()]] `INFERRED`
|
||||
- [[authenticate_player()]] `INFERRED`
|
||||
- [[get_playlist_by_quickconnect()]] `INFERRED`
|
||||
- [[receive_player_feedback()]] `INFERRED`
|
||||
- [[process_video_file()]] `INFERRED`
|
||||
|
||||
### contains
|
||||
- [[logger.py]] `EXTRACTED`
|
||||
|
||||
### rationale_for
|
||||
- [[Log an action to the database with specified level. Args: level]] `EXTRACTED`
|
||||
|
||||
---
|
||||
|
||||
*Part of the graphify knowledge wiki. See [[index]] to navigate.*
|
||||
Reference in New Issue
Block a user