diff --git a/app/blueprints/api.py b/app/blueprints/api.py index 1152740..597399a 100644 --- a/app/blueprints/api.py +++ b/app/blueprints/api.py @@ -837,6 +837,24 @@ def receive_edited_media(): with open(metadata_path, 'w') as f: json.dump(metadata, f, indent=2) + # ── Preserve the original filename ────────────────────────────── + # `content.filename` is (re)pointed at the latest edit below so the + # player downloads the newest version. The pristine original must be + # remembered separately, otherwise the original is lost forever and + # the UI shows the edited image as the "original". + if not content.original_filename: + if not content.filename.startswith('edited_media/'): + # Normal case: current filename is still the pristine upload. + content.original_filename = content.filename + else: + # Re-process: content.filename already points at an edited + # file. Recover the pristine original from the first (v1) edit. + first_edit = PlayerEdit.query.filter_by(content_id=content.id)\ + .order_by(PlayerEdit.version.asc(), PlayerEdit.created_at.asc())\ + .first() + if first_edit and first_edit.original_name: + content.original_filename = first_edit.original_name + # ── Point Content.filename to the latest edit ──────────────────── # This tells the player to download the latest edited version. old_filename = content.filename diff --git a/app/blueprints/content.py b/app/blueprints/content.py index 9c3d77e..8e5452b 100644 --- a/app/blueprints/content.py +++ b/app/blueprints/content.py @@ -829,6 +829,7 @@ def process_file_in_background(app, filepath: str, filename: str, file_ext: str, page_filename = os.path.basename(page_file) page_content = Content( filename=page_filename, + original_filename=page_filename, content_type='image', duration=duration, file_size=os.path.getsize(page_file) @@ -886,6 +887,7 @@ def process_file_in_background(app, filepath: str, filename: str, file_ext: str, slide_filename = os.path.basename(slide_file) slide_content = Content( filename=slide_filename, + original_filename=slide_filename, content_type='image', duration=duration, file_size=os.path.getsize(slide_file) @@ -930,6 +932,7 @@ def process_file_in_background(app, filepath: str, filename: str, file_ext: str, if processing_success and os.path.exists(filepath): content = Content( filename=filename, + original_filename=filename, content_type=detected_type, duration=duration, file_size=os.path.getsize(filepath) @@ -1313,6 +1316,7 @@ def upload_media(): # Create content record for page page_content = Content( filename=page_filename, + original_filename=page_filename, content_type='image', duration=duration, file_size=os.path.getsize(page_file) @@ -1373,6 +1377,7 @@ def upload_media(): # Create content record for slide slide_content = Content( filename=slide_filename, + original_filename=slide_filename, content_type='image', duration=duration, file_size=os.path.getsize(slide_file) @@ -1419,6 +1424,7 @@ def upload_media(): if os.path.exists(filepath): content = Content( filename=filename, + original_filename=filename, content_type=detected_type, duration=duration, file_size=os.path.getsize(filepath) diff --git a/app/models/content.py b/app/models/content.py index f9cd31d..8b3a822 100644 --- a/app/models/content.py +++ b/app/models/content.py @@ -21,6 +21,10 @@ class Content(db.Model): id = db.Column(db.Integer, primary_key=True) filename = db.Column(db.String(255), nullable=False, unique=True, index=True) + # The pristine original filename as uploaded. `filename` gets overwritten + # with an edited_media/... path when a player edits the content, so this + # column preserves the original so it can always be referenced/restored. + original_filename = db.Column(db.String(255), nullable=True, index=True) content_type = db.Column(db.String(50), nullable=False, index=True) duration = db.Column(db.Integer, default=10, nullable=True) file_size = db.Column(db.BigInteger, nullable=True) @@ -52,6 +56,28 @@ class Content(db.Model): def group_count(self) -> int: """Get number of groups containing this content.""" return self.groups.count() + + @property + def original_display_name(self) -> str: + """Name of the original (unedited) file for display purposes.""" + return self.original_filename or self.filename + + @property + def original_media_path(self) -> str: + """Path (relative to uploads/) where the original unedited file lives. + + When a player edits content the original file is archived under + edited_media//original_. If never edited, the original IS the + current file. + """ + if self.original_filename and self.original_filename != self.filename: + return f"edited_media/{self.id}/original_{self.original_filename}" + return self.filename + + @property + def current_media_path(self) -> str: + """Path (relative to uploads/) of the current/latest version to display.""" + return self.filename def is_image(self) -> bool: """Check if content is an image.""" @@ -68,3 +94,25 @@ class Content(db.Model): def is_weblink(self) -> bool: """Check if content is a web link (URL) rather than an uploaded file.""" return self.content_type == 'weblink' + + @property + def has_player_edits(self) -> bool: + """Whether this content has been edited on a player.""" + return self.edits.count() > 0 + + @property + def original_display_name(self) -> str: + """Display name of the original (unedited) file.""" + return self.original_filename or self.filename + + @property + def original_media_path(self) -> str: + """uploads/-relative path of the pristine original file. + + After a player edit the original is archived at + edited_media//original_; before any edit it is simply the + current file. + """ + if self.original_filename and self.filename != self.original_filename: + return f"edited_media/{self.id}/original_{self.original_filename}" + return self.filename diff --git a/app/templates/content/content_list_new.html b/app/templates/content/content_list_new.html index 517022d..0543816 100644 --- a/app/templates/content/content_list_new.html +++ b/app/templates/content/content_list_new.html @@ -326,11 +326,11 @@
{% if media_files %} {% for media in media_files %} -
+
{% if media.content_type == 'image' %}
- {{ media.filename }}
@@ -347,7 +347,7 @@ 📁
{% endif %} -
{{ media.filename[:25] }}{% if media.filename|length > 25 %}...{% endif %}
+
{{ media.original_display_name[:25] }}{% if media.original_display_name|length > 25 %}...{% endif %}
{{ "%.1f"|format(media.file_size_mb) }} MB
{% endfor %} diff --git a/app/templates/content/manage_playlist_content.html b/app/templates/content/manage_playlist_content.html index 0b64b45..57849df 100644 --- a/app/templates/content/manage_playlist_content.html +++ b/app/templates/content/manage_playlist_content.html @@ -318,7 +318,7 @@ {% if content.content_type == 'weblink' %} {{ content.url }} {% else %} - {{ content.filename }} + {{ content.original_display_name }} {% endif %} @@ -434,7 +434,7 @@ {% elif content.content_type == 'video' %}🎥 {% elif content.content_type == 'pdf' %}📄 {% else %}📁{% endif %} - {{ content.filename }} + {{ content.original_display_name }}
{{ content.file_size_mb }} MB diff --git a/app/templates/content/media_library.html b/app/templates/content/media_library.html index 432ca72..ef0678f 100644 --- a/app/templates/content/media_library.html +++ b/app/templates/content/media_library.html @@ -275,11 +275,11 @@
- {{ media.filename }}
-
{{ media.filename }}
+
{{ media.original_display_name }}
Image
{{ "%.1f"|format(media.file_size_mb) }} MB
@@ -308,7 +308,7 @@
🎥
-
{{ media.filename }}
+
{{ media.original_display_name }}
Video
{{ "%.1f"|format(media.file_size_mb) }} MB
@@ -337,7 +337,7 @@
📄
-
{{ media.filename }}
+
{{ media.original_display_name }}
PDF
{{ "%.1f"|format(media.file_size_mb) }} MB
@@ -366,7 +366,7 @@
📊
-
{{ media.filename }}
+
{{ media.original_display_name }}
PPTX
{{ "%.1f"|format(media.file_size_mb) }} MB
@@ -395,7 +395,7 @@
📁
-
{{ media.filename }}
+
{{ media.original_display_name }}
{{ media.content_type }}
{{ "%.1f"|format(media.file_size_mb) }} MB
diff --git a/app/templates/players/edited_media.html b/app/templates/players/edited_media.html index fec0cd1..6c835cf 100644 --- a/app/templates/players/edited_media.html +++ b/app/templates/players/edited_media.html @@ -333,7 +333,7 @@
- 📄 {{ original_content.filename if original_content else data.original_name }} + 📄 {{ original_content.original_display_name if original_content else data.original_name }} ({{ data.versions|length + 1 }} version{{ 's' if (data.versions|length + 1) > 1 else '' }}) @@ -420,10 +420,10 @@ {% if original_content %}
+ onclick="event.stopPropagation(); selectVersion({{ content_id }}, 'original', '{{ original_content.original_display_name }}', 'System', 'N/A', '{{ original_content.uploaded_at | localtime('%Y-%m-%d %H:%M') }}', '{{ url_for('static', filename='uploads/' ~ original_content.original_media_path) }}')">
- {% if original_content.filename.lower().endswith(('.jpg', '.jpeg', '.png', '.gif', '.webp')) %} - Original {% else %}
📄
diff --git a/deploy.sh b/deploy.sh index d0f3b94..a10eccd 100755 --- a/deploy.sh +++ b/deploy.sh @@ -110,6 +110,8 @@ echo -e " • Adding email to https_config..." docker compose exec -T digiserver-app python /app/migrations/add_email_to_https_config.py echo -e " • Migrating player_user global settings..." docker compose exec -T digiserver-app python /app/migrations/migrate_player_user_global.py +echo -e " • Adding original_filename to content..." +docker compose exec -T digiserver-app python /app/migrations/add_original_filename_to_content.py echo -e "${GREEN}✅ All database migrations completed${NC}" echo "" diff --git a/docs/01-architecture.md b/docs/01-architecture.md new file mode 100644 index 0000000..4d98ad5 --- /dev/null +++ b/docs/01-architecture.md @@ -0,0 +1,198 @@ +# 01 · System Architecture + +> Generated from the Graphify knowledge graph (41 communities) and source analysis of `digiserver-v2`. + +--- + +## 1. System Overview + +DigiServer v2 is a Flask application serving **three audiences**: + +1. **Humans (admins)** — manage content, playlists, players, users, HTTPS via the web UI. +2. **Players (physical signage)** — poll the REST API for playlists, send status feedback, upload edited media. +3. **Operators** — deploy/update player software remotely over SSH. + +```mermaid +flowchart LR + subgraph Browser["Web UI (Admins)"] + A[Login] + B[Dashboard / Admin / Content / Players] + end + + subgraph App["digiserver-app (Flask :5000)"] + C[Gunicorn x4] + D[7 Blueprints] + E[SQLAlchemy + SQLite] + F[Cache / Background tasks] + end + + subgraph Players["Signage Players"] + G[Player 1] + H[Player N] + end + + subgraph Proxy["Reverse Proxy"] + I[Caddy :80/:443] + J[Umbrella nginx gateway - optional SSO] + end + + I -->|reverse_proxy digiserver-app:5000| C + J -.X-Auth-Username .-> C + D --> E + G <-->|"/api/*"| D + H <-->|"/api/*"| D + Browser --> I + C -.SSH deploy/rsync.-> G + C -.SSH deploy/rsync.-> H +``` + +--- + +## 2. Layered Architecture + +Graphify assigns each node a **level** (0 = entry/global → 3 = utility): + +| Layer | Level | Components | +|---|---|---| +| **L0 — Entry / Global** | 0 | `create_app()`, `app.py`, config classes, error handlers, CLI commands | +| **L1 — Strategic / Core** | 1 | Blueprint route handlers (players, content, api, admin), model classes | +| **L2 — Implementation** | 2 | Playlist/group management helpers, processing helpers, model methods | +| **L3 — Utility** | 3 | `logger.py`, `ssh_deploy.py`, `caddy_manager.py`, `uploads.py`, `pptx_converter.py`, migrations | + +```mermaid +flowchart TD + subgraph L0["L0 · Entry"] + create_app["create_app()"] + ProxyFix + ScriptNameFix + portal_sso["init_portal_sso()"] + end + subgraph L1["L1 · Blueprints + Models"] + bp["main · auth · admin · players · content · playlist · api"] + models["User Player Content Playlist PlayerEdit PlayerFeedback PlayerUser HTTPSConfig ServerLog"] + end + subgraph L2["L2 · Implementation"] + bg["run_background_task()"] + dep["deploy_player_to_host()"] + caddy["CaddyConfigGenerator"] + pb["build_player_files() / write_base_config()"] + end + subgraph L3["L3 · Utility"] + log["log_action()"] + up["uploads.py"] + pptx["pptx_converter.py"] + nginx["NginxConfigReader"] + end + create_app --> bp + create_app --> models + bp --> log + bp --> bg + bp --> dep + bp --> caddy + bp --> pb + bp --> up + bp --> pptx +``` + +--- + +## 3. Component Map (files → communities) + +Graphify clustered the code into **41 communities**. The 12 meaningful ones are shown below (communities 13–40 are mostly migrations, isolated helper functions, and archived code). + +| Community | Domain (derived) | Files | Role | +|---|---|---|---| +| **C0** (90) | **Authentication + legacy groups** | `blueprints/auth.py`, `blueprints/content_old.py`, `models/server_log.py`, `utils/logger.py`, `utils/group_player_management.py`, `old_code_documentation/blueprint_groups.py` | Auth flows + audit logging + (legacy) group features | +| **C1** (80) | **Admin + HTTPS + player users** | `blueprints/admin.py`, `models/https_config.py`, `models/player_user.py`, `utils/caddy_manager.py`, `migrations/add_player_user_table.py` | Admin panel, Caddy HTTPS generation, editing-user registry | +| **C2** (68) | **Playlist & content workflows** | `blueprints/content.py`, `blueprints/playlist.py`, `models/playlist.py` | Modern playlist-centric content management + legacy redirects | +| **C3** (62) | **Player API + edits** | `blueprints/api.py`, `models/player_edit.py` | Player-facing REST, edited-media pipeline | +| **C4** (55) | **Application core** | `app.py`, `config.py`, `models/user.py`, `utils/portal_sso.py`, `utils/script_name_fix.py` | App factory, config, auth identity, middleware | +| **C5** (54) | **Content & player models** | `models/content.py`, `models/player.py`, `models/player_feedback.py`, `blueprints/main.py` | Media model, player model, feedback, dashboard | +| **C6** (51) | **Player management UI** | `blueprints/players.py`, `migrations/add_https_config_table.py` | Player CRUD, manage page, deployment polling | +| **C7** (42) | **Groups (legacy)** | `models/group.py`, `utils/nginx_config_reader.py` | Archived groups feature + legacy nginx reader | +| **C8** (24) | **Dev tooling** | `old_code_documentation/test_edit_media_api.py`, `Colors`, integrity checker | Test/analysis utilities | +| **C9** (21) | **Upload processing** | `utils/uploads.py` | Upload progress, video/image processing | +| **C10** (20) | **Deployment** | `utils/background_tasks.py`, `utils/ssh_deploy.py` | Background SSH deployment engine | +| **C11** (19) | **Player build/staging** | `utils/player_build.py` | Stage player source code on server | +| **C12** (8) | **PPTX conversion** | `utils/pptx_converter.py` | LibreOffice PPTX → PDF → PNG | + +```mermaid +flowchart TD + C0["C0 · Auth & logging"] + C1["C1 · Admin & HTTPS"] + C2["C2 · Playlists & content"] + C3["C3 · Player API & edits"] + C4["C4 · App core"] + C5["C5 · Content/player models"] + C6["C6 · Player management UI"] + C9["C9 · Upload processing"] + C10["C10 · Deployment"] + C11["C11 · Player build"] + C12["C12 · PPTX conversion"] + + 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 + C9 -->|5 edges| C0 + C1 -->|3 edges| C11 + C10 --> C6 + C11 --> C10 + C12 --> C9 +``` + +*(edge weights from `graphify-out/metadata.json` communityLinks)* + +--- + +## 4. Middleware & Request Pipeline + +Every request flows through three layers before reaching a blueprint: + +```mermaid +flowchart LR + R["Raw request"] --> PF["werkzeug ProxyFix"] + PF --> SF["ScriptNameFix"] + SF --> SSO["portal_sso (before_request)"] + SSO --> BP["Blueprint route"] + BP --> DB[("SQLAlchemy / SQLite")] +``` + +1. **ProxyFix** — trusts `X-Forwarded-For/Proto/Host/Port` from Caddy/nginx (1 hop). +2. **ScriptNameFix** — reads `X-Script-Name` (e.g. `/digiserver`) so `url_for()` produces correct prefixed URLs behind an umbrella nginx gateway. +3. **Portal SSO** (`portal_sso.py`) — if the umbrella nginx sends `X-Auth-Username` / `X-Auth-Role`, automatically create + log in the local user. + +--- + +## 5. Key Architectural Decisions + +| Decision | Implementation | +|---|---| +| **Application factory** | `create_app(config_name)` — clean testability, per-env config | +| **Blueprint isolation** | 7 blueprints with clear URL prefixes; API separate from UI | +| **Playlist versioning** | `Playlist.version` incremented on every mutation → players poll `/api/playlist-version/` for refresh | +| **In-memory caching** | Flask-Caching `@cache.memoize(300)` on playlist builders; `cache.clear()` on mutations | +| **DB-backed audit log** | `log_action()` writes `ServerLog` rows; surfaced on dashboard & admin | +| **Two auth systems** | Humans: Flask-Login (`User`). Players: `auth_code` Bearer + `quickconnect_code` (bcrypt) | +| **Remote provisioning** | SSH + rsync/git staged code → write `app_config.json` → run install/start scripts | +| **HTTPS automation** | `CaddyConfigGenerator` writes `Caddyfile`; reloads Caddy via admin API on `:2019` | + +--- + +## 6. Runtime Dependencies (requirements.txt) + +**Runtime:** Flask 3.1, Werkzeug 3.1, SQLAlchemy 2.0.37, Flask-SQLAlchemy 3.1.1, Flask-Migrate, Flask-Bcrypt, Flask-Login, Flask-Caching, Flask-Cors, Flask-Talisman, pdf2image, Pillow, ffmpeg-python, python-magic, bcrypt, cryptography, gunicorn 23, psutil, python-dotenv. + +**System binaries (Docker):** `poppler-utils`, `ffmpeg`, `libmagic1`, `LibreOffice` (core/impress/writer), `fonts-noto-color-emoji`, `sshpass`, `openssh-client`, `rsync`, `git`. + +**Dev:** black, flake8, pytest, pytest-cov. *(`gevent` is commented out — incompatible with Python 3.13.)* + +--- + +> Next: [02 · Knowledge Graph](02-knowledge-graph.md) diff --git a/docs/02-knowledge-graph.md b/docs/02-knowledge-graph.md new file mode 100644 index 0000000..11bc11d --- /dev/null +++ b/docs/02-knowledge-graph.md @@ -0,0 +1,148 @@ +# 02 · The Graphify Knowledge Graph + +This document explains the **interactive knowledge graph** generated by the [Graphify](https://marketplace.visualstudio.com/items?itemName=anytechiestudio.graphify-vscode) extension, and how to use it to explore and maintain DigiServer v2. + +--- + +## 1. What Was Generated + +Running `Graphify: Build Knowledge Graph` on the project root produced `graphify-out/`: + +| Artifact | Description | +|---|---| +| `graph.html` | **Interactive visualizer** — zoom/pan/filter nodes, click to jump to source | +| `graph.json` | Raw graph data (nodes, links, communities, heat) | +| `GRAPH_REPORT.md` | God nodes, surprising connections, community list, knowledge gaps | +| `COMPASS.md` | Token-optimized architecture summary (god nodes, layers) | +| `DOMAINS.md` | Community ID → domain table | +| `intelligence.json` | AI-detected intelligence (god nodes, surprising links) | +| `graph.compact.txt` | Compact graph dump, ideal for LLM context | +| `wiki/` | Markdown articles per community + per god-node, with Mermaid diagrams | + +**Graph statistics:** + +``` +631 nodes · 1162 edges · 41 communities +Extraction: 56% EXTRACTED · 44% INFERRED (avg confidence 0.62) +Node types: 313 FUNCTION · 300 FILE · 18 CLASS +Link types: 311 uses · 290 calls · 275 rationale_for · 243 contains · 39 method · 4 inherits +``` + +--- + +## 2. Opening the Visualizer + +1. In VS Code, click the **Graphify** activity-bar icon (sidebar). +2. Click **Build Knowledge Graph** (or right-click any folder → *Graphify: Build Knowledge Graph*). +3. Once built, click **Open Interactive Visualizer** — or open `graphify-out/graph.html` directly in a browser. + +> ⚠️ The visualizer opens best inside the VS Code webview (activity bar). Opening `graph.html` via `file://` may show a minor console error but still renders the graph data (nodes/edges/communities listed in the sidebar). + +**View modes:** Deep Dive · Full Detail · Heatmap · Simulation (component-removal impact). + +--- + +## 3. God Nodes — The Core Abstractions + +These are the most-connected nodes (graph centrality). They are the architectural "load-bearing" abstractions: + +| Rank | Node | Degree | File | Why it matters | +|---|---|---|---|---| +| 1 | `log_action()` | 116 | `app/utils/logger.py` | Every important action across all blueprints logs here | +| 2 | `PlayerEdit` | 99 | `app/models/player_edit.py` | Central record of on-player media edits | +| 3 | `PlayerUser` | 74 | `app/models/player_user.py` | Maps player edit user codes to names | +| 4 | `Playlist` | 33 | `app/models/playlist.py` | Core content organization + version sync | +| 5 | `CaddyConfigGenerator` | 31 | `app/utils/caddy_manager.py` | HTTPS Caddyfile generation/reload | +| 6 | `HTTPSConfig` | 30 | `app/models/https_config.py` | Persisted HTTPS settings | +| 7 | `Content` | 24 | `app/models/content.py` | Media model used by everything | +| 8 | `User` | 19 | `app/models/user.py` | Human accounts (admin/user/viewer) | +| 9 | `create_app()` | 13 | `app/app.py` | Application factory | +| 10 | `models/__init__.py` | 13 | `app/models/__init__.py` | Package export hub | + +--- + +## 4. Heatmap — Hottest Code + +`heat` (0–1) reflects how central/complex a node is in the graph. The hottest functions drive most of the system's behaviour: + +| Heat | Function | File | +|---|---|---| +| 0.620 | `receive_edited_media()` | `app/blueprints/api.py` | +| 0.614 | `deploy_player_to_host()` | `app/utils/ssh_deploy.py` | +| 0.592 | `add_player()` | `app/blueprints/players.py` | +| 0.537 | `upload_media()` | `app/blueprints/content.py` | +| 0.429 | `manage_player()` | `app/blueprints/players.py` | +| 0.425 | `receive_player_feedback()` | `app/blueprints/api.py` | +| 0.407 | `update_https_config()` | `app/blueprints/admin.py` | +| 0.376 | `process_file_in_background()` | `app/blueprints/content.py` | +| 0.365 | `CaddyConfigGenerator` | `app/utils/caddy_manager.py` | +| 0.354 | `get_playlist_by_quickconnect()` | `app/blueprints/api.py` | + +--- + +## 5. Communities (Clusters) + +Graphify groups related code into communities. See [01-architecture.md §3](01-architecture.md#3-component-map-files--communities) for the full mapping. The largest: + +- **C0 · Auth & logging** (90 nodes) — login/logout/register + audit logging + legacy groups +- **C1 · Admin & HTTPS** (80 nodes) — admin panel, Caddy generation, editing users +- **C2 · Playlists & content** (68 nodes) — the modern content/playlist workflow +- **C3 · Player API & edits** (62 nodes) — player-facing REST + edited-media pipeline +- **C4 · Application core** (55 nodes) — `create_app`, config, user, middleware +- **C5 · Content/player models** (54 nodes) — `Content`, `Player`, feedback, dashboard + +Each community has a wiki article with a **Mermaid class diagram**, key concepts, source files, and an audit trail (extracted vs inferred edges). Example: `graphify-out/wiki/Community_4.md`. + +--- + +## 6. Surprising Connections (AI-detected) + +Graphify flags links that are non-obvious. Examples from `GRAPH_REPORT.md`: + +- `reset_user_password()` → `log_action()` — admin password resets are audited +- `upload_header_logo()` → `log_action()` — logo changes are audited +- `delete_editing_user()` → `log_action()` — editing-user deletion is audited +- `delete_playlist()` → `log_action()` — playlist deletion is audited +- `Main playlist management page` uses `PlayerEdit` — the content UI surfaces edit counts + +**Pattern:** virtually every destructive/admin action flows through `log_action()`, which is why it is the #1 god node. + +--- + +## 7. Known Gaps in the Graph + +- **178 isolated nodes** (≤1 connection) — mostly standalone migration scripts and model helper methods. +- **Thin communities 13–40** — single-file migrations, isolated utility functions, and archived `old_code_documentation/` scripts. These are not "broken" — they are intentionally decoupled. +- The graph does **not** index templates or static assets (Python AST extraction only). + +--- + +## 8. Querying the Graph (CLI) + +The `anytechie-graphify` engine (installed in `.venv`) ships a CLI for graph-aware questions: + +```bash +# Shortest path between two nodes +python -m graphify path "Content" "Playlist" + +# Explain a node and its neighbours +python -m graphify explain "deploy_player_to_host()" + +# BFS traversal to answer a question (no LLM) +python -m graphify query "how is a playlist synced to a player?" + +# Grounded chat over the graph (requires an LLM API key) +python -m graphify ask "what happens when a player uploads edited media?" +``` + +--- + +## 9. Keeping the Graph Fresh + +- **After code changes:** `Graphify: Build Knowledge Graph` again (or run `python -m graphify update `). +- **Git hooks:** `python -m graphify hook install` auto-rebuilds on `post-commit`/`post-checkout`. +- The graph is stored in `graphify-out/` (not committed to git by default). + +--- + +> Next: [03 · Data Model](03-data-model.md) diff --git a/docs/03-data-model.md b/docs/03-data-model.md new file mode 100644 index 0000000..43c0f72 --- /dev/null +++ b/docs/03-data-model.md @@ -0,0 +1,198 @@ +# 03 · Data Model + +DigiServer v2 uses **SQLAlchemy 2.0** with **SQLite** (production: `instance/dashboard.db`, dev: `instance/dev.db`, tests: in-memory). All models live in `app/models/` and are re-exported from `app/models/__init__.py`. + +--- + +## 1. Entity-Relationship Overview + +```mermaid +erDiagram + user ||--o{ server_log : "writes" + player ||--o{ player_feedback : "sends (cascade)" + player ||--o{ player_edit : "edits (cascade)" + player }o--o| playlist : "assigned_to" + content ||--o{ player_edit : "edited (cascade)" + content ||--o{ player_feedback : "playing" + playlist ||--o{ content : "playlist_content M2M (position,duration,muted,edit_on_player_enabled)" + content }o--o{ group : "group_content M2M (legacy)" + player_user ||--o{ player_edit : "user_code" + https_config ||--o| https_config : "singleton row" +``` + +--- + +## 2. Tables & Columns + +### `user` — human accounts +| Column | Type | Notes | +|---|---|---| +| `id` | Integer | PK | +| `username` | String(80) | unique, NOT NULL, indexed | +| `password` | String(120) | bcrypt hash, NOT NULL | +| `role` | String(20) | default `'user'`; also `'admin'`, `'viewer'`; indexed | +| `theme` | String(20) | default `'light'` | +| `created_at` | DateTime | NOT NULL | +| `last_login` | DateTime | nullable | + +Key methods: `is_admin` (property), `update_last_login()`. Mixin: `UserMixin` (Flask-Login). + +### `player` — signage devices +| Column | Type | Notes | +|---|---|---| +| `id` | Integer | PK | +| `name` | String(255) | NOT NULL | +| `hostname` | String(255) | unique, NOT NULL, indexed | +| `location` | String(255) | nullable | +| `auth_code` | String(255) | unique, NOT NULL, indexed (legacy Bearer auth) | +| `password_hash` | String(255) | NOT NULL (bcrypt) | +| `quickconnect_code` | String(255) | nullable, bcrypt-hashed | +| `orientation` | String(16) | default `'Landscape'` | +| `status` | String(50) | default `'offline'`, indexed | +| `last_seen` | DateTime | indexed | +| `last_heartbeat` | DateTime | indexed | +| `created_at` | DateTime | NOT NULL | +| `playlist_id` | Integer | FK → `playlist.id` ON DELETE SET NULL, indexed | +| `deployment_status` | String(50) | default `'pending'`; pending/deploying/deployed/failed | +| `last_deployment_at` | DateTime | nullable | +| `last_deployment_status` | String(50) | nullable | +| `last_deployment_message` | Text | nullable | + +Relationships: `playlist`, `feedback` (→ PlayerFeedback, cascade delete-orphan). +Methods: `is_online` (5-min window), `update_status()`, `set_password()/check_password()`, `set_quickconnect_code()/check_quickconnect_code()`, static `authenticate(hostname, password, quickconnect_code)`. + +### `content` — media items (also weblinks) +| Column | Type | Notes | +|---|---|---| +| `id` | Integer | PK | +| `filename` | String(255) | unique, NOT NULL, indexed; may point to `edited_media//...` after a player edit | +| `original_filename` | String(255) | nullable, indexed — pristine upload name | +| `content_type` | String(50) | NOT NULL, indexed; image/video/pdf/pptx/weblink/other | +| `duration` | Integer | default 10, nullable | +| `file_size` | BigInteger | nullable | +| `url` | String(2048) | nullable — target URL for `weblink` content | +| `description` | Text | nullable | +| `uploaded_at` | DateTime | NOT NULL, indexed | + +Relationships: `playlists` (M2M via `playlist_content`), `groups` (M2M via `group_content`). +Properties/methods: `file_size_mb`, `group_count`, `original_display_name`, `original_media_path`, `current_media_path`, `is_image()/is_video()/is_pdf()/is_weblink()`, `has_player_edits`. + +### `playlist` — ordered collections of content +| Column | Type | Notes | +|---|---|---| +| `id` | Integer | PK | +| `name` | String(100) | unique, NOT NULL, indexed | +| `description` | Text | nullable | +| `orientation` | String(20) | default `'Landscape'` | +| `version` | Integer | default 1, NOT NULL — **sync detection** | +| `is_active` | Boolean | default True | +| `created_at` | DateTime | NOT NULL | +| `updated_at` | DateTime | NOT NULL, onupdate | + +Methods: `player_count`, `content_count`, `total_duration` (properties), `increment_version()`, `get_content_ordered()`. + +### `playlist_content` — association table (M2M playlist ↔ content) +| Column | Type | Notes | +|---|---|---| +| `playlist_id` | Integer | FK → `playlist.id` CASCADE, composite PK | +| `content_id` | Integer | FK → `content.id` CASCADE, composite PK | +| `position` | Integer | default 0 — ordering | +| `duration` | Integer | default 10 — per-playlist override | +| `muted` | Boolean | default True | +| `edit_on_player_enabled` | Boolean | default False — whether player-side editing allowed | + +### `player_edit` — on-player media edits +| Column | Type | Notes | +|---|---|---| +| `id` | Integer | PK | +| `player_id` | Integer | FK → `player.id` CASCADE, indexed | +| `content_id` | Integer | FK → `content.id` CASCADE, indexed | +| `original_name` | String(255) | NOT NULL | +| `new_name` | String(255) | NOT NULL | +| `version` | Integer | default 1 | +| `user` | String(255) | nullable (user code) | +| `time_of_modification` | DateTime | nullable | +| `metadata_path` | String(512) | nullable | +| `edited_file_path` | String(512) | NOT NULL | +| `created_at` | DateTime | NOT NULL, indexed | + +Relationships: `player`, `content`. Method: `to_dict()`. + +### `player_feedback` — status messages from players +| Column | Type | Notes | +|---|---|---| +| `id` | Integer | PK | +| `player_id` | Integer | FK → `player.id`, NOT NULL, indexed | +| `status` | String(50) | default `'unknown'` | +| `current_content_id` | Integer | FK → `content.id`, nullable | +| `message` | Text | nullable | +| `error` | Text | nullable | +| `timestamp` | DateTime | NOT NULL, indexed | + +Properties/classmethod: `is_error`, `age_seconds`, `get_latest_for_player()`. + +### `player_user` — mapping of player edit user codes +| Column | Type | Notes | +|---|---|---| +| `id` | Integer | PK | +| `user_code` | String(255) | **globally unique**, NOT NULL, indexed | +| `user_name` | String(255) | nullable | +| `created_at` | DateTime | NOT NULL | +| `updated_at` | DateTime | NOT NULL, onupdate | + +Method: `to_dict()`. *(Migrated from a per-player table — see `migrate_player_user_global.py`.)* + +### `server_log` — DB-backed audit log +| Column | Type | Notes | +|---|---|---| +| `id` | Integer | PK | +| `level` | String(20) | NOT NULL, indexed, default `'info'` | +| `message` | Text | NOT NULL | +| `timestamp` | DateTime | NOT NULL, indexed | + +Classmethods: `log_info`, `log_warning`, `log_error`. + +### `https_config` — HTTPS settings (singleton row) +| Column | Type | Notes | +|---|---|---| +| `id` | Integer | PK | +| `https_enabled` | Boolean | default False | +| `hostname` | String(255) | nullable | +| `domain` | String(255) | nullable | +| `ip_address` | String(45) | nullable (IPv6-capable) | +| `email` | String(255) | nullable (Let's Encrypt contact) | +| `port` | Integer | default 443 | +| `created_at` | DateTime | NOT NULL | +| `updated_at` | DateTime | NOT NULL, onupdate | +| `updated_by` | String(255) | nullable | + +Classmethods: `get_config()` (first row), `create_or_update(...)`. Method: `to_dict()`. + +### `group` + `group_content` — **ARCHIVED / LEGACY** +| Column | Type | Notes | +|---|---|---| +| `id` | Integer | PK | +| `name` | String(100) | unique, NOT NULL, indexed | +| `description` | Text | nullable | +| `created_at` / `updated_at` | DateTime | NOT NULL | + +`group_content(group_id, content_id)` composite-PK M2M. The current `Player` model has **no** `group_id` column — group features are archived (see [09 · Legacy](09-legacy-and-migrations.md)). + +--- + +## 3. Relationship Summary + +| Relationship | Cardinality | FK / Mechanism | +|---|---|---| +| `playlist` → `content` | M:N | `playlist_content` (positioned, with extras) | +| `group` → `content` | M:N | `group_content` (legacy) | +| `player` → `playlist` | N:1 | `player.playlist_id` (ON DELETE SET NULL) | +| `player` → `player_feedback` | 1:N | `player_feedback.player_id` (cascade) | +| `player` → `player_edit` | 1:N | `player_edit.player_id` (cascade) | +| `content` → `player_edit` | 1:N | `player_edit.content_id` (cascade) | +| `player_user` → `player_edit` | 1:N | `player_edit.user` = `player_user.user_code` (logical) | +| `https_config` | 1 row | singleton via `get_config()` | + +--- + +> Next: [04 · Application Core](04-application-core.md) diff --git a/docs/04-application-core.md b/docs/04-application-core.md new file mode 100644 index 0000000..ab16a14 --- /dev/null +++ b/docs/04-application-core.md @@ -0,0 +1,178 @@ +# 04 · Application Core + +Covers the application factory, configuration, extensions, middleware, CLI commands, context processors, and template layer. This is **Community 4** in the Graphify knowledge graph. + +--- + +## 1. Application Factory — `app/app.py` + +The entire app is constructed by `create_app(config_name=None)`: + +```mermaid +flowchart TD + A["create_app()"] --> B["Set instance_path"] + B --> C["Load config: Dev / Prod / Test"] + C --> D["ProxyFix middleware"] + D --> E["ScriptNameFix middleware"] + E --> F["init extensions: db bcrypt login migrate cache cors"] + F --> G["configure_login_manager()"] + G --> H["register_blueprints()"] + H --> I["register_error_handlers()"] + I --> J["register_commands()"] + J --> K["register_context_processors()"] + K --> L["register_template_filters()"] + L --> M["init_portal_sso(app)"] + M --> N["db.create_all() (idempotent)"] + N --> O["return app"] +``` + +### Blueprint registration + +```python +def register_blueprints(app): + from app.blueprints.main import main_bp + from app.blueprints.auth import auth_bp + from app.blueprints.admin import admin_bp + from app.blueprints.players import players_bp + from app.blueprints.content import content_bp + from app.blueprints.playlist import playlist_bp + from app.blueprints.api import api_bp + ... +``` + +> Note: `app.blueprints.content_old` is **not** imported — it is dead/legacy code. + +--- + +## 2. Configuration — `app/config.py` + +Four classes: `Config` (base) → `DevelopmentConfig`, `ProductionConfig`, `TestingConfig`. + +| Setting | Value | Notes | +|---|---|---| +| `MAX_CONTENT_LENGTH` | 2 GB | upload cap | +| `UPLOAD_FOLDER` | `app/static/uploads` | media | +| `UPLOAD_FOLDERLOGO` | `app/static/resurse` | logos | +| `ALLOWED_EXTENSIONS` | png jpg jpeg gif bmp mp4 avi mkv mov webm pdf ppt pptx | | +| `PERMANENT_SESSION_LIFETIME` | 30 min | | +| `SESSION_COOKIE_SECURE` | False (True in prod) | | +| `ITEMS_PER_PAGE` | 20 | | +| `SERVER_VERSION` | 2.0.0 | shown in UI footer | +| `PLAYER_CODE_DIR` | `/app/data/player` | staged player source | +| `PLAYER_REPO_URL` | env `PLAYER_REPO_URL` | Kiwy-Signage repo | +| DB (dev) | `instance/dev.db` | | +| DB (prod) | `instance/dashboard.db` | | +| DB (test) | in-memory | | + +--- + +## 3. Extensions — `app/extensions.py` + +Centralizes shared singletons: + +```python +db = SQLAlchemy() +bcrypt = Bcrypt() +login_manager = LoginManager() # login_view='auth.login' +migrate = Migrate() +cache = Cache() +cors = CORS() +``` + +CORS is configured in `create_app` for `/api/*`: all origins, GET/POST/OPTIONS/PUT/DELETE, supports credentials. + +--- + +## 4. Middleware + +### ProxyFix (Werkzeug) +`app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_proto=1, x_host=1, x_port=1)` — trusts one reverse-proxy hop (Caddy / umbrella nginx). + +### ScriptNameFix — `app/utils/script_name_fix.py` +`ScriptNameFix` WSGI middleware sets `SCRIPT_NAME` from `HTTP_X_SCRIPT_NAME` so `url_for()` generates correct paths when the app is mounted under a sub-path (e.g. `/digiserver`). + +--- + +## 5. Login Manager + +```python +login_manager.login_view = 'auth.login' +login_manager.login_message = 'Please log in to access this page.' + +@login_manager.user_loader +def load_user(user_id): + return User.query.get(int(user_id)) +``` + +--- + +## 6. Error Handlers + +| Code | Template | Behaviour | +|---|---|---| +| 404 | `errors/404.html` | Not found | +| 403 | `errors/403.html` | Forbidden | +| 500 | `errors/500.html` | Rolls back DB session | +| 413 | `errors/413.html` | Payload too large | +| 408 | `errors/408.html` | Request timeout | + +The `/api` blueprint registers its own **JSON** 404/405/500 handlers. + +--- + +## 7. CLI Commands + +| Command | Purpose | +|---|---| +| `flask init-db` | `db.create_all()` | +| `flask create-admin --username X` | Create admin user (prompts for password) | +| `flask seed-db` | Seed sample data (blocked in production) | + +--- + +## 8. Context Processors + +- **`inject_config`** — exposes `server_version`, `build_date`, `logo_exists` to all templates. +- **`inject_user_theme`** — exposes the authenticated user's `theme` (`light`/`dark`) for the UI toggle. + +--- + +## 9. Template Filters + +- **`localtime`** — converts naive/UTC datetimes to local time with a configurable `strftime` format (default `%Y-%m-%d %H:%M`). + +--- + +## 10. Template & Static Layout + +``` +app/templates/ +├── base.html ← main layout (theme, logos, nav) +├── dashboard.html +├── auth/ login.html, register.html, change_password.html +├── admin/ admin.html, user_management.html, leftover_media.html, +│ dependencies.html, customize_logos.html, editing_users.html, +│ https_config.html, build_player.html +├── content/ content_list.html (legacy), content_list_new.html (modern), +│ media_library.html, upload_content.html (legacy), +│ upload_media.html, manage_playlist_content.html, edit_content.html +├── players/ players_list.html, add_player.html, edit_player.html, +│ manage_player.html, player_page.html, player_fullscreen.html, +│ edited_media.html, edited_media_report.html, _deploy_badge.html +└── errors/ 403.html, 404.html, 500.html (+413/408) + +app/static/ +├── icons/ edit, home, info, monitor, moon, playlist, sun, trash, upload, warning (SVG) +├── uploads/ uploaded media + edited_media// (versioned edits) +└── (resurse/ logo storage — referenced by config) +``` + +--- + +## 11. Portal SSO — `app/utils/portal_sso.py` + +`init_portal_sso(app)` registers a `before_request` hook that reads `X-Auth-Username` / `X-Auth-Role` headers (set by the umbrella nginx gateway). If present, it auto-creates and logs in the local `User` (`_get_or_create_user`). This lets the app sit behind an existing corporate SSO portal. + +--- + +> Next: [05 · Blueprints & API](05-blueprints-api.md) diff --git a/docs/05-blueprints-api.md b/docs/05-blueprints-api.md new file mode 100644 index 0000000..0df6cbc --- /dev/null +++ b/docs/05-blueprints-api.md @@ -0,0 +1,280 @@ +# 05 · Blueprints & REST API + +DigiServer v2 registers **7 active blueprints** (`content_old.py` is legacy dead code and is not registered). + +--- + +## 1. Blueprint Overview + +| Blueprint | URL prefix | Module | Focus | +|---|---|---|---| +| `main_bp` | `/` | `blueprints/main.py` | Dashboard, health | +| `auth_bp` | `/` | `blueprints/auth.py` | Login/logout/register/password | +| `admin_bp` | `/admin` | `blueprints/admin.py` | Admin panel, HTTPS, build, users, logos | +| `players_bp` | `/players` | `blueprints/players.py` | Player management | +| `content_bp` | `/content` | `blueprints/content.py` | Media library + modern playlist management | +| `playlist_bp` | `/playlist` | `blueprints/playlist.py` | Legacy per-player playlist (redirects) | +| `api_bp` | `/api` | `blueprints/api.py` | Player-facing REST + deployment API | + +--- + +## 2. `main` — Dashboard & Health (`/`) + +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/` | GET | `dashboard` | Counts (players/playlists/content), storage MB, 20 recent logs (cached 60s except `viewer` role) | +| `/health` | GET | `health` | Health JSON: `SELECT 1` DB ping + free disk space | + +--- + +## 3. `auth` — Authentication (`/`) + +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/login` | GET/POST | `login` | bcrypt login, `remember`, `next` redirect, failed-attempt logging | +| `/logout` | GET | `logout` | Logs out + logs action | +| `/register` | GET/POST | `register` | Self-registration → default `viewer` role | +| `/change-password` | GET/POST | `change_password` | Change own password (verifies current) | + +--- + +## 4. `admin` — Admin Panel (`/admin`) + +**Security:** `@login_required` on all routes; `@admin_required` (custom decorator, `role == 'admin'`) on user-management. + +### Users +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/` | GET | `admin_panel` | Stats, recent logs, users, storage | +| `/user/create` | POST | `create_user` | Create user (username ≥3, password ≥6) | +| `/user//role` | POST | `change_user_role` | Change role (not own) | +| `/user//delete` | POST | `delete_user` | Delete user (not own) | +| `/user//password` | POST | `reset_user_password` | Admin reset password | +| `/users` | GET | `user_management` | User list page | +| `/theme` | POST | `change_theme` | light/dark theme | + +### Media housekeeping +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/leftover-media` | GET | `leftover_media` | Content not assigned to any playlist, by type + size | +| `/delete-leftover-images` | POST | — | Bulk-delete leftover images (+ archive + PlayerEdit) | +| `/delete-leftover-videos` | POST | — | Bulk-delete leftover videos | +| `/delete-single-leftover/` | POST | — | Delete one leftover item | + +### System / dependencies +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/system/info` | GET | `system_info` | JSON: platform + psutil (CPU/mem/disk) | +| `/dependencies` | GET | `dependencies` | Checks LibreOffice, Poppler, FFmpeg, emoji fonts | +| `/install-libreoffice` | POST | — | `sudo -n install_libreoffice.sh` | +| `/install-emoji-fonts` | POST | — | `sudo -n install_emoji_fonts.sh` | +| `/logo/upload` | POST | `upload_logo` | Upload logo.png | +| `/logs/clear` | POST | `clear_logs` | Delete all `ServerLog` rows | +| `/customize-logos` | GET | `customize_logos` | Logo customization page | +| `/upload-header-logo` | POST | — | Save header_logo.png | +| `/upload-login-logo` | POST | — | Save login_logo.png | + +### Editing users +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/editing-users` | GET | `manage_editing_users` | List `PlayerUser` + per-user edit counts | +| `/editing-users//update` | POST | — | Rename editing user | +| `/editing-users//delete` | POST | — | Delete editing user | + +### HTTPS (Caddy) +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/https-config` | GET | `https_config` | HTTPS config page (auto-corrects DB flag if request is HTTPS) | +| `/https-config/update` | POST | `update_https_config` | Validate + save config → regenerate Caddyfile → reload Caddy | +| `/https-config/status` | GET | `https_config_status` | Config as JSON | + +### Player build & deployment +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/build-player` | GET | `build_player` | Build page + staged-code status | +| `/build-player` | POST | `build_player_action` | `build_files` / `save_config` / `build_and_config` → clone/refresh code, write `app_config.json`, persist `instance/player_build.json` | + +--- + +## 5. `players` — Player Management (`/players`) + +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/` and `/list` | GET | `list` | Player list + live deployment-status polling data | +| `/add` | GET/POST | `add_player` | Create player; optional **background SSH deployment** | +| `/bulk/delete` | POST | — | JSON bulk delete | +| `/bulk/assign-playlist` | POST | — | JSON bulk assign to playlist | +| `/deployment-status` | GET | — | JSON deployment status for all players (polling) | +| `/` | GET | — | Redirect to `manage_player` | +| `//edit` | GET/POST | — | Edit name/location (legacy) | +| `//delete` | POST | — | Delete player + feedback | +| `//regenerate-auth` | POST | — | New auth code | +| `//manage` | GET/POST | `manage_player` | Manage page: `update_credentials` / `assign_playlist`; feedback, edits, status | +| `//edited-media` | GET | `edited_media` | All edited media + user mapping | +| `//edited-media-report` | GET | `edited_media_report` | Tabular report | +| `//fullscreen` | GET | — | Player fullscreen (NO auth; optional `?auth=` check), cached playlist | +| `//reorder` | POST | — | Legacy stub → 400 "use Playlists page" | +| `//playlist/reorder` | POST | — | Legacy per-player reorder (JSON up/down) | +| `//playlist/remove` | POST | — | Legacy removal (bumps `playlist_version`) | + +Helper: `get_player_playlist(player_id)` — `@cache.memoize(300)` builds playlist dicts (`url`, `type`, `duration`, `position`, `muted`, `audio`). + +--- + +## 6. `content` — Media Library & Modern Playlist Management (`/content`) + +> This is the **primary workflow** in v2 (1,519 lines). + +### Library & uploads +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/` | GET | `content_list` | Main page `content_list_new.html`: playlists, last-3 media, counts, players | +| `/media-library` | GET | `media_library` | All media by type + edit counts | +| `/media//delete` | POST | `delete_media` | Delete file + archive + edits; removes from playlists + bumps versions | +| `/upload-media-page` | GET | `upload_media_page` | Upload page (playlist selector) | +| `/upload-media` | POST | `upload_media` | Core upload: images optimized, videos validated, **PDF/PPTX → Full-HD PNGs**, large files → background threads | + +### Web links +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/add-weblink` | POST | `add_weblink` | Create weblink Content (http/https validated), optional playlist add | +| `/playlist//add-weblink` | POST | — | Create weblink + append to playlist | + +### Playlist management +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/playlist/create` | POST | — | Create playlist (name, description, orientation) | +| `/playlist//delete` | POST | — | Delete + unassign players | +| `/playlist//manage` | GET | `manage_playlist_content` | Ordered content + available library (no weblinks) | +| `/playlist//add-content` | POST | — | Add library content at next position | +| `/playlist//remove-content/` | POST | — | Remove content (deletes orphan weblinks) | +| `/playlist//bulk-remove` | POST | — | JSON bulk remove | +| `/playlist//reorder` | POST | — | JSON reorder (position = index) | +| `/playlist//update-muted/` | POST | — | Toggle muted | +| `/playlist//update-edit-enabled/` | POST | — | Toggle `edit_on_player_enabled` | +| `/playlist//update-duration/` | POST | — | Per-playlist duration (≥1s) | +| `/player//assign-playlist` | POST | — | Assign/unassign player to playlist | + +**All playlist mutations** call `Playlist.increment_version()` and `cache.clear()`. + +### Processing helpers (module-level) +`process_image_file`, `process_video_file_extended` (ffprobe), `process_pdf_file` (pdf2image @300 DPI → `_pageNNN.png`), `process_presentation_file` (LibreOffice → PDF → pdftoppm → Full-HD PNG), `create_fullhd_image`, `resize_image_to_fullhd`, `optimize_image_to_fullhd`, `process_file_in_background` (thread wrapper). + +--- + +## 7. `playlist` — Legacy Per-Player Routes (`/playlist`) + +Redirects/legacy — kept for compatibility: +| Route | Methods | Purpose | +|---|---|---| +| `/` | GET | Redirect to modern manage page | +| `//add` | POST | Add content to player's playlist | +| `//remove/` | POST | Remove + renumber | +| `//reorder` | POST | JSON reorder from `content_ids` | +| `//update-duration/` | POST | Update duration | +| `//update-muted/` | POST | Update muted | +| `//clear` | POST | Clear all items | + +--- + +## 8. `api` — Player-Facing REST + Deployment API (`/api`) + +**Custom decorators:** `rate_limit(max_requests, window)` (in-memory, IP/Bearer keyed) and `verify_player_auth` (validates Bearer `auth_code` → sets `request.player`). + +### Health & auth +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/health` | GET | `health_check` | API health (`version: 2.0.0`) | +| `/certificate` | GET | — | TLS certificate test | +| `/auth/player` | POST | `authenticate_player` | hostname + password/quickconnect → auth_code, playlist_id, orientation; sets online | +| `/auth/verify` | POST | `verify_auth_code` | Verify auth code → player info | + +### Playlist delivery +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/playlists` | GET | `get_playlist_by_quickconnect` | Kivy-compatible: `?hostname=&quickconnect_code=` → playlist + version + hashed quickconnect | +| `/playlists/` | GET | `get_player_playlist` | Bearer-authed fetch (cached) | +| `/playlist-version/` | GET | `get_playlist_version` | Lightweight refresh-poll version check | + +**Payload keys the players expect** (from `get_cached_playlist`): `file_name`, `type`, `duration`, `position`, `url`, `description`, `edit_on_player_enabled`, `muted`, `audio` (`"on"`/`"off"`). + +### Feedback & monitoring +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/player-feedback` | POST | `receive_player_feedback` | Status (playing/paused/error/restarting); infers player; **auto-marks deployment `deployed`** | +| `/player-status/` | GET | `get_player_status` | Online (5-min), latest feedback | +| `/system-info` | GET | — | Counts: players online/total, groups, content, 24h logs | +| `/content` | GET | — | List content with counts | +| `/logs` | GET | `get_logs` | Query logs (`limit`/`level`/`since`) | + +### Edited media +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/player-edit-media` | POST | `receive_edited_media` | Bearer-authed multipart upload of edited image + metadata; versionizes to `edited_media//`; records `PlayerEdit`; auto-creates `PlayerUser`; repoints `Content.filename`; bumps playlist version; clears cache | + +### SSH deployment +| Route | Methods | Endpoint | Purpose | +|---|---|---|---| +| `/deploy/test-ssh` | POST | `test_ssh_connection` | Test SSH (sshpass/ssh) | +| `/deploy/player` | POST | `deploy_player` | Full remote deploy (`deploy_player_to_host`); API key = `sha256(name:hostname)[:32]` | + +**Error handlers:** JSON 404 / 405 / 500. + +--- + +## 9. API Call Flows (Mermaid) + +### Player bootstrap (auth → playlist) +```mermaid +sequenceDiagram + participant P as Player + participant A as /api + P->>A: POST /api/auth/player {hostname, password|quickconnect} + A->>A: Player.authenticate() + A-->>P: {auth_code, playlist_id, orientation} + P->>A: GET /api/playlists/ (Bearer auth_code) + A-->>P: playlist items + version + loop refresh poll + P->>A: GET /api/playlist-version/ + A-->>P: {version} + end +``` + +### Edited media upload +```mermaid +sequenceDiagram + participant P as Player + participant A as /api + participant DB as SQLite + P->>A: POST /api/player-edit-media (Bearer, multipart image + metadata) + A->>DB: locate Content (filename / edited_media// regex / last PlayerEdit) + A->>DB: move original → edited_media//original_* + A->>DB: save new version + side-car JSON + A->>DB: get_or_create PlayerUser (user_code) + A->>DB: create PlayerEdit + A->>DB: repoint Content.filename → latest edit (preserve original_filename) + A->>DB: Playlist.increment_version() + A-->>P: 200 OK +``` + +### Deployment +```mermaid +sequenceDiagram + participant Admin as Admin UI + participant S as Server (app) + participant T as Background task + participant H as Player host + Admin->>S: add player / deploy + S->>T: background_player_deployment() + T->>H: sshpass test_ssh_connection() + T->>H: rsync staged code (or git clone/pull) + T->>H: write config/app_config.json + T->>H: temp passwordless sudo → install.sh → start.sh + T->>H: cleanup sudoers + T-->>S: update player.deployment_status = deployed|failed + Admin->>S: GET /players/deployment-status (poll) +``` + +--- + +> Next: [06 · Utils & Services](06-utils-services.md) diff --git a/docs/06-utils-services.md b/docs/06-utils-services.md new file mode 100644 index 0000000..f5ada7a --- /dev/null +++ b/docs/06-utils-services.md @@ -0,0 +1,140 @@ +# 06 · Utilities & Services + +All shared services live in `app/utils/`. This document details each module, its main functions, and how they fit together. + +--- + +## Overview Table + +| Module | Community | Responsibility | Key symbols | +|---|---|---|---| +| `logger.py` | C0 | DB-backed audit logging | `log_action()`, `get_recent_logs()`, `clear_old_logs()` | +| `group_player_management.py` | C0 | Group/player stats (legacy) | `get_player_status_info()`, `assign_player_to_group()`, `get_online_players_count()` | +| `caddy_manager.py` | C1 | HTTPS Caddyfile generation | `CaddyConfigGenerator`, `write_caddyfile()`, `reload_caddy()` | +| `background_tasks.py` | C10 | Async task execution | `run_background_task()`, `background_player_deployment()` | +| `ssh_deploy.py` | C10 | Remote player provisioning | `deploy_player_to_host()`, `test_ssh_connection()`, `generate_player_config()` | +| `player_build.py` | C11 | Stage player source code | `build_player_files()`, `write_base_config()`, `load/save_build_settings()` | +| `pptx_converter.py` | C12 | PPTX → PDF → PNG | `pptx_to_pdf_libreoffice()`, `validate_pptx_file()`, `cleanup_libreoffice_processes()` | +| `uploads.py` | C9 | Upload progress + file ops | `get/set/clear_upload_progress()`, `save_uploaded_file()`, `process_video_file()` | +| `portal_sso.py` | C4 | SSO auto-login | `init_portal_sso()`, `_get_or_create_user()` | +| `script_name_fix.py` | C4 | WSGI sub-path middleware | `ScriptNameFix` | +| `nginx_config_reader.py` | C7 | Legacy nginx status parsing | `NginxConfigReader`, `get_nginx_status()` | + +--- + +## 1. `logger.py` — Audit Logging ⭐ God Node (116 edges) + +The most-connected module in the system. Every meaningful action across all blueprints is recorded here. + +| Function | Purpose | +|---|---| +| `log_action(level, message)` | Create + commit a `ServerLog` row | +| `log_info(message)` / `log_warning(message)` / `log_error(message)` | Convenience wrappers | +| `get_recent_logs(limit, level)` | Query recent logs (used by dashboard/admin) | +| `clear_old_logs(days)` | Housekeeping | + +**Usage pattern:** admin actions (`reset_user_password`, `upload_header_logo`, `delete_editing_user`, `delete_playlist`, login failures, etc.) all funnel through `log_action()`. + +--- + +## 2. `background_tasks.py` — Async Execution + +| Function | Purpose | +|---|---| +| `run_background_task(func, *args)` | Spawns a **daemon thread** with a Flask app context pushed, then runs `func` | +| `background_player_deployment(...)` | Runs SSH deployment in background; updates `player.deployment_status` (`deploying → deployed|failed`) | + +Used by `players.add_player` to avoid blocking the HTTP request during long remote installs. + +--- + +## 3. `ssh_deploy.py` — Remote Player Provisioning ⭐ (heat 0.614) + +The deployment engine. Full pipeline implemented by `deploy_player_to_host(...)`: + +```mermaid +flowchart TD + A["deploy_player_to_host()"] --> B["test_ssh_connection() (sshpass)"] + B --> C["mkdir remote dir"] + C --> D{"staged code present?"} + D -- yes --> E["rsync pre-staged code"] + D -- no --> F["git clone / pull"] + E --> G["write config/app_config.json"] + F --> G + G --> H["temp passwordless sudo"] + H --> I["run install.sh"] + I --> J["run start.sh"] + J --> K["cleanup sudoers"] + K --> L["return steps[]"] +``` + +Other helpers: +- `get_local_player_code_status()` — inspect staged code state. +- `detect_server_ip()` / `parse_server_address()` — resolve the server address players should reach. +- `generate_player_config()` / `generate_app_config()` — write player's `config/app_config.json` with `server_ip`, `port`, `screen_name`, `quickconnect_key`, `orientation`, `use_https`, `verify_ssl`. + +--- + +## 4. `caddy_manager.py` — HTTPS Automation ⭐ God Node + +`CaddyConfigGenerator` produces the Caddyfile for the reverse proxy and reloads Caddy without restart. + +| Method | Purpose | +|---|---| +| `generate_caddyfile(config)` | Pick template by mode: **HTTP-only** (`:80`), **domain** (Let's Encrypt), or **IP** (internal CA self-signed). Includes `reverse_proxy digiserver-app:5000`, 2 GB body limit, gzip, security headers | +| `write_caddyfile(content, path=/etc/caddy/Caddyfile)` | Write to disk | +| `reload_caddy()` | POST to Caddy admin API `http://caddy:2019/load` | + +Triggered from `admin.update_https_config` after saving `HTTPSConfig`. + +--- + +## 5. `player_build.py` — Staging Player Code + +| Function | Purpose | +|---|---| +| `build_player_files(dir, repo_url, branch)` | Clone or `fetch + reset` the player repository into `PLAYER_CODE_DIR` | +| `write_base_config(...)` | Write `config/app_config.json` (blank screen / quickconnect) | +| `load_build_settings()` / `save_build_settings()` | JSON at `instance/player_build.json` | +| `get_player_server_settings` / `make_build_record` / `get_short_head` | Build metadata helpers | + +--- + +## 6. `uploads.py` — Upload & Media Processing + +| Function | Purpose | +|---|---| +| `get_upload_progress` / `set_upload_progress` / `clear_upload_progress` | In-memory per-file progress (for the upload page) | +| `save_uploaded_file` | Save a multipart upload | +| `process_video_file` | FFmpeg → H.264 main, 30 fps, ≤1080p, faststart | +| `process_pdf_file` | PDF processing (stub — real logic in content.py) | +| `get_file_size` / `delete_file` | FS helpers | + +--- + +## 7. `pptx_converter.py` — LibreOffice Integration + +| Function | Purpose | +|---|---| +| `pptx_to_pdf_libreoffice(pptx_path, output_dir)` | Headless LibreOffice → PDF (300 s timeout) | +| `validate_pptx_file()` | Validate a file is a real PPTX | +| `cleanup_libreoffice_processes()` | `pkill soffice` — clean hanging processes | + +Used by the upload pipeline: **PPTX → PDF → PNG slides (Full HD)**. + +--- + +## 8. `portal_sso.py` & `script_name_fix.py` — Gateway Integration + +- **`portal_sso.py`** — `before_request` reads `X-Auth-Username`/`X-Auth-Role` from the umbrella nginx and auto-logs-in the local user (creating it on first arrival). See [04 · Application Core §11](04-application-core.md#11-portal-sso--apputilsportal_sso_py). +- **`script_name_fix.py`** — WSGI middleware mapping `X-Script-Name` → `SCRIPT_NAME` so `url_for()` is correct behind a path-prefixed gateway. + +--- + +## 9. `nginx_config_reader.py` — Legacy (informational) + +`NginxConfigReader` parses an `nginx.conf` and reports `ssl_enabled`, ports, upstreams, `server_names`, `ssl_protocols`, `client_max_body_size`, `gzip`. **Legacy** — the current reverse proxy is Caddy; retained for reference and the old deployment stack. + +--- + +> Next: [07 · Deployment](07-deployment.md) diff --git a/docs/07-deployment.md b/docs/07-deployment.md new file mode 100644 index 0000000..095e46c --- /dev/null +++ b/docs/07-deployment.md @@ -0,0 +1,162 @@ +# 07 · Deployment + +DigiServer v2 runs as a **Docker Compose** stack (app + Caddy) with optional remote SSH provisioning of players. + +--- + +## 1. Architecture + +```mermaid +flowchart LR + subgraph Host["Docker Host"] + subgraph Net["digiserver-network"] + APP["digiserver-app\nFlask + Gunicorn :5000"] + CAD["caddy:2-alpine\n:80 / :443"] + end + VOL1["./data/instance → /app/instance\n(SQLite DBs)"] + VOL2["./data/uploads → /app/app/static/uploads"] + VOL3["./data/Caddyfile → /etc/caddy/Caddyfile"] + VOL4["./data/caddy-data → /data\n./data/caddy-config → /config"] + end + Browser["Browser"] --> CAD + CAD --> APP + APP --> VOL1 + APP --> VOL2 + CAD --> VOL3 + CAD --> VOL4 + APP -.SSH/rsync.-> Players["Remote player hosts"] +``` + +--- + +## 2. `docker-compose.yml` + +### Service `digiserver-app` +- **Build:** `.` (Dockerfile, `python:3.13-slim`) +- **Ports:** `5000:5000` (direct dev access; also `expose: 5000`) +- **Volumes:** `./data/instance:/app/instance`, `./data/uploads:/app/app/static/uploads` +- **Env:** `FLASK_ENV=production`, `SECRET_KEY`, `ADMIN_USERNAME`, `ADMIN_PASSWORD` +- **Healthcheck:** HTTP GET `http://localhost:5000/` (30s interval, 40s start) +- **Restart:** `unless-stopped` + +### Service `caddy` +- **Image:** `caddy:2-alpine` +- **Ports:** `8080:80`, `8443:443` +- **Volumes:** `./data/Caddyfile:/etc/caddy/Caddyfile:rw`, `./data/caddy-data:/data`, `./data/caddy-config:/config`, `./data/caddy-logs:/var/log/caddy` +- **Depends on:** app (service started) +- **Healthcheck:** `wget` on port 80 + +--- + +## 3. Dockerfile + +| Stage | Content | +|---|---| +| Base | `python:3.13-slim` | +| System deps | `poppler-utils`, `ffmpeg`, `libmagic1`, `sudo`, `fonts-noto-color-emoji`, `LibreOffice` (core/impress/writer), `sshpass`, `openssh-client`, `rsync`, `git` | +| Python | `COPY requirements.txt` → `pip install` (cached layer), then `COPY . .` | +| App config | `FLASK_APP=app.app:create_app`, `FLASK_ENV=production`, `EXPOSE 5000` | +| User | Non-root `appuser` (UID 1000) with **passwordless sudo** limited to `apt-get`, `install_libreoffice.sh`, `install_emoji_fonts.sh` | +| Runtime | `HEALTHCHECK` (HTTP 5000), `ENTRYPOINT /docker-entrypoint.sh` | + +--- + +## 4. `docker-entrypoint.sh` + +1. Create `/app/instance` and `/app/app/static/uploads`. +2. If `dashboard.db` is missing: create app + `db.create_all()`, then create/update the admin user from `ADMIN_USERNAME` / `ADMIN_PASSWORD`. +3. Start **Gunicorn**: `--bind 0.0.0.0:5000 --workers 4 --timeout 120 app.app:create_app('production')`. + +--- + +## 5. `deploy.sh` (One-Shot Deployment) + +``` +1. Validate compose + project; create data/ subdirs; copy nginx configs +2. docker compose up -d + verify containers "Up" +3. Run migration scripts (add_https_config_table, add_player_user_table, + add_email_to_https_config, migrate_player_user_global, + add_original_filename_to_content) +4. Run /app/https_manager.py enable + ⚠ https_manager.py is NOT in the current repo — this step needs attention +5. Verify DB tables via SQLAlchemy inspector +6. caddy validate + https_manager.py status; print access URLs + default creds +``` + +--- + +## 6. HTTPS Setup (Caddy) + +HTTPS is configured through the **Admin → HTTPS Configuration** page, which: + +1. Saves `HTTPSConfig` (hostname, domain, IP, email, port, enabled). +2. `CaddyConfigGenerator.generate_caddyfile(config)` picks a template: + - **HTTP-only** → `:80` reverse proxy + - **Domain** → automatic Let's Encrypt + - **IP** → internal CA self-signed +3. Writes `/etc/caddy/Caddyfile` and reloads Caddy via `POST http://caddy:2019/load`. + +The current `data/Caddyfile` (HTTP mode) includes: admin API on `0.0.0.0:2019`, `:80` block → `digiserver-app:5000`, 2 GB body limit, gzip, security headers, access log. + +--- + +## 7. `verify-deployment.sh` — Pre/Post-Deployment Checks + +Sections checked (pass/fail/warn counters): +- git status +- `.env` / `.env.example` +- Docker + Compose versions + `compose config` syntax +- Dockerfile best practices (HEALTHCHECK, non-root, slim base) +- `requirements.txt` critical packages + versions +- migrations directory +- **SSL cert expiry** (openssl) +- Flask config (`ProductionConfig`, `SESSION_COOKIE_SECURE`) +- nginx.conf checks +- runtime container health +- security best practices + +> ⚠ Note: the script still references `docker-compose` (v1) and `digiserver-nginx` — the current stack uses Compose v2 + Caddy. + +--- + +## 8. Player Deployment Pipeline + +```mermaid +sequenceDiagram + participant U as Admin + participant A as App + participant B as Background + participant H as Player host + U->>A: Add player (name, hostname, password/quickconnect) + A->>B: background_player_deployment() + B->>B: build/refresh staged code (PLAYER_CODE_DIR) + B->>H: sshpass + ssh test + B->>H: rsync code (or git clone/pull fallback) + B->>H: write config/app_config.json (server_ip, quickconnect, https...) + B->>H: temporary passwordless sudo + B->>H: ./install.sh && ./start.sh + B->>H: remove temp sudoers + B-->>A: player.deployment_status = 'deployed' | 'failed' + U->>A: poll /players/deployment-status +``` + +Statuses: `pending → deploying → deployed | failed`, with `last_deployment_at/status/message` persisted on the player row. Receiving player feedback also auto-marks deployment `deployed`. + +--- + +## 9. Ports & Volumes Summary + +| Item | Value | +|---|---| +| App port (container) | 5000 | +| App port (host, dev) | 5000 | +| Caddy HTTP | 8080 → 80 | +| Caddy HTTPS | 8443 → 443 | +| Caddy admin API | 2019 (container) | +| DB volume | `./data/instance` | +| Uploads volume | `./data/uploads` | +| Caddy data/config/logs | `./data/caddy-*` | + +--- + +> Next: [08 · Workflows](08-workflows.md) diff --git a/docs/08-workflows.md b/docs/08-workflows.md new file mode 100644 index 0000000..50204b2 --- /dev/null +++ b/docs/08-workflows.md @@ -0,0 +1,150 @@ +# 08 · End-to-End Workflows + +This document traces the main user journeys through the system, tying together blueprints, models, utils, and the Graphify graph. + +--- + +## 1. Content Upload → Playlist → Player + +```mermaid +flowchart LR + U["Admin uploads media"] --> UF["/content/upload-media"] + UF -->|image| IMG["optimize_image_to_fullhd"] + UF -->|video| VID["validate via ffprobe"] + UF -->|pdf| PDF["pdf2image @300dpi → page PNGs"] + UF -->|pptx| PPT["LibreOffice → PDF → PNG slides"] + UF -->|large file| BG["process_file_in_background (thread)"] + UF --> DB[("Content row")] + DB --> PLA["/content/playlist//add-content"] + PLA --> PLC["playlist_content (position, duration, muted, edit_on_player_enabled)"] + PLC --> VER["Playlist.increment_version() + cache.clear()"] + VER --> API["/api/playlists/"] + API --> P["Player fetches new playlist"] +``` + +**Key files:** `app/blueprints/content.py`, `app/utils/uploads.py`, `app/utils/pptx_converter.py`, `app/models/content.py`, `app/models/playlist.py`. + +--- + +## 2. Playlist Synchronization (the "version" mechanism) + +Every playlist mutation bumps `Playlist.version`. Players detect changes by polling: + +```mermaid +sequenceDiagram + participant U as Admin UI + participant App + participant DB as SQLite + participant P as Player + + U->>App: reorder / mute / duration / add / remove + App->>DB: mutate playlist_content + App->>DB: playlist.increment_version() + App->>App: cache.clear() + loop while player runs + P->>App: GET /api/playlist-version/ + App-->>P: {version: N} + alt version changed + P->>App: GET /api/playlists/ + App-->>P: new playlist payload + end + end +``` + +**Playlist payload items** include: `file_name`, `type`, `duration`, `position`, `url` (weblink or static file), `description`, `edit_on_player_enabled`, `muted`, `audio`. + +--- + +## 3. On-Player Media Editing Pipeline ⭐ (heat 0.620) + +When a signage operator edits an image directly on the player device: + +```mermaid +flowchart TD + A["Player posts edited image"] --> B["POST /api/player-edit-media (Bearer + multipart)"] + B --> C{"Locate Content"} + C -->|by filename| D["match filename"] + C -->|edited_media regex| E["match edited_media//"] + C -->|fallback| F["last PlayerEdit"] + D/E/F --> G["Move original → edited_media//original_*"] + G --> H["Save new version + side-car metadata JSON"] + H --> I{"PlayerUser exists for user_code?"} + I -- no --> J["auto-create PlayerUser"] + I -- yes --> K["reuse"] + J/K --> L["Create PlayerEdit (version, original_name, new_name...)"] + L --> M["Repoint Content.filename → latest edit"] + M --> N["Preserve original_filename"] + N --> O["Playlist.increment_version() + cache.clear()"] + O --> P["Player sees updated media on refresh"] +``` + +**Why this is a god node:** `PlayerEdit` (99 edges) and `PlayerUser` (74 edges) make this the most-connected data flow in the system. See `app/models/player_edit.py`, `app/models/player_user.py`, `app/blueprints/api.py`. + +--- + +## 4. HTTPS Configuration (Caddy) + +```mermaid +flowchart TD + A["Admin → /admin/https-config"] --> B["POST /admin/https-config/update"] + B --> C["Validate + save HTTPSConfig (email, domain, ip, port)"] + C --> D["CaddyConfigGenerator.generate_caddyfile()"] + D --> E{"Mode"} + E -->|HTTP| F[":80 reverse proxy"] + E -->|domain| G["Let's Encrypt automatic HTTPS"] + E -->|IP| H["Internal CA self-signed"] + F/G/H --> I["write_caddyfile(/etc/caddy/Caddyfile)"] + I --> J["POST http://caddy:2019/load (hot reload)"] + J --> K["HTTPS live without restart"] +``` + +--- + +## 5. User Management & Auditing + +```mermaid +flowchart TD + A["Admin panel"] --> B["/admin/user/create"] + A --> C["/admin/user//role"] + A --> D["/admin/user//password"] + A --> E["/admin/user//delete"] + B/C/D/E --> L["log_action(level, message)"] + L --> S[("server_log")] + S --> F["dashboard / admin recent logs"] + S --> G["/api/logs (limit, level, since)"] +``` + +**Roles:** `admin` (full), `user` (manage content/players), `viewer` (read-only dashboard). + +--- + +## 6. Portal SSO (optional corporate gateway) + +```mermaid +sequenceDiagram + participant B as Browser + participant G as Umbrella nginx gateway + participant A as DigiServer + B->>G: request (authenticated by portal) + G->>A: proxy + headers X-Auth-Username, X-Auth-Role + A->>A: init_portal_sso before_request + A->>A: _get_or_create_user(username, role) + A-->>B: dashboard (auto logged-in) +``` + +--- + +## 7. Media Housekeeping (Leftovers) + +Content not assigned to any playlist is flagged as "leftover": + +```mermaid +flowchart LR + L["/admin/leftover-media"] --> T["grouped by type: image/video/pdf/pptx + sizes"] + T --> D["/admin/delete-leftover-images|videos"] + D --> X["delete file + edited_media archive + PlayerEdit rows"] +``` + +--- + +> Next: [09 · Legacy & Migrations](09-legacy-and-migrations.md) diff --git a/docs/09-legacy-and-migrations.md b/docs/09-legacy-and-migrations.md new file mode 100644 index 0000000..541db4c --- /dev/null +++ b/docs/09-legacy-and-migrations.md @@ -0,0 +1,64 @@ +# 09 · Migrations & Legacy Components + +--- + +## 1. Migrations + +Migrations are **standalone Python scripts** (run via `docker compose exec ... python`, **not** Alembic revisions — there is no `migrations/versions/`). + +| Script | Table(s) | What it does | +|---|---|---| +| `add_https_config_table.py` | `https_config` | Creates table via `db.create_all()` | +| `add_player_user_table.py` | `player_user` | Creates table via `db.create_all()` | +| `add_email_to_https_config.py` | `https_config` | `ALTER TABLE ... ADD COLUMN email VARCHAR(255)` (idempotent) | +| `add_deployment_fields_to_player.py` | `player` | Adds `deployment_status`, `last_deployment_at`, `last_deployment_status`, `last_deployment_message` (idempotent) | +| `add_url_to_content.py` | `content` | `ALTER TABLE ... ADD COLUMN url VARCHAR(2048)` (weblink support) | +| `add_original_filename_to_content.py` | `content` | Adds `original_filename` then **backfills**: from first (v1) `PlayerEdit.original_name` for edited content, else `filename` | +| `migrate_player_user_global.py` | `player_user` | **Drop & recreate**: removes old `player_id` FK, makes `user_code` globally unique, `user_name` nullable | + +**Order (from `deploy.sh`):** +``` +add_https_config_table.py +add_player_user_table.py +add_email_to_https_config.py +migrate_player_user_global.py +add_original_filename_to_content.py +``` + +> ⚠ `deploy.sh` also calls `/app/https_manager.py` — **that file is not present in this repo**, so that deployment step needs attention. + +--- + +## 2. Legacy / Archived Components + +| Component | Status | Notes | +|---|---|---| +| `app/blueprints/content_old.py` | **Dead code** | Legacy per-player content routes (`/`, `/upload`, `//edit`, `/bulk/delete`, `/upload-progress`, `/preview`, `/statistics`, `/check-duplicates`, `//groups`). Not imported by `create_app`. | +| `app/blueprints/playlist.py` | **Active but legacy** | Per-player playlist routes kept as redirects to the modern content workflow. | +| `Group` model + group routes | **Archived** | `Player` no longer has `group_id`; group routes commented out; `group_player_management.py` and `group_content` association remain for reference. | +| `nginx` stack | **Replaced by Caddy** | `data/nginx.conf`, `data/nginx-custom-domains.conf`, `data/nginx-logs/`, `data/nginx-ssl/` retained. `utils/nginx_config_reader.py` still parses it. | +| `https_manager.py` | **Missing** | Referenced by `deploy.sh` but not in repo — likely merged into `CaddyConfigGenerator`. | +| `old_code_documentation/` | **Archive** | Full legacy docs, old scripts (`blueprint_groups.py`, `add_muted_column.py`, `fix_player_user_schema.py`, `test_edit_media_*.py`, `check_fix_player.py`, `migrate_add_edit_enabled.py`), deployment guides, HTTPS analysis, player analysis. | +| `QUICK_DEPLOYMENT.md`, `deployment-commands-reference.sh` | **Active reference** | Manual deployment notes. | + +--- + +## 3. Recommended Cleanup (optional) + +- Remove `content_old.py` and `old_code_documentation/*.py` scripts that are no longer needed (keep the `.md` docs). +- Resolve the missing `https_manager.py` in `deploy.sh` (use `CaddyConfigGenerator` equivalents). +- Update `verify-deployment.sh` to reference Compose v2 and Caddy instead of `docker-compose`/nginx. + +--- + +## 📚 Back to Index + +- [README · Documentation Home](README.md) +- [01 · Architecture](01-architecture.md) +- [02 · Knowledge Graph](02-knowledge-graph.md) +- [03 · Data Model](03-data-model.md) +- [04 · Application Core](04-application-core.md) +- [05 · Blueprints & API](05-blueprints-api.md) +- [06 · Utils & Services](06-utils-services.md) +- [07 · Deployment](07-deployment.md) +- [08 · Workflows](08-workflows.md) diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..f68a58e --- /dev/null +++ b/docs/README.md @@ -0,0 +1,108 @@ +# DigiServer v2 — Project Documentation + +> **Comprehensive technical documentation generated with [Graphify](https://marketplace.visualstudio.com/items?itemName=anytechiestudio.graphify-vscode)** — an interactive knowledge-graph engine for AI-assisted coding. + +**Version:** 2.0.0 · **Build date:** 2025-11-12 · **Generated:** 2026-08-16 + +DigiServer v2 is a **digital signage management server** built with **Flask**. It manages media content (images, videos, PDFs, presentations), organizes it into **playlists**, assigns **players** (physical signage displays), and remotely **deploys and monitors** those players over SSH — including HTTPS/SSL provisioning via Caddy and an on-player photo-editing pipeline. + +--- + +## 🗂 Documentation Index + +| Document | Purpose | +|---|---| +| [**01-architecture.md**](01-architecture.md) | System overview, layers, component map, architecture diagrams | +| [**02-knowledge-graph.md**](02-knowledge-graph.md) | Graphify graph: 41 communities, god nodes, and how to use the visualizer | +| [**03-data-model.md**](03-data-model.md) | Database schema: all 10 tables, relationships, ER diagrams | +| [**04-application-core.md**](04-application-core.md) | App factory, config, extensions, middleware, CLI, templates | +| [**05-blueprints-api.md**](05-blueprints-api.md) | All 7 blueprints + full REST API reference | +| [**06-utils-services.md**](06-utils-services.md) | Background tasks, SSH deploy, Caddy manager, player build, SSO, uploads | +| [**07-deployment.md**](07-deployment.md) | Docker, Caddy, deployment pipeline, HTTPS setup, verify script | +| [**08-workflows.md**](08-workflows.md) | End-to-end flows: upload, playlists, player edits, deployment, sync | +| [**09-legacy-and-migrations.md**](09-legacy-and-migrations.md) | Migration scripts, deprecated/archived components | + +**Auto-generated Graphify artifacts** (regenerate anytime — see [02-knowledge-graph.md](02-knowledge-graph.md)): + +``` +graphify-out/ +├── graph.html ← Interactive visualizer (open in browser) +├── graph.json ← Raw graph data (631 nodes / 1162 edges) +├── GRAPH_REPORT.md ← God nodes, communities, knowledge gaps +├── COMPASS.md ← Token-optimized architecture summary +├── DOMAINS.md ← Community → domain mapping +├── intelligence.json ← AI-detected insights (god nodes, surprises) +├── graph.compact.txt ← Compact graph dump for LLM context +└── wiki/ ← Per-community + per-god-node Markdown articles + ├── index.md + ├── Community_0.md … Community_40.md + ├── CaddyConfigGenerator.md, Content.md, HTTPSConfig.md, + ├── PlayerEdit.md, PlayerUser.md, Playlist.md, User.md, + ├── log_action().md, create_app().md … +``` + +--- + +## ⚡ Quick Facts + +| Metric | Value | +|---|---| +| Framework | Flask 3.1 + SQLAlchemy 2.0 (SQLite) + Gunicorn | +| Application type | Digital signage content/playlist/player management | +| Graph size | **631 nodes · 1162 edges · 41 communities** | +| Blueprints | 7 active (`main`, `auth`, `admin`, `players`, `content`, `playlist`, `api`) | +| Database tables | 10 (`user`, `player`, `player_edit`, `player_feedback`, `player_user`, `content`, `group`, `playlist`, `server_log`, `https_config`) | +| Reverse proxy | Caddy 2 (automatic HTTPS / Let's Encrypt) | +| Deployment | Docker Compose (app + Caddy) + remote SSH player provisioning | +| Key externals | LibreOffice, Poppler (pdf2image), FFmpeg, sshpass/rsync | + +--- + +## 🔑 Core Abstractions (Graphify "God Nodes") + +Detected automatically from graph centrality: + +1. `log_action()` — 116 edges · DB-backed audit logging (`app/utils/logger.py`) +2. `PlayerEdit` — 99 edges · on-player edit records (`app/models/player_edit.py`) +3. `PlayerUser` — 74 edges · player edit user mapping (`app/models/player_user.py`) +4. `Playlist` — 33 edges · playlist + versioning (`app/models/playlist.py`) +5. `CaddyConfigGenerator` — 31 edges · HTTPS Caddyfile generation (`app/utils/caddy_manager.py`) +6. `HTTPSConfig` — 30 edges · HTTPS settings model (`app/models/https_config.py`) +7. `Content` — 24 edges · media content model (`app/models/content.py`) +8. `User` — 19 edges · admin/user/viewer accounts (`app/models/user.py`) +9. `create_app()` — 13 edges · application factory (`app/app.py`) +10. `app/models/__init__.py` — 13 edges · models package export + +--- + +## 🧭 Quick Navigation + +### The 7 Active Blueprints + +| Blueprint | Prefix | Responsibility | +|---|---|---| +| `main` | `/` | Dashboard + health check | +| `auth` | `/` | Login / logout / register / change password | +| `admin` | `/admin` | Users, HTTPS config, player build, logos, logs, leftovers | +| `players` | `/players` | Player CRUD, manage, edited media, deployment status | +| `content` | `/content` | Media library, uploads, playlist management (modern) | +| `playlist` | `/playlist` | Legacy per-player playlist routes (redirects) | +| `api` | `/api` | Player-facing REST API (auth, playlists, feedback, edits, deploy) | + +### Data Model at a Glance + +```mermaid +erDiagram + user ||--o{ server_log : "" + player ||--o{ player_feedback : "cascade" + player ||--o{ player_edit : "cascade" + player }o--o| playlist : "assigned" + content ||--o{ player_edit : "cascade" + content ||--o{ player_feedback : "" + playlist ||--o{ content : "playlist_content (M2M)" + content }o--o{ group : "group_content (M2M)" + player_user ||--o{ player_edit : "user_code" + https_config ||--|| https_config : "single row config" +``` + +> **Proceed to [01-architecture.md](01-architecture.md)** for the full system overview and diagrams. diff --git a/graphify-out/COMPASS.md b/graphify-out/COMPASS.md new file mode 100644 index 0000000..8b88d79 --- /dev/null +++ b/graphify-out/COMPASS.md @@ -0,0 +1,22 @@ +# Architectural Compass - /home/scheianu/digiserver-v2 (2026-08-16) + +> [!NOTE] +> This is a token-optimized summary. For deep logic, see GRAPH_REPORT.md. + +## Core Abstractions (God Nodes) +1. `log_action()` (116 edges) +2. `PlayerEdit` (99 edges) +3. `PlayerUser` (74 edges) +4. `Playlist` (33 edges) +5. `CaddyConfigGenerator` (31 edges) +6. `HTTPSConfig` (30 edges) +7. `Content` (24 edges) +8. `User` (19 edges) +9. `create_app()` (13 edges) +10. `Models package for digiserver-v2.` (13 edges) + +## System Layers +- **L0: Global/Entry**: +- **L1: Strategic/Core**: +- **L2: Implementation**: +- **L3: Utility**: \ No newline at end of file diff --git a/graphify-out/DOMAINS.md b/graphify-out/DOMAINS.md new file mode 100644 index 0000000..ce5bd1c --- /dev/null +++ b/graphify-out/DOMAINS.md @@ -0,0 +1,45 @@ +# System Domains (Communities) + +| ID | Domain | Rationale | +|---|---|---| +| 0 | Community 0 | | +| 1 | Community 1 | | +| 2 | Community 2 | | +| 3 | Community 3 | | +| 4 | Community 4 | | +| 5 | Community 5 | | +| 6 | Community 6 | | +| 7 | Community 7 | | +| 8 | Community 8 | | +| 9 | Community 9 | | +| 10 | Community 10 | | +| 11 | Community 11 | | +| 12 | Community 12 | | +| 13 | Community 13 | | +| 14 | Community 14 | | +| 15 | Community 15 | | +| 16 | Community 16 | | +| 17 | Community 17 | | +| 18 | Community 18 | | +| 19 | Community 19 | | +| 20 | Community 20 | | +| 21 | Community 21 | | +| 22 | Community 22 | | +| 23 | Community 23 | | +| 24 | Community 24 | | +| 25 | Community 25 | | +| 26 | Community 26 | | +| 27 | Community 27 | | +| 28 | Community 28 | | +| 29 | Community 29 | | +| 30 | Community 30 | | +| 31 | Community 31 | | +| 32 | Community 32 | | +| 33 | Community 33 | | +| 34 | Community 34 | | +| 35 | Community 35 | | +| 36 | Community 36 | | +| 37 | Community 37 | | +| 38 | Community 38 | | +| 39 | Community 39 | | +| 40 | Community 40 | | \ No newline at end of file diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md new file mode 100644 index 0000000..ceedbdd --- /dev/null +++ b/graphify-out/GRAPH_REPORT.md @@ -0,0 +1,342 @@ +# Graph Report - /home/scheianu/digiserver-v2 (2026-08-16) + +## Corpus Check +- 49 files · ~210,805 words +- Verdict: corpus is large enough that graph structure adds value. + +## Summary +- 631 nodes · 1162 edges · 41 communities detected +- Extraction: 56% EXTRACTED · 44% INFERRED · 0% AMBIGUOUS · INFERRED: 512 edges (avg confidence: 0.62) +- Token cost: 0 input · 0 output + +## Community Hubs (Navigation) +- [[_COMMUNITY_Community 0|Community 0]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 5|Community 5]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] +- [[_COMMUNITY_Community 8|Community 8]] +- [[_COMMUNITY_Community 9|Community 9]] +- [[_COMMUNITY_Community 10|Community 10]] +- [[_COMMUNITY_Community 11|Community 11]] +- [[_COMMUNITY_Community 12|Community 12]] +- [[_COMMUNITY_Community 13|Community 13]] +- [[_COMMUNITY_Community 14|Community 14]] +- [[_COMMUNITY_Community 15|Community 15]] +- [[_COMMUNITY_Community 16|Community 16]] +- [[_COMMUNITY_Community 17|Community 17]] +- [[_COMMUNITY_Community 18|Community 18]] +- [[_COMMUNITY_Community 19|Community 19]] +- [[_COMMUNITY_Community 20|Community 20]] +- [[_COMMUNITY_Community 21|Community 21]] +- [[_COMMUNITY_Community 22|Community 22]] +- [[_COMMUNITY_Community 23|Community 23]] +- [[_COMMUNITY_Community 24|Community 24]] +- [[_COMMUNITY_Community 25|Community 25]] +- [[_COMMUNITY_Community 26|Community 26]] +- [[_COMMUNITY_Community 27|Community 27]] +- [[_COMMUNITY_Community 28|Community 28]] +- [[_COMMUNITY_Community 29|Community 29]] +- [[_COMMUNITY_Community 30|Community 30]] +- [[_COMMUNITY_Community 31|Community 31]] +- [[_COMMUNITY_Community 32|Community 32]] +- [[_COMMUNITY_Community 33|Community 33]] +- [[_COMMUNITY_Community 34|Community 34]] +- [[_COMMUNITY_Community 35|Community 35]] +- [[_COMMUNITY_Community 36|Community 36]] +- [[_COMMUNITY_Community 37|Community 37]] +- [[_COMMUNITY_Community 38|Community 38]] +- [[_COMMUNITY_Community 39|Community 39]] +- [[_COMMUNITY_Community 40|Community 40]] + +## God Nodes (most connected - your core abstractions) +1. `log_action()` - 116 edges +2. `PlayerEdit` - 99 edges +3. `PlayerUser` - 74 edges +4. `Playlist` - 33 edges +5. `CaddyConfigGenerator` - 31 edges +6. `HTTPSConfig` - 30 edges +7. `Content` - 24 edges +8. `User` - 19 edges +9. `create_app()` - 13 edges +10. `Models package for digiserver-v2.` - 13 edges + +## Surprising Connections (you probably didn't know these) +- `reset_user_password()` --calls--> `log_action()` [INFERRED] + /home/scheianu/digiserver-v2/app/blueprints/admin.py → /home/scheianu/digiserver-v2/app/utils/logger.py +- `upload_header_logo()` --calls--> `log_action()` [INFERRED] + /home/scheianu/digiserver-v2/app/blueprints/admin.py → /home/scheianu/digiserver-v2/app/utils/logger.py +- `delete_editing_user()` --calls--> `log_action()` [INFERRED] + /home/scheianu/digiserver-v2/app/blueprints/admin.py → /home/scheianu/digiserver-v2/app/utils/logger.py +- `delete_playlist()` --calls--> `log_action()` [INFERRED] + /home/scheianu/digiserver-v2/app/blueprints/content.py → /home/scheianu/digiserver-v2/app/utils/logger.py +- `Main playlist management page.` --uses--> `PlayerEdit` [INFERRED] + /home/scheianu/digiserver-v2/app/blueprints/content.py → /home/scheianu/digiserver-v2/app/models/player_edit.py + +## Communities + +### Community 0 - "Community 0" + +Cohesion: 0.03 +Nodes (80): change_password(), login(), logout(), Authentication Blueprint - Login, Logout, Register, register(), add_content_to_group(), add_player_to_group(), delete_group() (+72 more) + +### Community 1 - "Community 1" + +Cohesion: 0.04 +Nodes (72): Add player_user table for user code mappings., admin_panel(), admin_required(), build_player(), change_theme(), change_user_role(), clear_logs(), create_user() (+64 more) + +### Community 2 - "Community 2" + +Cohesion: 0.04 +Nodes (61): add_content_to_playlist(), add_weblink(), add_weblink_to_playlist(), assign_player_to_playlist(), bulk_remove_from_playlist(), content_list(), create_fullhd_image(), delete_playlist() (+53 more) + +### Community 3 - "Community 3" + +Cohesion: 0.06 +Nodes (57): api_not_found(), authenticate_player(), deploy_player(), get_cached_playlist(), get_logs(), get_player_playlist(), get_player_status(), get_playlist_by_quickconnect() (+49 more) + +### Community 4 - "Community 4" + +Cohesion: 0.07 +Nodes (42): add_muted_column(), Add muted column to playlist_content association table., configure_login_manager(), create_app(), DigiServer v2 - Application Factory Modern Flask application with blueprint arch, Configure Flask-Login, Register error handlers, Register CLI commands (+34 more) + +### Community 5 - "Community 5" + +Cohesion: 0.04 +Nodes (27): Content, Content model for media files., String representation of Content., Check if content is an image., Check if content is a video., Content model representing media files for display. Attributes:, Check if content is a PDF., Check if content is a web link (URL) rather than an uploaded file. (+19 more) + +### Community 6 - "Community 6" + +Cohesion: 0.05 +Nodes (45): Add https_config table for HTTPS configuration management., Write Caddyfile to disk. Args: caddyfile_content: C, Reload Caddy configuration without restart. Note: Caddy monitor, Generate a complete Caddyfile. Behaviour: - HTTPS disabled / no, Write Caddyfile to disk. The default path is /etc/caddy/Caddyfile — the, Push the current Caddyfile to Caddy via its admin API (/load). Caddy ap, HTTPSConfig, String representation of HTTPSConfig. (+37 more) + +### Community 7 - "Community 7" + +Cohesion: 0.06 +Nodes (26): create_group(), delete_media(), Delete a media file and remove it from all playlists., Group, Group model for organizing players and content., Group model for organizing players with shared content. Attributes:, String representation of Group., Add a player to this group. Args: player: Player in (+18 more) + +### Community 8 - "Community 8" + +Cohesion: 0.23 +Nodes (23): check_database_integrity(), Colors, get_player_auth_code(), get_sample_content(), main(), print_error(), print_info(), print_section() (+15 more) + +### Community 9 - "Community 9" + +Cohesion: 0.11 +Nodes (20): Get upload progress for a specific upload., upload_content(), upload_progress_status(), clear_upload_progress(), delete_file(), get_file_size(), get_upload_progress(), process_pdf_file() (+12 more) + +### Community 10 - "Community 10" + +Cohesion: 0.12 +Nodes (18): background_player_deployment(), Background task execution for long-running operations., Run a function in a background thread, with a Flask app context pushed., Deploy player code to host in background. Args: hostname: SSH h, run_background_task(), deploy_player_to_host(), generate_app_config(), generate_player_config() (+10 more) + +### Community 11 - "Community 11" + +Cohesion: 0.15 +Nodes (18): build_player_action(), Build/refresh the staged player code and/or write its base config., build_player_files(), get_player_server_settings(), get_short_head(), load_build_settings(), make_build_record(), Utilities for building/staging the player files on the server. Admins use the " (+10 more) + +### Community 12 - "Community 12" + +Cohesion: 0.29 +Nodes (7): cleanup_libreoffice_processes(), pptx_to_pdf_libreoffice(), PowerPoint to PDF converter using LibreOffice., Clean up any hanging LibreOffice processes., Convert PPTX to PDF using LibreOffice for highest quality. This functio, Validate if file is a valid PowerPoint file. Args: filepath: Pa, validate_pptx_file() + +### Community 13 - "Community 13" + +Cohesion: 0.5 +Nodes (3): migrate(), Migration: Add edit_on_player_enabled column to playlist_content table., Add edit_on_player_enabled column to playlist_content. + +### Community 14 - "Community 14" + +Cohesion: 1.0 +Nodes (1): Migrate player_user table to remove player_id and make user_code unique globally + +### Community 15 - "Community 15" + +Cohesion: 1.0 +Nodes (1): Add original_filename column to content table. This preserves the pristine uplo + +### Community 16 - "Community 16" + +Cohesion: 1.0 +Nodes (1): Add url column to content table for weblink support. + +### Community 17 - "Community 17" + +Cohesion: 1.0 +Nodes (1): Add deployment tracking columns to player table. + +### Community 18 - "Community 18" + +Cohesion: 1.0 +Nodes (1): Add email field to https_config table. + +### Community 19 - "Community 19" + +Cohesion: 1.0 +Nodes (1): Flask extensions initialization Centralized extension management for the applica + +### Community 20 - "Community 20" + +Cohesion: 1.0 +Nodes (1): Check if feedback indicates an error. + +### Community 21 - "Community 21" + +Cohesion: 1.0 +Nodes (1): Get age of feedback in seconds. + +### Community 22 - "Community 22" + +Cohesion: 1.0 +Nodes (1): Get most recent feedback for a player. Args: player + +### Community 23 - "Community 23" + +Cohesion: 1.0 +Nodes (1): Get the current HTTPS configuration. Returns: HTTPS + +### Community 24 - "Community 24" + +Cohesion: 1.0 +Nodes (1): Create or update HTTPS configuration. Args: https_e + +### Community 25 - "Community 25" + +Cohesion: 1.0 +Nodes (1): Check if user has admin role. + +### Community 26 - "Community 26" + +Cohesion: 1.0 +Nodes (1): Check if player is online (seen in last 5 minutes). + +### Community 27 - "Community 27" + +Cohesion: 1.0 +Nodes (1): Authenticate a player by hostname and password or quickconnect code. + +### Community 28 - "Community 28" + +Cohesion: 1.0 +Nodes (1): Create an info level log entry. Args: message: Log + +### Community 29 - "Community 29" + +Cohesion: 1.0 +Nodes (1): Create a warning level log entry. Args: message: Lo + +### Community 30 - "Community 30" + +Cohesion: 1.0 +Nodes (1): Create an error level log entry. Args: message: Log + +### Community 31 - "Community 31" + +Cohesion: 1.0 +Nodes (1): Get number of content items in this group. + +### Community 32 - "Community 32" + +Cohesion: 1.0 +Nodes (1): Get file size in megabytes. + +### Community 33 - "Community 33" + +Cohesion: 1.0 +Nodes (1): Get number of groups containing this content. + +### Community 34 - "Community 34" + +Cohesion: 1.0 +Nodes (1): Name of the original (unedited) file for display purposes. + +### Community 35 - "Community 35" + +Cohesion: 1.0 +Nodes (1): Path (relative to uploads/) where the original unedited file lives. Whe + +### Community 36 - "Community 36" + +Cohesion: 1.0 +Nodes (1): Path (relative to uploads/) of the current/latest version to display. + +### Community 37 - "Community 37" + +Cohesion: 1.0 +Nodes (1): Whether this content has been edited on a player. + +### Community 38 - "Community 38" + +Cohesion: 1.0 +Nodes (1): Display name of the original (unedited) file. + +### Community 39 - "Community 39" + +Cohesion: 1.0 +Nodes (1): uploads/-relative path of the pristine original file. After a player ed + +### Community 40 - "Community 40" + +Cohesion: 1.0 +Nodes (0): + +## Knowledge Gaps +- **178 isolated node(s):** `Migrate player_user table to remove player_id and make user_code unique globally`, `Add original_filename column to content table. This preserves the pristine uplo`, `Add url column to content table for weblink support.`, `Add deployment tracking columns to player table.`, `Add email field to https_config table.` (+173 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **Thin community `Community 14`** (2 nodes): `migrate_player_user_global.py`, `Migrate player_user table to remove player_id and make user_code unique globally` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 15`** (2 nodes): `Add original_filename column to content table. This preserves the pristine uplo`, `add_original_filename_to_content.py` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 16`** (2 nodes): `Add url column to content table for weblink support.`, `add_url_to_content.py` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 17`** (2 nodes): `Add deployment tracking columns to player table.`, `add_deployment_fields_to_player.py` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 18`** (2 nodes): `Add email field to https_config table.`, `add_email_to_https_config.py` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 19`** (2 nodes): `Flask extensions initialization Centralized extension management for the applica`, `extensions.py` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 20`** (1 nodes): `Check if feedback indicates an error.` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 21`** (1 nodes): `Get age of feedback in seconds.` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 22`** (1 nodes): `Get most recent feedback for a player. Args: player` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 23`** (1 nodes): `Get the current HTTPS configuration. Returns: HTTPS` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 24`** (1 nodes): `Create or update HTTPS configuration. Args: https_e` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 25`** (1 nodes): `Check if user has admin role.` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 26`** (1 nodes): `Check if player is online (seen in last 5 minutes).` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 27`** (1 nodes): `Authenticate a player by hostname and password or quickconnect code.` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 28`** (1 nodes): `Create an info level log entry. Args: message: Log` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 29`** (1 nodes): `Create a warning level log entry. Args: message: Lo` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 30`** (1 nodes): `Create an error level log entry. Args: message: Log` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 31`** (1 nodes): `Get number of content items in this group.` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 32`** (1 nodes): `Get file size in megabytes.` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 33`** (1 nodes): `Get number of groups containing this content.` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 34`** (1 nodes): `Name of the original (unedited) file for display purposes.` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 35`** (1 nodes): `Path (relative to uploads/) where the original unedited file lives. Whe` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 36`** (1 nodes): `Path (relative to uploads/) of the current/latest version to display.` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 37`** (1 nodes): `Whether this content has been edited on a player.` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 38`** (1 nodes): `Display name of the original (unedited) file.` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 39`** (1 nodes): `uploads/-relative path of the pristine original file. After a player ed` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 40`** (1 nodes): `check_fix_player.py` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. \ No newline at end of file diff --git a/graphify-out/cache/00c752d7501e4f21c01d224dc9502e315268839584af12a578a8cd601e89352a.json b/graphify-out/cache/00c752d7501e4f21c01d224dc9502e315268839584af12a578a8cd601e89352a.json new file mode 100644 index 0000000..33222ea --- /dev/null +++ b/graphify-out/cache/00c752d7501e4f21c01d224dc9502e315268839584af12a578a8cd601e89352a.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_models_player_py", "label": "player.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "player_player", "label": "Player", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L8", "complexity": 6, "loc": 137}, {"id": "player_player_repr", "label": ".__repr__()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L55", "complexity": 1, "loc": 3}, {"id": "player_is_online", "label": "is_online()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L60", "complexity": 2, "loc": 6}, {"id": "player_player_update_status", "label": ".update_status()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L67", "complexity": 1, "loc": 8}, {"id": "player_player_set_password", "label": ".set_password()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L76", "complexity": 1, "loc": 8}, {"id": "player_player_check_password", "label": ".check_password()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L85", "complexity": 1, "loc": 11}, {"id": "player_player_set_quickconnect_code", "label": ".set_quickconnect_code()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L97", "complexity": 1, "loc": 8}, {"id": "player_player_check_quickconnect_code", "label": ".check_quickconnect_code()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L106", "complexity": 2, "loc": 13}, {"id": "player_authenticate", "label": "authenticate()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L121", "complexity": 4, "loc": 24}, {"id": "player_rationale_1", "label": "Player model for digital signage players.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L1"}, {"id": "player_rationale_9", "label": "Player model representing a digital signage device. Attributes:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L9"}, {"id": "player_rationale_56", "label": "String representation of Player.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L56"}, {"id": "player_rationale_61", "label": "Check if player is online (seen in last 5 minutes).", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L61"}, {"id": "player_rationale_68", "label": "Update player status and last seen timestamp. Args:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L68"}, {"id": "player_rationale_77", "label": "Set player password with bcrypt hashing. Args: pass", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L77"}, {"id": "player_rationale_86", "label": "Verify player password. Args: password: Plain text", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L86"}, {"id": "player_rationale_98", "label": "Set quick connect code with bcrypt hashing. Args: c", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L98"}, {"id": "player_rationale_107", "label": "Verify quick connect code. Args: code: Plain text c", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L107"}, {"id": "player_rationale_122", "label": "Authenticate a player by hostname and password or quickconnect code.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L122"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_models_player_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_py", "target": "player_player", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L8", "weight": 1.0}, {"source": "player_player", "target": "player_player_repr", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L55", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_py", "target": "player_is_online", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L60", "weight": 1.0}, {"source": "player_player", "target": "player_player_update_status", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L67", "weight": 1.0}, {"source": "player_player", "target": "player_player_set_password", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L76", "weight": 1.0}, {"source": "player_player", "target": "player_player_check_password", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L85", "weight": 1.0}, {"source": "player_player", "target": "player_player_set_quickconnect_code", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L97", "weight": 1.0}, {"source": "player_player", "target": "player_player_check_quickconnect_code", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L106", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_py", "target": "player_authenticate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L121", "weight": 1.0}, {"source": "player_authenticate", "target": "player_player_check_password", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L137", "weight": 1.0}, {"source": "player_authenticate", "target": "player_player_check_quickconnect_code", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L141", "weight": 1.0}, {"source": "player_rationale_1", "target": "home_scheianu_digiserver_v2_app_models_player_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L1", "weight": 1.0}, {"source": "player_rationale_9", "target": "player_player", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L9", "weight": 1.0}, {"source": "player_rationale_56", "target": "player_player_repr", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L56", "weight": 1.0}, {"source": "player_rationale_61", "target": "player_player_is_online", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L61", "weight": 1.0}, {"source": "player_rationale_68", "target": "player_player_update_status", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L68", "weight": 1.0}, {"source": "player_rationale_77", "target": "player_player_set_password", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L77", "weight": 1.0}, {"source": "player_rationale_86", "target": "player_player_check_password", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L86", "weight": 1.0}, {"source": "player_rationale_98", "target": "player_player_set_quickconnect_code", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L98", "weight": 1.0}, {"source": "player_rationale_107", "target": "player_player_check_quickconnect_code", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L107", "weight": 1.0}, {"source": "player_rationale_122", "target": "player_player_authenticate", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L122", "weight": 1.0}], "raw_calls": [{"caller_nid": "player_is_online", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L64"}, {"caller_nid": "player_is_online", "callee": "total_seconds", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L65"}, {"caller_nid": "player_player_update_status", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L74"}, {"caller_nid": "player_player_set_password", "callee": "decode", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L83"}, {"caller_nid": "player_player_set_password", "callee": "generate_password_hash", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L83"}, {"caller_nid": "player_player_check_password", "callee": "check_password_hash", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L95"}, {"caller_nid": "player_player_set_quickconnect_code", "callee": "decode", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L104"}, {"caller_nid": "player_player_set_quickconnect_code", "callee": "generate_password_hash", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L104"}, {"caller_nid": "player_player_check_quickconnect_code", "callee": "check_password_hash", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L118"}, {"caller_nid": "player_authenticate", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L132"}, {"caller_nid": "player_authenticate", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", "source_location": "L132"}]} \ No newline at end of file diff --git a/graphify-out/cache/042d4128648eb65ae565150559ae133cc2480db6100242b19a76ab0969c6ff6a.json b/graphify-out/cache/042d4128648eb65ae565150559ae133cc2480db6100242b19a76ab0969c6ff6a.json new file mode 100644 index 0000000..1693b0f --- /dev/null +++ b/graphify-out/cache/042d4128648eb65ae565150559ae133cc2480db6100242b19a76ab0969c6ff6a.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "label": "admin.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "admin_admin_required", "label": "admin_required()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L18", "complexity": 3, "loc": 13}, {"id": "admin_admin_panel", "label": "admin_panel()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L35", "complexity": 6, "loc": 39}, {"id": "admin_create_user", "label": "create_user()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L79", "complexity": 6, "loc": 41}, {"id": "admin_change_user_role", "label": "change_user_role()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L125", "complexity": 4, "loc": 29}, {"id": "admin_delete_user", "label": "delete_user()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L159", "complexity": 3, "loc": 23}, {"id": "admin_change_theme", "label": "change_theme()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L187", "complexity": 3, "loc": 19}, {"id": "admin_upload_logo", "label": "upload_logo()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L211", "complexity": 5, "loc": 37}, {"id": "admin_clear_logs", "label": "clear_logs()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L253", "complexity": 2, "loc": 15}, {"id": "admin_user_management", "label": "user_management()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L273", "complexity": 2, "loc": 9}, {"id": "admin_reset_user_password", "label": "reset_user_password()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L287", "complexity": 4, "loc": 30}, {"id": "admin_system_info", "label": "system_info()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L322", "complexity": 2, "loc": 28}, {"id": "admin_leftover_media", "label": "leftover_media()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L354", "complexity": 2, "loc": 48}, {"id": "admin_delete_leftover_images", "label": "delete_leftover_images()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L406", "complexity": 8, "loc": 52}, {"id": "admin_delete_leftover_videos", "label": "delete_leftover_videos()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L461", "complexity": 8, "loc": 52}, {"id": "admin_delete_single_leftover", "label": "delete_single_leftover()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L516", "complexity": 5, "loc": 32}, {"id": "admin_dependencies", "label": "dependencies()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L553", "complexity": 12, "loc": 76}, {"id": "admin_install_libreoffice", "label": "install_libreoffice()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L634", "complexity": 4, "loc": 32}, {"id": "admin_install_emoji_fonts", "label": "install_emoji_fonts()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L671", "complexity": 4, "loc": 32}, {"id": "admin_customize_logos", "label": "customize_logos()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L708", "complexity": 1, "loc": 4}, {"id": "admin_upload_header_logo", "label": "upload_header_logo()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L717", "complexity": 5, "loc": 26}, {"id": "admin_upload_login_logo", "label": "upload_login_logo()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L748", "complexity": 5, "loc": 26}, {"id": "admin_manage_editing_users", "label": "manage_editing_users()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L778", "complexity": 3, "loc": 22}, {"id": "admin_update_editing_user", "label": "update_editing_user()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L804", "complexity": 3, "loc": 20}, {"id": "admin_delete_editing_user", "label": "delete_editing_user()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L828", "complexity": 2, "loc": 19}, {"id": "admin_https_config", "label": "https_config()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L856", "complexity": 3, "loc": 25}, {"id": "admin_update_https_config", "label": "update_https_config()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L886", "complexity": 27, "loc": 104}, {"id": "admin_https_config_status", "label": "https_config_status()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L995", "complexity": 3, "loc": 18}, {"id": "admin_player_build_meta_path", "label": "_player_build_meta_path()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1019", "complexity": 1, "loc": 4}, {"id": "admin_build_player", "label": "build_player()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1028", "complexity": 5, "loc": 41}, {"id": "admin_build_player_action", "label": "build_player_action()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1074", "complexity": 14, "loc": 85}, {"id": "admin_rationale_1", "label": "Admin blueprint for user management and system settings.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1"}, {"id": "admin_rationale_19", "label": "Decorator to require admin role for route access.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L19"}, {"id": "admin_rationale_36", "label": "Display admin panel with system overview.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L36"}, {"id": "admin_rationale_80", "label": "Create a new user account.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L80"}, {"id": "admin_rationale_126", "label": "Change user role between user and admin.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L126"}, {"id": "admin_rationale_160", "label": "Delete a user account.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L160"}, {"id": "admin_rationale_188", "label": "Change application theme.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L188"}, {"id": "admin_rationale_212", "label": "Upload custom logo for application.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L212"}, {"id": "admin_rationale_254", "label": "Clear all server logs.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L254"}, {"id": "admin_rationale_274", "label": "Display user management page.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L274"}, {"id": "admin_rationale_323", "label": "Get system information as JSON.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L323"}, {"id": "admin_rationale_355", "label": "Display leftover media files not assigned to any playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L355"}, {"id": "admin_rationale_407", "label": "Delete all leftover images that are not part of any playlist", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L407"}, {"id": "admin_rationale_462", "label": "Delete all leftover videos that are not part of any playlist", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L462"}, {"id": "admin_rationale_517", "label": "Delete a single leftover content file", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L517"}, {"id": "admin_rationale_554", "label": "Show system dependencies status.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L554"}, {"id": "admin_rationale_635", "label": "Install LibreOffice for PPTX conversion.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L635"}, {"id": "admin_rationale_672", "label": "Install Emoji Fonts for better UI display.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L672"}, {"id": "admin_rationale_709", "label": "Logo customization page.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L709"}, {"id": "admin_rationale_749", "label": "Upload login page logo.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L749"}, {"id": "admin_rationale_779", "label": "Display and manage users that edit images on players.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L779"}, {"id": "admin_rationale_805", "label": "Update editing user name.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L805"}, {"id": "admin_rationale_857", "label": "Display HTTPS configuration management page.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L857"}, {"id": "admin_rationale_887", "label": "Update HTTPS configuration.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L887"}, {"id": "admin_rationale_996", "label": "Get current HTTPS configuration status as JSON.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L996"}, {"id": "admin_rationale_1020", "label": "Path to the persisted player-build settings (in the instance folder).", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1020"}, {"id": "admin_rationale_1029", "label": "Display the 'Build player files for deployment' admin page.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1029"}, {"id": "admin_rationale_1075", "label": "Build/refresh the staged player code and/or write its base config.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1075"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "flask", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "flask_login", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "werkzeug_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "functools", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L10", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "app_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L11", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "app_utils_logger", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L12", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "app_utils_caddy_manager", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L13", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_admin_required", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L18", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_admin_panel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L35", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_create_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L79", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_change_user_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L125", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_delete_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L159", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_change_theme", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L187", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_upload_logo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L211", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_clear_logs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L253", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_user_management", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L273", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_reset_user_password", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L287", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_system_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L322", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_leftover_media", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L354", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_delete_leftover_images", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L406", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_delete_leftover_videos", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L461", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_delete_single_leftover", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L516", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_dependencies", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L553", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_install_libreoffice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L634", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_install_emoji_fonts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L671", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_customize_logos", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L708", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_upload_header_logo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L717", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_upload_login_logo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L748", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_manage_editing_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L778", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_update_editing_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L804", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_delete_editing_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L828", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_https_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L856", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_update_https_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L886", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_https_config_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L995", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_player_build_meta_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1019", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_build_player", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1028", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "target": "admin_build_player_action", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1074", "weight": 1.0}, {"source": "admin_build_player", "target": "admin_player_build_meta_path", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1034", "weight": 1.0}, {"source": "admin_build_player_action", "target": "admin_player_build_meta_path", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1143", "weight": 1.0}, {"source": "admin_rationale_1", "target": "home_scheianu_digiserver_v2_app_blueprints_admin_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1", "weight": 1.0}, {"source": "admin_rationale_19", "target": "admin_admin_required", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L19", "weight": 1.0}, {"source": "admin_rationale_36", "target": "admin_admin_panel", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L36", "weight": 1.0}, {"source": "admin_rationale_80", "target": "admin_create_user", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L80", "weight": 1.0}, {"source": "admin_rationale_126", "target": "admin_change_user_role", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L126", "weight": 1.0}, {"source": "admin_rationale_160", "target": "admin_delete_user", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L160", "weight": 1.0}, {"source": "admin_rationale_188", "target": "admin_change_theme", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L188", "weight": 1.0}, {"source": "admin_rationale_212", "target": "admin_upload_logo", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L212", "weight": 1.0}, {"source": "admin_rationale_254", "target": "admin_clear_logs", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L254", "weight": 1.0}, {"source": "admin_rationale_274", "target": "admin_user_management", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L274", "weight": 1.0}, {"source": "admin_rationale_323", "target": "admin_system_info", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L323", "weight": 1.0}, {"source": "admin_rationale_355", "target": "admin_leftover_media", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L355", "weight": 1.0}, {"source": "admin_rationale_407", "target": "admin_delete_leftover_images", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L407", "weight": 1.0}, {"source": "admin_rationale_462", "target": "admin_delete_leftover_videos", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L462", "weight": 1.0}, {"source": "admin_rationale_517", "target": "admin_delete_single_leftover", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L517", "weight": 1.0}, {"source": "admin_rationale_554", "target": "admin_dependencies", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L554", "weight": 1.0}, {"source": "admin_rationale_635", "target": "admin_install_libreoffice", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L635", "weight": 1.0}, {"source": "admin_rationale_672", "target": "admin_install_emoji_fonts", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L672", "weight": 1.0}, {"source": "admin_rationale_709", "target": "admin_customize_logos", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L709", "weight": 1.0}, {"source": "admin_rationale_749", "target": "admin_upload_login_logo", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L749", "weight": 1.0}, {"source": "admin_rationale_779", "target": "admin_manage_editing_users", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L779", "weight": 1.0}, {"source": "admin_rationale_805", "target": "admin_update_editing_user", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L805", "weight": 1.0}, {"source": "admin_rationale_857", "target": "admin_https_config", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L857", "weight": 1.0}, {"source": "admin_rationale_887", "target": "admin_update_https_config", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L887", "weight": 1.0}, {"source": "admin_rationale_996", "target": "admin_https_config_status", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L996", "weight": 1.0}, {"source": "admin_rationale_1020", "target": "admin_player_build_meta_path", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1020", "weight": 1.0}, {"source": "admin_rationale_1029", "target": "admin_build_player", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1029", "weight": 1.0}, {"source": "admin_rationale_1075", "target": "admin_build_player_action", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1075", "weight": 1.0}], "raw_calls": [{"caller_nid": "admin_admin_required", "callee": "wraps", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L20"}, {"caller_nid": "admin_admin_panel", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L39"}, {"caller_nid": "admin_admin_panel", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L40"}, {"caller_nid": "admin_admin_panel", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L41"}, {"caller_nid": "admin_admin_panel", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L42"}, {"caller_nid": "admin_admin_panel", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L45"}, {"caller_nid": "admin_admin_panel", "callee": "limit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L45"}, {"caller_nid": "admin_admin_panel", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L45"}, {"caller_nid": "admin_admin_panel", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L45"}, {"caller_nid": "admin_admin_panel", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L48"}, {"caller_nid": "admin_admin_panel", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L53"}, {"caller_nid": "admin_admin_panel", "callee": "walk", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L54"}, {"caller_nid": "admin_admin_panel", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L56"}, {"caller_nid": "admin_admin_panel", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L57"}, {"caller_nid": "admin_admin_panel", "callee": "getsize", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L58"}, {"caller_nid": "admin_admin_panel", "callee": "round", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L60"}, {"caller_nid": "admin_admin_panel", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L62"}, {"caller_nid": "admin_admin_panel", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L71"}, {"caller_nid": "admin_admin_panel", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L71"}, {"caller_nid": "admin_admin_panel", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L72"}, {"caller_nid": "admin_admin_panel", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L73"}, {"caller_nid": "admin_admin_panel", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L73"}, {"caller_nid": "admin_create_user", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L82"}, {"caller_nid": "admin_create_user", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L82"}, {"caller_nid": "admin_create_user", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L83"}, {"caller_nid": "admin_create_user", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L83"}, {"caller_nid": "admin_create_user", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L84"}, {"caller_nid": "admin_create_user", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L84"}, {"caller_nid": "admin_create_user", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L87"}, {"caller_nid": "admin_create_user", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L88"}, {"caller_nid": "admin_create_user", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L89"}, {"caller_nid": "admin_create_user", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L89"}, {"caller_nid": "admin_create_user", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L91"}, {"caller_nid": "admin_create_user", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L92"}, {"caller_nid": "admin_create_user", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L93"}, {"caller_nid": "admin_create_user", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L93"}, {"caller_nid": "admin_create_user", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L96"}, {"caller_nid": "admin_create_user", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L97"}, {"caller_nid": "admin_create_user", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L97"}, {"caller_nid": "admin_create_user", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L100"}, {"caller_nid": "admin_create_user", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L100"}, {"caller_nid": "admin_create_user", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L102"}, {"caller_nid": "admin_create_user", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L103"}, {"caller_nid": "admin_create_user", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L103"}, {"caller_nid": "admin_create_user", "callee": "decode", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L106"}, {"caller_nid": "admin_create_user", "callee": "generate_password_hash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L106"}, {"caller_nid": "admin_create_user", "callee": "User", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L107"}, {"caller_nid": "admin_create_user", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L108"}, {"caller_nid": "admin_create_user", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L109"}, {"caller_nid": "admin_create_user", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L111"}, {"caller_nid": "admin_create_user", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L112"}, {"caller_nid": "admin_create_user", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L115"}, {"caller_nid": "admin_create_user", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L116"}, {"caller_nid": "admin_create_user", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L116"}, {"caller_nid": "admin_create_user", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L117"}, {"caller_nid": "admin_create_user", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L119"}, {"caller_nid": "admin_create_user", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L119"}, {"caller_nid": "admin_change_user_role", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L128"}, {"caller_nid": "admin_change_user_role", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L129"}, {"caller_nid": "admin_change_user_role", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L129"}, {"caller_nid": "admin_change_user_role", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L133"}, {"caller_nid": "admin_change_user_role", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L134"}, {"caller_nid": "admin_change_user_role", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L134"}, {"caller_nid": "admin_change_user_role", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L138"}, {"caller_nid": "admin_change_user_role", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L139"}, {"caller_nid": "admin_change_user_role", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L139"}, {"caller_nid": "admin_change_user_role", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L143"}, {"caller_nid": "admin_change_user_role", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L145"}, {"caller_nid": "admin_change_user_role", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L146"}, {"caller_nid": "admin_change_user_role", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L149"}, {"caller_nid": "admin_change_user_role", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L150"}, {"caller_nid": "admin_change_user_role", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L150"}, {"caller_nid": "admin_change_user_role", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L151"}, {"caller_nid": "admin_change_user_role", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L153"}, {"caller_nid": "admin_change_user_role", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L153"}, {"caller_nid": "admin_delete_user", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L162"}, {"caller_nid": "admin_delete_user", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L166"}, {"caller_nid": "admin_delete_user", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L167"}, {"caller_nid": "admin_delete_user", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L167"}, {"caller_nid": "admin_delete_user", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L170"}, {"caller_nid": "admin_delete_user", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L171"}, {"caller_nid": "admin_delete_user", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L173"}, {"caller_nid": "admin_delete_user", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L174"}, {"caller_nid": "admin_delete_user", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L177"}, {"caller_nid": "admin_delete_user", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L178"}, {"caller_nid": "admin_delete_user", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L178"}, {"caller_nid": "admin_delete_user", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L179"}, {"caller_nid": "admin_delete_user", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L181"}, {"caller_nid": "admin_delete_user", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L181"}, {"caller_nid": "admin_change_theme", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L190"}, {"caller_nid": "admin_change_theme", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L190"}, {"caller_nid": "admin_change_theme", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L193"}, {"caller_nid": "admin_change_theme", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L194"}, {"caller_nid": "admin_change_theme", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L194"}, {"caller_nid": "admin_change_theme", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L198"}, {"caller_nid": "admin_change_theme", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L199"}, {"caller_nid": "admin_change_theme", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L202"}, {"caller_nid": "admin_change_theme", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L202"}, {"caller_nid": "admin_change_theme", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L203"}, {"caller_nid": "admin_change_theme", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L205"}, {"caller_nid": "admin_change_theme", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L205"}, {"caller_nid": "admin_upload_logo", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L215"}, {"caller_nid": "admin_upload_logo", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L216"}, {"caller_nid": "admin_upload_logo", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L216"}, {"caller_nid": "admin_upload_logo", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L221"}, {"caller_nid": "admin_upload_logo", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L222"}, {"caller_nid": "admin_upload_logo", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L222"}, {"caller_nid": "admin_upload_logo", "callee": "secure_filename", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L226"}, {"caller_nid": "admin_upload_logo", "callee": "lower", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L227"}, {"caller_nid": "admin_upload_logo", "callee": "rsplit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L227"}, {"caller_nid": "admin_upload_logo", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L228"}, {"caller_nid": "admin_upload_logo", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L229"}, {"caller_nid": "admin_upload_logo", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L229"}, {"caller_nid": "admin_upload_logo", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L232"}, {"caller_nid": "admin_upload_logo", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L233"}, {"caller_nid": "admin_upload_logo", "callee": "makedirs", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L236"}, {"caller_nid": "admin_upload_logo", "callee": "save", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L238"}, {"caller_nid": "admin_upload_logo", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L240"}, {"caller_nid": "admin_upload_logo", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L241"}, {"caller_nid": "admin_upload_logo", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L244"}, {"caller_nid": "admin_upload_logo", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L244"}, {"caller_nid": "admin_upload_logo", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L245"}, {"caller_nid": "admin_upload_logo", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L247"}, {"caller_nid": "admin_upload_logo", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L247"}, {"caller_nid": "admin_clear_logs", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L256"}, {"caller_nid": "admin_clear_logs", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L257"}, {"caller_nid": "admin_clear_logs", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L259"}, {"caller_nid": "admin_clear_logs", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L260"}, {"caller_nid": "admin_clear_logs", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L263"}, {"caller_nid": "admin_clear_logs", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L264"}, {"caller_nid": "admin_clear_logs", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L264"}, {"caller_nid": "admin_clear_logs", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L265"}, {"caller_nid": "admin_clear_logs", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L267"}, {"caller_nid": "admin_clear_logs", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L267"}, {"caller_nid": "admin_user_management", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L276"}, {"caller_nid": "admin_user_management", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L276"}, {"caller_nid": "admin_user_management", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L276"}, {"caller_nid": "admin_user_management", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L277"}, {"caller_nid": "admin_user_management", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L279"}, {"caller_nid": "admin_user_management", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L279"}, {"caller_nid": "admin_user_management", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L280"}, {"caller_nid": "admin_user_management", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L281"}, {"caller_nid": "admin_user_management", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L281"}, {"caller_nid": "admin_reset_user_password", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L290"}, {"caller_nid": "admin_reset_user_password", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L291"}, {"caller_nid": "admin_reset_user_password", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L291"}, {"caller_nid": "admin_reset_user_password", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L294"}, {"caller_nid": "admin_reset_user_password", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L295"}, {"caller_nid": "admin_reset_user_password", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L296"}, {"caller_nid": "admin_reset_user_password", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L296"}, {"caller_nid": "admin_reset_user_password", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L300"}, {"caller_nid": "admin_reset_user_password", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L301"}, {"caller_nid": "admin_reset_user_password", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L301"}, {"caller_nid": "admin_reset_user_password", "callee": "decode", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L304"}, {"caller_nid": "admin_reset_user_password", "callee": "generate_password_hash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L304"}, {"caller_nid": "admin_reset_user_password", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L306"}, {"caller_nid": "admin_reset_user_password", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L308"}, {"caller_nid": "admin_reset_user_password", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L309"}, {"caller_nid": "admin_reset_user_password", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L312"}, {"caller_nid": "admin_reset_user_password", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L313"}, {"caller_nid": "admin_reset_user_password", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L313"}, {"caller_nid": "admin_reset_user_password", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L314"}, {"caller_nid": "admin_reset_user_password", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L316"}, {"caller_nid": "admin_reset_user_password", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L316"}, {"caller_nid": "admin_system_info", "callee": "system", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L330"}, {"caller_nid": "admin_system_info", "callee": "release", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L331"}, {"caller_nid": "admin_system_info", "callee": "version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L332"}, {"caller_nid": "admin_system_info", "callee": "machine", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L333"}, {"caller_nid": "admin_system_info", "callee": "processor", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L334"}, {"caller_nid": "admin_system_info", "callee": "cpu_count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L335"}, {"caller_nid": "admin_system_info", "callee": "cpu_percent", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L336"}, {"caller_nid": "admin_system_info", "callee": "round", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L337"}, {"caller_nid": "admin_system_info", "callee": "virtual_memory", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L337"}, {"caller_nid": "admin_system_info", "callee": "round", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L338"}, {"caller_nid": "admin_system_info", "callee": "virtual_memory", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L338"}, {"caller_nid": "admin_system_info", "callee": "virtual_memory", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L339"}, {"caller_nid": "admin_system_info", "callee": "round", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L340"}, {"caller_nid": "admin_system_info", "callee": "disk_usage", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L340"}, {"caller_nid": "admin_system_info", "callee": "round", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L341"}, {"caller_nid": "admin_system_info", "callee": "disk_usage", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L341"}, {"caller_nid": "admin_system_info", "callee": "disk_usage", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L342"}, {"caller_nid": "admin_system_info", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L345"}, {"caller_nid": "admin_system_info", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L348"}, {"caller_nid": "admin_system_info", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L348"}, {"caller_nid": "admin_system_info", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L349"}, {"caller_nid": "admin_system_info", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L349"}, {"caller_nid": "admin_leftover_media", "callee": "distinct", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L361"}, {"caller_nid": "admin_leftover_media", "callee": "select", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L361"}, {"caller_nid": "admin_leftover_media", "callee": "set", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L362"}, {"caller_nid": "admin_leftover_media", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L362"}, {"caller_nid": "admin_leftover_media", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L365"}, {"caller_nid": "admin_leftover_media", "callee": "safe_file_size", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L380"}, {"caller_nid": "admin_leftover_media", "callee": "safe_file_size", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L381"}, {"caller_nid": "admin_leftover_media", "callee": "safe_file_size", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L382"}, {"caller_nid": "admin_leftover_media", "callee": "safe_file_size", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L383"}, {"caller_nid": "admin_leftover_media", "callee": "safe_file_size", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L384"}, {"caller_nid": "admin_leftover_media", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L386"}, {"caller_nid": "admin_leftover_media", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L391"}, {"caller_nid": "admin_leftover_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L399"}, {"caller_nid": "admin_leftover_media", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L399"}, {"caller_nid": "admin_leftover_media", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L400"}, {"caller_nid": "admin_leftover_media", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L401"}, {"caller_nid": "admin_leftover_media", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L401"}, {"caller_nid": "admin_delete_leftover_images", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L412"}, {"caller_nid": "admin_delete_leftover_images", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L412"}, {"caller_nid": "admin_delete_leftover_images", "callee": "query", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L412"}, {"caller_nid": "admin_delete_leftover_images", "callee": "in_", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L414"}, {"caller_nid": "admin_delete_leftover_images", "callee": "query", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L415"}, {"caller_nid": "admin_delete_leftover_images", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L426"}, {"caller_nid": "admin_delete_leftover_images", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L427"}, {"caller_nid": "admin_delete_leftover_images", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L428"}, {"caller_nid": "admin_delete_leftover_images", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L432"}, {"caller_nid": "admin_delete_leftover_images", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L432"}, {"caller_nid": "admin_delete_leftover_images", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L433"}, {"caller_nid": "admin_delete_leftover_images", "callee": "rmtree", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L434"}, {"caller_nid": "admin_delete_leftover_images", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L438"}, {"caller_nid": "admin_delete_leftover_images", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L438"}, {"caller_nid": "admin_delete_leftover_images", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L441"}, {"caller_nid": "admin_delete_leftover_images", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L444"}, {"caller_nid": "admin_delete_leftover_images", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L444"}, {"caller_nid": "admin_delete_leftover_images", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L446"}, {"caller_nid": "admin_delete_leftover_images", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L449"}, {"caller_nid": "admin_delete_leftover_images", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L449"}, {"caller_nid": "admin_delete_leftover_images", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L451"}, {"caller_nid": "admin_delete_leftover_images", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L454"}, {"caller_nid": "admin_delete_leftover_images", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L455"}, {"caller_nid": "admin_delete_leftover_images", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L455"}, {"caller_nid": "admin_delete_leftover_images", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L457"}, {"caller_nid": "admin_delete_leftover_images", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L457"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L467"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L467"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "query", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L467"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "in_", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L469"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "query", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L470"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L481"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L482"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L483"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L487"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L487"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L488"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "rmtree", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L489"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L493"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L493"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L496"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L499"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L499"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L501"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L504"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L504"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L506"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L509"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L510"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L510"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L512"}, {"caller_nid": "admin_delete_leftover_videos", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L512"}, {"caller_nid": "admin_delete_single_leftover", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L519"}, {"caller_nid": "admin_delete_single_leftover", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L523"}, {"caller_nid": "admin_delete_single_leftover", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L524"}, {"caller_nid": "admin_delete_single_leftover", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L525"}, {"caller_nid": "admin_delete_single_leftover", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L529"}, {"caller_nid": "admin_delete_single_leftover", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L529"}, {"caller_nid": "admin_delete_single_leftover", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L530"}, {"caller_nid": "admin_delete_single_leftover", "callee": "rmtree", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L531"}, {"caller_nid": "admin_delete_single_leftover", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L535"}, {"caller_nid": "admin_delete_single_leftover", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L535"}, {"caller_nid": "admin_delete_single_leftover", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L538"}, {"caller_nid": "admin_delete_single_leftover", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L539"}, {"caller_nid": "admin_delete_single_leftover", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L541"}, {"caller_nid": "admin_delete_single_leftover", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L544"}, {"caller_nid": "admin_delete_single_leftover", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L545"}, {"caller_nid": "admin_delete_single_leftover", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L545"}, {"caller_nid": "admin_delete_single_leftover", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L547"}, {"caller_nid": "admin_delete_single_leftover", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L547"}, {"caller_nid": "admin_dependencies", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L561"}, {"caller_nid": "admin_dependencies", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L567"}, {"caller_nid": "admin_dependencies", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L575"}, {"caller_nid": "admin_dependencies", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L589"}, {"caller_nid": "admin_dependencies", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L595"}, {"caller_nid": "admin_dependencies", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L603"}, {"caller_nid": "admin_dependencies", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L610"}, {"caller_nid": "admin_dependencies", "callee": "startswith", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L612"}, {"caller_nid": "admin_dependencies", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L613"}, {"caller_nid": "admin_dependencies", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L614"}, {"caller_nid": "admin_dependencies", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L620"}, {"caller_nid": "admin_install_libreoffice", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L640"}, {"caller_nid": "admin_install_libreoffice", "callee": "dirname", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L640"}, {"caller_nid": "admin_install_libreoffice", "callee": "dirname", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L640"}, {"caller_nid": "admin_install_libreoffice", "callee": "dirname", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L640"}, {"caller_nid": "admin_install_libreoffice", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L643"}, {"caller_nid": "admin_install_libreoffice", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L644"}, {"caller_nid": "admin_install_libreoffice", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L645"}, {"caller_nid": "admin_install_libreoffice", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L645"}, {"caller_nid": "admin_install_libreoffice", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L647"}, {"caller_nid": "admin_install_libreoffice", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L653"}, {"caller_nid": "admin_install_libreoffice", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L654"}, {"caller_nid": "admin_install_libreoffice", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L656"}, {"caller_nid": "admin_install_libreoffice", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L657"}, {"caller_nid": "admin_install_libreoffice", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L660"}, {"caller_nid": "admin_install_libreoffice", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L662"}, {"caller_nid": "admin_install_libreoffice", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L662"}, {"caller_nid": "admin_install_libreoffice", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L663"}, {"caller_nid": "admin_install_libreoffice", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L663"}, {"caller_nid": "admin_install_libreoffice", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L665"}, {"caller_nid": "admin_install_libreoffice", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L665"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L677"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "dirname", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L677"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "dirname", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L677"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "dirname", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L677"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L680"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L681"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L682"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L682"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L684"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L690"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L691"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L693"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L694"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L697"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L699"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L699"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L700"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L700"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L702"}, {"caller_nid": "admin_install_emoji_fonts", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L702"}, {"caller_nid": "admin_customize_logos", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L711"}, {"caller_nid": "admin_customize_logos", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L711"}, {"caller_nid": "admin_customize_logos", "callee": "time", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L711"}, {"caller_nid": "admin_upload_header_logo", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L721"}, {"caller_nid": "admin_upload_header_logo", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L722"}, {"caller_nid": "admin_upload_header_logo", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L722"}, {"caller_nid": "admin_upload_header_logo", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L726"}, {"caller_nid": "admin_upload_header_logo", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L727"}, {"caller_nid": "admin_upload_header_logo", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L727"}, {"caller_nid": "admin_upload_header_logo", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L732"}, {"caller_nid": "admin_upload_header_logo", "callee": "save", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L733"}, {"caller_nid": "admin_upload_header_logo", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L735"}, {"caller_nid": "admin_upload_header_logo", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L736"}, {"caller_nid": "admin_upload_header_logo", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L739"}, {"caller_nid": "admin_upload_header_logo", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L739"}, {"caller_nid": "admin_upload_header_logo", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L740"}, {"caller_nid": "admin_upload_header_logo", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L740"}, {"caller_nid": "admin_upload_header_logo", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L742"}, {"caller_nid": "admin_upload_header_logo", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L742"}, {"caller_nid": "admin_upload_login_logo", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L752"}, {"caller_nid": "admin_upload_login_logo", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L753"}, {"caller_nid": "admin_upload_login_logo", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L753"}, {"caller_nid": "admin_upload_login_logo", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L757"}, {"caller_nid": "admin_upload_login_logo", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L758"}, {"caller_nid": "admin_upload_login_logo", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L758"}, {"caller_nid": "admin_upload_login_logo", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L763"}, {"caller_nid": "admin_upload_login_logo", "callee": "save", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L764"}, {"caller_nid": "admin_upload_login_logo", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L766"}, {"caller_nid": "admin_upload_login_logo", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L767"}, {"caller_nid": "admin_upload_login_logo", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L770"}, {"caller_nid": "admin_upload_login_logo", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L770"}, {"caller_nid": "admin_upload_login_logo", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L771"}, {"caller_nid": "admin_upload_login_logo", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L771"}, {"caller_nid": "admin_upload_login_logo", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L773"}, {"caller_nid": "admin_upload_login_logo", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L773"}, {"caller_nid": "admin_manage_editing_users", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L785"}, {"caller_nid": "admin_manage_editing_users", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L785"}, {"caller_nid": "admin_manage_editing_users", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L785"}, {"caller_nid": "admin_manage_editing_users", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L790"}, {"caller_nid": "admin_manage_editing_users", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L790"}, {"caller_nid": "admin_manage_editing_users", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L793"}, {"caller_nid": "admin_manage_editing_users", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L797"}, {"caller_nid": "admin_manage_editing_users", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L797"}, {"caller_nid": "admin_manage_editing_users", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L798"}, {"caller_nid": "admin_manage_editing_users", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L799"}, {"caller_nid": "admin_manage_editing_users", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L799"}, {"caller_nid": "admin_update_editing_user", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L809"}, {"caller_nid": "admin_update_editing_user", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L810"}, {"caller_nid": "admin_update_editing_user", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L810"}, {"caller_nid": "admin_update_editing_user", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L813"}, {"caller_nid": "admin_update_editing_user", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L814"}, {"caller_nid": "admin_update_editing_user", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L816"}, {"caller_nid": "admin_update_editing_user", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L817"}, {"caller_nid": "admin_update_editing_user", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L819"}, {"caller_nid": "admin_update_editing_user", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L820"}, {"caller_nid": "admin_update_editing_user", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L820"}, {"caller_nid": "admin_update_editing_user", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L821"}, {"caller_nid": "admin_update_editing_user", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L821"}, {"caller_nid": "admin_update_editing_user", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L823"}, {"caller_nid": "admin_update_editing_user", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L823"}, {"caller_nid": "admin_delete_editing_user", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L833"}, {"caller_nid": "admin_delete_editing_user", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L836"}, {"caller_nid": "admin_delete_editing_user", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L837"}, {"caller_nid": "admin_delete_editing_user", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L839"}, {"caller_nid": "admin_delete_editing_user", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L840"}, {"caller_nid": "admin_delete_editing_user", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L842"}, {"caller_nid": "admin_delete_editing_user", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L843"}, {"caller_nid": "admin_delete_editing_user", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L843"}, {"caller_nid": "admin_delete_editing_user", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L844"}, {"caller_nid": "admin_delete_editing_user", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L844"}, {"caller_nid": "admin_delete_editing_user", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L846"}, {"caller_nid": "admin_delete_editing_user", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L846"}, {"caller_nid": "admin_https_config", "callee": "get_config", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L859"}, {"caller_nid": "admin_https_config", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L863"}, {"caller_nid": "admin_https_config", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L864"}, {"caller_nid": "admin_https_config", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L870"}, {"caller_nid": "admin_https_config", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L871"}, {"caller_nid": "admin_https_config", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L873"}, {"caller_nid": "admin_https_config", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L878"}, {"caller_nid": "admin_https_config", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L878"}, {"caller_nid": "admin_https_config", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L879"}, {"caller_nid": "admin_https_config", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L880"}, {"caller_nid": "admin_https_config", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L880"}, {"caller_nid": "admin_update_https_config", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L889"}, {"caller_nid": "admin_update_https_config", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L890"}, {"caller_nid": "admin_update_https_config", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L890"}, {"caller_nid": "admin_update_https_config", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L891"}, {"caller_nid": "admin_update_https_config", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L891"}, {"caller_nid": "admin_update_https_config", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L892"}, {"caller_nid": "admin_update_https_config", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L892"}, {"caller_nid": "admin_update_https_config", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L893"}, {"caller_nid": "admin_update_https_config", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L893"}, {"caller_nid": "admin_update_https_config", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L894"}, {"caller_nid": "admin_update_https_config", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L894"}, {"caller_nid": "admin_update_https_config", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L901"}, {"caller_nid": "admin_update_https_config", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L903"}, {"caller_nid": "admin_update_https_config", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L905"}, {"caller_nid": "admin_update_https_config", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L907"}, {"caller_nid": "admin_update_https_config", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L911"}, {"caller_nid": "admin_update_https_config", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L915"}, {"caller_nid": "admin_update_https_config", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L916"}, {"caller_nid": "admin_update_https_config", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L917"}, {"caller_nid": "admin_update_https_config", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L921"}, {"caller_nid": "admin_update_https_config", "callee": "ValueError", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L923"}, {"caller_nid": "admin_update_https_config", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L925"}, {"caller_nid": "admin_update_https_config", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L929"}, {"caller_nid": "admin_update_https_config", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L933"}, {"caller_nid": "admin_update_https_config", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L935"}, {"caller_nid": "admin_update_https_config", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L938"}, {"caller_nid": "admin_update_https_config", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L944"}, {"caller_nid": "admin_update_https_config", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L945"}, {"caller_nid": "admin_update_https_config", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L945"}, {"caller_nid": "admin_update_https_config", "callee": "create_or_update", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L948"}, {"caller_nid": "admin_update_https_config", "callee": "generate_caddyfile", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L960"}, {"caller_nid": "admin_update_https_config", "callee": "write_caddyfile", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L961"}, {"caller_nid": "admin_update_https_config", "callee": "reload_caddy", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L963"}, {"caller_nid": "admin_update_https_config", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L965"}, {"caller_nid": "admin_update_https_config", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L968"}, {"caller_nid": "admin_update_https_config", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L971"}, {"caller_nid": "admin_update_https_config", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L973"}, {"caller_nid": "admin_update_https_config", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L974"}, {"caller_nid": "admin_update_https_config", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L974"}, {"caller_nid": "admin_update_https_config", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L977"}, {"caller_nid": "admin_update_https_config", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L978"}, {"caller_nid": "admin_update_https_config", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L980"}, {"caller_nid": "admin_update_https_config", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L981"}, {"caller_nid": "admin_update_https_config", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L983"}, {"caller_nid": "admin_update_https_config", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L983"}, {"caller_nid": "admin_update_https_config", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L986"}, {"caller_nid": "admin_update_https_config", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L987"}, {"caller_nid": "admin_update_https_config", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L987"}, {"caller_nid": "admin_update_https_config", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L988"}, {"caller_nid": "admin_update_https_config", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L988"}, {"caller_nid": "admin_update_https_config", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L989"}, {"caller_nid": "admin_update_https_config", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L989"}, {"caller_nid": "admin_https_config_status", "callee": "get_config", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L998"}, {"caller_nid": "admin_https_config_status", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1001"}, {"caller_nid": "admin_https_config_status", "callee": "to_dict", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1001"}, {"caller_nid": "admin_https_config_status", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1003"}, {"caller_nid": "admin_https_config_status", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1011"}, {"caller_nid": "admin_https_config_status", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1011"}, {"caller_nid": "admin_https_config_status", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1012"}, {"caller_nid": "admin_https_config_status", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1012"}, {"caller_nid": "admin_player_build_meta_path", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1022"}, {"caller_nid": "admin_build_player", "callee": "load_build_settings", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1034"}, {"caller_nid": "admin_build_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1037"}, {"caller_nid": "admin_build_player", "callee": "get_config", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1038"}, {"caller_nid": "admin_build_player", "callee": "setdefault", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1040"}, {"caller_nid": "admin_build_player", "callee": "setdefault", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1041"}, {"caller_nid": "admin_build_player", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1041"}, {"caller_nid": "admin_build_player", "callee": "setdefault", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1042"}, {"caller_nid": "admin_build_player", "callee": "bool", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1042"}, {"caller_nid": "admin_build_player", "callee": "setdefault", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1045"}, {"caller_nid": "admin_build_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1045"}, {"caller_nid": "admin_build_player", "callee": "setdefault", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1046"}, {"caller_nid": "admin_build_player", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1047"}, {"caller_nid": "admin_build_player", "callee": "startswith", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1048"}, {"caller_nid": "admin_build_player", "callee": "detect_server_ip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1050"}, {"caller_nid": "admin_build_player", "callee": "setdefault", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1051"}, {"caller_nid": "admin_build_player", "callee": "setdefault", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1052"}, {"caller_nid": "admin_build_player", "callee": "setdefault", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1053"}, {"caller_nid": "admin_build_player", "callee": "setdefault", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1054"}, {"caller_nid": "admin_build_player", "callee": "setdefault", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1055"}, {"caller_nid": "admin_build_player", "callee": "setdefault", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1056"}, {"caller_nid": "admin_build_player", "callee": "get_local_player_code_status", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1058"}, {"caller_nid": "admin_build_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1059"}, {"caller_nid": "admin_build_player", "callee": "strftime", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1060"}, {"caller_nid": "admin_build_player", "callee": "fromtimestamp", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1060"}, {"caller_nid": "admin_build_player", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1063"}, {"caller_nid": "admin_build_player_action", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1082"}, {"caller_nid": "admin_build_player_action", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1084"}, {"caller_nid": "admin_build_player_action", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1084"}, {"caller_nid": "admin_build_player_action", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1085"}, {"caller_nid": "admin_build_player_action", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1085"}, {"caller_nid": "admin_build_player_action", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1086"}, {"caller_nid": "admin_build_player_action", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1086"}, {"caller_nid": "admin_build_player_action", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1087"}, {"caller_nid": "admin_build_player_action", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1087"}, {"caller_nid": "admin_build_player_action", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1088"}, {"caller_nid": "admin_build_player_action", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1089"}, {"caller_nid": "admin_build_player_action", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1090"}, {"caller_nid": "admin_build_player_action", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1090"}, {"caller_nid": "admin_build_player_action", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1091"}, {"caller_nid": "admin_build_player_action", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1091"}, {"caller_nid": "admin_build_player_action", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1096"}, {"caller_nid": "admin_build_player_action", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1098"}, {"caller_nid": "admin_build_player_action", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1100"}, {"caller_nid": "admin_build_player_action", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1102"}, {"caller_nid": "admin_build_player_action", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1104"}, {"caller_nid": "admin_build_player_action", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1108"}, {"caller_nid": "admin_build_player_action", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1109"}, {"caller_nid": "admin_build_player_action", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1109"}, {"caller_nid": "admin_build_player_action", "callee": "build_player_files", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1117"}, {"caller_nid": "admin_build_player_action", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1118"}, {"caller_nid": "admin_build_player_action", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1119"}, {"caller_nid": "admin_build_player_action", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1122"}, {"caller_nid": "admin_build_player_action", "callee": "write_base_config", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1126"}, {"caller_nid": "admin_build_player_action", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1135"}, {"caller_nid": "admin_build_player_action", "callee": "get_short_head", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1141"}, {"caller_nid": "admin_build_player_action", "callee": "save_build_settings", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1142"}, {"caller_nid": "admin_build_player_action", "callee": "make_build_record", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1144"}, {"caller_nid": "admin_build_player_action", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1151"}, {"caller_nid": "admin_build_player_action", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1153"}, {"caller_nid": "admin_build_player_action", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1154"}, {"caller_nid": "admin_build_player_action", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1156"}, {"caller_nid": "admin_build_player_action", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1158"}, {"caller_nid": "admin_build_player_action", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", "source_location": "L1158"}]} \ No newline at end of file diff --git a/graphify-out/cache/08a5cf60c9886d9492c059388f7794bf8d243cb7f83a010863fe16a728a2872d.json b/graphify-out/cache/08a5cf60c9886d9492c059388f7794bf8d243cb7f83a010863fe16a728a2872d.json new file mode 100644 index 0000000..5cf2a90 --- /dev/null +++ b/graphify-out/cache/08a5cf60c9886d9492c059388f7794bf8d243cb7f83a010863fe16a728a2872d.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_utils_background_tasks_py", "label": "background_tasks.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "background_tasks_run_background_task", "label": "run_background_task()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L9", "complexity": 2, "loc": 18}, {"id": "background_tasks_background_player_deployment", "label": "background_player_deployment()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L29", "complexity": 6, "loc": 88}, {"id": "background_tasks_rationale_1", "label": "Background task execution for long-running operations.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L1"}, {"id": "background_tasks_rationale_10", "label": "Run a function in a background thread, with a Flask app context pushed.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L10"}, {"id": "background_tasks_rationale_43", "label": "Deploy player code to host in background. Args: hostname: SSH h", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L43"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_utils_background_tasks_py", "target": "threading", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_background_tasks_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_background_tasks_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_background_tasks_py", "target": "background_tasks_run_background_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L9", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_background_tasks_py", "target": "background_tasks_background_player_deployment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L29", "weight": 1.0}, {"source": "background_tasks_rationale_1", "target": "home_scheianu_digiserver_v2_app_utils_background_tasks_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L1", "weight": 1.0}, {"source": "background_tasks_rationale_10", "target": "background_tasks_run_background_task", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L10", "weight": 1.0}, {"source": "background_tasks_rationale_43", "target": "background_tasks_background_player_deployment", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L43", "weight": 1.0}], "raw_calls": [{"caller_nid": "background_tasks_run_background_task", "callee": "_get_current_object", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L13"}, {"caller_nid": "background_tasks_run_background_task", "callee": "Thread", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L24"}, {"caller_nid": "background_tasks_run_background_task", "callee": "start", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L25"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L68"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L71"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L74"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "deploy_player_to_host", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L78"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L93"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L95"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L98"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L99"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L103"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L103"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L104"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L104"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L104"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L106"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "error", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L109"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L109"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L110"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L114"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L115"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L116"}, {"caller_nid": "background_tasks_background_player_deployment", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", "source_location": "L116"}]} \ No newline at end of file diff --git a/graphify-out/cache/09751e1c4260d14e761c1c92739beeb73e4fc379c785381a8c17c608031319ad.json b/graphify-out/cache/09751e1c4260d14e761c1c92739beeb73e4fc379c785381a8c17c608031319ad.json new file mode 100644 index 0000000..5a20e5f --- /dev/null +++ b/graphify-out/cache/09751e1c4260d14e761c1c92739beeb73e4fc379c785381a8c17c608031319ad.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_utils_player_build_py", "label": "player_build.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "player_build_run_git", "label": "_run_git()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L28", "complexity": 1, "loc": 8}, {"id": "player_build_get_short_head", "label": "get_short_head()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L38", "complexity": 3, "loc": 9}, {"id": "player_build_build_player_files", "label": "build_player_files()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L49", "complexity": 9, "loc": 77}, {"id": "player_build_write_base_config", "label": "write_base_config()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L128", "complexity": 2, "loc": 35}, {"id": "player_build_load_build_settings", "label": "load_build_settings()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L165", "complexity": 3, "loc": 9}, {"id": "player_build_save_build_settings", "label": "save_build_settings()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L176", "complexity": 2, "loc": 10}, {"id": "player_build_get_player_server_settings", "label": "get_player_server_settings()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L188", "complexity": 4, "loc": 18}, {"id": "player_build_make_build_record", "label": "make_build_record()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L208", "complexity": 1, "loc": 16}, {"id": "player_build_rationale_1", "label": "Utilities for building/staging the player files on the server. Admins use the \"", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L1"}, {"id": "player_build_rationale_39", "label": "Return the short git commit of the staged code, or 'unknown'.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L39"}, {"id": "player_build_rationale_50", "label": "Clone or refresh the player source into ``player_code_dir``. If the directo", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L50"}, {"id": "player_build_rationale_137", "label": "Write a base ``config/app_config.json`` into the staged player code. ``scre", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L137"}, {"id": "player_build_rationale_166", "label": "Load saved build settings from ``meta_path`` (or None if absent/invalid).", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L166"}, {"id": "player_build_rationale_177", "label": "Persist build settings to ``meta_path``.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L177"}, {"id": "player_build_rationale_189", "label": "Return the saved server address settings for deployment, if available. Retu", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L189"}, {"id": "player_build_rationale_210", "label": "Assemble the metadata record to persist after a build.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L210"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L12", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L13", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "shutil", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L14", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "subprocess", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L15", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L16", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L17", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L18", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "app_utils_ssh_deploy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L20", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "player_build_run_git", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L28", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "player_build_get_short_head", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L38", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "player_build_build_player_files", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L49", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "player_build_write_base_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L128", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "player_build_load_build_settings", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L165", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "player_build_save_build_settings", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L176", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "player_build_get_player_server_settings", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L188", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_player_build_py", "target": "player_build_make_build_record", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L208", "weight": 1.0}, {"source": "player_build_get_short_head", "target": "player_build_run_git", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L41", "weight": 1.0}, {"source": "player_build_build_player_files", "target": "player_build_run_git", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L70", "weight": 1.0}, {"source": "player_build_build_player_files", "target": "player_build_get_short_head", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L75", "weight": 1.0}, {"source": "player_build_get_player_server_settings", "target": "player_build_load_build_settings", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L194", "weight": 1.0}, {"source": "player_build_rationale_1", "target": "home_scheianu_digiserver_v2_app_utils_player_build_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L1", "weight": 1.0}, {"source": "player_build_rationale_39", "target": "player_build_get_short_head", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L39", "weight": 1.0}, {"source": "player_build_rationale_50", "target": "player_build_build_player_files", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L50", "weight": 1.0}, {"source": "player_build_rationale_137", "target": "player_build_write_base_config", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L137", "weight": 1.0}, {"source": "player_build_rationale_166", "target": "player_build_load_build_settings", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L166", "weight": 1.0}, {"source": "player_build_rationale_177", "target": "player_build_save_build_settings", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L177", "weight": 1.0}, {"source": "player_build_rationale_189", "target": "player_build_get_player_server_settings", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L189", "weight": 1.0}, {"source": "player_build_rationale_210", "target": "player_build_make_build_record", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L210", "weight": 1.0}], "raw_calls": [{"caller_nid": "player_build_run_git", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L29"}, {"caller_nid": "player_build_get_short_head", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L43"}, {"caller_nid": "player_build_build_player_files", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L59"}, {"caller_nid": "player_build_build_player_files", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L60"}, {"caller_nid": "player_build_build_player_files", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L65"}, {"caller_nid": "player_build_build_player_files", "callee": "isdir", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L66"}, {"caller_nid": "player_build_build_player_files", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L74"}, {"caller_nid": "player_build_build_player_files", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L74"}, {"caller_nid": "player_build_build_player_files", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L84"}, {"caller_nid": "player_build_build_player_files", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L92"}, {"caller_nid": "player_build_build_player_files", "callee": "dirname", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L99"}, {"caller_nid": "player_build_build_player_files", "callee": "rstrip", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L99"}, {"caller_nid": "player_build_build_player_files", "callee": "makedirs", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L100"}, {"caller_nid": "player_build_build_player_files", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L101"}, {"caller_nid": "player_build_build_player_files", "callee": "rmtree", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L102"}, {"caller_nid": "player_build_build_player_files", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L107"}, {"caller_nid": "player_build_build_player_files", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L107"}, {"caller_nid": "player_build_build_player_files", "callee": "info", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L114"}, {"caller_nid": "player_build_build_player_files", "callee": "exception", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L124"}, {"caller_nid": "player_build_build_player_files", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L125"}, {"caller_nid": "player_build_write_base_config", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L143"}, {"caller_nid": "player_build_write_base_config", "callee": "makedirs", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L144"}, {"caller_nid": "player_build_write_base_config", "callee": "generate_app_config", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L145"}, {"caller_nid": "player_build_write_base_config", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L147"}, {"caller_nid": "player_build_write_base_config", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L155"}, {"caller_nid": "player_build_write_base_config", "callee": "open", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L156"}, {"caller_nid": "player_build_write_base_config", "callee": "write", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L157"}, {"caller_nid": "player_build_write_base_config", "callee": "info", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L158"}, {"caller_nid": "player_build_write_base_config", "callee": "exception", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L161"}, {"caller_nid": "player_build_write_base_config", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L162"}, {"caller_nid": "player_build_load_build_settings", "callee": "isfile", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L168"}, {"caller_nid": "player_build_load_build_settings", "callee": "open", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L169"}, {"caller_nid": "player_build_load_build_settings", "callee": "load", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L170"}, {"caller_nid": "player_build_load_build_settings", "callee": "warning", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L172"}, {"caller_nid": "player_build_save_build_settings", "callee": "makedirs", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L179"}, {"caller_nid": "player_build_save_build_settings", "callee": "dirname", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L179"}, {"caller_nid": "player_build_save_build_settings", "callee": "open", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L180"}, {"caller_nid": "player_build_save_build_settings", "callee": "dump", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L181"}, {"caller_nid": "player_build_save_build_settings", "callee": "warning", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L184"}, {"caller_nid": "player_build_get_player_server_settings", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L197"}, {"caller_nid": "player_build_get_player_server_settings", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L197"}, {"caller_nid": "player_build_get_player_server_settings", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L202"}, {"caller_nid": "player_build_get_player_server_settings", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L202"}, {"caller_nid": "player_build_get_player_server_settings", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L202"}, {"caller_nid": "player_build_get_player_server_settings", "callee": "bool", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L203"}, {"caller_nid": "player_build_get_player_server_settings", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L203"}, {"caller_nid": "player_build_get_player_server_settings", "callee": "bool", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L204"}, {"caller_nid": "player_build_get_player_server_settings", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L204"}, {"caller_nid": "player_build_make_build_record", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L215"}, {"caller_nid": "player_build_make_build_record", "callee": "bool", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L216"}, {"caller_nid": "player_build_make_build_record", "callee": "bool", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L217"}, {"caller_nid": "player_build_make_build_record", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L221"}, {"caller_nid": "player_build_make_build_record", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", "source_location": "L221"}]} \ No newline at end of file diff --git a/graphify-out/cache/0bb37d53cd6b63caca5dc4a15bd4971c2abab3724685a1e84ad3c87685cfffe0.json b/graphify-out/cache/0bb37d53cd6b63caca5dc4a15bd4971c2abab3724685a1e84ad3c87685cfffe0.json new file mode 100644 index 0000000..f4984be --- /dev/null +++ b/graphify-out/cache/0bb37d53cd6b63caca5dc4a15bd4971c2abab3724685a1e84ad3c87685cfffe0.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_blueprints_players_py", "label": "players.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "players_list", "label": "list()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L19", "complexity": 5, "loc": 33}, {"id": "players_add_player", "label": "add_player()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L56", "complexity": 23, "loc": 172}, {"id": "players_edit_player", "label": "edit_player()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L232", "complexity": 4, "loc": 34}, {"id": "players_delete_player", "label": "delete_player()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L270", "complexity": 2, "loc": 24}, {"id": "players_regenerate_auth_code", "label": "regenerate_auth_code()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L298", "complexity": 2, "loc": 19}, {"id": "players_player_page", "label": "player_page()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L321", "complexity": 1, "loc": 3}, {"id": "players_manage_player", "label": "manage_player()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L328", "complexity": 13, "loc": 113}, {"id": "players_edited_media", "label": "edited_media()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L445", "complexity": 8, "loc": 40}, {"id": "players_edited_media_report", "label": "edited_media_report()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L489", "complexity": 5, "loc": 30}, {"id": "players_player_fullscreen", "label": "player_fullscreen()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L522", "complexity": 3, "loc": 20}, {"id": "players_get_player_playlist", "label": "get_player_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L545", "complexity": 6, "loc": 41}, {"id": "players_reorder_content", "label": "reorder_content()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L590", "complexity": 1, "loc": 6}, {"id": "players_bulk_delete_players", "label": "bulk_delete_players()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L600", "complexity": 5, "loc": 28}, {"id": "players_bulk_assign_playlist", "label": "bulk_assign_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L632", "complexity": 7, "loc": 33}, {"id": "players_deployment_status", "label": "deployment_status()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L669", "complexity": 4, "loc": 20}, {"id": "players_reorder_playlist", "label": "reorder_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L693", "complexity": 8, "loc": 49}, {"id": "players_remove_from_playlist", "label": "remove_from_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L746", "complexity": 5, "loc": 36}, {"id": "players_rationale_1", "label": "Players blueprint for player management and display.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L1"}, {"id": "players_rationale_20", "label": "Display list of all players.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L20"}, {"id": "players_rationale_57", "label": "Add a new player with optional SSH deployment.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L57"}, {"id": "players_rationale_299", "label": "Regenerate authentication code for a player.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L299"}, {"id": "players_rationale_322", "label": "Redirect to manage player page (combined view).", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L322"}, {"id": "players_rationale_329", "label": "Manage player - edit credentials, assign playlist, view logs.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L329"}, {"id": "players_rationale_446", "label": "Display all edited media files from this player.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L446"}, {"id": "players_rationale_490", "label": "Display a tabular report of all edited media from this player.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L490"}, {"id": "players_rationale_523", "label": "Display player fullscreen view (no authentication required for players).", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L523"}, {"id": "players_rationale_546", "label": "Get playlist for a player based on their assigned playlist. Args:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L546"}, {"id": "players_rationale_591", "label": "Legacy endpoint - Content reordering now handled in playlist management.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L591"}, {"id": "players_rationale_601", "label": "Delete multiple players at once.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L601"}, {"id": "players_rationale_633", "label": "Assign multiple players to a playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L633"}, {"id": "players_rationale_670", "label": "Return deployment status for all players (used by polling JS).", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L670"}, {"id": "players_rationale_694", "label": "Reorder items in player's playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L694"}, {"id": "players_rationale_747", "label": "Remove content from player's playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L747"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "flask", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "flask_login", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "werkzeug_security", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "secrets", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "app_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L9", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "app_utils_logger", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L10", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "app_utils_group_player_management", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L11", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L19", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_add_player", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L56", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_edit_player", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L232", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_delete_player", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L270", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_regenerate_auth_code", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L298", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_player_page", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L321", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_manage_player", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L328", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_edited_media", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L445", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_edited_media_report", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L489", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_player_fullscreen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L522", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_get_player_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L545", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_reorder_content", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L590", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_bulk_delete_players", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L600", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_bulk_assign_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L632", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_deployment_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L669", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_reorder_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L693", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_players_py", "target": "players_remove_from_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L746", "weight": 1.0}, {"source": "players_player_fullscreen", "target": "players_get_player_playlist", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L534", "weight": 1.0}, {"source": "players_rationale_1", "target": "home_scheianu_digiserver_v2_app_blueprints_players_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L1", "weight": 1.0}, {"source": "players_rationale_20", "target": "players_list", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L20", "weight": 1.0}, {"source": "players_rationale_57", "target": "players_add_player", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L57", "weight": 1.0}, {"source": "players_rationale_299", "target": "players_regenerate_auth_code", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L299", "weight": 1.0}, {"source": "players_rationale_322", "target": "players_player_page", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L322", "weight": 1.0}, {"source": "players_rationale_329", "target": "players_manage_player", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L329", "weight": 1.0}, {"source": "players_rationale_446", "target": "players_edited_media", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L446", "weight": 1.0}, {"source": "players_rationale_490", "target": "players_edited_media_report", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L490", "weight": 1.0}, {"source": "players_rationale_523", "target": "players_player_fullscreen", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L523", "weight": 1.0}, {"source": "players_rationale_546", "target": "players_get_player_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L546", "weight": 1.0}, {"source": "players_rationale_591", "target": "players_reorder_content", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L591", "weight": 1.0}, {"source": "players_rationale_601", "target": "players_bulk_delete_players", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L601", "weight": 1.0}, {"source": "players_rationale_633", "target": "players_bulk_assign_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L633", "weight": 1.0}, {"source": "players_rationale_670", "target": "players_deployment_status", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L670", "weight": 1.0}, {"source": "players_rationale_694", "target": "players_reorder_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L694", "weight": 1.0}, {"source": "players_rationale_747", "target": "players_remove_from_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L747", "weight": 1.0}], "raw_calls": [{"caller_nid": "players_list", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L22"}, {"caller_nid": "players_list", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L22"}, {"caller_nid": "players_list", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L23"}, {"caller_nid": "players_list", "callee": "get_player_status_info", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L28"}, {"caller_nid": "players_list", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L36"}, {"caller_nid": "players_list", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L39"}, {"caller_nid": "players_list", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L43"}, {"caller_nid": "players_list", "callee": "dumps", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L47"}, {"caller_nid": "players_list", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L49"}, {"caller_nid": "players_list", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L49"}, {"caller_nid": "players_list", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L50"}, {"caller_nid": "players_list", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L51"}, {"caller_nid": "players_list", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L51"}, {"caller_nid": "players_add_player", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L59"}, {"caller_nid": "players_add_player", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L59"}, {"caller_nid": "players_add_player", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L59"}, {"caller_nid": "players_add_player", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L60"}, {"caller_nid": "players_add_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L63"}, {"caller_nid": "players_add_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L63"}, {"caller_nid": "players_add_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L64"}, {"caller_nid": "players_add_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L64"}, {"caller_nid": "players_add_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L65"}, {"caller_nid": "players_add_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L65"}, {"caller_nid": "players_add_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L66"}, {"caller_nid": "players_add_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L66"}, {"caller_nid": "players_add_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L67"}, {"caller_nid": "players_add_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L67"}, {"caller_nid": "players_add_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L68"}, {"caller_nid": "players_add_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L69"}, {"caller_nid": "players_add_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L69"}, {"caller_nid": "players_add_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L72"}, {"caller_nid": "players_add_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L72"}, {"caller_nid": "players_add_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L73"}, {"caller_nid": "players_add_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L73"}, {"caller_nid": "players_add_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L74"}, {"caller_nid": "players_add_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L74"}, {"caller_nid": "players_add_player", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L75"}, {"caller_nid": "players_add_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L75"}, {"caller_nid": "players_add_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L75"}, {"caller_nid": "players_add_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L76"}, {"caller_nid": "players_add_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L76"}, {"caller_nid": "players_add_player", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L79"}, {"caller_nid": "players_add_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L80"}, {"caller_nid": "players_add_player", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L81"}, {"caller_nid": "players_add_player", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L81"}, {"caller_nid": "players_add_player", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L83"}, {"caller_nid": "players_add_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L84"}, {"caller_nid": "players_add_player", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L85"}, {"caller_nid": "players_add_player", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L85"}, {"caller_nid": "players_add_player", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L88"}, {"caller_nid": "players_add_player", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L88"}, {"caller_nid": "players_add_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L90"}, {"caller_nid": "players_add_player", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L91"}, {"caller_nid": "players_add_player", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L91"}, {"caller_nid": "players_add_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L94"}, {"caller_nid": "players_add_player", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L95"}, {"caller_nid": "players_add_player", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L95"}, {"caller_nid": "players_add_player", "callee": "token_urlsafe", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L98"}, {"caller_nid": "players_add_player", "callee": "Player", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L101"}, {"caller_nid": "players_add_player", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L107"}, {"caller_nid": "players_add_player", "callee": "set_password", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L112"}, {"caller_nid": "players_add_player", "callee": "set_password", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L115"}, {"caller_nid": "players_add_player", "callee": "set_quickconnect_code", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L118"}, {"caller_nid": "players_add_player", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L120"}, {"caller_nid": "players_add_player", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L121"}, {"caller_nid": "players_add_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L123"}, {"caller_nid": "players_add_player", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L139"}, {"caller_nid": "players_add_player", "callee": "get_player_server_settings", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L140"}, {"caller_nid": "players_add_player", "callee": "get_config", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L148"}, {"caller_nid": "players_add_player", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L155"}, {"caller_nid": "players_add_player", "callee": "startswith", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L156"}, {"caller_nid": "players_add_player", "callee": "detect_server_ip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L158"}, {"caller_nid": "players_add_player", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L160"}, {"caller_nid": "players_add_player", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L167"}, {"caller_nid": "players_add_player", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L169"}, {"caller_nid": "players_add_player", "callee": "hexdigest", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L173"}, {"caller_nid": "players_add_player", "callee": "sha256", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L173"}, {"caller_nid": "players_add_player", "callee": "encode", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L173"}, {"caller_nid": "players_add_player", "callee": "run_background_task", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L176"}, {"caller_nid": "players_add_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L191"}, {"caller_nid": "players_add_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L193"}, {"caller_nid": "players_add_player", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L193"}, {"caller_nid": "players_add_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L207"}, {"caller_nid": "players_add_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L217"}, {"caller_nid": "players_add_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L219"}, {"caller_nid": "players_add_player", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L221"}, {"caller_nid": "players_add_player", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L221"}, {"caller_nid": "players_add_player", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L224"}, {"caller_nid": "players_add_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L225"}, {"caller_nid": "players_add_player", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L225"}, {"caller_nid": "players_add_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L226"}, {"caller_nid": "players_add_player", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L227"}, {"caller_nid": "players_add_player", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L227"}, {"caller_nid": "players_edit_player", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L234"}, {"caller_nid": "players_edit_player", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L237"}, {"caller_nid": "players_edit_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L240"}, {"caller_nid": "players_edit_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L240"}, {"caller_nid": "players_edit_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L241"}, {"caller_nid": "players_edit_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L241"}, {"caller_nid": "players_edit_player", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L244"}, {"caller_nid": "players_edit_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L245"}, {"caller_nid": "players_edit_player", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L246"}, {"caller_nid": "players_edit_player", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L246"}, {"caller_nid": "players_edit_player", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L251"}, {"caller_nid": "players_edit_player", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L254"}, {"caller_nid": "players_edit_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L256"}, {"caller_nid": "players_edit_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L257"}, {"caller_nid": "players_edit_player", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L259"}, {"caller_nid": "players_edit_player", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L259"}, {"caller_nid": "players_edit_player", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L262"}, {"caller_nid": "players_edit_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L263"}, {"caller_nid": "players_edit_player", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L263"}, {"caller_nid": "players_edit_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L264"}, {"caller_nid": "players_edit_player", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L265"}, {"caller_nid": "players_edit_player", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L265"}, {"caller_nid": "players_delete_player", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L273"}, {"caller_nid": "players_delete_player", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L277"}, {"caller_nid": "players_delete_player", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L277"}, {"caller_nid": "players_delete_player", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L279"}, {"caller_nid": "players_delete_player", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L280"}, {"caller_nid": "players_delete_player", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L283"}, {"caller_nid": "players_delete_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L285"}, {"caller_nid": "players_delete_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L286"}, {"caller_nid": "players_delete_player", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L289"}, {"caller_nid": "players_delete_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L290"}, {"caller_nid": "players_delete_player", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L290"}, {"caller_nid": "players_delete_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L291"}, {"caller_nid": "players_delete_player", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L293"}, {"caller_nid": "players_delete_player", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L293"}, {"caller_nid": "players_regenerate_auth_code", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L301"}, {"caller_nid": "players_regenerate_auth_code", "callee": "token_urlsafe", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L304"}, {"caller_nid": "players_regenerate_auth_code", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L306"}, {"caller_nid": "players_regenerate_auth_code", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L308"}, {"caller_nid": "players_regenerate_auth_code", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L309"}, {"caller_nid": "players_regenerate_auth_code", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L312"}, {"caller_nid": "players_regenerate_auth_code", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L313"}, {"caller_nid": "players_regenerate_auth_code", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L313"}, {"caller_nid": "players_regenerate_auth_code", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L314"}, {"caller_nid": "players_regenerate_auth_code", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L316"}, {"caller_nid": "players_regenerate_auth_code", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L316"}, {"caller_nid": "players_player_page", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L323"}, {"caller_nid": "players_player_page", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L323"}, {"caller_nid": "players_manage_player", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L330"}, {"caller_nid": "players_manage_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L333"}, {"caller_nid": "players_manage_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L338"}, {"caller_nid": "players_manage_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L338"}, {"caller_nid": "players_manage_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L339"}, {"caller_nid": "players_manage_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L339"}, {"caller_nid": "players_manage_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L340"}, {"caller_nid": "players_manage_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L341"}, {"caller_nid": "players_manage_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L341"}, {"caller_nid": "players_manage_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L342"}, {"caller_nid": "players_manage_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L342"}, {"caller_nid": "players_manage_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L343"}, {"caller_nid": "players_manage_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L343"}, {"caller_nid": "players_manage_player", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L345"}, {"caller_nid": "players_manage_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L346"}, {"caller_nid": "players_manage_player", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L347"}, {"caller_nid": "players_manage_player", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L347"}, {"caller_nid": "players_manage_player", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L349"}, {"caller_nid": "players_manage_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L350"}, {"caller_nid": "players_manage_player", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L351"}, {"caller_nid": "players_manage_player", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L351"}, {"caller_nid": "players_manage_player", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L355"}, {"caller_nid": "players_manage_player", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L355"}, {"caller_nid": "players_manage_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L357"}, {"caller_nid": "players_manage_player", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L358"}, {"caller_nid": "players_manage_player", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L358"}, {"caller_nid": "players_manage_player", "callee": "set_password", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L368"}, {"caller_nid": "players_manage_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L369"}, {"caller_nid": "players_manage_player", "callee": "set_quickconnect_code", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L373"}, {"caller_nid": "players_manage_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L374"}, {"caller_nid": "players_manage_player", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L376"}, {"caller_nid": "players_manage_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L378"}, {"caller_nid": "players_manage_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L379"}, {"caller_nid": "players_manage_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L383"}, {"caller_nid": "players_manage_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L386"}, {"caller_nid": "players_manage_player", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L386"}, {"caller_nid": "players_manage_player", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L388"}, {"caller_nid": "players_manage_player", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L389"}, {"caller_nid": "players_manage_player", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L390"}, {"caller_nid": "players_manage_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L391"}, {"caller_nid": "players_manage_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L392"}, {"caller_nid": "players_manage_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L394"}, {"caller_nid": "players_manage_player", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L398"}, {"caller_nid": "players_manage_player", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L399"}, {"caller_nid": "players_manage_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L400"}, {"caller_nid": "players_manage_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L401"}, {"caller_nid": "players_manage_player", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L404"}, {"caller_nid": "players_manage_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L405"}, {"caller_nid": "players_manage_player", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L405"}, {"caller_nid": "players_manage_player", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L406"}, {"caller_nid": "players_manage_player", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L408"}, {"caller_nid": "players_manage_player", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L408"}, {"caller_nid": "players_manage_player", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L411"}, {"caller_nid": "players_manage_player", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L411"}, {"caller_nid": "players_manage_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L416"}, {"caller_nid": "players_manage_player", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L419"}, {"caller_nid": "players_manage_player", "callee": "limit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L419"}, {"caller_nid": "players_manage_player", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L419"}, {"caller_nid": "players_manage_player", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L419"}, {"caller_nid": "players_manage_player", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L420"}, {"caller_nid": "players_manage_player", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L426"}, {"caller_nid": "players_manage_player", "callee": "limit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L426"}, {"caller_nid": "players_manage_player", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L426"}, {"caller_nid": "players_manage_player", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L426"}, {"caller_nid": "players_manage_player", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L427"}, {"caller_nid": "players_manage_player", "callee": "get_player_status_info", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L432"}, {"caller_nid": "players_manage_player", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L434"}, {"caller_nid": "players_edited_media", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L448"}, {"caller_nid": "players_edited_media", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L454"}, {"caller_nid": "players_edited_media", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L454"}, {"caller_nid": "players_edited_media", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L454"}, {"caller_nid": "players_edited_media", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L455"}, {"caller_nid": "players_edited_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L462"}, {"caller_nid": "players_edited_media", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L470"}, {"caller_nid": "players_edited_media", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L470"}, {"caller_nid": "players_edited_media", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L476"}, {"caller_nid": "players_edited_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L482"}, {"caller_nid": "players_edited_media", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L482"}, {"caller_nid": "players_edited_media", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L483"}, {"caller_nid": "players_edited_media", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L484"}, {"caller_nid": "players_edited_media", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L484"}, {"caller_nid": "players_edited_media_report", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L492"}, {"caller_nid": "players_edited_media_report", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L497"}, {"caller_nid": "players_edited_media_report", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L497"}, {"caller_nid": "players_edited_media_report", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L497"}, {"caller_nid": "players_edited_media_report", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L498"}, {"caller_nid": "players_edited_media_report", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L505"}, {"caller_nid": "players_edited_media_report", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L505"}, {"caller_nid": "players_edited_media_report", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L511"}, {"caller_nid": "players_edited_media_report", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L516"}, {"caller_nid": "players_edited_media_report", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L516"}, {"caller_nid": "players_edited_media_report", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L517"}, {"caller_nid": "players_edited_media_report", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L518"}, {"caller_nid": "players_edited_media_report", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L518"}, {"caller_nid": "players_player_fullscreen", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L525"}, {"caller_nid": "players_player_fullscreen", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L528"}, {"caller_nid": "players_player_fullscreen", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L530"}, {"caller_nid": "players_player_fullscreen", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L536"}, {"caller_nid": "players_player_fullscreen", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L540"}, {"caller_nid": "players_player_fullscreen", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L540"}, {"caller_nid": "players_get_player_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L554"}, {"caller_nid": "players_get_player_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L559"}, {"caller_nid": "players_get_player_playlist", "callee": "get_content_ordered", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L564"}, {"caller_nid": "players_get_player_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L573"}, {"caller_nid": "players_get_player_playlist", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L574"}, {"caller_nid": "players_get_player_playlist", "callee": "getattr", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L578"}, {"caller_nid": "players_get_player_playlist", "callee": "getattr", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L579"}, {"caller_nid": "players_get_player_playlist", "callee": "getattr", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L580"}, {"caller_nid": "players_get_player_playlist", "callee": "getattr", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L581"}, {"caller_nid": "players_reorder_content", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L592"}, {"caller_nid": "players_bulk_delete_players", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L603"}, {"caller_nid": "players_bulk_delete_players", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L606"}, {"caller_nid": "players_bulk_delete_players", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L611"}, {"caller_nid": "players_bulk_delete_players", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L614"}, {"caller_nid": "players_bulk_delete_players", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L614"}, {"caller_nid": "players_bulk_delete_players", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L615"}, {"caller_nid": "players_bulk_delete_players", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L616"}, {"caller_nid": "players_bulk_delete_players", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L619"}, {"caller_nid": "players_bulk_delete_players", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L621"}, {"caller_nid": "players_bulk_delete_players", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L622"}, {"caller_nid": "players_bulk_delete_players", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L625"}, {"caller_nid": "players_bulk_delete_players", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L626"}, {"caller_nid": "players_bulk_delete_players", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L626"}, {"caller_nid": "players_bulk_delete_players", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L627"}, {"caller_nid": "players_bulk_delete_players", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L627"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L635"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L636"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L639"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L643"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L645"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L650"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L653"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L656"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L658"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L659"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L662"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L663"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L663"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L664"}, {"caller_nid": "players_bulk_assign_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L664"}, {"caller_nid": "players_deployment_status", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L672"}, {"caller_nid": "players_deployment_status", "callee": "with_entities", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L672"}, {"caller_nid": "players_deployment_status", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L682"}, {"caller_nid": "players_deployment_status", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L685"}, {"caller_nid": "players_deployment_status", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L687"}, {"caller_nid": "players_deployment_status", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L687"}, {"caller_nid": "players_deployment_status", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L688"}, {"caller_nid": "players_deployment_status", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L688"}, {"caller_nid": "players_reorder_playlist", "callee": "get_json", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L696"}, {"caller_nid": "players_reorder_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L697"}, {"caller_nid": "players_reorder_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L698"}, {"caller_nid": "players_reorder_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L701"}, {"caller_nid": "players_reorder_playlist", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L704"}, {"caller_nid": "players_reorder_playlist", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L704"}, {"caller_nid": "players_reorder_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L706"}, {"caller_nid": "players_reorder_playlist", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L709"}, {"caller_nid": "players_reorder_playlist", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L709"}, {"caller_nid": "players_reorder_playlist", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L709"}, {"caller_nid": "players_reorder_playlist", "callee": "enumerate", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L714"}, {"caller_nid": "players_reorder_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L720"}, {"caller_nid": "players_reorder_playlist", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L727"}, {"caller_nid": "players_reorder_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L732"}, {"caller_nid": "players_reorder_playlist", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L733"}, {"caller_nid": "players_reorder_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L735"}, {"caller_nid": "players_reorder_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L736"}, {"caller_nid": "players_reorder_playlist", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L739"}, {"caller_nid": "players_reorder_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L740"}, {"caller_nid": "players_reorder_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L740"}, {"caller_nid": "players_reorder_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L741"}, {"caller_nid": "players_reorder_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L741"}, {"caller_nid": "players_remove_from_playlist", "callee": "get_json", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L749"}, {"caller_nid": "players_remove_from_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L750"}, {"caller_nid": "players_remove_from_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L753"}, {"caller_nid": "players_remove_from_playlist", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L756"}, {"caller_nid": "players_remove_from_playlist", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L756"}, {"caller_nid": "players_remove_from_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L758"}, {"caller_nid": "players_remove_from_playlist", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L763"}, {"caller_nid": "players_remove_from_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L766"}, {"caller_nid": "players_remove_from_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L770"}, {"caller_nid": "players_remove_from_playlist", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L773"}, {"caller_nid": "players_remove_from_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L775"}, {"caller_nid": "players_remove_from_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L776"}, {"caller_nid": "players_remove_from_playlist", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L779"}, {"caller_nid": "players_remove_from_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L780"}, {"caller_nid": "players_remove_from_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L780"}, {"caller_nid": "players_remove_from_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L781"}, {"caller_nid": "players_remove_from_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", "source_location": "L781"}]} \ No newline at end of file diff --git a/graphify-out/cache/0d890c23b5d5b491833873e1886e21b293e8dc401f1035c831188299b857e647.json b/graphify-out/cache/0d890c23b5d5b491833873e1886e21b293e8dc401f1035c831188299b857e647.json new file mode 100644 index 0000000..b7ba501 --- /dev/null +++ b/graphify-out/cache/0d890c23b5d5b491833873e1886e21b293e8dc401f1035c831188299b857e647.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_models_server_log_py", "label": "server_log.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "server_log_serverlog", "label": "ServerLog", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L8", "complexity": 1, "loc": 65}, {"id": "server_log_serverlog_repr", "label": ".__repr__()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L25", "complexity": 1, "loc": 3}, {"id": "server_log_log_info", "label": "log_info()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L30", "complexity": 1, "loc": 13}, {"id": "server_log_log_warning", "label": "log_warning()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L45", "complexity": 1, "loc": 13}, {"id": "server_log_log_error", "label": "log_error()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L60", "complexity": 1, "loc": 13}, {"id": "server_log_rationale_1", "label": "Server log model for audit trail.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L1"}, {"id": "server_log_rationale_9", "label": "Server log model for tracking system events. Attributes: id: Pr", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L9"}, {"id": "server_log_rationale_26", "label": "String representation of ServerLog.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L26"}, {"id": "server_log_rationale_31", "label": "Create an info level log entry. Args: message: Log", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L31"}, {"id": "server_log_rationale_46", "label": "Create a warning level log entry. Args: message: Lo", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L46"}, {"id": "server_log_rationale_61", "label": "Create an error level log entry. Args: message: Log", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L61"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_models_server_log_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_server_log_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_server_log_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_server_log_py", "target": "server_log_serverlog", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L8", "weight": 1.0}, {"source": "server_log_serverlog", "target": "server_log_serverlog_repr", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L25", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_server_log_py", "target": "server_log_log_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L30", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_server_log_py", "target": "server_log_log_warning", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L45", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_server_log_py", "target": "server_log_log_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L60", "weight": 1.0}, {"source": "server_log_rationale_1", "target": "home_scheianu_digiserver_v2_app_models_server_log_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L1", "weight": 1.0}, {"source": "server_log_rationale_9", "target": "server_log_serverlog", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L9", "weight": 1.0}, {"source": "server_log_rationale_26", "target": "server_log_serverlog_repr", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L26", "weight": 1.0}, {"source": "server_log_rationale_31", "target": "server_log_serverlog_log_info", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L31", "weight": 1.0}, {"source": "server_log_rationale_46", "target": "server_log_serverlog_log_warning", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L46", "weight": 1.0}, {"source": "server_log_rationale_61", "target": "server_log_serverlog_log_error", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L61", "weight": 1.0}], "raw_calls": [{"caller_nid": "server_log_serverlog_repr", "callee": "upper", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L27"}, {"caller_nid": "server_log_log_info", "callee": "cls", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L39"}, {"caller_nid": "server_log_log_info", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L40"}, {"caller_nid": "server_log_log_info", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L41"}, {"caller_nid": "server_log_log_warning", "callee": "cls", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L54"}, {"caller_nid": "server_log_log_warning", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L55"}, {"caller_nid": "server_log_log_warning", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L56"}, {"caller_nid": "server_log_log_error", "callee": "cls", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L69"}, {"caller_nid": "server_log_log_error", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L70"}, {"caller_nid": "server_log_log_error", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", "source_location": "L71"}]} \ No newline at end of file diff --git a/graphify-out/cache/0e9c4183e70fcfb3057a320236d68c89d4ccbc8d2beb69b6eb7f6d33657fbdaa.json b/graphify-out/cache/0e9c4183e70fcfb3057a320236d68c89d4ccbc8d2beb69b6eb7f6d33657fbdaa.json new file mode 100644 index 0000000..16a8115 --- /dev/null +++ b/graphify-out/cache/0e9c4183e70fcfb3057a320236d68c89d4ccbc8d2beb69b6eb7f6d33657fbdaa.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", "label": "group_player_management.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "group_player_management_get_player_status_info", "label": "get_player_status_info()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L10", "complexity": 6, "loc": 42}, {"id": "group_player_management_get_group_statistics", "label": "get_group_statistics()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L54", "complexity": 5, "loc": 42}, {"id": "group_player_management_assign_player_to_group", "label": "assign_player_to_group()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L98", "complexity": 4, "loc": 33}, {"id": "group_player_management_bulk_assign_players_to_group", "label": "bulk_assign_players_to_group()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L133", "complexity": 5, "loc": 33}, {"id": "group_player_management_get_online_players_count", "label": "get_online_players_count()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L168", "complexity": 1, "loc": 8}, {"id": "group_player_management_get_players_by_status", "label": "get_players_by_status()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L178", "complexity": 1, "loc": 10}, {"id": "group_player_management_format_time_ago", "label": "_format_time_ago()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L190", "complexity": 2, "loc": 20}, {"id": "group_player_management_rationale_1", "label": "Group and player management utilities.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L1"}, {"id": "group_player_management_rationale_11", "label": "Get comprehensive status information for a player. Args: player", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L11"}, {"id": "group_player_management_rationale_55", "label": "Get statistics for a group. Args: group_id: Group ID to query", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L55"}, {"id": "group_player_management_rationale_99", "label": "Assign a player to a group or unassign if group_id is None. Args:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L99"}, {"id": "group_player_management_rationale_134", "label": "Assign multiple players to a group. Args: player_ids: List of p", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L134"}, {"id": "group_player_management_rationale_169", "label": "Get count of online players (seen in last 5 minutes). Returns:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L169"}, {"id": "group_player_management_rationale_179", "label": "Get all players with a specific status. Args: status: Status to", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L179"}, {"id": "group_player_management_rationale_191", "label": "Format datetime as 'time ago' string. Args: dt: Datetime to for", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L191"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", "target": "app_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", "target": "app_utils_logger", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", "target": "group_player_management_get_player_status_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L10", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", "target": "group_player_management_get_group_statistics", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L54", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", "target": "group_player_management_assign_player_to_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L98", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", "target": "group_player_management_bulk_assign_players_to_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L133", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", "target": "group_player_management_get_online_players_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L168", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", "target": "group_player_management_get_players_by_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L178", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", "target": "group_player_management_format_time_ago", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L190", "weight": 1.0}, {"source": "group_player_management_get_player_status_info", "target": "group_player_management_format_time_ago", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L44", "weight": 1.0}, {"source": "group_player_management_rationale_1", "target": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L1", "weight": 1.0}, {"source": "group_player_management_rationale_11", "target": "group_player_management_get_player_status_info", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L11", "weight": 1.0}, {"source": "group_player_management_rationale_55", "target": "group_player_management_get_group_statistics", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L55", "weight": 1.0}, {"source": "group_player_management_rationale_99", "target": "group_player_management_assign_player_to_group", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L99", "weight": 1.0}, {"source": "group_player_management_rationale_134", "target": "group_player_management_bulk_assign_players_to_group", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L134", "weight": 1.0}, {"source": "group_player_management_rationale_169", "target": "group_player_management_get_online_players_count", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L169", "weight": 1.0}, {"source": "group_player_management_rationale_179", "target": "group_player_management_get_players_by_status", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L179", "weight": 1.0}, {"source": "group_player_management_rationale_191", "target": "group_player_management_format_time_ago", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L191", "weight": 1.0}], "raw_calls": [{"caller_nid": "group_player_management_get_player_status_info", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L19"}, {"caller_nid": "group_player_management_get_player_status_info", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L32"}, {"caller_nid": "group_player_management_get_player_status_info", "callee": "total_seconds", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L33"}, {"caller_nid": "group_player_management_get_player_status_info", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L36"}, {"caller_nid": "group_player_management_get_player_status_info", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L36"}, {"caller_nid": "group_player_management_get_player_status_info", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L36"}, {"caller_nid": "group_player_management_get_player_status_info", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L37"}, {"caller_nid": "group_player_management_get_player_status_info", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L43"}, {"caller_nid": "group_player_management_get_player_status_info", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L49"}, {"caller_nid": "group_player_management_get_group_statistics", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L63"}, {"caller_nid": "group_player_management_get_group_statistics", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L79"}, {"caller_nid": "group_player_management_get_group_statistics", "callee": "timedelta", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L79"}, {"caller_nid": "group_player_management_assign_player_to_group", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L109"}, {"caller_nid": "group_player_management_assign_player_to_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L112"}, {"caller_nid": "group_player_management_assign_player_to_group", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L117"}, {"caller_nid": "group_player_management_assign_player_to_group", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L120"}, {"caller_nid": "group_player_management_assign_player_to_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L121"}, {"caller_nid": "group_player_management_assign_player_to_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L123"}, {"caller_nid": "group_player_management_assign_player_to_group", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L128"}, {"caller_nid": "group_player_management_assign_player_to_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L129"}, {"caller_nid": "group_player_management_assign_player_to_group", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L129"}, {"caller_nid": "group_player_management_bulk_assign_players_to_group", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L147"}, {"caller_nid": "group_player_management_bulk_assign_players_to_group", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L152"}, {"caller_nid": "group_player_management_bulk_assign_players_to_group", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L155"}, {"caller_nid": "group_player_management_bulk_assign_players_to_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L156"}, {"caller_nid": "group_player_management_bulk_assign_players_to_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L158"}, {"caller_nid": "group_player_management_bulk_assign_players_to_group", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L163"}, {"caller_nid": "group_player_management_bulk_assign_players_to_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L164"}, {"caller_nid": "group_player_management_bulk_assign_players_to_group", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L164"}, {"caller_nid": "group_player_management_get_online_players_count", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L174"}, {"caller_nid": "group_player_management_get_online_players_count", "callee": "timedelta", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L174"}, {"caller_nid": "group_player_management_get_online_players_count", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L175"}, {"caller_nid": "group_player_management_get_online_players_count", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L175"}, {"caller_nid": "group_player_management_get_players_by_status", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L187"}, {"caller_nid": "group_player_management_get_players_by_status", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L187"}, {"caller_nid": "group_player_management_format_time_ago", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L199"}, {"caller_nid": "group_player_management_format_time_ago", "callee": "total_seconds", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L200"}, {"caller_nid": "group_player_management_format_time_ago", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L203"}, {"caller_nid": "group_player_management_format_time_ago", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L205"}, {"caller_nid": "group_player_management_format_time_ago", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L207"}, {"caller_nid": "group_player_management_format_time_ago", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", "source_location": "L209"}]} \ No newline at end of file diff --git a/graphify-out/cache/12d5cdd758d9915b1802a2a22356441b35877bca1373f23a417e124ad1d52b81.json b/graphify-out/cache/12d5cdd758d9915b1802a2a22356441b35877bca1373f23a417e124ad1d52b81.json new file mode 100644 index 0000000..cdbe226 --- /dev/null +++ b/graphify-out/cache/12d5cdd758d9915b1802a2a22356441b35877bca1373f23a417e124ad1d52b81.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_utils_logger_py", "label": "logger.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "logger_log_action", "label": "log_action()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L9", "complexity": 2, "loc": 15}, {"id": "logger_get_recent_logs", "label": "get_recent_logs()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L26", "complexity": 2, "loc": 16}, {"id": "logger_clear_old_logs", "label": "clear_old_logs()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L44", "complexity": 2, "loc": 19}, {"id": "logger_log_info", "label": "log_info()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L66", "complexity": 1, "loc": 3}, {"id": "logger_log_warning", "label": "log_warning()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L71", "complexity": 1, "loc": 3}, {"id": "logger_log_error", "label": "log_error()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L76", "complexity": 1, "loc": 3}, {"id": "logger_rationale_1", "label": "Logging utility for tracking system events.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L1"}, {"id": "logger_rationale_10", "label": "Log an action to the database with specified level. Args: level", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L10"}, {"id": "logger_rationale_27", "label": "Get the most recent log entries. Args: limit: Maximum number of", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L27"}, {"id": "logger_rationale_45", "label": "Delete logs older than specified days. Args: days: Number of da", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L45"}, {"id": "logger_rationale_67", "label": "Log an info level message.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L67"}, {"id": "logger_rationale_72", "label": "Log a warning level message.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L72"}, {"id": "logger_rationale_77", "label": "Log an error level message.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L77"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_utils_logger_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_logger_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_logger_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_logger_py", "target": "app_models_server_log", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_logger_py", "target": "logger_log_action", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L9", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_logger_py", "target": "logger_get_recent_logs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L26", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_logger_py", "target": "logger_clear_old_logs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L44", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_logger_py", "target": "logger_log_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L66", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_logger_py", "target": "logger_log_warning", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L71", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_logger_py", "target": "logger_log_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L76", "weight": 1.0}, {"source": "logger_clear_old_logs", "target": "logger_log_action", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L57", "weight": 1.0}, {"source": "logger_log_info", "target": "logger_log_action", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L68", "weight": 1.0}, {"source": "logger_log_warning", "target": "logger_log_action", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L73", "weight": 1.0}, {"source": "logger_log_error", "target": "logger_log_action", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L78", "weight": 1.0}, {"source": "logger_rationale_1", "target": "home_scheianu_digiserver_v2_app_utils_logger_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L1", "weight": 1.0}, {"source": "logger_rationale_10", "target": "logger_log_action", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L10", "weight": 1.0}, {"source": "logger_rationale_27", "target": "logger_get_recent_logs", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L27", "weight": 1.0}, {"source": "logger_rationale_45", "target": "logger_clear_old_logs", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L45", "weight": 1.0}, {"source": "logger_rationale_67", "target": "logger_log_info", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L67", "weight": 1.0}, {"source": "logger_rationale_72", "target": "logger_log_warning", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L72", "weight": 1.0}, {"source": "logger_rationale_77", "target": "logger_log_error", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L77", "weight": 1.0}], "raw_calls": [{"caller_nid": "logger_log_action", "callee": "ServerLog", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L17"}, {"caller_nid": "logger_log_action", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L18"}, {"caller_nid": "logger_log_action", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L19"}, {"caller_nid": "logger_log_action", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L20"}, {"caller_nid": "logger_log_action", "callee": "upper", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L20"}, {"caller_nid": "logger_log_action", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L22"}, {"caller_nid": "logger_log_action", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L23"}, {"caller_nid": "logger_get_recent_logs", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L39"}, {"caller_nid": "logger_get_recent_logs", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L41"}, {"caller_nid": "logger_get_recent_logs", "callee": "limit", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L41"}, {"caller_nid": "logger_get_recent_logs", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L41"}, {"caller_nid": "logger_get_recent_logs", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L41"}, {"caller_nid": "logger_clear_old_logs", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L54"}, {"caller_nid": "logger_clear_old_logs", "callee": "timedelta", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L54"}, {"caller_nid": "logger_clear_old_logs", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L55"}, {"caller_nid": "logger_clear_old_logs", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L55"}, {"caller_nid": "logger_clear_old_logs", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L56"}, {"caller_nid": "logger_clear_old_logs", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L60"}, {"caller_nid": "logger_clear_old_logs", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", "source_location": "L61"}]} \ No newline at end of file diff --git a/graphify-out/cache/1501c3d3f8886e1933d28b2a197a9391ffee713b2c874f1d3d7df8617ad3dd61.json b/graphify-out/cache/1501c3d3f8886e1933d28b2a197a9391ffee713b2c874f1d3d7df8617ad3dd61.json new file mode 100644 index 0000000..e5d804d --- /dev/null +++ b/graphify-out/cache/1501c3d3f8886e1933d28b2a197a9391ffee713b2c874f1d3d7df8617ad3dd61.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_utils_portal_sso_py", "label": "portal_sso.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "portal_sso_init_portal_sso", "label": "init_portal_sso()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L17", "complexity": 4, "loc": 16}, {"id": "portal_sso_get_or_create_user", "label": "_get_or_create_user()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L35", "complexity": 4, "loc": 18}, {"id": "portal_sso_rationale_1", "label": "Portal SSO middleware for DigiServer v2. When the umbrella nginx verifies the p", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L1"}, {"id": "portal_sso_rationale_18", "label": "Register the SSO before_request handler on the given Flask app.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L18"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_utils_portal_sso_py", "target": "secrets", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L12", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_portal_sso_py", "target": "flask", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L13", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_portal_sso_py", "target": "flask_login", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L14", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_portal_sso_py", "target": "portal_sso_init_portal_sso", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L17", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_portal_sso_py", "target": "portal_sso_get_or_create_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L35", "weight": 1.0}, {"source": "portal_sso_rationale_1", "target": "home_scheianu_digiserver_v2_app_utils_portal_sso_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L1", "weight": 1.0}, {"source": "portal_sso_rationale_18", "target": "portal_sso_init_portal_sso", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L18", "weight": 1.0}], "raw_calls": [{"caller_nid": "portal_sso_get_or_create_user", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L40"}, {"caller_nid": "portal_sso_get_or_create_user", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L40"}, {"caller_nid": "portal_sso_get_or_create_user", "callee": "decode", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L42"}, {"caller_nid": "portal_sso_get_or_create_user", "callee": "generate_password_hash", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L42"}, {"caller_nid": "portal_sso_get_or_create_user", "callee": "token_hex", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L42"}, {"caller_nid": "portal_sso_get_or_create_user", "callee": "User", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L43"}, {"caller_nid": "portal_sso_get_or_create_user", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L48"}, {"caller_nid": "portal_sso_get_or_create_user", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", "source_location": "L49"}]} \ No newline at end of file diff --git a/graphify-out/cache/18597a9be9d9cc7cda10c6c5ca2af5452c2aba1e167d2cbd7dc50ee5ba1b3ac1.json b/graphify-out/cache/18597a9be9d9cc7cda10c6c5ca2af5452c2aba1e167d2cbd7dc50ee5ba1b3ac1.json new file mode 100644 index 0000000..9763221 --- /dev/null +++ b/graphify-out/cache/18597a9be9d9cc7cda10c6c5ca2af5452c2aba1e167d2cbd7dc50ee5ba1b3ac1.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "label": "ssh_deploy.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "ssh_deploy_get_local_player_code_status", "label": "get_local_player_code_status()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L15", "complexity": 8, "loc": 68}, {"id": "ssh_deploy_test_ssh_connection", "label": "test_ssh_connection()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L85", "complexity": 3, "loc": 62}, {"id": "ssh_deploy_generate_player_config", "label": "generate_player_config()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L149", "complexity": 1, "loc": 57}, {"id": "ssh_deploy_detect_server_ip", "label": "detect_server_ip()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L208", "complexity": 7, "loc": 31}, {"id": "ssh_deploy_parse_server_address", "label": "parse_server_address()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L241", "complexity": 4, "loc": 24}, {"id": "ssh_deploy_generate_app_config", "label": "generate_app_config()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L267", "complexity": 1, "loc": 42}, {"id": "ssh_deploy_deploy_player_to_host", "label": "deploy_player_to_host()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L311", "complexity": 31, "loc": 443}, {"id": "ssh_deploy_rationale_1", "label": "SSH deployment utilities for player provisioning.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L1"}, {"id": "ssh_deploy_rationale_16", "label": "Check status of pre-staged player code. Args: player_code_dir: Opti", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L16"}, {"id": "ssh_deploy_rationale_86", "label": "Test SSH connection to a remote host. Args: hostname: Target ho", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L86"}, {"id": "ssh_deploy_rationale_156", "label": "Generate player configuration JSON for connecting to DigiServer. Args:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L156"}, {"id": "ssh_deploy_rationale_209", "label": "Best-effort detection of this server's primary LAN IP address. Opens a UDP", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L209"}, {"id": "ssh_deploy_rationale_242", "label": "Derive the values the player needs from a DigiServer URL. The player's conf", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L242"}, {"id": "ssh_deploy_rationale_277", "label": "Generate the config/app_config.json the player actually reads. This is what", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L277"}, {"id": "ssh_deploy_rationale_326", "label": "Deploy player code to remote host. Args: hostname: Target hostn", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L326"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "target": "subprocess", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "target": "ssh_deploy_get_local_player_code_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L15", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "target": "ssh_deploy_test_ssh_connection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L85", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "target": "ssh_deploy_generate_player_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L149", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "target": "ssh_deploy_detect_server_ip", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L208", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "target": "ssh_deploy_parse_server_address", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L241", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "target": "ssh_deploy_generate_app_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L267", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "target": "ssh_deploy_deploy_player_to_host", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L311", "weight": 1.0}, {"source": "ssh_deploy_deploy_player_to_host", "target": "ssh_deploy_test_ssh_connection", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L352", "weight": 1.0}, {"source": "ssh_deploy_deploy_player_to_host", "target": "ssh_deploy_get_local_player_code_status", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L404", "weight": 1.0}, {"source": "ssh_deploy_deploy_player_to_host", "target": "ssh_deploy_parse_server_address", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L511", "weight": 1.0}, {"source": "ssh_deploy_deploy_player_to_host", "target": "ssh_deploy_generate_app_config", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L512", "weight": 1.0}, {"source": "ssh_deploy_rationale_1", "target": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L1", "weight": 1.0}, {"source": "ssh_deploy_rationale_16", "target": "ssh_deploy_get_local_player_code_status", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L16", "weight": 1.0}, {"source": "ssh_deploy_rationale_86", "target": "ssh_deploy_test_ssh_connection", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L86", "weight": 1.0}, {"source": "ssh_deploy_rationale_156", "target": "ssh_deploy_generate_player_config", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L156", "weight": 1.0}, {"source": "ssh_deploy_rationale_209", "target": "ssh_deploy_detect_server_ip", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L209", "weight": 1.0}, {"source": "ssh_deploy_rationale_242", "target": "ssh_deploy_parse_server_address", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L242", "weight": 1.0}, {"source": "ssh_deploy_rationale_277", "target": "ssh_deploy_generate_app_config", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L277", "weight": 1.0}, {"source": "ssh_deploy_rationale_326", "target": "ssh_deploy_deploy_player_to_host", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L326", "weight": 1.0}], "raw_calls": [{"caller_nid": "ssh_deploy_get_local_player_code_status", "callee": "isdir", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L28"}, {"caller_nid": "ssh_deploy_get_local_player_code_status", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L36"}, {"caller_nid": "ssh_deploy_get_local_player_code_status", "callee": "isdir", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L37"}, {"caller_nid": "ssh_deploy_get_local_player_code_status", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L46"}, {"caller_nid": "ssh_deploy_get_local_player_code_status", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L52"}, {"caller_nid": "ssh_deploy_get_local_player_code_status", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L58"}, {"caller_nid": "ssh_deploy_get_local_player_code_status", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L64"}, {"caller_nid": "ssh_deploy_get_local_player_code_status", "callee": "getmtime", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L73"}, {"caller_nid": "ssh_deploy_get_local_player_code_status", "callee": "warning", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L77"}, {"caller_nid": "ssh_deploy_get_local_player_code_status", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L77"}, {"caller_nid": "ssh_deploy_get_local_player_code_status", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L80"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L104"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L109"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L120"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L120"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L121"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L124"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L124"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L128"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L128"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L136"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L136"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "error", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L140"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L140"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L143"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L144"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L144"}, {"caller_nid": "ssh_deploy_test_ssh_connection", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L145"}, {"caller_nid": "ssh_deploy_generate_player_config", "callee": "dumps", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L205"}, {"caller_nid": "ssh_deploy_detect_server_ip", "callee": "socket", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L218"}, {"caller_nid": "ssh_deploy_detect_server_ip", "callee": "connect", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L219"}, {"caller_nid": "ssh_deploy_detect_server_ip", "callee": "getsockname", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L220"}, {"caller_nid": "ssh_deploy_detect_server_ip", "callee": "startswith", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L221"}, {"caller_nid": "ssh_deploy_detect_server_ip", "callee": "close", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L228"}, {"caller_nid": "ssh_deploy_detect_server_ip", "callee": "gethostbyname", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L233"}, {"caller_nid": "ssh_deploy_detect_server_ip", "callee": "gethostname", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L233"}, {"caller_nid": "ssh_deploy_detect_server_ip", "callee": "startswith", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L234"}, {"caller_nid": "ssh_deploy_parse_server_address", "callee": "urlparse", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L258"}, {"caller_nid": "ssh_deploy_parse_server_address", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L264"}, {"caller_nid": "ssh_deploy_generate_app_config", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L298"}, {"caller_nid": "ssh_deploy_generate_app_config", "callee": "bool", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L305"}, {"caller_nid": "ssh_deploy_generate_app_config", "callee": "bool", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L306"}, {"caller_nid": "ssh_deploy_generate_app_config", "callee": "dumps", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L308"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L357"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L357"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L367"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L367"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L376"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L380"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L381"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L385"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L385"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L388"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L391"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L392"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L392"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L397"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L397"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L398"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "info", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L408"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L408"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L418"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L420"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L423"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L424"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L424"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "warning", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L428"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "Exception", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L430"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "info", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L433"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L433"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "Exception", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L434"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "info", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L439"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L445"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L449"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L456"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L466"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L472"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L473"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L476"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "chr", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L476"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L477"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L477"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L484"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L484"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L489"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L492"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L493"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L493"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L498"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L498"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L499"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L534"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "quote", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L535"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L535"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "items", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L535"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L550"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L554"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L555"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L562"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L562"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L565"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L569"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L569"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "warning", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L572"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L572"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L573"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L576"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L577"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L577"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L590"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L598"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "warning", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L601"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "warning", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L604"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L604"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L630"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L634"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L635"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L638"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L642"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L642"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "next", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L645"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "splitlines", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L645"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "startswith", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L645"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L646"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "replace", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L646"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L647"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L651"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L651"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "warning", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L654"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "info", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L656"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L658"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L662"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L662"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L665"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L668"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L669"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L669"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "error", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L671"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L671"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L679"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L683"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L693"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L697"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L704"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L708"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L711"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L713"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L717"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L717"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "info", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L719"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L721"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L725"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L725"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "warning", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L727"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L729"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L732"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L733"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L733"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "error", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L735"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L735"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L740"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L740"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "error", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L746"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L746"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L749"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L750"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "now", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L750"}, {"caller_nid": "ssh_deploy_deploy_player_to_host", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", "source_location": "L751"}]} \ No newline at end of file diff --git a/graphify-out/cache/20c121d89d9bd3f9d9e628bd136f9936896684dfc69044c6f4d7313722d061a3.json b/graphify-out/cache/20c121d89d9bd3f9d9e628bd136f9936896684dfc69044c6f4d7313722d061a3.json new file mode 100644 index 0000000..d74e3b2 --- /dev/null +++ b/graphify-out/cache/20c121d89d9bd3f9d9e628bd136f9936896684dfc69044c6f4d7313722d061a3.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_old_code_documentation_migrate_add_edit_enabled_py", "label": "migrate_add_edit_enabled.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "migrate_add_edit_enabled_migrate", "label": "migrate()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L7", "complexity": 4, "loc": 38}, {"id": "migrate_add_edit_enabled_rationale_1", "label": "Migration: Add edit_on_player_enabled column to playlist_content table.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L1"}, {"id": "migrate_add_edit_enabled_rationale_8", "label": "Add edit_on_player_enabled column to playlist_content.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L8"}], "edges": [{"source": "home_scheianu_digiserver_v2_old_code_documentation_migrate_add_edit_enabled_py", "target": "sqlite3", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_migrate_add_edit_enabled_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_migrate_add_edit_enabled_py", "target": "migrate_add_edit_enabled_migrate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L7", "weight": 1.0}, {"source": "migrate_add_edit_enabled_rationale_1", "target": "home_scheianu_digiserver_v2_old_code_documentation_migrate_add_edit_enabled_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L1", "weight": 1.0}, {"source": "migrate_add_edit_enabled_rationale_8", "target": "migrate_add_edit_enabled_migrate", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L8", "weight": 1.0}], "raw_calls": [{"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L9"}, {"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L10"}, {"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "connect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L13"}, {"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "cursor", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L14"}, {"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L18"}, {"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "fetchall", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L19"}, {"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L22"}, {"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L26"}, {"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L27"}, {"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L32"}, {"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L33"}, {"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L34"}, {"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L39"}, {"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L40"}, {"caller_nid": "migrate_add_edit_enabled_migrate", "callee": "close", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", "source_location": "L44"}]} \ No newline at end of file diff --git a/graphify-out/cache/2671cc27511abcc87eaa7b5b3a211c40e0e26f5a3bac58ea05f30a4e2f399e10.json b/graphify-out/cache/2671cc27511abcc87eaa7b5b3a211c40e0e26f5a3bac58ea05f30a4e2f399e10.json new file mode 100644 index 0000000..6730685 --- /dev/null +++ b/graphify-out/cache/2671cc27511abcc87eaa7b5b3a211c40e0e26f5a3bac58ea05f30a4e2f399e10.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_migrations_add_https_config_table_py", "label": "add_https_config_table.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/migrations/add_https_config_table.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "add_https_config_table_rationale_1", "label": "Add https_config table for HTTPS configuration management.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/migrations/add_https_config_table.py", "source_location": "L1"}], "edges": [{"source": "home_scheianu_digiserver_v2_migrations_add_https_config_table_py", "target": "sys", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_https_config_table.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_https_config_table_py", "target": "app_app", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_https_config_table.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_https_config_table_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_https_config_table.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_https_config_table_py", "target": "app_models_https_config", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_https_config_table.py", "source_location": "L7", "weight": 1.0}, {"source": "add_https_config_table_rationale_1", "target": "home_scheianu_digiserver_v2_migrations_add_https_config_table_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_https_config_table.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/cache/3469a90f710fb95efbe31b435d75759e120ff6a7c45fcb66ee0c76ab39ff9de0.json b/graphify-out/cache/3469a90f710fb95efbe31b435d75759e120ff6a7c45fcb66ee0c76ab39ff9de0.json new file mode 100644 index 0000000..b9fe022 --- /dev/null +++ b/graphify-out/cache/3469a90f710fb95efbe31b435d75759e120ff6a7c45fcb66ee0c76ab39ff9de0.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_models_player_feedback_py", "label": "player_feedback.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "player_feedback_playerfeedback", "label": "PlayerFeedback", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L8", "complexity": 1, "loc": 57}, {"id": "player_feedback_playerfeedback_repr", "label": ".__repr__()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L37", "complexity": 1, "loc": 3}, {"id": "player_feedback_is_error", "label": "is_error()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L42", "complexity": 1, "loc": 3}, {"id": "player_feedback_age_seconds", "label": "age_seconds()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L47", "complexity": 1, "loc": 4}, {"id": "player_feedback_get_latest_for_player", "label": "get_latest_for_player()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L53", "complexity": 1, "loc": 12}, {"id": "player_feedback_rationale_1", "label": "Player feedback model for tracking player status and errors.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L1"}, {"id": "player_feedback_rationale_9", "label": "Player feedback model for tracking player status updates. Attributes:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L9"}, {"id": "player_feedback_rationale_38", "label": "String representation of PlayerFeedback.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L38"}, {"id": "player_feedback_rationale_43", "label": "Check if feedback indicates an error.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L43"}, {"id": "player_feedback_rationale_48", "label": "Get age of feedback in seconds.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L48"}, {"id": "player_feedback_rationale_54", "label": "Get most recent feedback for a player. Args: player", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L54"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_models_player_feedback_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_feedback_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_feedback_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_feedback_py", "target": "player_feedback_playerfeedback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L8", "weight": 1.0}, {"source": "player_feedback_playerfeedback", "target": "player_feedback_playerfeedback_repr", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L37", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_feedback_py", "target": "player_feedback_is_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L42", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_feedback_py", "target": "player_feedback_age_seconds", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L47", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_feedback_py", "target": "player_feedback_get_latest_for_player", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L53", "weight": 1.0}, {"source": "player_feedback_rationale_1", "target": "home_scheianu_digiserver_v2_app_models_player_feedback_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L1", "weight": 1.0}, {"source": "player_feedback_rationale_9", "target": "player_feedback_playerfeedback", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L9", "weight": 1.0}, {"source": "player_feedback_rationale_38", "target": "player_feedback_playerfeedback_repr", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L38", "weight": 1.0}, {"source": "player_feedback_rationale_43", "target": "player_feedback_playerfeedback_is_error", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L43", "weight": 1.0}, {"source": "player_feedback_rationale_48", "target": "player_feedback_playerfeedback_age_seconds", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L48", "weight": 1.0}, {"source": "player_feedback_rationale_54", "target": "player_feedback_playerfeedback_get_latest_for_player", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L54", "weight": 1.0}], "raw_calls": [{"caller_nid": "player_feedback_age_seconds", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L49"}, {"caller_nid": "player_feedback_age_seconds", "callee": "total_seconds", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L50"}, {"caller_nid": "player_feedback_get_latest_for_player", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L62"}, {"caller_nid": "player_feedback_get_latest_for_player", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L62"}, {"caller_nid": "player_feedback_get_latest_for_player", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L62"}, {"caller_nid": "player_feedback_get_latest_for_player", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", "source_location": "L63"}]} \ No newline at end of file diff --git a/graphify-out/cache/3b8625d015b1a280c46a5204b1bf03a30dbd6594d98507911a0aac9592fb95fa.json b/graphify-out/cache/3b8625d015b1a280c46a5204b1bf03a30dbd6594d98507911a0aac9592fb95fa.json new file mode 100644 index 0000000..89e2c9f --- /dev/null +++ b/graphify-out/cache/3b8625d015b1a280c46a5204b1bf03a30dbd6594d98507911a0aac9592fb95fa.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_blueprints_init_py", "label": "__init__.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/__init__.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "init_rationale_1", "label": "Blueprints package initialization", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/__init__.py", "source_location": "L1"}], "edges": [{"source": "init_rationale_1", "target": "home_scheianu_digiserver_v2_app_blueprints_init_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/__init__.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/cache/3f43ab8f52d2063aca83d66e112905cda95dace56d5e375d16524feb8bd71130.json b/graphify-out/cache/3f43ab8f52d2063aca83d66e112905cda95dace56d5e375d16524feb8bd71130.json new file mode 100644 index 0000000..e4ca39e --- /dev/null +++ b/graphify-out/cache/3f43ab8f52d2063aca83d66e112905cda95dace56d5e375d16524feb8bd71130.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_old_code_documentation_check_fix_player_py", "label": "check_fix_player.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/check_fix_player.py", "source_location": "L1", "complexity": 1, "loc": 1}], "edges": [{"source": "home_scheianu_digiserver_v2_old_code_documentation_check_fix_player_py", "target": "app", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/check_fix_player.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_check_fix_player_py", "target": "app_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/check_fix_player.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_check_fix_player_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/check_fix_player.py", "source_location": "L6", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/cache/411f80599b152bba1a94805fd4e008df52caf0408e566ba195928df3609c4b1f.json b/graphify-out/cache/411f80599b152bba1a94805fd4e008df52caf0408e566ba195928df3609c4b1f.json new file mode 100644 index 0000000..55a3e81 --- /dev/null +++ b/graphify-out/cache/411f80599b152bba1a94805fd4e008df52caf0408e566ba195928df3609c4b1f.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py", "label": "test_edit_media_simple.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "test_edit_media_simple_test_edit_media_endpoint", "label": "test_edit_media_endpoint()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L19", "complexity": 7, "loc": 156}, {"id": "test_edit_media_simple_rationale_20", "label": "Test the edit media endpoint using Flask test client", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L20"}], "edges": [{"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py", "target": "sys", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L9", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py", "target": "pathlib", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L10", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py", "target": "app", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L15", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L16", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py", "target": "app_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L17", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py", "target": "test_edit_media_simple_test_edit_media_endpoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L19", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py", "target": "traceback", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L181", "weight": 1.0}, {"source": "test_edit_media_simple_rationale_20", "target": "test_edit_media_simple_test_edit_media_endpoint", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L20", "weight": 1.0}], "raw_calls": [{"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L22"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L23"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L24"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "create_app", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L27"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "app_context", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L29"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "test_client", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L31"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L34"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L35"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L37"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L39"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L39"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L41"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L45"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "post", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L46"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L48"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L49"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L51"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L52"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L55"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L56"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L59"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L60"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L62"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L65"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L66"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L67"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L68"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L71"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "post", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L75"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L78"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L79"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L82"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L83"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L85"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L88"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L89"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L91"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L94"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L95"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L96"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L97"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "Path", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L100"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L101"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L102"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L105"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L108"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L108"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L110"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L110"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L115"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L116"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L117"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L118"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "dumps", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L125"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "post", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L129"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L136"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L139"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L141"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "dumps", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L141"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L144"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L145"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L146"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L149"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L150"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L151"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L153"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L154"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "decode", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L154"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L157"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L158"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L159"}, {"caller_nid": "test_edit_media_simple_test_edit_media_endpoint", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", "source_location": "L161"}]} \ No newline at end of file diff --git a/graphify-out/cache/491cfde76df2f5a2c11098906bc9688e4c0fa8ee795ee268bf5f1a44d22ae14d.json b/graphify-out/cache/491cfde76df2f5a2c11098906bc9688e4c0fa8ee795ee268bf5f1a44d22ae14d.json new file mode 100644 index 0000000..492e8a1 --- /dev/null +++ b/graphify-out/cache/491cfde76df2f5a2c11098906bc9688e4c0fa8ee795ee268bf5f1a44d22ae14d.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_models_player_edit_py", "label": "player_edit.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "player_edit_playeredit", "label": "PlayerEdit", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L8", "complexity": 4, "loc": 53}, {"id": "player_edit_playeredit_repr", "label": ".__repr__()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L42", "complexity": 1, "loc": 3}, {"id": "player_edit_playeredit_to_dict", "label": ".to_dict()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L46", "complexity": 4, "loc": 15}, {"id": "player_edit_rationale_1", "label": "Player edit model for tracking media edited on players.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L1"}, {"id": "player_edit_rationale_9", "label": "Player edit model for tracking media files edited on player devices. At", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L9"}, {"id": "player_edit_rationale_43", "label": "String representation of PlayerEdit.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L43"}, {"id": "player_edit_rationale_47", "label": "Convert to dictionary for API responses.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L47"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_models_player_edit_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_edit_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_edit_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_edit_py", "target": "player_edit_playeredit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L8", "weight": 1.0}, {"source": "player_edit_playeredit", "target": "player_edit_playeredit_repr", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L42", "weight": 1.0}, {"source": "player_edit_playeredit", "target": "player_edit_playeredit_to_dict", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L46", "weight": 1.0}, {"source": "player_edit_rationale_1", "target": "home_scheianu_digiserver_v2_app_models_player_edit_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L1", "weight": 1.0}, {"source": "player_edit_rationale_9", "target": "player_edit_playeredit", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L9", "weight": 1.0}, {"source": "player_edit_rationale_43", "target": "player_edit_playeredit_repr", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L43", "weight": 1.0}, {"source": "player_edit_rationale_47", "target": "player_edit_playeredit_to_dict", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L47", "weight": 1.0}], "raw_calls": [{"caller_nid": "player_edit_playeredit_to_dict", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L57"}, {"caller_nid": "player_edit_playeredit_to_dict", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", "source_location": "L58"}]} \ No newline at end of file diff --git a/graphify-out/cache/54c5a969dbb46306d6bdea71b89e30b9b8ed1fa595e4784a31bccc22d8a15283.json b/graphify-out/cache/54c5a969dbb46306d6bdea71b89e30b9b8ed1fa595e4784a31bccc22d8a15283.json new file mode 100644 index 0000000..8d42b4e --- /dev/null +++ b/graphify-out/cache/54c5a969dbb46306d6bdea71b89e30b9b8ed1fa595e4784a31bccc22d8a15283.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_app_py", "label": "app.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "app_create_app", "label": "create_app()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L17", "complexity": 2, "loc": 71}, {"id": "app_register_blueprints", "label": "register_blueprints()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L90", "complexity": 1, "loc": 18}, {"id": "app_configure_login_manager", "label": "configure_login_manager()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L110", "complexity": 1, "loc": 11}, {"id": "app_register_error_handlers", "label": "register_error_handlers()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L123", "complexity": 1, "loc": 23}, {"id": "app_register_commands", "label": "register_commands()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L148", "complexity": 3, "loc": 39}, {"id": "app_register_context_processors", "label": "register_context_processors()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L189", "complexity": 2, "loc": 22}, {"id": "app_register_template_filters", "label": "register_template_filters()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L213", "complexity": 3, "loc": 26}, {"id": "app_rationale_1", "label": "DigiServer v2 - Application Factory Modern Flask application with blueprint arch", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L1"}, {"id": "app_rationale_18", "label": "Application factory pattern Args: config_name: Configuration en", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L18"}, {"id": "app_rationale_91", "label": "Register application blueprints", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L91"}, {"id": "app_rationale_111", "label": "Configure Flask-Login", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L111"}, {"id": "app_rationale_124", "label": "Register error handlers", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L124"}, {"id": "app_rationale_149", "label": "Register CLI commands", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L149"}, {"id": "app_rationale_190", "label": "Register context processors for templates", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L190"}, {"id": "app_rationale_214", "label": "Register custom Jinja2 template filters", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L214"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_app_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_app_py", "target": "flask", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_app_py", "target": "werkzeug_middleware_proxy_fix", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_app_py", "target": "dotenv", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_app_py", "target": "app_config", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L10", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_app_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L11", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_app_py", "target": "app_create_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L17", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_app_py", "target": "app_register_blueprints", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L90", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_app_py", "target": "app_configure_login_manager", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L110", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_app_py", "target": "app_register_error_handlers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L123", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_app_py", "target": "app_register_commands", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L148", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_app_py", "target": "app_register_context_processors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L189", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_app_py", "target": "app_register_template_filters", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L213", "weight": 1.0}, {"source": "app_create_app", "target": "app_configure_login_manager", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L58", "weight": 1.0}, {"source": "app_create_app", "target": "app_register_blueprints", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L73", "weight": 1.0}, {"source": "app_create_app", "target": "app_register_error_handlers", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L74", "weight": 1.0}, {"source": "app_create_app", "target": "app_register_commands", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L75", "weight": 1.0}, {"source": "app_create_app", "target": "app_register_context_processors", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L76", "weight": 1.0}, {"source": "app_create_app", "target": "app_register_template_filters", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L77", "weight": 1.0}, {"source": "app_rationale_1", "target": "home_scheianu_digiserver_v2_app_app_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L1", "weight": 1.0}, {"source": "app_rationale_18", "target": "app_create_app", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L18", "weight": 1.0}, {"source": "app_rationale_91", "target": "app_register_blueprints", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L91", "weight": 1.0}, {"source": "app_rationale_111", "target": "app_configure_login_manager", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L111", "weight": 1.0}, {"source": "app_rationale_124", "target": "app_register_error_handlers", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L124", "weight": 1.0}, {"source": "app_rationale_149", "target": "app_register_commands", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L149", "weight": 1.0}, {"source": "app_rationale_190", "target": "app_register_context_processors", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L190", "weight": 1.0}, {"source": "app_rationale_214", "target": "app_register_template_filters", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L214", "weight": 1.0}], "raw_calls": [{"caller_nid": "app_create_app", "callee": "abspath", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L28"}, {"caller_nid": "app_create_app", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L28"}, {"caller_nid": "app_create_app", "callee": "dirname", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L28"}, {"caller_nid": "app_create_app", "callee": "Flask", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L29"}, {"caller_nid": "app_create_app", "callee": "from_object", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L39"}, {"caller_nid": "app_create_app", "callee": "ProxyFix", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L43"}, {"caller_nid": "app_create_app", "callee": "ScriptNameFix", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L48"}, {"caller_nid": "app_create_app", "callee": "init_app", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L51"}, {"caller_nid": "app_create_app", "callee": "init_app", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L52"}, {"caller_nid": "app_create_app", "callee": "init_app", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L53"}, {"caller_nid": "app_create_app", "callee": "init_app", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L54"}, {"caller_nid": "app_create_app", "callee": "init_app", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L55"}, {"caller_nid": "app_create_app", "callee": "init_app", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L62"}, {"caller_nid": "app_create_app", "callee": "init_portal_sso", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L81"}, {"caller_nid": "app_create_app", "callee": "app_context", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L84"}, {"caller_nid": "app_create_app", "callee": "create_all", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L85"}, {"caller_nid": "app_register_blueprints", "callee": "register_blueprint", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L101"}, {"caller_nid": "app_register_blueprints", "callee": "register_blueprint", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L102"}, {"caller_nid": "app_register_blueprints", "callee": "register_blueprint", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L103"}, {"caller_nid": "app_register_blueprints", "callee": "register_blueprint", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L104"}, {"caller_nid": "app_register_blueprints", "callee": "register_blueprint", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L105"}, {"caller_nid": "app_register_blueprints", "callee": "register_blueprint", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L106"}, {"caller_nid": "app_register_blueprints", "callee": "register_blueprint", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L107"}, {"caller_nid": "app_register_error_handlers", "callee": "errorhandler", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L126"}, {"caller_nid": "app_register_error_handlers", "callee": "errorhandler", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L130"}, {"caller_nid": "app_register_error_handlers", "callee": "errorhandler", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L134"}, {"caller_nid": "app_register_error_handlers", "callee": "errorhandler", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L139"}, {"caller_nid": "app_register_error_handlers", "callee": "errorhandler", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L143"}, {"caller_nid": "app_register_commands", "callee": "command", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L152"}, {"caller_nid": "app_register_commands", "callee": "command", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L158"}, {"caller_nid": "app_register_commands", "callee": "option", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L159"}, {"caller_nid": "app_register_commands", "callee": "option", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L160"}, {"caller_nid": "app_register_commands", "callee": "command", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L177"}, {"caller_nid": "app_register_template_filters", "callee": "template_filter", "source_file": "/home/scheianu/digiserver-v2/app/app.py", "source_location": "L217"}]} \ No newline at end of file diff --git a/graphify-out/cache/608145ad2566fdfba758de0f07bb991a1112e0ffb951d01baa8cf1804a498c0d.json b/graphify-out/cache/608145ad2566fdfba758de0f07bb991a1112e0ffb951d01baa8cf1804a498c0d.json new file mode 100644 index 0000000..7a41e3d --- /dev/null +++ b/graphify-out/cache/608145ad2566fdfba758de0f07bb991a1112e0ffb951d01baa8cf1804a498c0d.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_migrations_add_deployment_fields_to_player_py", "label": "add_deployment_fields_to_player.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/migrations/add_deployment_fields_to_player.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "add_deployment_fields_to_player_rationale_1", "label": "Add deployment tracking columns to player table.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/migrations/add_deployment_fields_to_player.py", "source_location": "L1"}], "edges": [{"source": "home_scheianu_digiserver_v2_migrations_add_deployment_fields_to_player_py", "target": "sys", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_deployment_fields_to_player.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_deployment_fields_to_player_py", "target": "app_app", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_deployment_fields_to_player.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_deployment_fields_to_player_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_deployment_fields_to_player.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_deployment_fields_to_player_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_deployment_fields_to_player.py", "source_location": "L7", "weight": 1.0}, {"source": "add_deployment_fields_to_player_rationale_1", "target": "home_scheianu_digiserver_v2_migrations_add_deployment_fields_to_player_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_deployment_fields_to_player.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/cache/612e0be7d395f7f7e094377582cc8b6d6885693daf76326d8b78d5770191a6f7.json b/graphify-out/cache/612e0be7d395f7f7e094377582cc8b6d6885693daf76326d8b78d5770191a6f7.json new file mode 100644 index 0000000..b358a09 --- /dev/null +++ b/graphify-out/cache/612e0be7d395f7f7e094377582cc8b6d6885693daf76326d8b78d5770191a6f7.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_models_init_py", "label": "__init__.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "init_rationale_1", "label": "Models package for digiserver-v2.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", "source_location": "L1"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_models_init_py", "target": "app_models_user", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_init_py", "target": "app_models_player", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_init_py", "target": "app_models_group", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_init_py", "target": "app_models_playlist", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_init_py", "target": "app_models_content", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_init_py", "target": "app_models_server_log", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_init_py", "target": "app_models_player_feedback", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_init_py", "target": "app_models_player_edit", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", "source_location": "L9", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_init_py", "target": "app_models_player_user", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", "source_location": "L10", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_init_py", "target": "app_models_https_config", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", "source_location": "L11", "weight": 1.0}, {"source": "init_rationale_1", "target": "home_scheianu_digiserver_v2_app_models_init_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/cache/63296783faeac5e527ca5d566e4c512618bab85b8625e11094bf73518e244e7d.json b/graphify-out/cache/63296783faeac5e527ca5d566e4c512618bab85b8625e11094bf73518e244e7d.json new file mode 100644 index 0000000..f5e0ed1 --- /dev/null +++ b/graphify-out/cache/63296783faeac5e527ca5d566e4c512618bab85b8625e11094bf73518e244e7d.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", "label": "caddy_manager.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "caddy_manager_caddyconfiggenerator", "label": "CaddyConfigGenerator", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L36", "complexity": 16, "loc": 233}, {"id": "caddy_manager_generate_caddyfile", "label": "generate_caddyfile()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L40", "complexity": 8, "loc": 39}, {"id": "caddy_manager_write_caddyfile", "label": "write_caddyfile()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L81", "complexity": 2, "loc": 15}, {"id": "caddy_manager_reload_caddy", "label": "reload_caddy()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L98", "complexity": 6, "loc": 130}, {"id": "caddy_manager_rationale_1", "label": "Caddy configuration generator and manager.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L1"}, {"id": "caddy_manager_rationale_37", "label": "Generate Caddyfile configuration based on HTTPSConfig.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L37"}, {"id": "caddy_manager_rationale_41", "label": "Generate a complete Caddyfile. Behaviour: - HTTPS disabled / no", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L41"}, {"id": "caddy_manager_rationale_83", "label": "Write Caddyfile to disk. The default path is /etc/caddy/Caddyfile \u2014 the", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L83"}, {"id": "caddy_manager_rationale_99", "label": "Push the current Caddyfile to Caddy via its admin API (/load). Caddy ap", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L99"}, {"id": "caddy_manager_rationale_231", "label": "Write Caddyfile to disk. Args: caddyfile_content: C", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L231"}, {"id": "caddy_manager_rationale_250", "label": "Reload Caddy configuration without restart. Note: Caddy monitor", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L250"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", "target": "app_models_https_config", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", "target": "caddy_manager_caddyconfiggenerator", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L36", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", "target": "caddy_manager_generate_caddyfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L40", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", "target": "caddy_manager_write_caddyfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L81", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", "target": "caddy_manager_reload_caddy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L98", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", "target": "caddy_manager_write_caddyfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L230", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", "target": "caddy_manager_reload_caddy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L249", "weight": 1.0}, {"source": "caddy_manager_rationale_1", "target": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L1", "weight": 1.0}, {"source": "caddy_manager_rationale_37", "target": "caddy_manager_caddyconfiggenerator", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L37", "weight": 1.0}, {"source": "caddy_manager_rationale_41", "target": "caddy_manager_caddyconfiggenerator_generate_caddyfile", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L41", "weight": 1.0}, {"source": "caddy_manager_rationale_83", "target": "caddy_manager_caddyconfiggenerator_write_caddyfile", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L83", "weight": 1.0}, {"source": "caddy_manager_rationale_99", "target": "caddy_manager_caddyconfiggenerator_reload_caddy", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L99", "weight": 1.0}, {"source": "caddy_manager_rationale_231", "target": "caddy_manager_caddyconfiggenerator_write_caddyfile", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L231", "weight": 1.0}, {"source": "caddy_manager_rationale_250", "target": "caddy_manager_caddyconfiggenerator_reload_caddy", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L250", "weight": 1.0}], "raw_calls": [{"caller_nid": "caddy_manager_generate_caddyfile", "callee": "get_config", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L51"}, {"caller_nid": "caddy_manager_generate_caddyfile", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L55"}, {"caller_nid": "caddy_manager_generate_caddyfile", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L56"}, {"caller_nid": "caddy_manager_write_caddyfile", "callee": "makedirs", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L89"}, {"caller_nid": "caddy_manager_write_caddyfile", "callee": "dirname", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L89"}, {"caller_nid": "caddy_manager_write_caddyfile", "callee": "open", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L90"}, {"caller_nid": "caddy_manager_write_caddyfile", "callee": "write", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L91"}, {"caller_nid": "caddy_manager_write_caddyfile", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L94"}, {"caller_nid": "caddy_manager_write_caddyfile", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L94"}, {"caller_nid": "caddy_manager_reload_caddy", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L107"}, {"caller_nid": "caddy_manager_reload_caddy", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L108"}, {"caller_nid": "caddy_manager_reload_caddy", "callee": "open", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L111"}, {"caller_nid": "caddy_manager_reload_caddy", "callee": "read", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L112"}, {"caller_nid": "caddy_manager_reload_caddy", "callee": "Request", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L114"}, {"caller_nid": "caddy_manager_reload_caddy", "callee": "urlopen", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L120"}, {"caller_nid": "caddy_manager_reload_caddy", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L123"}, {"caller_nid": "caddy_manager_reload_caddy", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L123"}, {"caller_nid": "caddy_manager_reload_caddy", "callee": "get_config", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L136"}, {"caller_nid": "caddy_manager_write_caddyfile", "callee": "open", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L241"}, {"caller_nid": "caddy_manager_write_caddyfile", "callee": "write", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L242"}, {"caller_nid": "caddy_manager_write_caddyfile", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L245"}, {"caller_nid": "caddy_manager_write_caddyfile", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L245"}, {"caller_nid": "caddy_manager_reload_caddy", "callee": "urlopen", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L262"}, {"caller_nid": "caddy_manager_reload_caddy", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L267"}, {"caller_nid": "caddy_manager_reload_caddy", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", "source_location": "L267"}]} \ No newline at end of file diff --git a/graphify-out/cache/665b013b4c1a402ec5b42e483132968007d21885a99350ebaf2f6f37e5ae7344.json b/graphify-out/cache/665b013b4c1a402ec5b42e483132968007d21885a99350ebaf2f6f37e5ae7344.json new file mode 100644 index 0000000..6ef096e --- /dev/null +++ b/graphify-out/cache/665b013b4c1a402ec5b42e483132968007d21885a99350ebaf2f6f37e5ae7344.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_old_code_documentation_add_muted_column_py", "label": "add_muted_column.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "add_muted_column_add_muted_column", "label": "add_muted_column()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L6", "complexity": 3, "loc": 25}, {"id": "add_muted_column_rationale_7", "label": "Add muted column to playlist_content association table.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L7"}], "edges": [{"source": "home_scheianu_digiserver_v2_old_code_documentation_add_muted_column_py", "target": "app_app", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_add_muted_column_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_add_muted_column_py", "target": "add_muted_column_add_muted_column", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L6", "weight": 1.0}, {"source": "add_muted_column_rationale_7", "target": "add_muted_column_add_muted_column", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L7", "weight": 1.0}], "raw_calls": [{"caller_nid": "add_muted_column_add_muted_column", "callee": "create_app", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L8"}, {"caller_nid": "add_muted_column_add_muted_column", "callee": "app_context", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L10"}, {"caller_nid": "add_muted_column_add_muted_column", "callee": "fetchall", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L13"}, {"caller_nid": "add_muted_column_add_muted_column", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L13"}, {"caller_nid": "add_muted_column_add_muted_column", "callee": "text", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L13"}, {"caller_nid": "add_muted_column_add_muted_column", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L17"}, {"caller_nid": "add_muted_column_add_muted_column", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L21"}, {"caller_nid": "add_muted_column_add_muted_column", "callee": "text", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L21"}, {"caller_nid": "add_muted_column_add_muted_column", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L25"}, {"caller_nid": "add_muted_column_add_muted_column", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L26"}, {"caller_nid": "add_muted_column_add_muted_column", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L27"}, {"caller_nid": "add_muted_column_add_muted_column", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L29"}, {"caller_nid": "add_muted_column_add_muted_column", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", "source_location": "L30"}]} \ No newline at end of file diff --git a/graphify-out/cache/6d45e8b056d173e58b56c72185c021327a9cd826aaa6779d7cadfdf855a49df8.json b/graphify-out/cache/6d45e8b056d173e58b56c72185c021327a9cd826aaa6779d7cadfdf855a49df8.json new file mode 100644 index 0000000..c64fa22 --- /dev/null +++ b/graphify-out/cache/6d45e8b056d173e58b56c72185c021327a9cd826aaa6779d7cadfdf855a49df8.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_blueprints_auth_py", "label": "auth.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "auth_login", "label": "login()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L15", "complexity": 6, "loc": 40}, {"id": "auth_logout", "label": "logout()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L59", "complexity": 1, "loc": 7}, {"id": "auth_register", "label": "register()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L69", "complexity": 7, "loc": 45}, {"id": "auth_change_password", "label": "change_password()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L118", "complexity": 5, "loc": 30}, {"id": "auth_rationale_1", "label": "Authentication Blueprint - Login, Logout, Register", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L1"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", "target": "flask", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", "target": "flask_login", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", "target": "app_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", "target": "app_utils_logger", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L9", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", "target": "auth_login", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L15", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", "target": "auth_logout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L59", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", "target": "auth_register", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L69", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", "target": "auth_change_password", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L118", "weight": 1.0}, {"source": "auth_rationale_1", "target": "home_scheianu_digiserver_v2_app_blueprints_auth_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "auth_login", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L19"}, {"caller_nid": "auth_login", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L19"}, {"caller_nid": "auth_login", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L22"}, {"caller_nid": "auth_login", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L22"}, {"caller_nid": "auth_login", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L23"}, {"caller_nid": "auth_login", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L24"}, {"caller_nid": "auth_login", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L28"}, {"caller_nid": "auth_login", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L29"}, {"caller_nid": "auth_login", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L32"}, {"caller_nid": "auth_login", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L32"}, {"caller_nid": "auth_login", "callee": "check_password_hash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L35"}, {"caller_nid": "auth_login", "callee": "login_user", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L36"}, {"caller_nid": "auth_login", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L37"}, {"caller_nid": "auth_login", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L40"}, {"caller_nid": "auth_login", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L42"}, {"caller_nid": "auth_login", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L43"}, {"caller_nid": "auth_login", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L43"}, {"caller_nid": "auth_login", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L45"}, {"caller_nid": "auth_login", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L46"}, {"caller_nid": "auth_login", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L50"}, {"caller_nid": "auth_login", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L51"}, {"caller_nid": "auth_login", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L54"}, {"caller_nid": "auth_logout", "callee": "logout_user", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L62"}, {"caller_nid": "auth_logout", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L63"}, {"caller_nid": "auth_logout", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L64"}, {"caller_nid": "auth_logout", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L65"}, {"caller_nid": "auth_logout", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L65"}, {"caller_nid": "auth_register", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L73"}, {"caller_nid": "auth_register", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L73"}, {"caller_nid": "auth_register", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L76"}, {"caller_nid": "auth_register", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L76"}, {"caller_nid": "auth_register", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L77"}, {"caller_nid": "auth_register", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L78"}, {"caller_nid": "auth_register", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L82"}, {"caller_nid": "auth_register", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L83"}, {"caller_nid": "auth_register", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L86"}, {"caller_nid": "auth_register", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L87"}, {"caller_nid": "auth_register", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L89"}, {"caller_nid": "auth_register", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L90"}, {"caller_nid": "auth_register", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L91"}, {"caller_nid": "auth_register", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L94"}, {"caller_nid": "auth_register", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L94"}, {"caller_nid": "auth_register", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L95"}, {"caller_nid": "auth_register", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L96"}, {"caller_nid": "auth_register", "callee": "decode", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L99"}, {"caller_nid": "auth_register", "callee": "generate_password_hash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L99"}, {"caller_nid": "auth_register", "callee": "User", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L100"}, {"caller_nid": "auth_register", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L106"}, {"caller_nid": "auth_register", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L107"}, {"caller_nid": "auth_register", "callee": "log_user_created", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L109"}, {"caller_nid": "auth_register", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L110"}, {"caller_nid": "auth_register", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L111"}, {"caller_nid": "auth_register", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L111"}, {"caller_nid": "auth_register", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L113"}, {"caller_nid": "auth_change_password", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L121"}, {"caller_nid": "auth_change_password", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L122"}, {"caller_nid": "auth_change_password", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L123"}, {"caller_nid": "auth_change_password", "callee": "check_password_hash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L126"}, {"caller_nid": "auth_change_password", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L127"}, {"caller_nid": "auth_change_password", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L128"}, {"caller_nid": "auth_change_password", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L132"}, {"caller_nid": "auth_change_password", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L133"}, {"caller_nid": "auth_change_password", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L135"}, {"caller_nid": "auth_change_password", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L136"}, {"caller_nid": "auth_change_password", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L137"}, {"caller_nid": "auth_change_password", "callee": "decode", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L140"}, {"caller_nid": "auth_change_password", "callee": "generate_password_hash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L140"}, {"caller_nid": "auth_change_password", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L141"}, {"caller_nid": "auth_change_password", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L143"}, {"caller_nid": "auth_change_password", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L144"}, {"caller_nid": "auth_change_password", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L145"}, {"caller_nid": "auth_change_password", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L145"}, {"caller_nid": "auth_change_password", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", "source_location": "L147"}]} \ No newline at end of file diff --git a/graphify-out/cache/6f95b0a1e8563634e78f6fc811340239de0d21d0b7268cf7b3872410adc7ea02.json b/graphify-out/cache/6f95b0a1e8563634e78f6fc811340239de0d21d0b7268cf7b3872410adc7ea02.json new file mode 100644 index 0000000..51a0ec0 --- /dev/null +++ b/graphify-out/cache/6f95b0a1e8563634e78f6fc811340239de0d21d0b7268cf7b3872410adc7ea02.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "label": "content_old.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "content_old_content_list", "label": "content_list()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L30", "complexity": 8, "loc": 52}, {"id": "content_old_upload_content", "label": "upload_content()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L86", "complexity": 12, "loc": 134}, {"id": "content_old_edit_content", "label": "edit_content()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L224", "complexity": 4, "loc": 30}, {"id": "content_old_delete_content", "label": "delete_content()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L258", "complexity": 3, "loc": 27}, {"id": "content_old_delete_by_filename", "label": "delete_by_filename()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L289", "complexity": 6, "loc": 44}, {"id": "content_old_bulk_delete_content", "label": "bulk_delete_content()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L337", "complexity": 6, "loc": 33}, {"id": "content_old_upload_progress_status", "label": "upload_progress_status()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L374", "complexity": 1, "loc": 4}, {"id": "content_old_preview_content", "label": "preview_content()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L382", "complexity": 2, "loc": 14}, {"id": "content_old_download_content", "label": "download_content()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L400", "complexity": 2, "loc": 15}, {"id": "content_old_content_statistics", "label": "content_statistics()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L419", "complexity": 7, "loc": 30}, {"id": "content_old_check_duplicates", "label": "check_duplicates()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L453", "complexity": 3, "loc": 21}, {"id": "content_old_content_groups_info", "label": "content_groups_info()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L478", "complexity": 3, "loc": 23}, {"id": "content_old_rationale_1", "label": "Content blueprint for media upload and management.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L1"}, {"id": "content_old_rationale_31", "label": "Display list of all content.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L31"}, {"id": "content_old_rationale_225", "label": "Edit content metadata.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L225"}, {"id": "content_old_rationale_259", "label": "Delete content and associated file.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L259"}, {"id": "content_old_rationale_290", "label": "Delete all content entries with a specific filename.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L290"}, {"id": "content_old_rationale_338", "label": "Delete multiple content items at once.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L338"}, {"id": "content_old_rationale_375", "label": "Get upload progress for a specific upload.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L375"}, {"id": "content_old_rationale_383", "label": "Preview content in browser.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L383"}, {"id": "content_old_rationale_401", "label": "Download content file.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L401"}, {"id": "content_old_rationale_420", "label": "Get content statistics.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L420"}, {"id": "content_old_rationale_454", "label": "Check for duplicate filenames.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L454"}, {"id": "content_old_rationale_479", "label": "Get groups that contain this content.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L479"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "flask", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "flask_login", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "werkzeug_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L10", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "app_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L11", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "app_utils_logger", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L12", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "app_utils_uploads", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L13", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "content_old_content_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L30", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "content_old_upload_content", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L86", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "content_old_edit_content", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L224", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "content_old_delete_content", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L258", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "content_old_delete_by_filename", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L289", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "content_old_bulk_delete_content", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L337", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "content_old_upload_progress_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L374", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "content_old_preview_content", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L382", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "content_old_download_content", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L400", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "content_old_content_statistics", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L419", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "content_old_check_duplicates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L453", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "target": "content_old_content_groups_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L478", "weight": 1.0}, {"source": "content_old_rationale_1", "target": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L1", "weight": 1.0}, {"source": "content_old_rationale_31", "target": "content_old_content_list", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L31", "weight": 1.0}, {"source": "content_old_rationale_225", "target": "content_old_edit_content", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L225", "weight": 1.0}, {"source": "content_old_rationale_259", "target": "content_old_delete_content", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L259", "weight": 1.0}, {"source": "content_old_rationale_290", "target": "content_old_delete_by_filename", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L290", "weight": 1.0}, {"source": "content_old_rationale_338", "target": "content_old_bulk_delete_content", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L338", "weight": 1.0}, {"source": "content_old_rationale_375", "target": "content_old_upload_progress_status", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L375", "weight": 1.0}, {"source": "content_old_rationale_383", "target": "content_old_preview_content", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L383", "weight": 1.0}, {"source": "content_old_rationale_401", "target": "content_old_download_content", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L401", "weight": 1.0}, {"source": "content_old_rationale_420", "target": "content_old_content_statistics", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L420", "weight": 1.0}, {"source": "content_old_rationale_454", "target": "content_old_check_duplicates", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L454", "weight": 1.0}, {"source": "content_old_rationale_479", "target": "content_old_content_groups_info", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L479", "weight": 1.0}], "raw_calls": [{"caller_nid": "content_old_content_list", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L37"}, {"caller_nid": "content_old_content_list", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L37"}, {"caller_nid": "content_old_content_list", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L37"}, {"caller_nid": "content_old_content_list", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L52"}, {"caller_nid": "content_old_content_list", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L54"}, {"caller_nid": "content_old_content_list", "callee": "items", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L62"}, {"caller_nid": "content_old_content_list", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L63"}, {"caller_nid": "content_old_content_list", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L70"}, {"caller_nid": "content_old_content_list", "callee": "sort", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L74"}, {"caller_nid": "content_old_content_list", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L76"}, {"caller_nid": "content_old_content_list", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L79"}, {"caller_nid": "content_old_content_list", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L79"}, {"caller_nid": "content_old_content_list", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L80"}, {"caller_nid": "content_old_content_list", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L81"}, {"caller_nid": "content_old_content_list", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L81"}, {"caller_nid": "content_old_upload_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L90"}, {"caller_nid": "content_old_upload_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L91"}, {"caller_nid": "content_old_upload_content", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L91"}, {"caller_nid": "content_old_upload_content", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L95"}, {"caller_nid": "content_old_upload_content", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L95"}, {"caller_nid": "content_old_upload_content", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L97"}, {"caller_nid": "content_old_upload_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L104"}, {"caller_nid": "content_old_upload_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L105"}, {"caller_nid": "content_old_upload_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L106"}, {"caller_nid": "content_old_upload_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L107"}, {"caller_nid": "content_old_upload_content", "callee": "hex", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L107"}, {"caller_nid": "content_old_upload_content", "callee": "urandom", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L107"}, {"caller_nid": "content_old_upload_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L108"}, {"caller_nid": "content_old_upload_content", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L108"}, {"caller_nid": "content_old_upload_content", "callee": "getlist", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L111"}, {"caller_nid": "content_old_upload_content", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L114"}, {"caller_nid": "content_old_upload_content", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L115"}, {"caller_nid": "content_old_upload_content", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L115"}, {"caller_nid": "content_old_upload_content", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L118"}, {"caller_nid": "content_old_upload_content", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L119"}, {"caller_nid": "content_old_upload_content", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L119"}, {"caller_nid": "content_old_upload_content", "callee": "set_upload_progress", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L122"}, {"caller_nid": "content_old_upload_content", "callee": "makedirs", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L126"}, {"caller_nid": "content_old_upload_content", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L129"}, {"caller_nid": "content_old_upload_content", "callee": "enumerate", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L131"}, {"caller_nid": "content_old_upload_content", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L136"}, {"caller_nid": "content_old_upload_content", "callee": "set_upload_progress", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L137"}, {"caller_nid": "content_old_upload_content", "callee": "secure_filename", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L140"}, {"caller_nid": "content_old_upload_content", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L141"}, {"caller_nid": "content_old_upload_content", "callee": "save", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L144"}, {"caller_nid": "content_old_upload_content", "callee": "lower", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L147"}, {"caller_nid": "content_old_upload_content", "callee": "rsplit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L147"}, {"caller_nid": "content_old_upload_content", "callee": "set_upload_progress", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L154"}, {"caller_nid": "content_old_upload_content", "callee": "process_video_file", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L156"}, {"caller_nid": "content_old_upload_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L158"}, {"caller_nid": "content_old_upload_content", "callee": "set_upload_progress", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L163"}, {"caller_nid": "content_old_upload_content", "callee": "set_upload_progress", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L169"}, {"caller_nid": "content_old_upload_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L177"}, {"caller_nid": "content_old_upload_content", "callee": "Content", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L179"}, {"caller_nid": "content_old_upload_content", "callee": "getsize", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L183"}, {"caller_nid": "content_old_upload_content", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L186"}, {"caller_nid": "content_old_upload_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L190"}, {"caller_nid": "content_old_upload_content", "callee": "set_upload_progress", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L195"}, {"caller_nid": "content_old_upload_content", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L196"}, {"caller_nid": "content_old_upload_content", "callee": "set_upload_progress", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L199"}, {"caller_nid": "content_old_upload_content", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L203"}, {"caller_nid": "content_old_upload_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L205"}, {"caller_nid": "content_old_upload_content", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L206"}, {"caller_nid": "content_old_upload_content", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L208"}, {"caller_nid": "content_old_upload_content", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L211"}, {"caller_nid": "content_old_upload_content", "callee": "locals", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L214"}, {"caller_nid": "content_old_upload_content", "callee": "set_upload_progress", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L215"}, {"caller_nid": "content_old_upload_content", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L215"}, {"caller_nid": "content_old_upload_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L217"}, {"caller_nid": "content_old_upload_content", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L217"}, {"caller_nid": "content_old_upload_content", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L218"}, {"caller_nid": "content_old_upload_content", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L219"}, {"caller_nid": "content_old_upload_content", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L219"}, {"caller_nid": "content_old_edit_content", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L226"}, {"caller_nid": "content_old_edit_content", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L229"}, {"caller_nid": "content_old_edit_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L232"}, {"caller_nid": "content_old_edit_content", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L233"}, {"caller_nid": "content_old_edit_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L233"}, {"caller_nid": "content_old_edit_content", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L239"}, {"caller_nid": "content_old_edit_content", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L242"}, {"caller_nid": "content_old_edit_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L244"}, {"caller_nid": "content_old_edit_content", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L245"}, {"caller_nid": "content_old_edit_content", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L247"}, {"caller_nid": "content_old_edit_content", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L247"}, {"caller_nid": "content_old_edit_content", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L250"}, {"caller_nid": "content_old_edit_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L251"}, {"caller_nid": "content_old_edit_content", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L251"}, {"caller_nid": "content_old_edit_content", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L252"}, {"caller_nid": "content_old_edit_content", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L253"}, {"caller_nid": "content_old_edit_content", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L253"}, {"caller_nid": "content_old_delete_content", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L261"}, {"caller_nid": "content_old_delete_content", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L265"}, {"caller_nid": "content_old_delete_content", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L266"}, {"caller_nid": "content_old_delete_content", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L267"}, {"caller_nid": "content_old_delete_content", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L270"}, {"caller_nid": "content_old_delete_content", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L271"}, {"caller_nid": "content_old_delete_content", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L274"}, {"caller_nid": "content_old_delete_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L276"}, {"caller_nid": "content_old_delete_content", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L277"}, {"caller_nid": "content_old_delete_content", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L280"}, {"caller_nid": "content_old_delete_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L281"}, {"caller_nid": "content_old_delete_content", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L281"}, {"caller_nid": "content_old_delete_content", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L282"}, {"caller_nid": "content_old_delete_content", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L284"}, {"caller_nid": "content_old_delete_content", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L284"}, {"caller_nid": "content_old_delete_by_filename", "callee": "get_json", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L292"}, {"caller_nid": "content_old_delete_by_filename", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L293"}, {"caller_nid": "content_old_delete_by_filename", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L296"}, {"caller_nid": "content_old_delete_by_filename", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L299"}, {"caller_nid": "content_old_delete_by_filename", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L299"}, {"caller_nid": "content_old_delete_by_filename", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L302"}, {"caller_nid": "content_old_delete_by_filename", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L304"}, {"caller_nid": "content_old_delete_by_filename", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L307"}, {"caller_nid": "content_old_delete_by_filename", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L308"}, {"caller_nid": "content_old_delete_by_filename", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L309"}, {"caller_nid": "content_old_delete_by_filename", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L310"}, {"caller_nid": "content_old_delete_by_filename", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L314"}, {"caller_nid": "content_old_delete_by_filename", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L316"}, {"caller_nid": "content_old_delete_by_filename", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L319"}, {"caller_nid": "content_old_delete_by_filename", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L321"}, {"caller_nid": "content_old_delete_by_filename", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L323"}, {"caller_nid": "content_old_delete_by_filename", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L330"}, {"caller_nid": "content_old_delete_by_filename", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L331"}, {"caller_nid": "content_old_delete_by_filename", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L331"}, {"caller_nid": "content_old_delete_by_filename", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L332"}, {"caller_nid": "content_old_delete_by_filename", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L332"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L340"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L343"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L348"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L351"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L352"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L353"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L355"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L358"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L361"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L363"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L364"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L367"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L368"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L368"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L369"}, {"caller_nid": "content_old_bulk_delete_content", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L369"}, {"caller_nid": "content_old_upload_progress_status", "callee": "get_upload_progress", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L376"}, {"caller_nid": "content_old_upload_progress_status", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L377"}, {"caller_nid": "content_old_preview_content", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L385"}, {"caller_nid": "content_old_preview_content", "callee": "send_from_directory", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L388"}, {"caller_nid": "content_old_preview_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L394"}, {"caller_nid": "content_old_preview_content", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L394"}, {"caller_nid": "content_old_download_content", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L403"}, {"caller_nid": "content_old_download_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L405"}, {"caller_nid": "content_old_download_content", "callee": "send_from_directory", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L407"}, {"caller_nid": "content_old_download_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L413"}, {"caller_nid": "content_old_download_content", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L413"}, {"caller_nid": "content_old_content_statistics", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L422"}, {"caller_nid": "content_old_content_statistics", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L427"}, {"caller_nid": "content_old_content_statistics", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L427"}, {"caller_nid": "content_old_content_statistics", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L433"}, {"caller_nid": "content_old_content_statistics", "callee": "walk", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L434"}, {"caller_nid": "content_old_content_statistics", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L436"}, {"caller_nid": "content_old_content_statistics", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L437"}, {"caller_nid": "content_old_content_statistics", "callee": "getsize", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L438"}, {"caller_nid": "content_old_content_statistics", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L440"}, {"caller_nid": "content_old_content_statistics", "callee": "round", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L443"}, {"caller_nid": "content_old_content_statistics", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L447"}, {"caller_nid": "content_old_content_statistics", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L447"}, {"caller_nid": "content_old_content_statistics", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L448"}, {"caller_nid": "content_old_content_statistics", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L448"}, {"caller_nid": "content_old_check_duplicates", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L457"}, {"caller_nid": "content_old_check_duplicates", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L461"}, {"caller_nid": "content_old_check_duplicates", "callee": "items", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L464"}, {"caller_nid": "content_old_check_duplicates", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L466"}, {"caller_nid": "content_old_check_duplicates", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L467"}, {"caller_nid": "content_old_check_duplicates", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L472"}, {"caller_nid": "content_old_check_duplicates", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L472"}, {"caller_nid": "content_old_check_duplicates", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L473"}, {"caller_nid": "content_old_check_duplicates", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L473"}, {"caller_nid": "content_old_content_groups_info", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L481"}, {"caller_nid": "content_old_content_groups_info", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L485"}, {"caller_nid": "content_old_content_groups_info", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L489"}, {"caller_nid": "content_old_content_groups_info", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L492"}, {"caller_nid": "content_old_content_groups_info", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L499"}, {"caller_nid": "content_old_content_groups_info", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L499"}, {"caller_nid": "content_old_content_groups_info", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L500"}, {"caller_nid": "content_old_content_groups_info", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", "source_location": "L500"}]} \ No newline at end of file diff --git a/graphify-out/cache/70079e68521808a26af122322a5035b09c6b92330bc3ec6eca7ce7b46b61db01.json b/graphify-out/cache/70079e68521808a26af122322a5035b09c6b92330bc3ec6eca7ce7b46b61db01.json new file mode 100644 index 0000000..3e44e4a --- /dev/null +++ b/graphify-out/cache/70079e68521808a26af122322a5035b09c6b92330bc3ec6eca7ce7b46b61db01.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", "label": "pptx_converter.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "pptx_converter_cleanup_libreoffice_processes", "label": "cleanup_libreoffice_processes()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L11", "complexity": 2, "loc": 7}, {"id": "pptx_converter_pptx_to_pdf_libreoffice", "label": "pptx_to_pdf_libreoffice()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L20", "complexity": 4, "loc": 64}, {"id": "pptx_converter_validate_pptx_file", "label": "validate_pptx_file()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L86", "complexity": 4, "loc": 21}, {"id": "pptx_converter_rationale_1", "label": "PowerPoint to PDF converter using LibreOffice.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L1"}, {"id": "pptx_converter_rationale_12", "label": "Clean up any hanging LibreOffice processes.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L12"}, {"id": "pptx_converter_rationale_21", "label": "Convert PPTX to PDF using LibreOffice for highest quality. This functio", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L21"}, {"id": "pptx_converter_rationale_87", "label": "Validate if file is a valid PowerPoint file. Args: filepath: Pa", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L87"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", "target": "subprocess", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", "target": "time", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", "target": "pptx_converter_cleanup_libreoffice_processes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L11", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", "target": "pptx_converter_pptx_to_pdf_libreoffice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L20", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", "target": "pptx_converter_validate_pptx_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L86", "weight": 1.0}, {"source": "pptx_converter_pptx_to_pdf_libreoffice", "target": "pptx_converter_cleanup_libreoffice_processes", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L35", "weight": 1.0}, {"source": "pptx_converter_rationale_1", "target": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L1", "weight": 1.0}, {"source": "pptx_converter_rationale_12", "target": "pptx_converter_cleanup_libreoffice_processes", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L12", "weight": 1.0}, {"source": "pptx_converter_rationale_21", "target": "pptx_converter_pptx_to_pdf_libreoffice", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L21", "weight": 1.0}, {"source": "pptx_converter_rationale_87", "target": "pptx_converter_validate_pptx_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L87", "weight": 1.0}], "raw_calls": [{"caller_nid": "pptx_converter_cleanup_libreoffice_processes", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L14"}, {"caller_nid": "pptx_converter_cleanup_libreoffice_processes", "callee": "sleep", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L15"}, {"caller_nid": "pptx_converter_cleanup_libreoffice_processes", "callee": "warning", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L17"}, {"caller_nid": "pptx_converter_pptx_to_pdf_libreoffice", "callee": "makedirs", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L38"}, {"caller_nid": "pptx_converter_pptx_to_pdf_libreoffice", "callee": "info", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L51"}, {"caller_nid": "pptx_converter_pptx_to_pdf_libreoffice", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L54"}, {"caller_nid": "pptx_converter_pptx_to_pdf_libreoffice", "callee": "error", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L57"}, {"caller_nid": "pptx_converter_pptx_to_pdf_libreoffice", "callee": "error", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L58"}, {"caller_nid": "pptx_converter_pptx_to_pdf_libreoffice", "callee": "splitext", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L63"}, {"caller_nid": "pptx_converter_pptx_to_pdf_libreoffice", "callee": "basename", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L63"}, {"caller_nid": "pptx_converter_pptx_to_pdf_libreoffice", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L64"}, {"caller_nid": "pptx_converter_pptx_to_pdf_libreoffice", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L66"}, {"caller_nid": "pptx_converter_pptx_to_pdf_libreoffice", "callee": "info", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L67"}, {"caller_nid": "pptx_converter_pptx_to_pdf_libreoffice", "callee": "error", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L71"}, {"caller_nid": "pptx_converter_pptx_to_pdf_libreoffice", "callee": "error", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L76"}, {"caller_nid": "pptx_converter_pptx_to_pdf_libreoffice", "callee": "error", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L81"}, {"caller_nid": "pptx_converter_validate_pptx_file", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L95"}, {"caller_nid": "pptx_converter_validate_pptx_file", "callee": "endswith", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L99"}, {"caller_nid": "pptx_converter_validate_pptx_file", "callee": "lower", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L99"}, {"caller_nid": "pptx_converter_validate_pptx_file", "callee": "getsize", "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", "source_location": "L103"}]} \ No newline at end of file diff --git a/graphify-out/cache/70d403dd4a07c9f6faa62f365eee454669ef17b201b21cd8b87dfbb5a6e18c7e.json b/graphify-out/cache/70d403dd4a07c9f6faa62f365eee454669ef17b201b21cd8b87dfbb5a6e18c7e.json new file mode 100644 index 0000000..9ef30a5 --- /dev/null +++ b/graphify-out/cache/70d403dd4a07c9f6faa62f365eee454669ef17b201b21cd8b87dfbb5a6e18c7e.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_models_https_config_py", "label": "https_config.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "https_config_httpsconfig", "label": "HTTPSConfig", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L8", "complexity": 5, "loc": 97}, {"id": "https_config_httpsconfig_repr", "label": ".__repr__()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L37", "complexity": 2, "loc": 4}, {"id": "https_config_get_config", "label": "get_config()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L43", "complexity": 1, "loc": 7}, {"id": "https_config_create_or_update", "label": "create_or_update()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L52", "complexity": 2, "loc": 34}, {"id": "https_config_httpsconfig_to_dict", "label": ".to_dict()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L87", "complexity": 3, "loc": 18}, {"id": "https_config_rationale_1", "label": "HTTPS Configuration model.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L1"}, {"id": "https_config_rationale_9", "label": "HTTPS configuration model for managing secure connections. Attributes:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L9"}, {"id": "https_config_rationale_38", "label": "String representation of HTTPSConfig.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L38"}, {"id": "https_config_rationale_44", "label": "Get the current HTTPS configuration. Returns: HTTPS", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L44"}, {"id": "https_config_rationale_56", "label": "Create or update HTTPS configuration. Args: https_e", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L56"}, {"id": "https_config_rationale_88", "label": "Convert configuration to dictionary. Returns: Dicti", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L88"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_models_https_config_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_https_config_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_https_config_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_https_config_py", "target": "https_config_httpsconfig", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L8", "weight": 1.0}, {"source": "https_config_httpsconfig", "target": "https_config_httpsconfig_repr", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L37", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_https_config_py", "target": "https_config_get_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L43", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_https_config_py", "target": "https_config_create_or_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L52", "weight": 1.0}, {"source": "https_config_httpsconfig", "target": "https_config_httpsconfig_to_dict", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L87", "weight": 1.0}, {"source": "https_config_create_or_update", "target": "https_config_get_config", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L70", "weight": 1.0}, {"source": "https_config_rationale_1", "target": "home_scheianu_digiserver_v2_app_models_https_config_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L1", "weight": 1.0}, {"source": "https_config_rationale_9", "target": "https_config_httpsconfig", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L9", "weight": 1.0}, {"source": "https_config_rationale_38", "target": "https_config_httpsconfig_repr", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L38", "weight": 1.0}, {"source": "https_config_rationale_44", "target": "https_config_httpsconfig_get_config", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L44", "weight": 1.0}, {"source": "https_config_rationale_56", "target": "https_config_httpsconfig_create_or_update", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L56", "weight": 1.0}, {"source": "https_config_rationale_88", "target": "https_config_httpsconfig_to_dict", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L88", "weight": 1.0}], "raw_calls": [{"caller_nid": "https_config_get_config", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L49"}, {"caller_nid": "https_config_create_or_update", "callee": "cls", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L72"}, {"caller_nid": "https_config_create_or_update", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L81"}, {"caller_nid": "https_config_create_or_update", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L83"}, {"caller_nid": "https_config_create_or_update", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L84"}, {"caller_nid": "https_config_httpsconfig_to_dict", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L101"}, {"caller_nid": "https_config_httpsconfig_to_dict", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", "source_location": "L102"}]} \ No newline at end of file diff --git a/graphify-out/cache/721cf1d5064ca6adef6b46ae756ac7a71ebb513854b2d69db2e7ff4451064c38.json b/graphify-out/cache/721cf1d5064ca6adef6b46ae756ac7a71ebb513854b2d69db2e7ff4451064c38.json new file mode 100644 index 0000000..4ebe3b6 --- /dev/null +++ b/graphify-out/cache/721cf1d5064ca6adef6b46ae756ac7a71ebb513854b2d69db2e7ff4451064c38.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_utils_script_name_fix_py", "label": "script_name_fix.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "script_name_fix_scriptnamefix", "label": "ScriptNameFix", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L15", "complexity": 3, "loc": 12}, {"id": "script_name_fix_scriptnamefix_init", "label": ".__init__()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L16", "complexity": 1, "loc": 2}, {"id": "script_name_fix_scriptnamefix_call", "label": ".__call__()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L19", "complexity": 3, "loc": 8}, {"id": "script_name_fix_rationale_1", "label": "ScriptNameFix WSGI middleware. When nginx strips the path prefix before forward", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L1"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_utils_script_name_fix_py", "target": "script_name_fix_scriptnamefix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L15", "weight": 1.0}, {"source": "script_name_fix_scriptnamefix", "target": "script_name_fix_scriptnamefix_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L16", "weight": 1.0}, {"source": "script_name_fix_scriptnamefix", "target": "script_name_fix_scriptnamefix_call", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L19", "weight": 1.0}, {"source": "script_name_fix_rationale_1", "target": "home_scheianu_digiserver_v2_app_utils_script_name_fix_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "script_name_fix_scriptnamefix_call", "callee": "rstrip", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L20"}, {"caller_nid": "script_name_fix_scriptnamefix_call", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L20"}, {"caller_nid": "script_name_fix_scriptnamefix_call", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L23"}, {"caller_nid": "script_name_fix_scriptnamefix_call", "callee": "startswith", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L24"}, {"caller_nid": "script_name_fix_scriptnamefix_call", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L25"}, {"caller_nid": "script_name_fix_scriptnamefix_call", "callee": "app", "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", "source_location": "L26"}]} \ No newline at end of file diff --git a/graphify-out/cache/72d6c067ccd14bc578f9e7d296257ad3580b9b694089332468b2a86a8707a5e6.json b/graphify-out/cache/72d6c067ccd14bc578f9e7d296257ad3580b9b694089332468b2a86a8707a5e6.json new file mode 100644 index 0000000..c8a27a5 --- /dev/null +++ b/graphify-out/cache/72d6c067ccd14bc578f9e7d296257ad3580b9b694089332468b2a86a8707a5e6.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_config_py", "label": "config.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "config_config", "label": "Config", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L9", "complexity": 1, "loc": 45}, {"id": "config_developmentconfig", "label": "DevelopmentConfig", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L56", "complexity": 1, "loc": 20}, {"id": "config_productionconfig", "label": "ProductionConfig", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L78", "complexity": 1, "loc": 22}, {"id": "config_testingconfig", "label": "TestingConfig", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L102", "complexity": 1, "loc": 14}, {"id": "config_get_config", "label": "get_config()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L127", "complexity": 2, "loc": 5}, {"id": "config_rationale_1", "label": "Configuration settings for DigiServer v2 Environment-based configuration with se", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L1"}, {"id": "config_rationale_57", "label": "Development configuration", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L57"}, {"id": "config_rationale_79", "label": "Production configuration", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L79"}, {"id": "config_rationale_103", "label": "Testing configuration", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L103"}, {"id": "config_rationale_128", "label": "Get configuration based on environment", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L128"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_config_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_config_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_config_py", "target": "config_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L9", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_config_py", "target": "config_developmentconfig", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L56", "weight": 1.0}, {"source": "config_developmentconfig", "target": "config_config", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L56", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_config_py", "target": "config_productionconfig", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L78", "weight": 1.0}, {"source": "config_productionconfig", "target": "config_config", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L78", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_config_py", "target": "config_testingconfig", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L102", "weight": 1.0}, {"source": "config_testingconfig", "target": "config_config", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L102", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_config_py", "target": "config_get_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L127", "weight": 1.0}, {"source": "config_rationale_1", "target": "home_scheianu_digiserver_v2_app_config_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L1", "weight": 1.0}, {"source": "config_rationale_57", "target": "config_developmentconfig", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L57", "weight": 1.0}, {"source": "config_rationale_79", "target": "config_productionconfig", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L79", "weight": 1.0}, {"source": "config_rationale_103", "target": "config_testingconfig", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L103", "weight": 1.0}, {"source": "config_rationale_128", "target": "config_get_config", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L128", "weight": 1.0}], "raw_calls": [{"caller_nid": "config_get_config", "callee": "getenv", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L130"}, {"caller_nid": "config_get_config", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/config.py", "source_location": "L131"}]} \ No newline at end of file diff --git a/graphify-out/cache/7e9eb88eefb8fb0239cff4b84ead4bbcdfb6a3be1dbcc1beb1b011902a262372.json b/graphify-out/cache/7e9eb88eefb8fb0239cff4b84ead4bbcdfb6a3be1dbcc1beb1b011902a262372.json new file mode 100644 index 0000000..2eab768 --- /dev/null +++ b/graphify-out/cache/7e9eb88eefb8fb0239cff4b84ead4bbcdfb6a3be1dbcc1beb1b011902a262372.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_old_code_documentation_fix_player_user_schema_py", "label": "fix_player_user_schema.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "fix_player_user_schema_main", "label": "main()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L10", "complexity": 1, "loc": 13}], "edges": [{"source": "home_scheianu_digiserver_v2_old_code_documentation_fix_player_user_schema_py", "target": "sys", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_fix_player_user_schema_py", "target": "app_app", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_fix_player_user_schema_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_fix_player_user_schema_py", "target": "app_models_player_user", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_fix_player_user_schema_py", "target": "fix_player_user_schema_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L10", "weight": 1.0}], "raw_calls": [{"caller_nid": "fix_player_user_schema_main", "callee": "create_app", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L11"}, {"caller_nid": "fix_player_user_schema_main", "callee": "app_context", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L12"}, {"caller_nid": "fix_player_user_schema_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L14"}, {"caller_nid": "fix_player_user_schema_main", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L15"}, {"caller_nid": "fix_player_user_schema_main", "callee": "text", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L15"}, {"caller_nid": "fix_player_user_schema_main", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L16"}, {"caller_nid": "fix_player_user_schema_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L19"}, {"caller_nid": "fix_player_user_schema_main", "callee": "create", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L20"}, {"caller_nid": "fix_player_user_schema_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", "source_location": "L22"}]} \ No newline at end of file diff --git a/graphify-out/cache/832df44b668a28c2d8d13244d2ca215118b49872ca0318674e2e11d9cc4e8e33.json b/graphify-out/cache/832df44b668a28c2d8d13244d2ca215118b49872ca0318674e2e11d9cc4e8e33.json new file mode 100644 index 0000000..d69c80c --- /dev/null +++ b/graphify-out/cache/832df44b668a28c2d8d13244d2ca215118b49872ca0318674e2e11d9cc4e8e33.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_blueprints_content_py", "label": "content.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "content_content_list", "label": "content_list()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L27", "complexity": 1, "loc": 12}, {"id": "content_media_library", "label": "media_library()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L43", "complexity": 2, "loc": 24}, {"id": "content_delete_media", "label": "delete_media()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L71", "complexity": 10, "loc": 60}, {"id": "content_create_playlist", "label": "create_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L135", "complexity": 4, "loc": 34}, {"id": "content_delete_playlist", "label": "delete_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L173", "complexity": 2, "loc": 23}, {"id": "content_manage_playlist_content", "label": "manage_playlist_content()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L200", "complexity": 1, "loc": 18}, {"id": "content_add_content_to_playlist", "label": "add_content_to_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L222", "complexity": 3, "loc": 46}, {"id": "content_add_weblink", "label": "add_weblink()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L272", "complexity": 9, "loc": 76}, {"id": "content_add_weblink_to_playlist", "label": "add_weblink_to_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L352", "complexity": 4, "loc": 62}, {"id": "content_remove_content_from_playlist", "label": "remove_content_from_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L418", "complexity": 3, "loc": 33}, {"id": "content_bulk_remove_from_playlist", "label": "bulk_remove_from_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L455", "complexity": 4, "loc": 38}, {"id": "content_reorder_playlist_content", "label": "reorder_playlist_content()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L497", "complexity": 4, "loc": 37}, {"id": "content_update_playlist_content_muted", "label": "update_playlist_content_muted()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L538", "complexity": 2, "loc": 37}, {"id": "content_update_playlist_content_edit_enabled", "label": "update_playlist_content_edit_enabled()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L579", "complexity": 2, "loc": 37}, {"id": "content_update_playlist_content_duration", "label": "update_playlist_content_duration()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L620", "complexity": 4, "loc": 46}, {"id": "content_upload_media_page", "label": "upload_media_page()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L670", "complexity": 1, "loc": 4}, {"id": "content_process_image_file", "label": "process_image_file()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L676", "complexity": 4, "loc": 24}, {"id": "content_process_video_file_extended", "label": "process_video_file_extended()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L702", "complexity": 3, "loc": 23}, {"id": "content_process_pdf_file", "label": "process_pdf_file()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L727", "complexity": 6, "loc": 69}, {"id": "content_process_file_in_background", "label": "process_file_in_background()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L798", "complexity": 22, "loc": 177}, {"id": "content_process_presentation_file", "label": "process_presentation_file()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L977", "complexity": 13, "loc": 141}, {"id": "content_create_fullhd_image", "label": "create_fullhd_image()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1120", "complexity": 2, "loc": 23}, {"id": "content_resize_image_to_fullhd", "label": "resize_image_to_fullhd()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1145", "complexity": 5, "loc": 56}, {"id": "content_optimize_image_to_fullhd", "label": "optimize_image_to_fullhd()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1203", "complexity": 2, "loc": 13}, {"id": "content_upload_media", "label": "upload_media()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1220", "complexity": 31, "loc": 270}, {"id": "content_assign_player_to_playlist", "label": "assign_player_to_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1494", "complexity": 3, "loc": 26}, {"id": "content_rationale_1", "label": "Content blueprint - New playlist-centric workflow.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1"}, {"id": "content_rationale_28", "label": "Main playlist management page.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L28"}, {"id": "content_rationale_44", "label": "View all media files in the library.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L44"}, {"id": "content_rationale_72", "label": "Delete a media file and remove it from all playlists.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L72"}, {"id": "content_rationale_136", "label": "Create a new playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L136"}, {"id": "content_rationale_201", "label": "Manage content in a specific playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L201"}, {"id": "content_rationale_223", "label": "Add content to playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L223"}, {"id": "content_rationale_273", "label": "Create a web link content item from the Upload Media page. Optionally adds", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L273"}, {"id": "content_rationale_353", "label": "Create a web link content item and add it to the playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L353"}, {"id": "content_rationale_419", "label": "Remove content from playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L419"}, {"id": "content_rationale_456", "label": "Remove multiple content items from playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L456"}, {"id": "content_rationale_498", "label": "Reorder content in playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L498"}, {"id": "content_rationale_539", "label": "Update content muted setting in playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L539"}, {"id": "content_rationale_580", "label": "Update content edit_on_player_enabled setting in playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L580"}, {"id": "content_rationale_621", "label": "Update content duration in playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L621"}, {"id": "content_rationale_671", "label": "Display upload media page.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L671"}, {"id": "content_rationale_677", "label": "Process and optimize image files.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L677"}, {"id": "content_rationale_703", "label": "Process and optimize video files for Raspberry Pi playback.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L703"}, {"id": "content_rationale_728", "label": "Process PDF files by converting each page to PNG images.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L728"}, {"id": "content_rationale_800", "label": "Process large files (PDF, PPTX, Video) in background thread.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L800"}, {"id": "content_rationale_978", "label": "Process PowerPoint presentation files by converting slides to images.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L978"}, {"id": "content_rationale_1121", "label": "Create a Full HD (1920x1080) image from PIL Image object, centered on white back", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1121"}, {"id": "content_rationale_1146", "label": "Resize image to exactly Full HD (1920x1080) maintaining aspect ratio with center", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1146"}, {"id": "content_rationale_1204", "label": "Optimize and resize image file to Full HD (1920x1080) maintaining aspect ratio.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1204"}, {"id": "content_rationale_1221", "label": "Upload media files to library with type-specific processing.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1221"}, {"id": "content_rationale_1495", "label": "Assign a player to a playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1495"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "flask", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "flask_login", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "werkzeug_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "threading", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "uuid", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L9", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L10", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "urllib_parse", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L11", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L13", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "app_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L14", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "app_models_playlist", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L15", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "app_utils_logger", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L16", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "app_utils_uploads", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L17", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_content_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L27", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_media_library", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L43", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_delete_media", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L71", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_create_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L135", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_delete_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L173", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_manage_playlist_content", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L200", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_add_content_to_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L222", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_add_weblink", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L272", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_add_weblink_to_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L352", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_remove_content_from_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L418", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_bulk_remove_from_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L455", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_reorder_playlist_content", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L497", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_update_playlist_content_muted", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L538", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_update_playlist_content_edit_enabled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L579", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_update_playlist_content_duration", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L620", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_upload_media_page", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L670", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_process_image_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L676", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_process_video_file_extended", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L702", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_process_pdf_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L727", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_process_file_in_background", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L798", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_process_presentation_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L977", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_create_fullhd_image", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1120", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_resize_image_to_fullhd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1145", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_optimize_image_to_fullhd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1203", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_upload_media", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1220", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_content_py", "target": "content_assign_player_to_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1494", "weight": 1.0}, {"source": "content_process_file_in_background", "target": "content_process_pdf_file", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L812", "weight": 1.0}, {"source": "content_process_file_in_background", "target": "content_process_presentation_file", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L870", "weight": 1.0}, {"source": "content_process_file_in_background", "target": "content_process_video_file_extended", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L928", "weight": 1.0}, {"source": "content_process_presentation_file", "target": "content_resize_image_to_fullhd", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1100", "weight": 1.0}, {"source": "content_optimize_image_to_fullhd", "target": "content_create_fullhd_image", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1209", "weight": 1.0}, {"source": "content_upload_media", "target": "content_process_image_file", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1285", "weight": 1.0}, {"source": "content_upload_media", "target": "content_process_video_file_extended", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1289", "weight": 1.0}, {"source": "content_upload_media", "target": "content_process_pdf_file", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1293", "weight": 1.0}, {"source": "content_upload_media", "target": "content_process_presentation_file", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1354", "weight": 1.0}, {"source": "content_rationale_1", "target": "home_scheianu_digiserver_v2_app_blueprints_content_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1", "weight": 1.0}, {"source": "content_rationale_28", "target": "content_content_list", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L28", "weight": 1.0}, {"source": "content_rationale_44", "target": "content_media_library", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L44", "weight": 1.0}, {"source": "content_rationale_72", "target": "content_delete_media", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L72", "weight": 1.0}, {"source": "content_rationale_136", "target": "content_create_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L136", "weight": 1.0}, {"source": "content_rationale_201", "target": "content_manage_playlist_content", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L201", "weight": 1.0}, {"source": "content_rationale_223", "target": "content_add_content_to_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L223", "weight": 1.0}, {"source": "content_rationale_273", "target": "content_add_weblink", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L273", "weight": 1.0}, {"source": "content_rationale_353", "target": "content_add_weblink_to_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L353", "weight": 1.0}, {"source": "content_rationale_419", "target": "content_remove_content_from_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L419", "weight": 1.0}, {"source": "content_rationale_456", "target": "content_bulk_remove_from_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L456", "weight": 1.0}, {"source": "content_rationale_498", "target": "content_reorder_playlist_content", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L498", "weight": 1.0}, {"source": "content_rationale_539", "target": "content_update_playlist_content_muted", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L539", "weight": 1.0}, {"source": "content_rationale_580", "target": "content_update_playlist_content_edit_enabled", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L580", "weight": 1.0}, {"source": "content_rationale_621", "target": "content_update_playlist_content_duration", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L621", "weight": 1.0}, {"source": "content_rationale_671", "target": "content_upload_media_page", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L671", "weight": 1.0}, {"source": "content_rationale_677", "target": "content_process_image_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L677", "weight": 1.0}, {"source": "content_rationale_703", "target": "content_process_video_file_extended", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L703", "weight": 1.0}, {"source": "content_rationale_728", "target": "content_process_pdf_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L728", "weight": 1.0}, {"source": "content_rationale_800", "target": "content_process_file_in_background", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L800", "weight": 1.0}, {"source": "content_rationale_978", "target": "content_process_presentation_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L978", "weight": 1.0}, {"source": "content_rationale_1121", "target": "content_create_fullhd_image", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1121", "weight": 1.0}, {"source": "content_rationale_1146", "target": "content_resize_image_to_fullhd", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1146", "weight": 1.0}, {"source": "content_rationale_1204", "target": "content_optimize_image_to_fullhd", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1204", "weight": 1.0}, {"source": "content_rationale_1221", "target": "content_upload_media", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1221", "weight": 1.0}, {"source": "content_rationale_1495", "target": "content_assign_player_to_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1495", "weight": 1.0}], "raw_calls": [{"caller_nid": "content_content_list", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L29"}, {"caller_nid": "content_content_list", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L29"}, {"caller_nid": "content_content_list", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L29"}, {"caller_nid": "content_content_list", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L30"}, {"caller_nid": "content_content_list", "callee": "limit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L30"}, {"caller_nid": "content_content_list", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L30"}, {"caller_nid": "content_content_list", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L30"}, {"caller_nid": "content_content_list", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L31"}, {"caller_nid": "content_content_list", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L32"}, {"caller_nid": "content_content_list", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L32"}, {"caller_nid": "content_content_list", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L34"}, {"caller_nid": "content_media_library", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L47"}, {"caller_nid": "content_media_library", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L47"}, {"caller_nid": "content_media_library", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L47"}, {"caller_nid": "content_media_library", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L51"}, {"caller_nid": "content_media_library", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L51"}, {"caller_nid": "content_media_library", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L60"}, {"caller_nid": "content_delete_media", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L74"}, {"caller_nid": "content_delete_media", "callee": "list", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L78"}, {"caller_nid": "content_delete_media", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L78"}, {"caller_nid": "content_delete_media", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L81"}, {"caller_nid": "content_delete_media", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L82"}, {"caller_nid": "content_delete_media", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L83"}, {"caller_nid": "content_delete_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L84"}, {"caller_nid": "content_delete_media", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L88"}, {"caller_nid": "content_delete_media", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L88"}, {"caller_nid": "content_delete_media", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L89"}, {"caller_nid": "content_delete_media", "callee": "rmtree", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L90"}, {"caller_nid": "content_delete_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L91"}, {"caller_nid": "content_delete_media", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L95"}, {"caller_nid": "content_delete_media", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L95"}, {"caller_nid": "content_delete_media", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L98"}, {"caller_nid": "content_delete_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L99"}, {"caller_nid": "content_delete_media", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L99"}, {"caller_nid": "content_delete_media", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L102"}, {"caller_nid": "content_delete_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L107"}, {"caller_nid": "content_delete_media", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L109"}, {"caller_nid": "content_delete_media", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L116"}, {"caller_nid": "content_delete_media", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L119"}, {"caller_nid": "content_delete_media", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L119"}, {"caller_nid": "content_delete_media", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L121"}, {"caller_nid": "content_delete_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L123"}, {"caller_nid": "content_delete_media", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L123"}, {"caller_nid": "content_delete_media", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L126"}, {"caller_nid": "content_delete_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L127"}, {"caller_nid": "content_delete_media", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L127"}, {"caller_nid": "content_delete_media", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L128"}, {"caller_nid": "content_delete_media", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L128"}, {"caller_nid": "content_delete_media", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L130"}, {"caller_nid": "content_delete_media", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L130"}, {"caller_nid": "content_create_playlist", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L138"}, {"caller_nid": "content_create_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L138"}, {"caller_nid": "content_create_playlist", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L139"}, {"caller_nid": "content_create_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L139"}, {"caller_nid": "content_create_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L140"}, {"caller_nid": "content_create_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L143"}, {"caller_nid": "content_create_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L144"}, {"caller_nid": "content_create_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L144"}, {"caller_nid": "content_create_playlist", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L147"}, {"caller_nid": "content_create_playlist", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L147"}, {"caller_nid": "content_create_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L149"}, {"caller_nid": "content_create_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L150"}, {"caller_nid": "content_create_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L150"}, {"caller_nid": "content_create_playlist", "callee": "Playlist", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L152"}, {"caller_nid": "content_create_playlist", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L157"}, {"caller_nid": "content_create_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L158"}, {"caller_nid": "content_create_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L160"}, {"caller_nid": "content_create_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L161"}, {"caller_nid": "content_create_playlist", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L164"}, {"caller_nid": "content_create_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L165"}, {"caller_nid": "content_create_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L165"}, {"caller_nid": "content_create_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L166"}, {"caller_nid": "content_create_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L168"}, {"caller_nid": "content_create_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L168"}, {"caller_nid": "content_delete_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L175"}, {"caller_nid": "content_delete_playlist", "callee": "update", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L181"}, {"caller_nid": "content_delete_playlist", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L181"}, {"caller_nid": "content_delete_playlist", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L183"}, {"caller_nid": "content_delete_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L184"}, {"caller_nid": "content_delete_playlist", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L185"}, {"caller_nid": "content_delete_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L187"}, {"caller_nid": "content_delete_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L188"}, {"caller_nid": "content_delete_playlist", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L191"}, {"caller_nid": "content_delete_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L192"}, {"caller_nid": "content_delete_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L192"}, {"caller_nid": "content_delete_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L193"}, {"caller_nid": "content_delete_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L195"}, {"caller_nid": "content_delete_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L195"}, {"caller_nid": "content_manage_playlist_content", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L202"}, {"caller_nid": "content_manage_playlist_content", "callee": "get_content_ordered", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L205"}, {"caller_nid": "content_manage_playlist_content", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L210"}, {"caller_nid": "content_manage_playlist_content", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L210"}, {"caller_nid": "content_manage_playlist_content", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L214"}, {"caller_nid": "content_add_content_to_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L224"}, {"caller_nid": "content_add_content_to_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L227"}, {"caller_nid": "content_add_content_to_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L228"}, {"caller_nid": "content_add_content_to_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L231"}, {"caller_nid": "content_add_content_to_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L232"}, {"caller_nid": "content_add_content_to_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L232"}, {"caller_nid": "content_add_content_to_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L234"}, {"caller_nid": "content_add_content_to_playlist", "callee": "scalar", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L240"}, {"caller_nid": "content_add_content_to_playlist", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L240"}, {"caller_nid": "content_add_content_to_playlist", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L241"}, {"caller_nid": "content_add_content_to_playlist", "callee": "select", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L241"}, {"caller_nid": "content_add_content_to_playlist", "callee": "max", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L241"}, {"caller_nid": "content_add_content_to_playlist", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L247"}, {"caller_nid": "content_add_content_to_playlist", "callee": "insert", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L247"}, {"caller_nid": "content_add_content_to_playlist", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L253"}, {"caller_nid": "content_add_content_to_playlist", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L255"}, {"caller_nid": "content_add_content_to_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L256"}, {"caller_nid": "content_add_content_to_playlist", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L257"}, {"caller_nid": "content_add_content_to_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L259"}, {"caller_nid": "content_add_content_to_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L260"}, {"caller_nid": "content_add_content_to_playlist", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L263"}, {"caller_nid": "content_add_content_to_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L264"}, {"caller_nid": "content_add_content_to_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L264"}, {"caller_nid": "content_add_content_to_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L265"}, {"caller_nid": "content_add_content_to_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L267"}, {"caller_nid": "content_add_content_to_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L267"}, {"caller_nid": "content_add_weblink", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L280"}, {"caller_nid": "content_add_weblink", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L283"}, {"caller_nid": "content_add_weblink", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L283"}, {"caller_nid": "content_add_weblink", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L284"}, {"caller_nid": "content_add_weblink", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L285"}, {"caller_nid": "content_add_weblink", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L285"}, {"caller_nid": "content_add_weblink", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L286"}, {"caller_nid": "content_add_weblink", "callee": "urlparse", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L288"}, {"caller_nid": "content_add_weblink", "callee": "lower", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L289"}, {"caller_nid": "content_add_weblink", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L291"}, {"caller_nid": "content_add_weblink", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L292"}, {"caller_nid": "content_add_weblink", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L293"}, {"caller_nid": "content_add_weblink", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L293"}, {"caller_nid": "content_add_weblink", "callee": "Content", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L298"}, {"caller_nid": "content_add_weblink", "callee": "uuid4", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L299"}, {"caller_nid": "content_add_weblink", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L304"}, {"caller_nid": "content_add_weblink", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L306"}, {"caller_nid": "content_add_weblink", "callee": "flush", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L307"}, {"caller_nid": "content_add_weblink", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L310"}, {"caller_nid": "content_add_weblink", "callee": "scalar", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L313"}, {"caller_nid": "content_add_weblink", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L313"}, {"caller_nid": "content_add_weblink", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L314"}, {"caller_nid": "content_add_weblink", "callee": "select", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L314"}, {"caller_nid": "content_add_weblink", "callee": "max", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L314"}, {"caller_nid": "content_add_weblink", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L318"}, {"caller_nid": "content_add_weblink", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L319"}, {"caller_nid": "content_add_weblink", "callee": "insert", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L319"}, {"caller_nid": "content_add_weblink", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L326"}, {"caller_nid": "content_add_weblink", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L327"}, {"caller_nid": "content_add_weblink", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L329"}, {"caller_nid": "content_add_weblink", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L331"}, {"caller_nid": "content_add_weblink", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L333"}, {"caller_nid": "content_add_weblink", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L334"}, {"caller_nid": "content_add_weblink", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L337"}, {"caller_nid": "content_add_weblink", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L338"}, {"caller_nid": "content_add_weblink", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L341"}, {"caller_nid": "content_add_weblink", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L342"}, {"caller_nid": "content_add_weblink", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L342"}, {"caller_nid": "content_add_weblink", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L344"}, {"caller_nid": "content_add_weblink", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L345"}, {"caller_nid": "content_add_weblink", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L347"}, {"caller_nid": "content_add_weblink", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L347"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L354"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L357"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L357"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L358"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L359"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L359"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "urlparse", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L362"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "lower", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L363"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L364"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L365"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L365"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "Content", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L372"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "uuid4", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L373"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L378"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L380"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "flush", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L381"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "scalar", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L386"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L386"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L387"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "select", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L387"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "max", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L387"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L392"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L393"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "insert", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L393"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L401"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L402"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L403"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L405"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L406"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L409"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L410"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L410"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L411"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L413"}, {"caller_nid": "content_add_weblink_to_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L413"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L420"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L426"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L426"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L430"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L434"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L436"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L438"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L439"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L440"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L442"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L443"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L446"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L447"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L447"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L448"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L450"}, {"caller_nid": "content_remove_content_from_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L450"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L457"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "get_json", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L460"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L461"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L464"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L469"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L469"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "in_", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L471"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L473"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L476"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L477"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L478"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "hasattr", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L480"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L480"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L481"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L483"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L490"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L491"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L491"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L492"}, {"caller_nid": "content_bulk_remove_from_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L492"}, {"caller_nid": "content_reorder_playlist_content", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L499"}, {"caller_nid": "content_reorder_playlist_content", "callee": "get_json", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L502"}, {"caller_nid": "content_reorder_playlist_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L503"}, {"caller_nid": "content_reorder_playlist_content", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L506"}, {"caller_nid": "content_reorder_playlist_content", "callee": "enumerate", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L511"}, {"caller_nid": "content_reorder_playlist_content", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L512"}, {"caller_nid": "content_reorder_playlist_content", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L512"}, {"caller_nid": "content_reorder_playlist_content", "callee": "update", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L512"}, {"caller_nid": "content_reorder_playlist_content", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L516"}, {"caller_nid": "content_reorder_playlist_content", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L518"}, {"caller_nid": "content_reorder_playlist_content", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L519"}, {"caller_nid": "content_reorder_playlist_content", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L520"}, {"caller_nid": "content_reorder_playlist_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L522"}, {"caller_nid": "content_reorder_playlist_content", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L524"}, {"caller_nid": "content_reorder_playlist_content", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L531"}, {"caller_nid": "content_reorder_playlist_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L532"}, {"caller_nid": "content_reorder_playlist_content", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L532"}, {"caller_nid": "content_reorder_playlist_content", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L533"}, {"caller_nid": "content_reorder_playlist_content", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L533"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L540"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L543"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "lower", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L544"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L544"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L550"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L550"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "update", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L550"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L554"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L557"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L559"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L560"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L562"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L564"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L572"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L573"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L573"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L574"}, {"caller_nid": "content_update_playlist_content_muted", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L574"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L581"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L584"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "lower", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L585"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L585"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L591"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L591"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "update", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L591"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L595"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L598"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L600"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L601"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L603"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L605"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L613"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L614"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L614"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L615"}, {"caller_nid": "content_update_playlist_content_edit_enabled", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L615"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L622"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L625"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L629"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L629"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L631"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L635"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L641"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L641"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "update", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L641"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L645"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L648"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L650"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L651"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L653"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L655"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L663"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L664"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L664"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L665"}, {"caller_nid": "content_update_playlist_content_duration", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L665"}, {"caller_nid": "content_upload_media_page", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L672"}, {"caller_nid": "content_upload_media_page", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L672"}, {"caller_nid": "content_upload_media_page", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L673"}, {"caller_nid": "content_process_image_file", "callee": "open", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L682"}, {"caller_nid": "content_process_image_file", "callee": "endswith", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L685"}, {"caller_nid": "content_process_image_file", "callee": "lower", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L685"}, {"caller_nid": "content_process_image_file", "callee": "new", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L686"}, {"caller_nid": "content_process_image_file", "callee": "paste", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L687"}, {"caller_nid": "content_process_image_file", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L687"}, {"caller_nid": "content_process_image_file", "callee": "thumbnail", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L693"}, {"caller_nid": "content_process_image_file", "callee": "save", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L694"}, {"caller_nid": "content_process_image_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L695"}, {"caller_nid": "content_process_image_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L699"}, {"caller_nid": "content_process_video_file_extended", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L709"}, {"caller_nid": "content_process_video_file_extended", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L717"}, {"caller_nid": "content_process_video_file_extended", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L723"}, {"caller_nid": "content_process_pdf_file", "callee": "open", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L734"}, {"caller_nid": "content_process_pdf_file", "callee": "read", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L735"}, {"caller_nid": "content_process_pdf_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L739"}, {"caller_nid": "content_process_pdf_file", "callee": "convert_from_path", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L742"}, {"caller_nid": "content_process_pdf_file", "callee": "Path", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L752"}, {"caller_nid": "content_process_pdf_file", "callee": "dirname", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L753"}, {"caller_nid": "content_process_pdf_file", "callee": "enumerate", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L757"}, {"caller_nid": "content_process_pdf_file", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L760"}, {"caller_nid": "content_process_pdf_file", "callee": "thumbnail", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L776"}, {"caller_nid": "content_process_pdf_file", "callee": "save", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L779"}, {"caller_nid": "content_process_pdf_file", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L781"}, {"caller_nid": "content_process_pdf_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L782"}, {"caller_nid": "content_process_pdf_file", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L782"}, {"caller_nid": "content_process_pdf_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L784"}, {"caller_nid": "content_process_pdf_file", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L784"}, {"caller_nid": "content_process_pdf_file", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L787"}, {"caller_nid": "content_process_pdf_file", "callee": "format_exc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L793"}, {"caller_nid": "content_process_pdf_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L794"}, {"caller_nid": "content_process_pdf_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L794"}, {"caller_nid": "content_process_pdf_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L795"}, {"caller_nid": "content_process_file_in_background", "callee": "app_context", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L801"}, {"caller_nid": "content_process_file_in_background", "callee": "lower", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L814"}, {"caller_nid": "content_process_file_in_background", "callee": "splitext", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L815"}, {"caller_nid": "content_process_file_in_background", "callee": "sorted", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L818"}, {"caller_nid": "content_process_file_in_background", "callee": "glob", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L818"}, {"caller_nid": "content_process_file_in_background", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L818"}, {"caller_nid": "content_process_file_in_background", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L823"}, {"caller_nid": "content_process_file_in_background", "callee": "scalar", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L824"}, {"caller_nid": "content_process_file_in_background", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L824"}, {"caller_nid": "content_process_file_in_background", "callee": "query", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L824"}, {"caller_nid": "content_process_file_in_background", "callee": "max", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L824"}, {"caller_nid": "content_process_file_in_background", "callee": "basename", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L829"}, {"caller_nid": "content_process_file_in_background", "callee": "Content", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L830"}, {"caller_nid": "content_process_file_in_background", "callee": "getsize", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L835"}, {"caller_nid": "content_process_file_in_background", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L837"}, {"caller_nid": "content_process_file_in_background", "callee": "flush", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L838"}, {"caller_nid": "content_process_file_in_background", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L842"}, {"caller_nid": "content_process_file_in_background", "callee": "insert", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L842"}, {"caller_nid": "content_process_file_in_background", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L849"}, {"caller_nid": "content_process_file_in_background", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L852"}, {"caller_nid": "content_process_file_in_background", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L856"}, {"caller_nid": "content_process_file_in_background", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L857"}, {"caller_nid": "content_process_file_in_background", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L859"}, {"caller_nid": "content_process_file_in_background", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L860"}, {"caller_nid": "content_process_file_in_background", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L864"}, {"caller_nid": "content_process_file_in_background", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L866"}, {"caller_nid": "content_process_file_in_background", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L866"}, {"caller_nid": "content_process_file_in_background", "callee": "lower", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L872"}, {"caller_nid": "content_process_file_in_background", "callee": "splitext", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L873"}, {"caller_nid": "content_process_file_in_background", "callee": "sorted", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L876"}, {"caller_nid": "content_process_file_in_background", "callee": "glob", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L876"}, {"caller_nid": "content_process_file_in_background", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L876"}, {"caller_nid": "content_process_file_in_background", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L881"}, {"caller_nid": "content_process_file_in_background", "callee": "scalar", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L882"}, {"caller_nid": "content_process_file_in_background", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L882"}, {"caller_nid": "content_process_file_in_background", "callee": "query", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L882"}, {"caller_nid": "content_process_file_in_background", "callee": "max", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L882"}, {"caller_nid": "content_process_file_in_background", "callee": "basename", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L887"}, {"caller_nid": "content_process_file_in_background", "callee": "Content", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L888"}, {"caller_nid": "content_process_file_in_background", "callee": "getsize", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L893"}, {"caller_nid": "content_process_file_in_background", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L895"}, {"caller_nid": "content_process_file_in_background", "callee": "flush", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L896"}, {"caller_nid": "content_process_file_in_background", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L900"}, {"caller_nid": "content_process_file_in_background", "callee": "insert", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L900"}, {"caller_nid": "content_process_file_in_background", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L907"}, {"caller_nid": "content_process_file_in_background", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L910"}, {"caller_nid": "content_process_file_in_background", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L914"}, {"caller_nid": "content_process_file_in_background", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L915"}, {"caller_nid": "content_process_file_in_background", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L917"}, {"caller_nid": "content_process_file_in_background", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L918"}, {"caller_nid": "content_process_file_in_background", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L922"}, {"caller_nid": "content_process_file_in_background", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L924"}, {"caller_nid": "content_process_file_in_background", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L924"}, {"caller_nid": "content_process_file_in_background", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L932"}, {"caller_nid": "content_process_file_in_background", "callee": "Content", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L933"}, {"caller_nid": "content_process_file_in_background", "callee": "getsize", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L938"}, {"caller_nid": "content_process_file_in_background", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L940"}, {"caller_nid": "content_process_file_in_background", "callee": "flush", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L941"}, {"caller_nid": "content_process_file_in_background", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L944"}, {"caller_nid": "content_process_file_in_background", "callee": "scalar", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L946"}, {"caller_nid": "content_process_file_in_background", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L946"}, {"caller_nid": "content_process_file_in_background", "callee": "query", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L946"}, {"caller_nid": "content_process_file_in_background", "callee": "max", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L946"}, {"caller_nid": "content_process_file_in_background", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L950"}, {"caller_nid": "content_process_file_in_background", "callee": "insert", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L950"}, {"caller_nid": "content_process_file_in_background", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L957"}, {"caller_nid": "content_process_file_in_background", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L960"}, {"caller_nid": "content_process_file_in_background", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L961"}, {"caller_nid": "content_process_file_in_background", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L963"}, {"caller_nid": "content_process_file_in_background", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L969"}, {"caller_nid": "content_process_file_in_background", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L972"}, {"caller_nid": "content_process_file_in_background", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L973"}, {"caller_nid": "content_process_file_in_background", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L974"}, {"caller_nid": "content_process_file_in_background", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L974"}, {"caller_nid": "content_process_presentation_file", "callee": "getsize", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L986"}, {"caller_nid": "content_process_presentation_file", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1002"}, {"caller_nid": "content_process_presentation_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1007"}, {"caller_nid": "content_process_presentation_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1013"}, {"caller_nid": "content_process_presentation_file", "callee": "TemporaryDirectory", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1017"}, {"caller_nid": "content_process_presentation_file", "callee": "Path", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1018"}, {"caller_nid": "content_process_presentation_file", "callee": "copy2", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1022"}, {"caller_nid": "content_process_presentation_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1029"}, {"caller_nid": "content_process_presentation_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1030"}, {"caller_nid": "content_process_presentation_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1033"}, {"caller_nid": "content_process_presentation_file", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1036"}, {"caller_nid": "content_process_presentation_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1044"}, {"caller_nid": "content_process_presentation_file", "callee": "list", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1048"}, {"caller_nid": "content_process_presentation_file", "callee": "glob", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1048"}, {"caller_nid": "content_process_presentation_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1050"}, {"caller_nid": "content_process_presentation_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1054"}, {"caller_nid": "content_process_presentation_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1064"}, {"caller_nid": "content_process_presentation_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1065"}, {"caller_nid": "content_process_presentation_file", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1068"}, {"caller_nid": "content_process_presentation_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1076"}, {"caller_nid": "content_process_presentation_file", "callee": "sorted", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1080"}, {"caller_nid": "content_process_presentation_file", "callee": "glob", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1080"}, {"caller_nid": "content_process_presentation_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1083"}, {"caller_nid": "content_process_presentation_file", "callee": "splitext", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1088"}, {"caller_nid": "content_process_presentation_file", "callee": "enumerate", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1092"}, {"caller_nid": "content_process_presentation_file", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1095"}, {"caller_nid": "content_process_presentation_file", "callee": "move", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1097"}, {"caller_nid": "content_process_presentation_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1097"}, {"caller_nid": "content_process_presentation_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1104"}, {"caller_nid": "content_process_presentation_file", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1107"}, {"caller_nid": "content_process_presentation_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1112"}, {"caller_nid": "content_process_presentation_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1116"}, {"caller_nid": "content_process_presentation_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1116"}, {"caller_nid": "content_process_presentation_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1117"}, {"caller_nid": "content_create_fullhd_image", "callee": "copy", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1127"}, {"caller_nid": "content_create_fullhd_image", "callee": "thumbnail", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1128"}, {"caller_nid": "content_create_fullhd_image", "callee": "new", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1131"}, {"caller_nid": "content_create_fullhd_image", "callee": "paste", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1138"}, {"caller_nid": "content_create_fullhd_image", "callee": "paste", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1140"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "open", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1150"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "abs", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1158"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "resize", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1160"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1164"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "resize", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1165"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "crop", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1170"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "new", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1173"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "paste", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1175"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1180"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "resize", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1181"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "crop", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1186"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "new", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1189"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "paste", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1191"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "save", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1195"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1199"}, {"caller_nid": "content_resize_image_to_fullhd", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1199"}, {"caller_nid": "content_optimize_image_to_fullhd", "callee": "open", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1208"}, {"caller_nid": "content_optimize_image_to_fullhd", "callee": "save", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1210"}, {"caller_nid": "content_optimize_image_to_fullhd", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1214"}, {"caller_nid": "content_optimize_image_to_fullhd", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1214"}, {"caller_nid": "content_upload_media", "callee": "getlist", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1223"}, {"caller_nid": "content_upload_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1224"}, {"caller_nid": "content_upload_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1225"}, {"caller_nid": "content_upload_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1226"}, {"caller_nid": "content_upload_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1227"}, {"caller_nid": "content_upload_media", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1230"}, {"caller_nid": "content_upload_media", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1231"}, {"caller_nid": "content_upload_media", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1231"}, {"caller_nid": "content_upload_media", "callee": "makedirs", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1234"}, {"caller_nid": "content_upload_media", "callee": "secure_filename", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1244"}, {"caller_nid": "content_upload_media", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1245"}, {"caller_nid": "content_upload_media", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1248"}, {"caller_nid": "content_upload_media", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1248"}, {"caller_nid": "content_upload_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1250"}, {"caller_nid": "content_upload_media", "callee": "save", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1254"}, {"caller_nid": "content_upload_media", "callee": "lower", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1257"}, {"caller_nid": "content_upload_media", "callee": "rsplit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1257"}, {"caller_nid": "content_upload_media", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1265"}, {"caller_nid": "content_upload_media", "callee": "uuid4", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1265"}, {"caller_nid": "content_upload_media", "callee": "Thread", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1268"}, {"caller_nid": "content_upload_media", "callee": "_get_current_object", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1270"}, {"caller_nid": "content_upload_media", "callee": "start", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1273"}, {"caller_nid": "content_upload_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1276"}, {"caller_nid": "content_upload_media", "callee": "lower", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1297"}, {"caller_nid": "content_upload_media", "callee": "splitext", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1299"}, {"caller_nid": "content_upload_media", "callee": "sorted", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1302"}, {"caller_nid": "content_upload_media", "callee": "glob", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1302"}, {"caller_nid": "content_upload_media", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1302"}, {"caller_nid": "content_upload_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1307"}, {"caller_nid": "content_upload_media", "callee": "scalar", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1308"}, {"caller_nid": "content_upload_media", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1308"}, {"caller_nid": "content_upload_media", "callee": "query", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1308"}, {"caller_nid": "content_upload_media", "callee": "max", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1308"}, {"caller_nid": "content_upload_media", "callee": "basename", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1314"}, {"caller_nid": "content_upload_media", "callee": "Content", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1317"}, {"caller_nid": "content_upload_media", "callee": "getsize", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1322"}, {"caller_nid": "content_upload_media", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1324"}, {"caller_nid": "content_upload_media", "callee": "flush", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1325"}, {"caller_nid": "content_upload_media", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1330"}, {"caller_nid": "content_upload_media", "callee": "insert", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1330"}, {"caller_nid": "content_upload_media", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1337"}, {"caller_nid": "content_upload_media", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1343"}, {"caller_nid": "content_upload_media", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1346"}, {"caller_nid": "content_upload_media", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1347"}, {"caller_nid": "content_upload_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1348"}, {"caller_nid": "content_upload_media", "callee": "lower", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1358"}, {"caller_nid": "content_upload_media", "callee": "splitext", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1360"}, {"caller_nid": "content_upload_media", "callee": "sorted", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1363"}, {"caller_nid": "content_upload_media", "callee": "glob", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1363"}, {"caller_nid": "content_upload_media", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1363"}, {"caller_nid": "content_upload_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1368"}, {"caller_nid": "content_upload_media", "callee": "scalar", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1369"}, {"caller_nid": "content_upload_media", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1369"}, {"caller_nid": "content_upload_media", "callee": "query", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1369"}, {"caller_nid": "content_upload_media", "callee": "max", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1369"}, {"caller_nid": "content_upload_media", "callee": "basename", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1375"}, {"caller_nid": "content_upload_media", "callee": "Content", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1378"}, {"caller_nid": "content_upload_media", "callee": "getsize", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1383"}, {"caller_nid": "content_upload_media", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1385"}, {"caller_nid": "content_upload_media", "callee": "flush", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1386"}, {"caller_nid": "content_upload_media", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1391"}, {"caller_nid": "content_upload_media", "callee": "insert", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1391"}, {"caller_nid": "content_upload_media", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1398"}, {"caller_nid": "content_upload_media", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1404"}, {"caller_nid": "content_upload_media", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1407"}, {"caller_nid": "content_upload_media", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1408"}, {"caller_nid": "content_upload_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1409"}, {"caller_nid": "content_upload_media", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1417"}, {"caller_nid": "content_upload_media", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1418"}, {"caller_nid": "content_upload_media", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1419"}, {"caller_nid": "content_upload_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1420"}, {"caller_nid": "content_upload_media", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1424"}, {"caller_nid": "content_upload_media", "callee": "Content", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1425"}, {"caller_nid": "content_upload_media", "callee": "getsize", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1430"}, {"caller_nid": "content_upload_media", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1432"}, {"caller_nid": "content_upload_media", "callee": "flush", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1433"}, {"caller_nid": "content_upload_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1437"}, {"caller_nid": "content_upload_media", "callee": "scalar", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1440"}, {"caller_nid": "content_upload_media", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1440"}, {"caller_nid": "content_upload_media", "callee": "query", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1440"}, {"caller_nid": "content_upload_media", "callee": "max", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1440"}, {"caller_nid": "content_upload_media", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1445"}, {"caller_nid": "content_upload_media", "callee": "insert", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1445"}, {"caller_nid": "content_upload_media", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1452"}, {"caller_nid": "content_upload_media", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1455"}, {"caller_nid": "content_upload_media", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1459"}, {"caller_nid": "content_upload_media", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1460"}, {"caller_nid": "content_upload_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1462"}, {"caller_nid": "content_upload_media", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1466"}, {"caller_nid": "content_upload_media", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1467"}, {"caller_nid": "content_upload_media", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1468"}, {"caller_nid": "content_upload_media", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1469"}, {"caller_nid": "content_upload_media", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1475"}, {"caller_nid": "content_upload_media", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1477"}, {"caller_nid": "content_upload_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1479"}, {"caller_nid": "content_upload_media", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1480"}, {"caller_nid": "content_upload_media", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1482"}, {"caller_nid": "content_upload_media", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1485"}, {"caller_nid": "content_upload_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1486"}, {"caller_nid": "content_upload_media", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1486"}, {"caller_nid": "content_upload_media", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1487"}, {"caller_nid": "content_upload_media", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1489"}, {"caller_nid": "content_upload_media", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1489"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1496"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1499"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1502"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1504"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1505"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1508"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1509"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1511"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1512"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1515"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1516"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1516"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1517"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1519"}, {"caller_nid": "content_assign_player_to_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", "source_location": "L1519"}]} \ No newline at end of file diff --git a/graphify-out/cache/8c377ef6943874b4f9399d90457309e27c3e0fa9b678ec3731ef6bb7a1fb003d.json b/graphify-out/cache/8c377ef6943874b4f9399d90457309e27c3e0fa9b678ec3731ef6bb7a1fb003d.json new file mode 100644 index 0000000..7599099 --- /dev/null +++ b/graphify-out/cache/8c377ef6943874b4f9399d90457309e27c3e0fa9b678ec3731ef6bb7a1fb003d.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_models_group_py", "label": "group.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "group_group", "label": "Group", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L15", "complexity": 2, "loc": 52}, {"id": "group_group_repr", "label": ".__repr__()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L38", "complexity": 1, "loc": 3}, {"id": "group_content_count", "label": "content_count()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L45", "complexity": 1, "loc": 3}, {"id": "group_group_add_player", "label": ".add_player()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L49", "complexity": 1, "loc": 8}, {"id": "group_group_remove_player", "label": ".remove_player()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L58", "complexity": 2, "loc": 9}, {"id": "group_rationale_1", "label": "Group model for organizing players and content.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L1"}, {"id": "group_rationale_16", "label": "Group model for organizing players with shared content. Attributes:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L16"}, {"id": "group_rationale_39", "label": "String representation of Group.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L39"}, {"id": "group_rationale_46", "label": "Get number of content items in this group.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L46"}, {"id": "group_rationale_50", "label": "Add a player to this group. Args: player: Player in", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L50"}, {"id": "group_rationale_59", "label": "Remove a player from this group. Args: player: Play", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L59"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_models_group_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_group_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_group_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_group_py", "target": "group_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L15", "weight": 1.0}, {"source": "group_group", "target": "group_group_repr", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L38", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_group_py", "target": "group_content_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L45", "weight": 1.0}, {"source": "group_group", "target": "group_group_add_player", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L49", "weight": 1.0}, {"source": "group_group", "target": "group_group_remove_player", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L58", "weight": 1.0}, {"source": "group_rationale_1", "target": "home_scheianu_digiserver_v2_app_models_group_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L1", "weight": 1.0}, {"source": "group_rationale_16", "target": "group_group", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L16", "weight": 1.0}, {"source": "group_rationale_39", "target": "group_group_repr", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L39", "weight": 1.0}, {"source": "group_rationale_46", "target": "group_group_content_count", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L46", "weight": 1.0}, {"source": "group_rationale_50", "target": "group_group_add_player", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L50", "weight": 1.0}, {"source": "group_rationale_59", "target": "group_group_remove_player", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L59", "weight": 1.0}], "raw_calls": [{"caller_nid": "group_content_count", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L47"}, {"caller_nid": "group_group_add_player", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L56"}, {"caller_nid": "group_group_remove_player", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", "source_location": "L66"}]} \ No newline at end of file diff --git a/graphify-out/cache/8f5403ff3219caaadd37b30ed9eb3e9380d8503b84236a13c437e9d180f0cb96.json b/graphify-out/cache/8f5403ff3219caaadd37b30ed9eb3e9380d8503b84236a13c437e9d180f0cb96.json new file mode 100644 index 0000000..982634a --- /dev/null +++ b/graphify-out/cache/8f5403ff3219caaadd37b30ed9eb3e9380d8503b84236a13c437e9d180f0cb96.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_models_player_user_py", "label": "player_user.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "player_user_playeruser", "label": "PlayerUser", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L7", "complexity": 3, "loc": 31}, {"id": "player_user_playeruser_repr", "label": ".__repr__()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L25", "complexity": 1, "loc": 3}, {"id": "player_user_playeruser_to_dict", "label": ".to_dict()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L29", "complexity": 3, "loc": 9}, {"id": "player_user_rationale_1", "label": "Player user model for managing user codes and names.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L1"}, {"id": "player_user_rationale_8", "label": "Player user model for managing user codes and names globally. Attribute", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L8"}, {"id": "player_user_rationale_26", "label": "String representation of PlayerUser.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L26"}, {"id": "player_user_rationale_30", "label": "Convert to dictionary for API responses.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L30"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_models_player_user_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_user_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_player_user_py", "target": "player_user_playeruser", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L7", "weight": 1.0}, {"source": "player_user_playeruser", "target": "player_user_playeruser_repr", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L25", "weight": 1.0}, {"source": "player_user_playeruser", "target": "player_user_playeruser_to_dict", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L29", "weight": 1.0}, {"source": "player_user_rationale_1", "target": "home_scheianu_digiserver_v2_app_models_player_user_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L1", "weight": 1.0}, {"source": "player_user_rationale_8", "target": "player_user_playeruser", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L8", "weight": 1.0}, {"source": "player_user_rationale_26", "target": "player_user_playeruser_repr", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L26", "weight": 1.0}, {"source": "player_user_rationale_30", "target": "player_user_playeruser_to_dict", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L30", "weight": 1.0}], "raw_calls": [{"caller_nid": "player_user_playeruser_to_dict", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L35"}, {"caller_nid": "player_user_playeruser_to_dict", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", "source_location": "L36"}]} \ No newline at end of file diff --git a/graphify-out/cache/94b871546d6e8026e3724312a5df840b7e41201dd7eaeb689b6f76385a43d9fa.json b/graphify-out/cache/94b871546d6e8026e3724312a5df840b7e41201dd7eaeb689b6f76385a43d9fa.json new file mode 100644 index 0000000..070baa2 --- /dev/null +++ b/graphify-out/cache/94b871546d6e8026e3724312a5df840b7e41201dd7eaeb689b6f76385a43d9fa.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_blueprints_main_py", "label": "main.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "main_dashboard", "label": "dashboard()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L19", "complexity": 4, "loc": 27}, {"id": "main_health", "label": "health()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L49", "complexity": 3, "loc": 32}, {"id": "main_rationale_1", "label": "Main Blueprint - Dashboard and Home Routes", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L1"}, {"id": "main_rationale_50", "label": "Health check endpoint", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L50"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_blueprints_main_py", "target": "flask", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_main_py", "target": "flask_login", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_main_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_main_py", "target": "app_models_player", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_main_py", "target": "app_models_playlist", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_main_py", "target": "app_models_content", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L9", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_main_py", "target": "app_utils_logger", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L10", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_main_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L11", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_main_py", "target": "main_dashboard", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L19", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_main_py", "target": "main_health", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L49", "weight": 1.0}, {"source": "main_rationale_1", "target": "home_scheianu_digiserver_v2_app_blueprints_main_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L1", "weight": 1.0}, {"source": "main_rationale_50", "target": "main_health", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L50", "weight": 1.0}], "raw_calls": [{"caller_nid": "main_dashboard", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L22"}, {"caller_nid": "main_dashboard", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L23"}, {"caller_nid": "main_dashboard", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L24"}, {"caller_nid": "main_dashboard", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L27"}, {"caller_nid": "main_dashboard", "callee": "dirname", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L27"}, {"caller_nid": "main_dashboard", "callee": "dirname", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L27"}, {"caller_nid": "main_dashboard", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L29"}, {"caller_nid": "main_dashboard", "callee": "listdir", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L30"}, {"caller_nid": "main_dashboard", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L31"}, {"caller_nid": "main_dashboard", "callee": "isfile", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L32"}, {"caller_nid": "main_dashboard", "callee": "getsize", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L33"}, {"caller_nid": "main_dashboard", "callee": "round", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L34"}, {"caller_nid": "main_dashboard", "callee": "get_recent_logs", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L36"}, {"caller_nid": "main_dashboard", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L38"}, {"caller_nid": "main_health", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L56"}, {"caller_nid": "main_health", "callee": "text", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L56"}, {"caller_nid": "main_health", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L59"}, {"caller_nid": "main_health", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L64"}, {"caller_nid": "main_health", "callee": "statvfs", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L65"}, {"caller_nid": "main_health", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L70"}, {"caller_nid": "main_health", "callee": "round", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L73"}, {"caller_nid": "main_health", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L77"}, {"caller_nid": "main_health", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", "source_location": "L79"}]} \ No newline at end of file diff --git a/graphify-out/cache/95225fa585aaaa6930654f195820f5f5a55452aface45bd4bfadfae2b3a8f88e.json b/graphify-out/cache/95225fa585aaaa6930654f195820f5f5a55452aface45bd4bfadfae2b3a8f88e.json new file mode 100644 index 0000000..89679a8 --- /dev/null +++ b/graphify-out/cache/95225fa585aaaa6930654f195820f5f5a55452aface45bd4bfadfae2b3a8f88e.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py", "label": "nginx_config_reader.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "nginx_config_reader_nginxconfigreader", "label": "NginxConfigReader", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L7", "complexity": 16, "loc": 108}, {"id": "nginx_config_reader_nginxconfigreader_init", "label": ".__init__()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L10", "complexity": 3, "loc": 13}, {"id": "nginx_config_reader_nginxconfigreader_get_status", "label": ".get_status()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L24", "complexity": 2, "loc": 22}, {"id": "nginx_config_reader_nginxconfigreader_check_ssl_enabled", "label": "._check_ssl_enabled()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L47", "complexity": 2, "loc": 5}, {"id": "nginx_config_reader_nginxconfigreader_extract_http_ports", "label": "._extract_http_ports()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L53", "complexity": 2, "loc": 7}, {"id": "nginx_config_reader_nginxconfigreader_extract_https_ports", "label": "._extract_https_ports()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L61", "complexity": 2, "loc": 7}, {"id": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", "label": "._extract_upstream_servers()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L69", "complexity": 3, "loc": 10}, {"id": "nginx_config_reader_nginxconfigreader_extract_server_names", "label": "._extract_server_names()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L80", "complexity": 3, "loc": 11}, {"id": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", "label": "._extract_ssl_protocols()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L92", "complexity": 3, "loc": 9}, {"id": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", "label": "._extract_client_max_body_size()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L102", "complexity": 3, "loc": 7}, {"id": "nginx_config_reader_nginxconfigreader_check_gzip_enabled", "label": "._check_gzip_enabled()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L110", "complexity": 2, "loc": 5}, {"id": "nginx_config_reader_get_nginx_status", "label": "get_nginx_status()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L117", "complexity": 1, "loc": 4}, {"id": "nginx_config_reader_rationale_1", "label": "Nginx configuration reader utility.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L1"}, {"id": "nginx_config_reader_rationale_8", "label": "Read and parse Nginx configuration files.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L8"}, {"id": "nginx_config_reader_rationale_11", "label": "Initialize Nginx config reader.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L11"}, {"id": "nginx_config_reader_rationale_25", "label": "Get Nginx configuration status.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L25"}, {"id": "nginx_config_reader_rationale_48", "label": "Check if SSL is enabled.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L48"}, {"id": "nginx_config_reader_rationale_54", "label": "Extract HTTP listening ports.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L54"}, {"id": "nginx_config_reader_rationale_62", "label": "Extract HTTPS listening ports.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L62"}, {"id": "nginx_config_reader_rationale_70", "label": "Extract upstream servers.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L70"}, {"id": "nginx_config_reader_rationale_81", "label": "Extract server names.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L81"}, {"id": "nginx_config_reader_rationale_93", "label": "Extract SSL protocols.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L93"}, {"id": "nginx_config_reader_rationale_103", "label": "Extract client max body size.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L103"}, {"id": "nginx_config_reader_rationale_111", "label": "Check if gzip is enabled.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L111"}, {"id": "nginx_config_reader_rationale_118", "label": "Get Nginx configuration status.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L118"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py", "target": "re", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py", "target": "nginx_config_reader_nginxconfigreader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L7", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader", "target": "nginx_config_reader_nginxconfigreader_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L10", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader", "target": "nginx_config_reader_nginxconfigreader_get_status", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L24", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader", "target": "nginx_config_reader_nginxconfigreader_check_ssl_enabled", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L47", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader", "target": "nginx_config_reader_nginxconfigreader_extract_http_ports", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L53", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader", "target": "nginx_config_reader_nginxconfigreader_extract_https_ports", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L61", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader", "target": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L69", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader", "target": "nginx_config_reader_nginxconfigreader_extract_server_names", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L80", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader", "target": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L92", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader", "target": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L102", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader", "target": "nginx_config_reader_nginxconfigreader_check_gzip_enabled", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L110", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py", "target": "nginx_config_reader_get_nginx_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L117", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader_get_status", "target": "nginx_config_reader_nginxconfigreader_check_ssl_enabled", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L37", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader_get_status", "target": "nginx_config_reader_nginxconfigreader_extract_http_ports", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L38", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader_get_status", "target": "nginx_config_reader_nginxconfigreader_extract_https_ports", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L39", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader_get_status", "target": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L40", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader_get_status", "target": "nginx_config_reader_nginxconfigreader_extract_server_names", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L41", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader_get_status", "target": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L42", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader_get_status", "target": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L43", "weight": 1.0}, {"source": "nginx_config_reader_nginxconfigreader_get_status", "target": "nginx_config_reader_nginxconfigreader_check_gzip_enabled", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L44", "weight": 1.0}, {"source": "nginx_config_reader_get_nginx_status", "target": "nginx_config_reader_nginxconfigreader", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L119", "weight": 1.0}, {"source": "nginx_config_reader_get_nginx_status", "target": "nginx_config_reader_nginxconfigreader_get_status", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L120", "weight": 1.0}, {"source": "nginx_config_reader_rationale_1", "target": "home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L1", "weight": 1.0}, {"source": "nginx_config_reader_rationale_8", "target": "nginx_config_reader_nginxconfigreader", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L8", "weight": 1.0}, {"source": "nginx_config_reader_rationale_11", "target": "nginx_config_reader_nginxconfigreader_init", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L11", "weight": 1.0}, {"source": "nginx_config_reader_rationale_25", "target": "nginx_config_reader_nginxconfigreader_get_status", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L25", "weight": 1.0}, {"source": "nginx_config_reader_rationale_48", "target": "nginx_config_reader_nginxconfigreader_check_ssl_enabled", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L48", "weight": 1.0}, {"source": "nginx_config_reader_rationale_54", "target": "nginx_config_reader_nginxconfigreader_extract_http_ports", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L54", "weight": 1.0}, {"source": "nginx_config_reader_rationale_62", "target": "nginx_config_reader_nginxconfigreader_extract_https_ports", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L62", "weight": 1.0}, {"source": "nginx_config_reader_rationale_70", "target": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L70", "weight": 1.0}, {"source": "nginx_config_reader_rationale_81", "target": "nginx_config_reader_nginxconfigreader_extract_server_names", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L81", "weight": 1.0}, {"source": "nginx_config_reader_rationale_93", "target": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L93", "weight": 1.0}, {"source": "nginx_config_reader_rationale_103", "target": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L103", "weight": 1.0}, {"source": "nginx_config_reader_rationale_111", "target": "nginx_config_reader_nginxconfigreader_check_gzip_enabled", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L111", "weight": 1.0}, {"source": "nginx_config_reader_rationale_118", "target": "nginx_config_reader_get_nginx_status", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L118", "weight": 1.0}], "raw_calls": [{"caller_nid": "nginx_config_reader_nginxconfigreader_init", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L14"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_init", "callee": "open", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L18"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_init", "callee": "read", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L19"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_init", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L22"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_get_status", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L36"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_http_ports", "callee": "findall", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L58"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_http_ports", "callee": "sorted", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L59"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_http_ports", "callee": "list", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L59"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_http_ports", "callee": "set", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L59"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_http_ports", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L59"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_http_ports", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L59"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_https_ports", "callee": "findall", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L66"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_https_ports", "callee": "sorted", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L67"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_https_ports", "callee": "list", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L67"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_https_ports", "callee": "set", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L67"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_https_ports", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L67"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", "callee": "search", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L73"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", "callee": "group", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L75"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", "callee": "findall", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L76"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_server_names", "callee": "findall", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L85"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_server_names", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L88"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_server_names", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L88"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_server_names", "callee": "extend", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L89"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", "callee": "search", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L97"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L99"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L99"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", "callee": "group", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L99"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", "callee": "search", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L107"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L108"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", "callee": "group", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L108"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_check_gzip_enabled", "callee": "bool", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L114"}, {"caller_nid": "nginx_config_reader_nginxconfigreader_check_gzip_enabled", "callee": "search", "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", "source_location": "L114"}]} \ No newline at end of file diff --git a/graphify-out/cache/9679855b5811e0c58a1863b53dd94b04fe125bc5350d3a7a71dd56104773cb3d.json b/graphify-out/cache/9679855b5811e0c58a1863b53dd94b04fe125bc5350d3a7a71dd56104773cb3d.json new file mode 100644 index 0000000..c979952 --- /dev/null +++ b/graphify-out/cache/9679855b5811e0c58a1863b53dd94b04fe125bc5350d3a7a71dd56104773cb3d.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_migrations_migrate_player_user_global_py", "label": "migrate_player_user_global.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/migrations/migrate_player_user_global.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "migrate_player_user_global_rationale_1", "label": "Migrate player_user table to remove player_id and make user_code unique globally", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/migrations/migrate_player_user_global.py", "source_location": "L1"}], "edges": [{"source": "home_scheianu_digiserver_v2_migrations_migrate_player_user_global_py", "target": "sys", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/migrate_player_user_global.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_migrate_player_user_global_py", "target": "app_app", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/migrate_player_user_global.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_migrate_player_user_global_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/migrate_player_user_global.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_migrate_player_user_global_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/migrate_player_user_global.py", "source_location": "L7", "weight": 1.0}, {"source": "migrate_player_user_global_rationale_1", "target": "home_scheianu_digiserver_v2_migrations_migrate_player_user_global_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/migrate_player_user_global.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/cache/9e6363e24f41f6353bcf1ce28d815cd8eae43490098b886b401354636a3f48c1.json b/graphify-out/cache/9e6363e24f41f6353bcf1ce28d815cd8eae43490098b886b401354636a3f48c1.json new file mode 100644 index 0000000..beb0795 --- /dev/null +++ b/graphify-out/cache/9e6363e24f41f6353bcf1ce28d815cd8eae43490098b886b401354636a3f48c1.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_migrations_add_original_filename_to_content_py", "label": "add_original_filename_to_content.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/migrations/add_original_filename_to_content.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "add_original_filename_to_content_rationale_1", "label": "Add original_filename column to content table. This preserves the pristine uplo", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/migrations/add_original_filename_to_content.py", "source_location": "L1"}], "edges": [{"source": "home_scheianu_digiserver_v2_migrations_add_original_filename_to_content_py", "target": "sys", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_original_filename_to_content.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_original_filename_to_content_py", "target": "app_app", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_original_filename_to_content.py", "source_location": "L11", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_original_filename_to_content_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_original_filename_to_content.py", "source_location": "L12", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_original_filename_to_content_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_original_filename_to_content.py", "source_location": "L13", "weight": 1.0}, {"source": "add_original_filename_to_content_rationale_1", "target": "home_scheianu_digiserver_v2_migrations_add_original_filename_to_content_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_original_filename_to_content.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/cache/9ed6dd2b6b7d5c5732370642e8bbde45777a3e62638e323c54e54a208cc0ceb9.json b/graphify-out/cache/9ed6dd2b6b7d5c5732370642e8bbde45777a3e62638e323c54e54a208cc0ceb9.json new file mode 100644 index 0000000..d31a75d --- /dev/null +++ b/graphify-out/cache/9ed6dd2b6b7d5c5732370642e8bbde45777a3e62638e323c54e54a208cc0ceb9.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "label": "playlist.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "playlist_manage_playlist", "label": "manage_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L18", "complexity": 2, "loc": 11}, {"id": "playlist_add_to_playlist", "label": "add_to_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L33", "complexity": 4, "loc": 51}, {"id": "playlist_remove_from_playlist", "label": "remove_from_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L88", "complexity": 4, "loc": 51}, {"id": "playlist_reorder_playlist", "label": "reorder_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L143", "complexity": 5, "loc": 43}, {"id": "playlist_update_duration", "label": "update_duration()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L190", "complexity": 4, "loc": 41}, {"id": "playlist_update_muted", "label": "update_muted()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L235", "complexity": 3, "loc": 39}, {"id": "playlist_clear_playlist", "label": "clear_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L278", "complexity": 3, "loc": 33}, {"id": "playlist_rationale_1", "label": "Playlist blueprint for managing player playlists.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L1"}, {"id": "playlist_rationale_19", "label": "Legacy route - redirect to new content management area.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L19"}, {"id": "playlist_rationale_34", "label": "Add content to player's playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L34"}, {"id": "playlist_rationale_89", "label": "Remove content from player's playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L89"}, {"id": "playlist_rationale_144", "label": "Reorder playlist items.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L144"}, {"id": "playlist_rationale_191", "label": "Update content duration in playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L191"}, {"id": "playlist_rationale_236", "label": "Update content muted setting in playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L236"}, {"id": "playlist_rationale_279", "label": "Clear all content from player's playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L279"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "flask", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "flask_login", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "app_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L9", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "app_models_playlist", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L10", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "app_utils_logger", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L11", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "playlist_manage_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L18", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "playlist_add_to_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L33", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "playlist_remove_from_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L88", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "playlist_reorder_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L143", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "playlist_update_duration", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L190", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "playlist_update_muted", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L235", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "target": "playlist_clear_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L278", "weight": 1.0}, {"source": "playlist_rationale_1", "target": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L1", "weight": 1.0}, {"source": "playlist_rationale_19", "target": "playlist_manage_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L19", "weight": 1.0}, {"source": "playlist_rationale_34", "target": "playlist_add_to_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L34", "weight": 1.0}, {"source": "playlist_rationale_89", "target": "playlist_remove_from_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L89", "weight": 1.0}, {"source": "playlist_rationale_144", "target": "playlist_reorder_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L144", "weight": 1.0}, {"source": "playlist_rationale_191", "target": "playlist_update_duration", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L191", "weight": 1.0}, {"source": "playlist_rationale_236", "target": "playlist_update_muted", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L236", "weight": 1.0}, {"source": "playlist_rationale_279", "target": "playlist_clear_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L279", "weight": 1.0}], "raw_calls": [{"caller_nid": "playlist_manage_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L20"}, {"caller_nid": "playlist_manage_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L24"}, {"caller_nid": "playlist_manage_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L24"}, {"caller_nid": "playlist_manage_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L27"}, {"caller_nid": "playlist_manage_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L28"}, {"caller_nid": "playlist_manage_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L28"}, {"caller_nid": "playlist_add_to_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L35"}, {"caller_nid": "playlist_add_to_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L38"}, {"caller_nid": "playlist_add_to_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L39"}, {"caller_nid": "playlist_add_to_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L39"}, {"caller_nid": "playlist_add_to_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L42"}, {"caller_nid": "playlist_add_to_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L43"}, {"caller_nid": "playlist_add_to_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L46"}, {"caller_nid": "playlist_add_to_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L47"}, {"caller_nid": "playlist_add_to_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L47"}, {"caller_nid": "playlist_add_to_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L49"}, {"caller_nid": "playlist_add_to_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L50"}, {"caller_nid": "playlist_add_to_playlist", "callee": "scalar", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L54"}, {"caller_nid": "playlist_add_to_playlist", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L54"}, {"caller_nid": "playlist_add_to_playlist", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L55"}, {"caller_nid": "playlist_add_to_playlist", "callee": "select", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L55"}, {"caller_nid": "playlist_add_to_playlist", "callee": "max", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L55"}, {"caller_nid": "playlist_add_to_playlist", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L61"}, {"caller_nid": "playlist_add_to_playlist", "callee": "insert", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L61"}, {"caller_nid": "playlist_add_to_playlist", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L67"}, {"caller_nid": "playlist_add_to_playlist", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L70"}, {"caller_nid": "playlist_add_to_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L72"}, {"caller_nid": "playlist_add_to_playlist", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L73"}, {"caller_nid": "playlist_add_to_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L75"}, {"caller_nid": "playlist_add_to_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L76"}, {"caller_nid": "playlist_add_to_playlist", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L79"}, {"caller_nid": "playlist_add_to_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L80"}, {"caller_nid": "playlist_add_to_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L80"}, {"caller_nid": "playlist_add_to_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L81"}, {"caller_nid": "playlist_add_to_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L83"}, {"caller_nid": "playlist_add_to_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L83"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L90"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L93"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L94"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L94"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L97"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L98"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L103"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L103"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L107"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "fetchall", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L111"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L111"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L112"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L112"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "select", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L112"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "enumerate", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L117"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L118"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L118"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "update", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L118"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L122"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L125"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L127"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L128"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L130"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L131"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L134"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L135"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L135"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L136"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L138"}, {"caller_nid": "playlist_remove_from_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L138"}, {"caller_nid": "playlist_reorder_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L145"}, {"caller_nid": "playlist_reorder_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L148"}, {"caller_nid": "playlist_reorder_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L151"}, {"caller_nid": "playlist_reorder_playlist", "callee": "get_json", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L154"}, {"caller_nid": "playlist_reorder_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L155"}, {"caller_nid": "playlist_reorder_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L158"}, {"caller_nid": "playlist_reorder_playlist", "callee": "enumerate", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L161"}, {"caller_nid": "playlist_reorder_playlist", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L162"}, {"caller_nid": "playlist_reorder_playlist", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L162"}, {"caller_nid": "playlist_reorder_playlist", "callee": "update", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L162"}, {"caller_nid": "playlist_reorder_playlist", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L166"}, {"caller_nid": "playlist_reorder_playlist", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L169"}, {"caller_nid": "playlist_reorder_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L171"}, {"caller_nid": "playlist_reorder_playlist", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L172"}, {"caller_nid": "playlist_reorder_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L174"}, {"caller_nid": "playlist_reorder_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L176"}, {"caller_nid": "playlist_reorder_playlist", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L183"}, {"caller_nid": "playlist_reorder_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L184"}, {"caller_nid": "playlist_reorder_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L184"}, {"caller_nid": "playlist_reorder_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L185"}, {"caller_nid": "playlist_reorder_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L185"}, {"caller_nid": "playlist_update_duration", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L192"}, {"caller_nid": "playlist_update_duration", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L195"}, {"caller_nid": "playlist_update_duration", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L198"}, {"caller_nid": "playlist_update_duration", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L199"}, {"caller_nid": "playlist_update_duration", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L201"}, {"caller_nid": "playlist_update_duration", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L204"}, {"caller_nid": "playlist_update_duration", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L207"}, {"caller_nid": "playlist_update_duration", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L207"}, {"caller_nid": "playlist_update_duration", "callee": "update", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L207"}, {"caller_nid": "playlist_update_duration", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L211"}, {"caller_nid": "playlist_update_duration", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L214"}, {"caller_nid": "playlist_update_duration", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L216"}, {"caller_nid": "playlist_update_duration", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L217"}, {"caller_nid": "playlist_update_duration", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L219"}, {"caller_nid": "playlist_update_duration", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L221"}, {"caller_nid": "playlist_update_duration", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L228"}, {"caller_nid": "playlist_update_duration", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L229"}, {"caller_nid": "playlist_update_duration", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L229"}, {"caller_nid": "playlist_update_duration", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L230"}, {"caller_nid": "playlist_update_duration", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L230"}, {"caller_nid": "playlist_update_muted", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L237"}, {"caller_nid": "playlist_update_muted", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L240"}, {"caller_nid": "playlist_update_muted", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L243"}, {"caller_nid": "playlist_update_muted", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L244"}, {"caller_nid": "playlist_update_muted", "callee": "lower", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L246"}, {"caller_nid": "playlist_update_muted", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L246"}, {"caller_nid": "playlist_update_muted", "callee": "values", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L249"}, {"caller_nid": "playlist_update_muted", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L249"}, {"caller_nid": "playlist_update_muted", "callee": "update", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L249"}, {"caller_nid": "playlist_update_muted", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L253"}, {"caller_nid": "playlist_update_muted", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L256"}, {"caller_nid": "playlist_update_muted", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L258"}, {"caller_nid": "playlist_update_muted", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L259"}, {"caller_nid": "playlist_update_muted", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L261"}, {"caller_nid": "playlist_update_muted", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L263"}, {"caller_nid": "playlist_update_muted", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L271"}, {"caller_nid": "playlist_update_muted", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L272"}, {"caller_nid": "playlist_update_muted", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L272"}, {"caller_nid": "playlist_update_muted", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L273"}, {"caller_nid": "playlist_update_muted", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L273"}, {"caller_nid": "playlist_clear_playlist", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L280"}, {"caller_nid": "playlist_clear_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L283"}, {"caller_nid": "playlist_clear_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L284"}, {"caller_nid": "playlist_clear_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L284"}, {"caller_nid": "playlist_clear_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L287"}, {"caller_nid": "playlist_clear_playlist", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L291"}, {"caller_nid": "playlist_clear_playlist", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L291"}, {"caller_nid": "playlist_clear_playlist", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L294"}, {"caller_nid": "playlist_clear_playlist", "callee": "increment_version", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L297"}, {"caller_nid": "playlist_clear_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L299"}, {"caller_nid": "playlist_clear_playlist", "callee": "clear", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L300"}, {"caller_nid": "playlist_clear_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L302"}, {"caller_nid": "playlist_clear_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L303"}, {"caller_nid": "playlist_clear_playlist", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L306"}, {"caller_nid": "playlist_clear_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L307"}, {"caller_nid": "playlist_clear_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L307"}, {"caller_nid": "playlist_clear_playlist", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L308"}, {"caller_nid": "playlist_clear_playlist", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L310"}, {"caller_nid": "playlist_clear_playlist", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", "source_location": "L310"}]} \ No newline at end of file diff --git a/graphify-out/cache/ad7bb5459ac32cdb614600426f4867f8407bc53a7da9b984cb11f650ec4e6cdc.json b/graphify-out/cache/ad7bb5459ac32cdb614600426f4867f8407bc53a7da9b984cb11f650ec4e6cdc.json new file mode 100644 index 0000000..649dbc9 --- /dev/null +++ b/graphify-out/cache/ad7bb5459ac32cdb614600426f4867f8407bc53a7da9b984cb11f650ec4e6cdc.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_models_content_py", "label": "content.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "content_content", "label": "Content", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L8", "complexity": 4, "loc": 111}, {"id": "content_content_repr", "label": ".__repr__()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L44", "complexity": 1, "loc": 3}, {"id": "content_file_size_mb", "label": "file_size_mb()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L49", "complexity": 2, "loc": 5}, {"id": "content_group_count", "label": "group_count()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L56", "complexity": 1, "loc": 3}, {"id": "content_original_display_name", "label": "original_display_name()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L61", "complexity": 1, "loc": 3}, {"id": "content_original_media_path", "label": "original_media_path()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L66", "complexity": 2, "loc": 10}, {"id": "content_current_media_path", "label": "current_media_path()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L78", "complexity": 1, "loc": 3}, {"id": "content_content_is_image", "label": ".is_image()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L82", "complexity": 1, "loc": 3}, {"id": "content_content_is_video", "label": ".is_video()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L86", "complexity": 1, "loc": 3}, {"id": "content_content_is_pdf", "label": ".is_pdf()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L90", "complexity": 1, "loc": 3}, {"id": "content_content_is_weblink", "label": ".is_weblink()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L94", "complexity": 1, "loc": 3}, {"id": "content_has_player_edits", "label": "has_player_edits()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L99", "complexity": 1, "loc": 3}, {"id": "content_rationale_1", "label": "Content model for media files.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L1"}, {"id": "content_rationale_9", "label": "Content model representing media files for display. Attributes:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L9"}, {"id": "content_rationale_45", "label": "String representation of Content.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L45"}, {"id": "content_rationale_50", "label": "Get file size in megabytes.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L50"}, {"id": "content_rationale_57", "label": "Get number of groups containing this content.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L57"}, {"id": "content_rationale_62", "label": "Name of the original (unedited) file for display purposes.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L62"}, {"id": "content_rationale_67", "label": "Path (relative to uploads/) where the original unedited file lives. Whe", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L67"}, {"id": "content_rationale_79", "label": "Path (relative to uploads/) of the current/latest version to display.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L79"}, {"id": "content_rationale_83", "label": "Check if content is an image.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L83"}, {"id": "content_rationale_87", "label": "Check if content is a video.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L87"}, {"id": "content_rationale_91", "label": "Check if content is a PDF.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L91"}, {"id": "content_rationale_95", "label": "Check if content is a web link (URL) rather than an uploaded file.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L95"}, {"id": "content_rationale_100", "label": "Whether this content has been edited on a player.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L100"}, {"id": "content_rationale_105", "label": "Display name of the original (unedited) file.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L105"}, {"id": "content_rationale_110", "label": "uploads/-relative path of the pristine original file. After a player ed", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L110"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_models_content_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_content_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_content_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_content_py", "target": "content_content", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L8", "weight": 1.0}, {"source": "content_content", "target": "content_content_repr", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L44", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_content_py", "target": "content_file_size_mb", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L49", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_content_py", "target": "content_group_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L56", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_content_py", "target": "content_original_display_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L61", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_content_py", "target": "content_original_media_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L66", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_content_py", "target": "content_current_media_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L78", "weight": 1.0}, {"source": "content_content", "target": "content_content_is_image", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L82", "weight": 1.0}, {"source": "content_content", "target": "content_content_is_video", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L86", "weight": 1.0}, {"source": "content_content", "target": "content_content_is_pdf", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L90", "weight": 1.0}, {"source": "content_content", "target": "content_content_is_weblink", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L94", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_content_py", "target": "content_has_player_edits", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L99", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_content_py", "target": "content_original_display_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L104", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_content_py", "target": "content_original_media_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L109", "weight": 1.0}, {"source": "content_rationale_1", "target": "home_scheianu_digiserver_v2_app_models_content_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L1", "weight": 1.0}, {"source": "content_rationale_9", "target": "content_content", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L9", "weight": 1.0}, {"source": "content_rationale_45", "target": "content_content_repr", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L45", "weight": 1.0}, {"source": "content_rationale_50", "target": "content_content_file_size_mb", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L50", "weight": 1.0}, {"source": "content_rationale_57", "target": "content_content_group_count", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L57", "weight": 1.0}, {"source": "content_rationale_62", "target": "content_content_original_display_name", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L62", "weight": 1.0}, {"source": "content_rationale_67", "target": "content_content_original_media_path", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L67", "weight": 1.0}, {"source": "content_rationale_79", "target": "content_content_current_media_path", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L79", "weight": 1.0}, {"source": "content_rationale_83", "target": "content_content_is_image", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L83", "weight": 1.0}, {"source": "content_rationale_87", "target": "content_content_is_video", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L87", "weight": 1.0}, {"source": "content_rationale_91", "target": "content_content_is_pdf", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L91", "weight": 1.0}, {"source": "content_rationale_95", "target": "content_content_is_weblink", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L95", "weight": 1.0}, {"source": "content_rationale_100", "target": "content_content_has_player_edits", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L100", "weight": 1.0}, {"source": "content_rationale_105", "target": "content_content_original_display_name", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L105", "weight": 1.0}, {"source": "content_rationale_110", "target": "content_content_original_media_path", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L110", "weight": 1.0}], "raw_calls": [{"caller_nid": "content_file_size_mb", "callee": "round", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L52"}, {"caller_nid": "content_group_count", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L58"}, {"caller_nid": "content_has_player_edits", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", "source_location": "L101"}]} \ No newline at end of file diff --git a/graphify-out/cache/aee7b0072c56a7ac40e1f9b6edeb91decd6905add26d7d70339490f61c6ed55e.json b/graphify-out/cache/aee7b0072c56a7ac40e1f9b6edeb91decd6905add26d7d70339490f61c6ed55e.json new file mode 100644 index 0000000..05a70e1 --- /dev/null +++ b/graphify-out/cache/aee7b0072c56a7ac40e1f9b6edeb91decd6905add26d7d70339490f61c6ed55e.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_blueprints_api_py", "label": "api.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "api_rate_limit", "label": "rate_limit()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L21", "complexity": 4, "loc": 41}, {"id": "api_verify_player_auth", "label": "verify_player_auth()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L64", "complexity": 3, "loc": 23}, {"id": "api_health_check", "label": "health_check()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L90", "complexity": 1, "loc": 7}, {"id": "api_get_server_certificate", "label": "get_server_certificate()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L100", "complexity": 1, "loc": 3}, {"id": "api_authenticate_player", "label": "authenticate_player()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L107", "complexity": 5, "loc": 52}, {"id": "api_verify_auth_code", "label": "verify_auth_code()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L163", "complexity": 4, "loc": 40}, {"id": "api_get_playlist_by_quickconnect", "label": "get_playlist_by_quickconnect()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L207", "complexity": 8, "loc": 93}, {"id": "api_get_player_playlist", "label": "get_player_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L305", "complexity": 5, "loc": 39}, {"id": "api_get_playlist_version", "label": "get_playlist_version()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L349", "complexity": 3, "loc": 26}, {"id": "api_get_cached_playlist", "label": "get_cached_playlist()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L378", "complexity": 6, "loc": 47}, {"id": "api_receive_player_feedback", "label": "receive_player_feedback()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L429", "complexity": 13, "loc": 107}, {"id": "api_get_player_status", "label": "get_player_status()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L540", "complexity": 5, "loc": 33}, {"id": "api_get_upload_progress", "label": "get_upload_progress()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L577", "complexity": 2, "loc": 10}, {"id": "api_system_info", "label": "system_info()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L591", "complexity": 2, "loc": 31}, {"id": "api_list_content", "label": "list_content()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L655", "complexity": 3, "loc": 25}, {"id": "api_get_logs", "label": "get_logs()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L684", "complexity": 6, "loc": 47}, {"id": "api_receive_edited_media", "label": "receive_edited_media()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L736", "complexity": 25, "loc": 192}, {"id": "api_test_ssh_connection", "label": "test_ssh_connection()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L936", "complexity": 5, "loc": 40}, {"id": "api_deploy_player", "label": "deploy_player()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L980", "complexity": 6, "loc": 66}, {"id": "api_api_not_found", "label": "api_not_found()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1049", "complexity": 1, "loc": 3}, {"id": "api_method_not_allowed", "label": "method_not_allowed()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1055", "complexity": 1, "loc": 3}, {"id": "api_internal_error", "label": "internal_error()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1061", "complexity": 1, "loc": 3}, {"id": "api_rationale_1", "label": "API blueprint for REST endpoints and player communication.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1"}, {"id": "api_rationale_22", "label": "Rate limiting decorator. Args: max_requests: Maximum number of", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L22"}, {"id": "api_rationale_65", "label": "Decorator to verify player authentication via auth code.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L65"}, {"id": "api_rationale_91", "label": "API health check endpoint.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L91"}, {"id": "api_rationale_101", "label": "Get server SSL certificate.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L101"}, {"id": "api_rationale_108", "label": "Authenticate a player and return auth code and configuration. Request J", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L108"}, {"id": "api_rationale_164", "label": "Verify an auth code and return player information. Request JSON:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L164"}, {"id": "api_rationale_208", "label": "Get playlist using hostname and quickconnect code (Kivy player compatible).", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L208"}, {"id": "api_rationale_306", "label": "Get playlist for a specific player. Requires player authentication via", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L306"}, {"id": "api_rationale_350", "label": "Get current playlist version for a player. Lightweight endpoint for pla", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L350"}, {"id": "api_rationale_379", "label": "Get cached playlist for a player based on assigned playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L379"}, {"id": "api_rationale_430", "label": "Receive feedback/status updates from players (Kivy player compatible).", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L430"}, {"id": "api_rationale_541", "label": "Get current status of a player (public endpoint for monitoring).", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L541"}, {"id": "api_rationale_578", "label": "Get progress of a file upload.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L578"}, {"id": "api_rationale_592", "label": "Get system information and statistics.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L592"}, {"id": "api_rationale_656", "label": "List all content with basic information.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L656"}, {"id": "api_rationale_685", "label": "Get recent server logs. Query parameters: limit: Number of logs", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L685"}, {"id": "api_rationale_737", "label": "Receive edited media from player. Expected multipart/form-data: - i", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L737"}, {"id": "api_rationale_937", "label": "Test SSH connection to a remote host. Request JSON: hostname: T", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L937"}, {"id": "api_rationale_981", "label": "Deploy player code to a remote host via SSH. Request JSON: host", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L981"}, {"id": "api_rationale_1050", "label": "Handle 404 errors in API.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1050"}, {"id": "api_rationale_1056", "label": "Handle 405 errors in API.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1056"}, {"id": "api_rationale_1062", "label": "Handle 500 errors in API.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1062"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "flask", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "functools", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "secrets", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "hashlib", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "bcrypt", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L10", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "app_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L11", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "app_utils_logger", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L12", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_rate_limit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L21", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_verify_player_auth", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L64", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_health_check", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L90", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_get_server_certificate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L100", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_authenticate_player", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L107", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_verify_auth_code", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L163", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_get_playlist_by_quickconnect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L207", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_get_player_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L305", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_get_playlist_version", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L349", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_get_cached_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L378", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_receive_player_feedback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L429", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_get_player_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L540", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_get_upload_progress", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L577", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_system_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L591", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_list_content", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L655", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_get_logs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L684", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_receive_edited_media", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L736", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_test_ssh_connection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L936", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_deploy_player", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L980", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_api_not_found", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1049", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_method_not_allowed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1055", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_blueprints_api_py", "target": "api_internal_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1061", "weight": 1.0}, {"source": "api_get_playlist_by_quickconnect", "target": "api_get_cached_playlist", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L260", "weight": 1.0}, {"source": "api_get_player_playlist", "target": "api_get_cached_playlist", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L318", "weight": 1.0}, {"source": "api_rationale_1", "target": "home_scheianu_digiserver_v2_app_blueprints_api_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1", "weight": 1.0}, {"source": "api_rationale_22", "target": "api_rate_limit", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L22", "weight": 1.0}, {"source": "api_rationale_65", "target": "api_verify_player_auth", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L65", "weight": 1.0}, {"source": "api_rationale_91", "target": "api_health_check", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L91", "weight": 1.0}, {"source": "api_rationale_101", "target": "api_get_server_certificate", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L101", "weight": 1.0}, {"source": "api_rationale_108", "target": "api_authenticate_player", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L108", "weight": 1.0}, {"source": "api_rationale_164", "target": "api_verify_auth_code", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L164", "weight": 1.0}, {"source": "api_rationale_208", "target": "api_get_playlist_by_quickconnect", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L208", "weight": 1.0}, {"source": "api_rationale_306", "target": "api_get_player_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L306", "weight": 1.0}, {"source": "api_rationale_350", "target": "api_get_playlist_version", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L350", "weight": 1.0}, {"source": "api_rationale_379", "target": "api_get_cached_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L379", "weight": 1.0}, {"source": "api_rationale_430", "target": "api_receive_player_feedback", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L430", "weight": 1.0}, {"source": "api_rationale_541", "target": "api_get_player_status", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L541", "weight": 1.0}, {"source": "api_rationale_578", "target": "api_get_upload_progress", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L578", "weight": 1.0}, {"source": "api_rationale_592", "target": "api_system_info", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L592", "weight": 1.0}, {"source": "api_rationale_656", "target": "api_list_content", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L656", "weight": 1.0}, {"source": "api_rationale_685", "target": "api_get_logs", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L685", "weight": 1.0}, {"source": "api_rationale_737", "target": "api_receive_edited_media", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L737", "weight": 1.0}, {"source": "api_rationale_937", "target": "api_test_ssh_connection", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L937", "weight": 1.0}, {"source": "api_rationale_981", "target": "api_deploy_player", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L981", "weight": 1.0}, {"source": "api_rationale_1050", "target": "api_api_not_found", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1050", "weight": 1.0}, {"source": "api_rationale_1056", "target": "api_method_not_allowed", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1056", "weight": 1.0}, {"source": "api_rationale_1062", "target": "api_internal_error", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1062", "weight": 1.0}], "raw_calls": [{"caller_nid": "api_verify_player_auth", "callee": "wraps", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L66"}, {"caller_nid": "api_health_check", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L92"}, {"caller_nid": "api_health_check", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L94"}, {"caller_nid": "api_health_check", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L94"}, {"caller_nid": "api_get_server_certificate", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L102"}, {"caller_nid": "api_authenticate_player", "callee": "get_json", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L118"}, {"caller_nid": "api_authenticate_player", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L121"}, {"caller_nid": "api_authenticate_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L123"}, {"caller_nid": "api_authenticate_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L124"}, {"caller_nid": "api_authenticate_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L125"}, {"caller_nid": "api_authenticate_player", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L128"}, {"caller_nid": "api_authenticate_player", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L131"}, {"caller_nid": "api_authenticate_player", "callee": "authenticate", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L134"}, {"caller_nid": "api_authenticate_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L137"}, {"caller_nid": "api_authenticate_player", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L138"}, {"caller_nid": "api_authenticate_player", "callee": "update_status", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L141"}, {"caller_nid": "api_authenticate_player", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L142"}, {"caller_nid": "api_authenticate_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L144"}, {"caller_nid": "api_authenticate_player", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L158"}, {"caller_nid": "api_verify_auth_code", "callee": "get_json", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L172"}, {"caller_nid": "api_verify_auth_code", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L175"}, {"caller_nid": "api_verify_auth_code", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L177"}, {"caller_nid": "api_verify_auth_code", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L180"}, {"caller_nid": "api_verify_auth_code", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L183"}, {"caller_nid": "api_verify_auth_code", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L183"}, {"caller_nid": "api_verify_auth_code", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L186"}, {"caller_nid": "api_verify_auth_code", "callee": "update_status", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L189"}, {"caller_nid": "api_verify_auth_code", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L190"}, {"caller_nid": "api_verify_auth_code", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L202"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L220"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L221"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L224"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L231"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L231"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L234"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L235"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L243"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L244"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "check_quickconnect_code", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L251"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L252"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L253"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L263"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L265"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L271"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "decode", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L276"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "hashpw", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L276"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "encode", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L277"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "gensalt", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L278"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L281"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L283"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L290"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L294"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L294"}, {"caller_nid": "api_get_playlist_by_quickconnect", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L295"}, {"caller_nid": "api_get_player_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L313"}, {"caller_nid": "api_get_player_playlist", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L321"}, {"caller_nid": "api_get_player_playlist", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L322"}, {"caller_nid": "api_get_player_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L328"}, {"caller_nid": "api_get_player_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L332"}, {"caller_nid": "api_get_player_playlist", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L338"}, {"caller_nid": "api_get_player_playlist", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L342"}, {"caller_nid": "api_get_player_playlist", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L342"}, {"caller_nid": "api_get_player_playlist", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L343"}, {"caller_nid": "api_get_playlist_version", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L358"}, {"caller_nid": "api_get_playlist_version", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L363"}, {"caller_nid": "api_get_playlist_version", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L364"}, {"caller_nid": "api_get_playlist_version", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L366"}, {"caller_nid": "api_get_playlist_version", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L369"}, {"caller_nid": "api_get_playlist_version", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L369"}, {"caller_nid": "api_get_playlist_version", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L373"}, {"caller_nid": "api_get_playlist_version", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L373"}, {"caller_nid": "api_get_playlist_version", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L374"}, {"caller_nid": "api_get_cached_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L383"}, {"caller_nid": "api_get_cached_playlist", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L388"}, {"caller_nid": "api_get_cached_playlist", "callee": "get_content_ordered", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L393"}, {"caller_nid": "api_get_cached_playlist", "callee": "enumerate", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L397"}, {"caller_nid": "api_get_cached_playlist", "callee": "rstrip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L400"}, {"caller_nid": "api_get_cached_playlist", "callee": "rstrip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L401"}, {"caller_nid": "api_get_cached_playlist", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L408"}, {"caller_nid": "api_get_cached_playlist", "callee": "getattr", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L416"}, {"caller_nid": "api_get_cached_playlist", "callee": "getattr", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L417"}, {"caller_nid": "api_get_cached_playlist", "callee": "getattr", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L421"}, {"caller_nid": "api_receive_player_feedback", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L447"}, {"caller_nid": "api_receive_player_feedback", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L448"}, {"caller_nid": "api_receive_player_feedback", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L450"}, {"caller_nid": "api_receive_player_feedback", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L451"}, {"caller_nid": "api_receive_player_feedback", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L452"}, {"caller_nid": "api_receive_player_feedback", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L457"}, {"caller_nid": "api_receive_player_feedback", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L457"}, {"caller_nid": "api_receive_player_feedback", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L459"}, {"caller_nid": "api_receive_player_feedback", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L459"}, {"caller_nid": "api_receive_player_feedback", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L466"}, {"caller_nid": "api_receive_player_feedback", "callee": "timedelta", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L466"}, {"caller_nid": "api_receive_player_feedback", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L467"}, {"caller_nid": "api_receive_player_feedback", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L467"}, {"caller_nid": "api_receive_player_feedback", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L467"}, {"caller_nid": "api_receive_player_feedback", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L469"}, {"caller_nid": "api_receive_player_feedback", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L473"}, {"caller_nid": "api_receive_player_feedback", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L478"}, {"caller_nid": "api_receive_player_feedback", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L479"}, {"caller_nid": "api_receive_player_feedback", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L481"}, {"caller_nid": "api_receive_player_feedback", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L482"}, {"caller_nid": "api_receive_player_feedback", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L485"}, {"caller_nid": "api_receive_player_feedback", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L486"}, {"caller_nid": "api_receive_player_feedback", "callee": "check_quickconnect_code", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L489"}, {"caller_nid": "api_receive_player_feedback", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L490"}, {"caller_nid": "api_receive_player_feedback", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L491"}, {"caller_nid": "api_receive_player_feedback", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L494"}, {"caller_nid": "api_receive_player_feedback", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L495"}, {"caller_nid": "api_receive_player_feedback", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L496"}, {"caller_nid": "api_receive_player_feedback", "callee": "PlayerFeedback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L498"}, {"caller_nid": "api_receive_player_feedback", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L504"}, {"caller_nid": "api_receive_player_feedback", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L507"}, {"caller_nid": "api_receive_player_feedback", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L520"}, {"caller_nid": "api_receive_player_feedback", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L522"}, {"caller_nid": "api_receive_player_feedback", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L524"}, {"caller_nid": "api_receive_player_feedback", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L526"}, {"caller_nid": "api_receive_player_feedback", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L533"}, {"caller_nid": "api_receive_player_feedback", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L534"}, {"caller_nid": "api_receive_player_feedback", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L534"}, {"caller_nid": "api_receive_player_feedback", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L535"}, {"caller_nid": "api_get_player_status", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L543"}, {"caller_nid": "api_get_player_status", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L546"}, {"caller_nid": "api_get_player_status", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L546"}, {"caller_nid": "api_get_player_status", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L546"}, {"caller_nid": "api_get_player_status", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L547"}, {"caller_nid": "api_get_player_status", "callee": "total_seconds", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L553"}, {"caller_nid": "api_get_player_status", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L553"}, {"caller_nid": "api_get_player_status", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L555"}, {"caller_nid": "api_get_player_status", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L562"}, {"caller_nid": "api_get_player_status", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L566"}, {"caller_nid": "api_get_player_status", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L571"}, {"caller_nid": "api_get_player_status", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L571"}, {"caller_nid": "api_get_player_status", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L572"}, {"caller_nid": "api_get_upload_progress", "callee": "get_progress", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L582"}, {"caller_nid": "api_get_upload_progress", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L583"}, {"caller_nid": "api_get_upload_progress", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L585"}, {"caller_nid": "api_get_upload_progress", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L585"}, {"caller_nid": "api_get_upload_progress", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L586"}, {"caller_nid": "api_system_info", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L595"}, {"caller_nid": "api_system_info", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L596"}, {"caller_nid": "api_system_info", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L597"}, {"caller_nid": "api_system_info", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L600"}, {"caller_nid": "api_system_info", "callee": "timedelta", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L600"}, {"caller_nid": "api_system_info", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L601"}, {"caller_nid": "api_system_info", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L601"}, {"caller_nid": "api_system_info", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L604"}, {"caller_nid": "api_system_info", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L604"}, {"caller_nid": "api_system_info", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L605"}, {"caller_nid": "api_system_info", "callee": "timedelta", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L605"}, {"caller_nid": "api_system_info", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L608"}, {"caller_nid": "api_system_info", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L616"}, {"caller_nid": "api_system_info", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L616"}, {"caller_nid": "api_system_info", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L620"}, {"caller_nid": "api_system_info", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L620"}, {"caller_nid": "api_system_info", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L621"}, {"caller_nid": "api_list_content", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L658"}, {"caller_nid": "api_list_content", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L658"}, {"caller_nid": "api_list_content", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L658"}, {"caller_nid": "api_list_content", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L662"}, {"caller_nid": "api_list_content", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L668"}, {"caller_nid": "api_list_content", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L669"}, {"caller_nid": "api_list_content", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L672"}, {"caller_nid": "api_list_content", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L674"}, {"caller_nid": "api_list_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L678"}, {"caller_nid": "api_list_content", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L678"}, {"caller_nid": "api_list_content", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L679"}, {"caller_nid": "api_get_logs", "callee": "min", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L694"}, {"caller_nid": "api_get_logs", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L694"}, {"caller_nid": "api_get_logs", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L695"}, {"caller_nid": "api_get_logs", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L696"}, {"caller_nid": "api_get_logs", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L702"}, {"caller_nid": "api_get_logs", "callee": "fromisoformat", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L706"}, {"caller_nid": "api_get_logs", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L707"}, {"caller_nid": "api_get_logs", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L709"}, {"caller_nid": "api_get_logs", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L712"}, {"caller_nid": "api_get_logs", "callee": "limit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L712"}, {"caller_nid": "api_get_logs", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L712"}, {"caller_nid": "api_get_logs", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L712"}, {"caller_nid": "api_get_logs", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L716"}, {"caller_nid": "api_get_logs", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L720"}, {"caller_nid": "api_get_logs", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L723"}, {"caller_nid": "api_get_logs", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L725"}, {"caller_nid": "api_get_logs", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L729"}, {"caller_nid": "api_get_logs", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L729"}, {"caller_nid": "api_get_logs", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L730"}, {"caller_nid": "api_receive_edited_media", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L757"}, {"caller_nid": "api_receive_edited_media", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L761"}, {"caller_nid": "api_receive_edited_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L765"}, {"caller_nid": "api_receive_edited_media", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L767"}, {"caller_nid": "api_receive_edited_media", "callee": "loads", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L770"}, {"caller_nid": "api_receive_edited_media", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L772"}, {"caller_nid": "api_receive_edited_media", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L778"}, {"caller_nid": "api_receive_edited_media", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L794"}, {"caller_nid": "api_receive_edited_media", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L794"}, {"caller_nid": "api_receive_edited_media", "callee": "match", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L798"}, {"caller_nid": "api_receive_edited_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L800"}, {"caller_nid": "api_receive_edited_media", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L800"}, {"caller_nid": "api_receive_edited_media", "callee": "group", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L800"}, {"caller_nid": "api_receive_edited_media", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L804"}, {"caller_nid": "api_receive_edited_media", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L804"}, {"caller_nid": "api_receive_edited_media", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L804"}, {"caller_nid": "api_receive_edited_media", "callee": "desc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L805"}, {"caller_nid": "api_receive_edited_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L807"}, {"caller_nid": "api_receive_edited_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L810"}, {"caller_nid": "api_receive_edited_media", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L811"}, {"caller_nid": "api_receive_edited_media", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L814"}, {"caller_nid": "api_receive_edited_media", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L815"}, {"caller_nid": "api_receive_edited_media", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L815"}, {"caller_nid": "api_receive_edited_media", "callee": "makedirs", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L816"}, {"caller_nid": "api_receive_edited_media", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L820"}, {"caller_nid": "api_receive_edited_media", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L820"}, {"caller_nid": "api_receive_edited_media", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L822"}, {"caller_nid": "api_receive_edited_media", "callee": "isfile", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L825"}, {"caller_nid": "api_receive_edited_media", "callee": "startswith", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L825"}, {"caller_nid": "api_receive_edited_media", "callee": "move", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L827"}, {"caller_nid": "api_receive_edited_media", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L827"}, {"caller_nid": "api_receive_edited_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L828"}, {"caller_nid": "api_receive_edited_media", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L831"}, {"caller_nid": "api_receive_edited_media", "callee": "save", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L832"}, {"caller_nid": "api_receive_edited_media", "callee": "splitext", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L835"}, {"caller_nid": "api_receive_edited_media", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L836"}, {"caller_nid": "api_receive_edited_media", "callee": "open", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L837"}, {"caller_nid": "api_receive_edited_media", "callee": "dump", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L838"}, {"caller_nid": "api_receive_edited_media", "callee": "startswith", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L846"}, {"caller_nid": "api_receive_edited_media", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L852"}, {"caller_nid": "api_receive_edited_media", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L852"}, {"caller_nid": "api_receive_edited_media", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L852"}, {"caller_nid": "api_receive_edited_media", "callee": "asc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L853"}, {"caller_nid": "api_receive_edited_media", "callee": "asc", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L853"}, {"caller_nid": "api_receive_edited_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L865"}, {"caller_nid": "api_receive_edited_media", "callee": "fromisoformat", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L867"}, {"caller_nid": "api_receive_edited_media", "callee": "replace", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L867"}, {"caller_nid": "api_receive_edited_media", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L869"}, {"caller_nid": "api_receive_edited_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L872"}, {"caller_nid": "api_receive_edited_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L873"}, {"caller_nid": "api_receive_edited_media", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L876"}, {"caller_nid": "api_receive_edited_media", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L876"}, {"caller_nid": "api_receive_edited_media", "callee": "PlayerUser", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L878"}, {"caller_nid": "api_receive_edited_media", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L879"}, {"caller_nid": "api_receive_edited_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L880"}, {"caller_nid": "api_receive_edited_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L882"}, {"caller_nid": "api_receive_edited_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L884"}, {"caller_nid": "api_receive_edited_media", "callee": "PlayerEdit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L886"}, {"caller_nid": "api_receive_edited_media", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L897"}, {"caller_nid": "api_receive_edited_media", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L903"}, {"caller_nid": "api_receive_edited_media", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L908"}, {"caller_nid": "api_receive_edited_media", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L910"}, {"caller_nid": "api_receive_edited_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L912"}, {"caller_nid": "api_receive_edited_media", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L914"}, {"caller_nid": "api_receive_edited_media", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L925"}, {"caller_nid": "api_receive_edited_media", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L926"}, {"caller_nid": "api_receive_edited_media", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L926"}, {"caller_nid": "api_receive_edited_media", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L927"}, {"caller_nid": "api_test_ssh_connection", "callee": "get_json", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L951"}, {"caller_nid": "api_test_ssh_connection", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L953"}, {"caller_nid": "api_test_ssh_connection", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L955"}, {"caller_nid": "api_test_ssh_connection", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L955"}, {"caller_nid": "api_test_ssh_connection", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L956"}, {"caller_nid": "api_test_ssh_connection", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L956"}, {"caller_nid": "api_test_ssh_connection", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L957"}, {"caller_nid": "api_test_ssh_connection", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L957"}, {"caller_nid": "api_test_ssh_connection", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L958"}, {"caller_nid": "api_test_ssh_connection", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L961"}, {"caller_nid": "api_test_ssh_connection", "callee": "test_ssh", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L963"}, {"caller_nid": "api_test_ssh_connection", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L965"}, {"caller_nid": "api_test_ssh_connection", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L967"}, {"caller_nid": "api_test_ssh_connection", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L970"}, {"caller_nid": "api_test_ssh_connection", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L970"}, {"caller_nid": "api_test_ssh_connection", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L971"}, {"caller_nid": "api_test_ssh_connection", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L973"}, {"caller_nid": "api_test_ssh_connection", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L974"}, {"caller_nid": "api_deploy_player", "callee": "get_json", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L998"}, {"caller_nid": "api_deploy_player", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1000"}, {"caller_nid": "api_deploy_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1002"}, {"caller_nid": "api_deploy_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1002"}, {"caller_nid": "api_deploy_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1003"}, {"caller_nid": "api_deploy_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1003"}, {"caller_nid": "api_deploy_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1004"}, {"caller_nid": "api_deploy_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1004"}, {"caller_nid": "api_deploy_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1005"}, {"caller_nid": "api_deploy_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1005"}, {"caller_nid": "api_deploy_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1006"}, {"caller_nid": "api_deploy_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1007"}, {"caller_nid": "api_deploy_player", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1008"}, {"caller_nid": "api_deploy_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1008"}, {"caller_nid": "api_deploy_player", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1011"}, {"caller_nid": "api_deploy_player", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1014"}, {"caller_nid": "api_deploy_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1016"}, {"caller_nid": "api_deploy_player", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1017"}, {"caller_nid": "api_deploy_player", "callee": "hexdigest", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1020"}, {"caller_nid": "api_deploy_player", "callee": "sha256", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1020"}, {"caller_nid": "api_deploy_player", "callee": "encode", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1020"}, {"caller_nid": "api_deploy_player", "callee": "deploy_player_to_host", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1022"}, {"caller_nid": "api_deploy_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1034"}, {"caller_nid": "api_deploy_player", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1036"}, {"caller_nid": "api_deploy_player", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1039"}, {"caller_nid": "api_deploy_player", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1039"}, {"caller_nid": "api_deploy_player", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1040"}, {"caller_nid": "api_deploy_player", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1042"}, {"caller_nid": "api_deploy_player", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1043"}, {"caller_nid": "api_api_not_found", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1051"}, {"caller_nid": "api_method_not_allowed", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1057"}, {"caller_nid": "api_internal_error", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", "source_location": "L1063"}]} \ No newline at end of file diff --git a/graphify-out/cache/c02348bf53b23706585a139f3c76b042a55b2bfc11993ca93dc3b3d93aff2171.json b/graphify-out/cache/c02348bf53b23706585a139f3c76b042a55b2bfc11993ca93dc3b3d93aff2171.json new file mode 100644 index 0000000..df9c7b2 --- /dev/null +++ b/graphify-out/cache/c02348bf53b23706585a139f3c76b042a55b2bfc11993ca93dc3b3d93aff2171.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "label": "test_edit_media_api.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "test_edit_media_api_colors", "label": "Colors", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L14", "complexity": 1, "loc": 10}, {"id": "test_edit_media_api_print_section", "label": "print_section()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L25", "complexity": 1, "loc": 5}, {"id": "test_edit_media_api_print_success", "label": "print_success()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L31", "complexity": 1, "loc": 2}, {"id": "test_edit_media_api_print_error", "label": "print_error()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L34", "complexity": 1, "loc": 2}, {"id": "test_edit_media_api_print_info", "label": "print_info()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L37", "complexity": 1, "loc": 2}, {"id": "test_edit_media_api_print_warning", "label": "print_warning()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L40", "complexity": 1, "loc": 2}, {"id": "test_edit_media_api_test_server_health", "label": "test_server_health()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L43", "complexity": 3, "loc": 21}, {"id": "test_edit_media_api_test_endpoint_exists", "label": "test_endpoint_exists()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L65", "complexity": 3, "loc": 31}, {"id": "test_edit_media_api_get_player_auth_code", "label": "get_player_auth_code()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L97", "complexity": 4, "loc": 39}, {"id": "test_edit_media_api_get_sample_content", "label": "get_sample_content()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L137", "complexity": 4, "loc": 33}, {"id": "test_edit_media_api_test_authentication", "label": "test_authentication()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L171", "complexity": 3, "loc": 30}, {"id": "test_edit_media_api_test_full_upload", "label": "test_full_upload()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L202", "complexity": 4, "loc": 68}, {"id": "test_edit_media_api_check_database_integrity", "label": "check_database_integrity()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L271", "complexity": 3, "loc": 37}, {"id": "test_edit_media_api_main", "label": "main()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L309", "complexity": 15, "loc": 109}, {"id": "test_edit_media_api_rationale_26", "label": "Print a section header", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L26"}, {"id": "test_edit_media_api_rationale_44", "label": "Test if server is accessible", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L44"}, {"id": "test_edit_media_api_rationale_66", "label": "Test if the endpoint is available", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L66"}, {"id": "test_edit_media_api_rationale_98", "label": "Get a valid player auth code from the database", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L98"}, {"id": "test_edit_media_api_rationale_138", "label": "Get a sample content file to use for testing", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L138"}, {"id": "test_edit_media_api_rationale_172", "label": "Test if authentication works", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L172"}, {"id": "test_edit_media_api_rationale_203", "label": "Test a full media upload", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L203"}, {"id": "test_edit_media_api_rationale_272", "label": "Check database tables and records", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L272"}, {"id": "test_edit_media_api_rationale_310", "label": "Run all diagnostic tests", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L310"}], "edges": [{"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "requests", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "sys", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L9", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L10", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "pathlib", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L11", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "test_edit_media_api_colors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L14", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "test_edit_media_api_print_section", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L25", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "test_edit_media_api_print_success", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L31", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "test_edit_media_api_print_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L34", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "test_edit_media_api_print_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L37", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "test_edit_media_api_print_warning", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L40", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "test_edit_media_api_test_server_health", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L43", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "test_edit_media_api_test_endpoint_exists", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L65", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "test_edit_media_api_get_player_auth_code", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L97", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "test_edit_media_api_get_sample_content", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L137", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "test_edit_media_api_test_authentication", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L171", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "test_edit_media_api_test_full_upload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L202", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "test_edit_media_api_check_database_integrity", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L271", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", "target": "test_edit_media_api_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L309", "weight": 1.0}, {"source": "test_edit_media_api_test_server_health", "target": "test_edit_media_api_print_section", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L45", "weight": 1.0}, {"source": "test_edit_media_api_test_server_health", "target": "test_edit_media_api_print_success", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L50", "weight": 1.0}, {"source": "test_edit_media_api_test_server_health", "target": "test_edit_media_api_print_error", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L56", "weight": 1.0}, {"source": "test_edit_media_api_test_endpoint_exists", "target": "test_edit_media_api_print_section", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L67", "weight": 1.0}, {"source": "test_edit_media_api_test_endpoint_exists", "target": "test_edit_media_api_print_info", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L70", "weight": 1.0}, {"source": "test_edit_media_api_test_endpoint_exists", "target": "test_edit_media_api_print_success", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L76", "weight": 1.0}, {"source": "test_edit_media_api_test_endpoint_exists", "target": "test_edit_media_api_print_error", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L80", "weight": 1.0}, {"source": "test_edit_media_api_test_endpoint_exists", "target": "test_edit_media_api_print_warning", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L83", "weight": 1.0}, {"source": "test_edit_media_api_get_player_auth_code", "target": "test_edit_media_api_print_section", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L99", "weight": 1.0}, {"source": "test_edit_media_api_get_player_auth_code", "target": "test_edit_media_api_print_success", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L113", "weight": 1.0}, {"source": "test_edit_media_api_get_player_auth_code", "target": "test_edit_media_api_print_info", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L114", "weight": 1.0}, {"source": "test_edit_media_api_get_player_auth_code", "target": "test_edit_media_api_print_error", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L126", "weight": 1.0}, {"source": "test_edit_media_api_get_player_auth_code", "target": "test_edit_media_api_print_warning", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L131", "weight": 1.0}, {"source": "test_edit_media_api_get_sample_content", "target": "test_edit_media_api_print_section", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L139", "weight": 1.0}, {"source": "test_edit_media_api_get_sample_content", "target": "test_edit_media_api_print_warning", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L153", "weight": 1.0}, {"source": "test_edit_media_api_get_sample_content", "target": "test_edit_media_api_print_success", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L162", "weight": 1.0}, {"source": "test_edit_media_api_get_sample_content", "target": "test_edit_media_api_print_error", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L168", "weight": 1.0}, {"source": "test_edit_media_api_test_authentication", "target": "test_edit_media_api_print_section", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L173", "weight": 1.0}, {"source": "test_edit_media_api_test_authentication", "target": "test_edit_media_api_print_error", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L184", "weight": 1.0}, {"source": "test_edit_media_api_test_authentication", "target": "test_edit_media_api_print_success", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L188", "weight": 1.0}, {"source": "test_edit_media_api_test_authentication", "target": "test_edit_media_api_print_warning", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L195", "weight": 1.0}, {"source": "test_edit_media_api_test_full_upload", "target": "test_edit_media_api_print_section", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L204", "weight": 1.0}, {"source": "test_edit_media_api_test_full_upload", "target": "test_edit_media_api_print_error", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L207", "weight": 1.0}, {"source": "test_edit_media_api_test_full_upload", "target": "test_edit_media_api_print_info", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L220", "weight": 1.0}, {"source": "test_edit_media_api_test_full_upload", "target": "test_edit_media_api_print_success", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L246", "weight": 1.0}, {"source": "test_edit_media_api_check_database_integrity", "target": "test_edit_media_api_print_section", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L273", "weight": 1.0}, {"source": "test_edit_media_api_check_database_integrity", "target": "test_edit_media_api_print_info", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L284", "weight": 1.0}, {"source": "test_edit_media_api_check_database_integrity", "target": "test_edit_media_api_print_success", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L303", "weight": 1.0}, {"source": "test_edit_media_api_check_database_integrity", "target": "test_edit_media_api_print_error", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L306", "weight": 1.0}, {"source": "test_edit_media_api_main", "target": "test_edit_media_api_print_info", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L324", "weight": 1.0}, {"source": "test_edit_media_api_main", "target": "test_edit_media_api_test_server_health", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L332", "weight": 1.0}, {"source": "test_edit_media_api_main", "target": "test_edit_media_api_print_error", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L336", "weight": 1.0}, {"source": "test_edit_media_api_main", "target": "test_edit_media_api_test_endpoint_exists", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L340", "weight": 1.0}, {"source": "test_edit_media_api_main", "target": "test_edit_media_api_get_player_auth_code", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L348", "weight": 1.0}, {"source": "test_edit_media_api_main", "target": "test_edit_media_api_test_authentication", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L357", "weight": 1.0}, {"source": "test_edit_media_api_main", "target": "test_edit_media_api_get_sample_content", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L364", "weight": 1.0}, {"source": "test_edit_media_api_main", "target": "test_edit_media_api_test_full_upload", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L369", "weight": 1.0}, {"source": "test_edit_media_api_main", "target": "test_edit_media_api_check_database_integrity", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L377", "weight": 1.0}, {"source": "test_edit_media_api_main", "target": "test_edit_media_api_print_section", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L383", "weight": 1.0}, {"source": "test_edit_media_api_main", "target": "test_edit_media_api_print_warning", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L401", "weight": 1.0}, {"source": "test_edit_media_api_rationale_26", "target": "test_edit_media_api_print_section", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L26", "weight": 1.0}, {"source": "test_edit_media_api_rationale_44", "target": "test_edit_media_api_test_server_health", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L44", "weight": 1.0}, {"source": "test_edit_media_api_rationale_66", "target": "test_edit_media_api_test_endpoint_exists", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L66", "weight": 1.0}, {"source": "test_edit_media_api_rationale_98", "target": "test_edit_media_api_get_player_auth_code", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L98", "weight": 1.0}, {"source": "test_edit_media_api_rationale_138", "target": "test_edit_media_api_get_sample_content", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L138", "weight": 1.0}, {"source": "test_edit_media_api_rationale_172", "target": "test_edit_media_api_test_authentication", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L172", "weight": 1.0}, {"source": "test_edit_media_api_rationale_203", "target": "test_edit_media_api_test_full_upload", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L203", "weight": 1.0}, {"source": "test_edit_media_api_rationale_272", "target": "test_edit_media_api_check_database_integrity", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L272", "weight": 1.0}, {"source": "test_edit_media_api_rationale_310", "target": "test_edit_media_api_main", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L310", "weight": 1.0}], "raw_calls": [{"caller_nid": "test_edit_media_api_print_section", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L27"}, {"caller_nid": "test_edit_media_api_print_section", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L28"}, {"caller_nid": "test_edit_media_api_print_section", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L29"}, {"caller_nid": "test_edit_media_api_print_success", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L32"}, {"caller_nid": "test_edit_media_api_print_error", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L35"}, {"caller_nid": "test_edit_media_api_print_info", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L38"}, {"caller_nid": "test_edit_media_api_print_warning", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L41"}, {"caller_nid": "test_edit_media_api_test_server_health", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L48"}, {"caller_nid": "test_edit_media_api_test_server_health", "callee": "json", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L51"}, {"caller_nid": "test_edit_media_api_test_server_health", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L52"}, {"caller_nid": "test_edit_media_api_test_server_health", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L52"}, {"caller_nid": "test_edit_media_api_test_server_health", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L53"}, {"caller_nid": "test_edit_media_api_test_server_health", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L53"}, {"caller_nid": "test_edit_media_api_test_server_health", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L62"}, {"caller_nid": "test_edit_media_api_test_endpoint_exists", "callee": "post", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L74"}, {"caller_nid": "test_edit_media_api_test_endpoint_exists", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L77"}, {"caller_nid": "test_edit_media_api_test_endpoint_exists", "callee": "json", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L77"}, {"caller_nid": "test_edit_media_api_test_endpoint_exists", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L84"}, {"caller_nid": "test_edit_media_api_test_endpoint_exists", "callee": "json", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L84"}, {"caller_nid": "test_edit_media_api_test_endpoint_exists", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L88"}, {"caller_nid": "test_edit_media_api_test_endpoint_exists", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L94"}, {"caller_nid": "test_edit_media_api_get_player_auth_code", "callee": "connect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L106"}, {"caller_nid": "test_edit_media_api_get_player_auth_code", "callee": "cursor", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L107"}, {"caller_nid": "test_edit_media_api_get_player_auth_code", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L108"}, {"caller_nid": "test_edit_media_api_get_player_auth_code", "callee": "fetchone", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L109"}, {"caller_nid": "test_edit_media_api_get_player_auth_code", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L117"}, {"caller_nid": "test_edit_media_api_get_player_auth_code", "callee": "fetchone", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L118"}, {"caller_nid": "test_edit_media_api_get_player_auth_code", "callee": "close", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L123"}, {"caller_nid": "test_edit_media_api_get_player_auth_code", "callee": "close", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L127"}, {"caller_nid": "test_edit_media_api_get_player_auth_code", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L134"}, {"caller_nid": "test_edit_media_api_get_sample_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L145"}, {"caller_nid": "test_edit_media_api_get_sample_content", "callee": "Path", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L155"}, {"caller_nid": "test_edit_media_api_get_sample_content", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L156"}, {"caller_nid": "test_edit_media_api_get_sample_content", "callee": "list", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L158"}, {"caller_nid": "test_edit_media_api_get_sample_content", "callee": "glob", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L158"}, {"caller_nid": "test_edit_media_api_get_sample_content", "callee": "list", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L158"}, {"caller_nid": "test_edit_media_api_get_sample_content", "callee": "glob", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L158"}, {"caller_nid": "test_edit_media_api_get_sample_content", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L168"}, {"caller_nid": "test_edit_media_api_test_authentication", "callee": "post", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L177"}, {"caller_nid": "test_edit_media_api_test_authentication", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L185"}, {"caller_nid": "test_edit_media_api_test_authentication", "callee": "json", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L185"}, {"caller_nid": "test_edit_media_api_test_authentication", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L189"}, {"caller_nid": "test_edit_media_api_test_authentication", "callee": "json", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L189"}, {"caller_nid": "test_edit_media_api_test_authentication", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L196"}, {"caller_nid": "test_edit_media_api_test_authentication", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L199"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "isoformat", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L213"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L213"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L215"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "split", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L215"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L221"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L222"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L223"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "open", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L228"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "dumps", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L231"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "post", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L235"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L242"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "json", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L245"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L247"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "dumps", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L247"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L251"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "json", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L251"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L255"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "json", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L255"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L259"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "json", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L259"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L263"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L266"}, {"caller_nid": "test_edit_media_api_test_full_upload", "callee": "print_exc", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L268"}, {"caller_nid": "test_edit_media_api_check_database_integrity", "callee": "connect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L278"}, {"caller_nid": "test_edit_media_api_check_database_integrity", "callee": "cursor", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L279"}, {"caller_nid": "test_edit_media_api_check_database_integrity", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L282"}, {"caller_nid": "test_edit_media_api_check_database_integrity", "callee": "fetchone", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L283"}, {"caller_nid": "test_edit_media_api_check_database_integrity", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L287"}, {"caller_nid": "test_edit_media_api_check_database_integrity", "callee": "fetchone", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L288"}, {"caller_nid": "test_edit_media_api_check_database_integrity", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L292"}, {"caller_nid": "test_edit_media_api_check_database_integrity", "callee": "fetchone", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L293"}, {"caller_nid": "test_edit_media_api_check_database_integrity", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L298"}, {"caller_nid": "test_edit_media_api_check_database_integrity", "callee": "fetchall", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L299"}, {"caller_nid": "test_edit_media_api_check_database_integrity", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L300"}, {"caller_nid": "test_edit_media_api_check_database_integrity", "callee": "close", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L302"}, {"caller_nid": "test_edit_media_api_check_database_integrity", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L306"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L311"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L312"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L318"}, {"caller_nid": "test_edit_media_api_main", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L333"}, {"caller_nid": "test_edit_media_api_main", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L335"}, {"caller_nid": "test_edit_media_api_main", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L341"}, {"caller_nid": "test_edit_media_api_main", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L343"}, {"caller_nid": "test_edit_media_api_main", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L350"}, {"caller_nid": "test_edit_media_api_main", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L352"}, {"caller_nid": "test_edit_media_api_main", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L358"}, {"caller_nid": "test_edit_media_api_main", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L360"}, {"caller_nid": "test_edit_media_api_main", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L366"}, {"caller_nid": "test_edit_media_api_main", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L370"}, {"caller_nid": "test_edit_media_api_main", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L372"}, {"caller_nid": "test_edit_media_api_main", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L374"}, {"caller_nid": "test_edit_media_api_main", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L378"}, {"caller_nid": "test_edit_media_api_main", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L380"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L386"}, {"caller_nid": "test_edit_media_api_main", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L386"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L388"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L391"}, {"caller_nid": "test_edit_media_api_main", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L391"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L393"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L395"}, {"caller_nid": "test_edit_media_api_main", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L395"}, {"caller_nid": "test_edit_media_api_main", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L395"}, {"caller_nid": "test_edit_media_api_main", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L395"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L402"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L403"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L404"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L408"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L409"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L410"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L411"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L415"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L416"}, {"caller_nid": "test_edit_media_api_main", "callee": "print", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", "source_location": "L417"}]} \ No newline at end of file diff --git a/graphify-out/cache/c21c4ad41a2b8570bd490d9d356635023bb861e9a4ad9374a72770d517c4af01.json b/graphify-out/cache/c21c4ad41a2b8570bd490d9d356635023bb861e9a4ad9374a72770d517c4af01.json new file mode 100644 index 0000000..498c483 --- /dev/null +++ b/graphify-out/cache/c21c4ad41a2b8570bd490d9d356635023bb861e9a4ad9374a72770d517c4af01.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_migrations_add_email_to_https_config_py", "label": "add_email_to_https_config.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/migrations/add_email_to_https_config.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "add_email_to_https_config_rationale_1", "label": "Add email field to https_config table.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/migrations/add_email_to_https_config.py", "source_location": "L1"}], "edges": [{"source": "home_scheianu_digiserver_v2_migrations_add_email_to_https_config_py", "target": "sys", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_email_to_https_config.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_email_to_https_config_py", "target": "app_app", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_email_to_https_config.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_email_to_https_config_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_email_to_https_config.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_email_to_https_config_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_email_to_https_config.py", "source_location": "L7", "weight": 1.0}, {"source": "add_email_to_https_config_rationale_1", "target": "home_scheianu_digiserver_v2_migrations_add_email_to_https_config_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_email_to_https_config.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/cache/c39c170bcc774e4d740bfdda460626bd2a97367d11d7036ec90cf433711da35c.json b/graphify-out/cache/c39c170bcc774e4d740bfdda460626bd2a97367d11d7036ec90cf433711da35c.json new file mode 100644 index 0000000..04044a5 --- /dev/null +++ b/graphify-out/cache/c39c170bcc774e4d740bfdda460626bd2a97367d11d7036ec90cf433711da35c.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_extensions_py", "label": "extensions.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/extensions.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "extensions_rationale_1", "label": "Flask extensions initialization Centralized extension management for the applica", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/extensions.py", "source_location": "L1"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_extensions_py", "target": "flask_sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/extensions.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_extensions_py", "target": "flask_bcrypt", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/extensions.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_extensions_py", "target": "flask_login", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/extensions.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_extensions_py", "target": "flask_migrate", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/extensions.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_extensions_py", "target": "flask_caching", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/extensions.py", "source_location": "L9", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_extensions_py", "target": "flask_cors", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/extensions.py", "source_location": "L10", "weight": 1.0}, {"source": "extensions_rationale_1", "target": "home_scheianu_digiserver_v2_app_extensions_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/extensions.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/cache/cab5c69ad0a9bc401a139322633e09433c77c789d68c2537450572b22a83c358.json b/graphify-out/cache/cab5c69ad0a9bc401a139322633e09433c77c789d68c2537450572b22a83c358.json new file mode 100644 index 0000000..ecfa3fd --- /dev/null +++ b/graphify-out/cache/cab5c69ad0a9bc401a139322633e09433c77c789d68c2537450572b22a83c358.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_migrations_add_url_to_content_py", "label": "add_url_to_content.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/migrations/add_url_to_content.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "add_url_to_content_rationale_1", "label": "Add url column to content table for weblink support.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/migrations/add_url_to_content.py", "source_location": "L1"}], "edges": [{"source": "home_scheianu_digiserver_v2_migrations_add_url_to_content_py", "target": "sys", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_url_to_content.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_url_to_content_py", "target": "app_app", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_url_to_content.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_url_to_content_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_url_to_content.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_url_to_content_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_url_to_content.py", "source_location": "L7", "weight": 1.0}, {"source": "add_url_to_content_rationale_1", "target": "home_scheianu_digiserver_v2_migrations_add_url_to_content_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_url_to_content.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/cache/d0eb445d5e223a6d1f0734ddbdf56340911f28c239f5d8a210132ec739e97f39.json b/graphify-out/cache/d0eb445d5e223a6d1f0734ddbdf56340911f28c239f5d8a210132ec739e97f39.json new file mode 100644 index 0000000..fcca636 --- /dev/null +++ b/graphify-out/cache/d0eb445d5e223a6d1f0734ddbdf56340911f28c239f5d8a210132ec739e97f39.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_models_user_py", "label": "user.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "user_user", "label": "User", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L10", "complexity": 1, "loc": 34}, {"id": "usermixin", "label": "UserMixin", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "user_user_repr", "label": ".__repr__()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L32", "complexity": 1, "loc": 3}, {"id": "user_is_admin", "label": "is_admin()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L37", "complexity": 1, "loc": 3}, {"id": "user_user_update_last_login", "label": ".update_last_login()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L41", "complexity": 1, "loc": 3}, {"id": "user_rationale_1", "label": "User model for authentication and authorization.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L1"}, {"id": "user_rationale_11", "label": "User model for application authentication. Attributes: id: Prim", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L11"}, {"id": "user_rationale_33", "label": "String representation of User.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L33"}, {"id": "user_rationale_38", "label": "Check if user has admin role.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L38"}, {"id": "user_rationale_42", "label": "Update last login timestamp.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L42"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_models_user_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_user_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_user_py", "target": "flask_login", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_user_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_user_py", "target": "user_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L10", "weight": 1.0}, {"source": "user_user", "target": "usermixin", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L10", "weight": 1.0}, {"source": "user_user", "target": "user_user_repr", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L32", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_user_py", "target": "user_is_admin", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L37", "weight": 1.0}, {"source": "user_user", "target": "user_user_update_last_login", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L41", "weight": 1.0}, {"source": "user_rationale_1", "target": "home_scheianu_digiserver_v2_app_models_user_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L1", "weight": 1.0}, {"source": "user_rationale_11", "target": "user_user", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L11", "weight": 1.0}, {"source": "user_rationale_33", "target": "user_user_repr", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L33", "weight": 1.0}, {"source": "user_rationale_38", "target": "user_user_is_admin", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L38", "weight": 1.0}, {"source": "user_rationale_42", "target": "user_user_update_last_login", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L42", "weight": 1.0}], "raw_calls": [{"caller_nid": "user_user_update_last_login", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", "source_location": "L43"}]} \ No newline at end of file diff --git a/graphify-out/cache/d3ad3de1947047e09b4bfa267a9d250f771f3554bede74f62bea2661952edf36.json b/graphify-out/cache/d3ad3de1947047e09b4bfa267a9d250f771f3554bede74f62bea2661952edf36.json new file mode 100644 index 0000000..a647900 --- /dev/null +++ b/graphify-out/cache/d3ad3de1947047e09b4bfa267a9d250f771f3554bede74f62bea2661952edf36.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_utils_init_py", "label": "__init__.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/__init__.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "init_rationale_1", "label": "Utils package for digiserver-v2.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/__init__.py", "source_location": "L1"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_utils_init_py", "target": "app_utils_logger", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/__init__.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_init_py", "target": "app_utils_uploads", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/__init__.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_init_py", "target": "app_utils_group_player_management", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/__init__.py", "source_location": "L13", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_init_py", "target": "app_utils_pptx_converter", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/__init__.py", "source_location": "L21", "weight": 1.0}, {"source": "init_rationale_1", "target": "home_scheianu_digiserver_v2_app_utils_init_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/__init__.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/cache/d867bca7b49b4ef6deca0fcdf7c0b06c4cd695fd9d4d74aeb59699c9335f40ff.json b/graphify-out/cache/d867bca7b49b4ef6deca0fcdf7c0b06c4cd695fd9d4d74aeb59699c9335f40ff.json new file mode 100644 index 0000000..38c9e5c --- /dev/null +++ b/graphify-out/cache/d867bca7b49b4ef6deca0fcdf7c0b06c4cd695fd9d4d74aeb59699c9335f40ff.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_utils_uploads_py", "label": "uploads.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "uploads_get_upload_progress", "label": "get_upload_progress()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L17", "complexity": 1, "loc": 14}, {"id": "uploads_set_upload_progress", "label": "set_upload_progress()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L33", "complexity": 1, "loc": 15}, {"id": "uploads_clear_upload_progress", "label": "clear_upload_progress()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L50", "complexity": 2, "loc": 8}, {"id": "uploads_save_uploaded_file", "label": "save_uploaded_file()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L60", "complexity": 3, "loc": 32}, {"id": "uploads_process_video_file", "label": "process_video_file()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L94", "complexity": 10, "loc": 80}, {"id": "uploads_process_pdf_file", "label": "process_pdf_file()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L176", "complexity": 5, "loc": 31}, {"id": "uploads_get_file_size", "label": "get_file_size()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L209", "complexity": 2, "loc": 13}, {"id": "uploads_delete_file", "label": "delete_file()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L224", "complexity": 3, "loc": 20}, {"id": "uploads_rationale_1", "label": "Upload utilities for handling file uploads and processing.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L1"}, {"id": "uploads_rationale_18", "label": "Get upload progress for a specific upload ID. Args: upload_id:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L18"}, {"id": "uploads_rationale_35", "label": "Set upload progress for a specific upload ID. Args: upload_id:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L35"}, {"id": "uploads_rationale_51", "label": "Clear upload progress for a specific upload ID. Args: upload_id", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L51"}, {"id": "uploads_rationale_62", "label": "Save an uploaded file to the upload folder. Args: file: FileSto", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L62"}, {"id": "uploads_rationale_95", "label": "Process video file for optimization (H.264, 30fps, max 1080p). Args:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L95"}, {"id": "uploads_rationale_177", "label": "Process PDF file (convert to images for display). Args: filepat", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L177"}, {"id": "uploads_rationale_210", "label": "Get file size in bytes. Args: filepath: Path to file", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L210"}, {"id": "uploads_rationale_225", "label": "Delete a file from disk. Args: filepath: Path to file", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L225"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "subprocess", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "shutil", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "tempfile", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "werkzeug_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "werkzeug_datastructures", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "app_utils_logger", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L10", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "uploads_get_upload_progress", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L17", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "uploads_set_upload_progress", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L33", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "uploads_clear_upload_progress", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L50", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "uploads_save_uploaded_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L60", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "uploads_process_video_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L94", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "uploads_process_pdf_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L176", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "uploads_get_file_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L209", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_utils_uploads_py", "target": "uploads_delete_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L224", "weight": 1.0}, {"source": "uploads_process_video_file", "target": "uploads_set_upload_progress", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L106", "weight": 1.0}, {"source": "uploads_process_pdf_file", "target": "uploads_set_upload_progress", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L188", "weight": 1.0}, {"source": "uploads_rationale_1", "target": "home_scheianu_digiserver_v2_app_utils_uploads_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L1", "weight": 1.0}, {"source": "uploads_rationale_18", "target": "uploads_get_upload_progress", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L18", "weight": 1.0}, {"source": "uploads_rationale_35", "target": "uploads_set_upload_progress", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L35", "weight": 1.0}, {"source": "uploads_rationale_51", "target": "uploads_clear_upload_progress", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L51", "weight": 1.0}, {"source": "uploads_rationale_62", "target": "uploads_save_uploaded_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L62", "weight": 1.0}, {"source": "uploads_rationale_95", "target": "uploads_process_video_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L95", "weight": 1.0}, {"source": "uploads_rationale_177", "target": "uploads_process_pdf_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L177", "weight": 1.0}, {"source": "uploads_rationale_210", "target": "uploads_get_file_size", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L210", "weight": 1.0}, {"source": "uploads_rationale_225", "target": "uploads_delete_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L225", "weight": 1.0}], "raw_calls": [{"caller_nid": "uploads_get_upload_progress", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L26"}, {"caller_nid": "uploads_save_uploaded_file", "callee": "secure_filename", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L74"}, {"caller_nid": "uploads_save_uploaded_file", "callee": "secure_filename", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L76"}, {"caller_nid": "uploads_save_uploaded_file", "callee": "makedirs", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L79"}, {"caller_nid": "uploads_save_uploaded_file", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L81"}, {"caller_nid": "uploads_save_uploaded_file", "callee": "save", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L84"}, {"caller_nid": "uploads_save_uploaded_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L86"}, {"caller_nid": "uploads_save_uploaded_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L90"}, {"caller_nid": "uploads_save_uploaded_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L90"}, {"caller_nid": "uploads_save_uploaded_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L91"}, {"caller_nid": "uploads_process_video_file", "callee": "gettempdir", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L109"}, {"caller_nid": "uploads_process_video_file", "callee": "join", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L110"}, {"caller_nid": "uploads_process_video_file", "callee": "basename", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L110"}, {"caller_nid": "uploads_process_video_file", "callee": "run", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L133"}, {"caller_nid": "uploads_process_video_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L137"}, {"caller_nid": "uploads_process_video_file", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L143"}, {"caller_nid": "uploads_process_video_file", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L144"}, {"caller_nid": "uploads_process_video_file", "callee": "move", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L152"}, {"caller_nid": "uploads_process_video_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L154"}, {"caller_nid": "uploads_process_video_file", "callee": "basename", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L154"}, {"caller_nid": "uploads_process_video_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L159"}, {"caller_nid": "uploads_process_video_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L167"}, {"caller_nid": "uploads_process_video_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L168"}, {"caller_nid": "uploads_process_pdf_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L192"}, {"caller_nid": "uploads_process_pdf_file", "callee": "basename", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L192"}, {"caller_nid": "uploads_process_pdf_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L200"}, {"caller_nid": "uploads_process_pdf_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L201"}, {"caller_nid": "uploads_get_file_size", "callee": "getsize", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L219"}, {"caller_nid": "uploads_delete_file", "callee": "exists", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L234"}, {"caller_nid": "uploads_delete_file", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L235"}, {"caller_nid": "uploads_delete_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L236"}, {"caller_nid": "uploads_delete_file", "callee": "basename", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L236"}, {"caller_nid": "uploads_delete_file", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L241"}, {"caller_nid": "uploads_delete_file", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", "source_location": "L242"}]} \ No newline at end of file diff --git a/graphify-out/cache/eb1a7845d5c86e98e5d26d1cc50eef375eb00ceba72338a37beff6b47688835c.json b/graphify-out/cache/eb1a7845d5c86e98e5d26d1cc50eef375eb00ceba72338a37beff6b47688835c.json new file mode 100644 index 0000000..095abab --- /dev/null +++ b/graphify-out/cache/eb1a7845d5c86e98e5d26d1cc50eef375eb00ceba72338a37beff6b47688835c.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_app_models_playlist_py", "label": "playlist.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "playlist_playlist", "label": "Playlist", "file_type": "code", "type": "CLASS", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L19", "complexity": 6, "loc": 81}, {"id": "playlist_playlist_repr", "label": ".__repr__()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L48", "complexity": 1, "loc": 3}, {"id": "playlist_player_count", "label": "player_count()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L53", "complexity": 1, "loc": 3}, {"id": "playlist_content_count", "label": "content_count()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L58", "complexity": 1, "loc": 3}, {"id": "playlist_total_duration", "label": "total_duration()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L63", "complexity": 2, "loc": 6}, {"id": "playlist_playlist_increment_version", "label": ".increment_version()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L70", "complexity": 1, "loc": 4}, {"id": "playlist_playlist_get_content_ordered", "label": ".get_content_ordered()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L75", "complexity": 5, "loc": 25}, {"id": "playlist_rationale_1", "label": "Playlist model for managing content collections.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L1"}, {"id": "playlist_rationale_20", "label": "Playlist model representing a collection of content. Attributes:", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L20"}, {"id": "playlist_rationale_49", "label": "String representation of Playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L49"}, {"id": "playlist_rationale_54", "label": "Get number of players assigned to this playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L54"}, {"id": "playlist_rationale_59", "label": "Get number of content items in this playlist.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L59"}, {"id": "playlist_rationale_64", "label": "Calculate total duration of all content in seconds.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L64"}, {"id": "playlist_rationale_71", "label": "Increment playlist version for sync detection.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L71"}, {"id": "playlist_rationale_76", "label": "Get content items ordered by position.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L76"}], "edges": [{"source": "home_scheianu_digiserver_v2_app_models_playlist_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_playlist_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_playlist_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_playlist_py", "target": "playlist_playlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L19", "weight": 1.0}, {"source": "playlist_playlist", "target": "playlist_playlist_repr", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L48", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_playlist_py", "target": "playlist_player_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L53", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_playlist_py", "target": "playlist_content_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L58", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_playlist_py", "target": "playlist_total_duration", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L63", "weight": 1.0}, {"source": "playlist_playlist", "target": "playlist_playlist_increment_version", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L70", "weight": 1.0}, {"source": "playlist_playlist", "target": "playlist_playlist_get_content_ordered", "relation": "method", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L75", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_app_models_playlist_py", "target": "app_models_content", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L103", "weight": 1.0}, {"source": "playlist_rationale_1", "target": "home_scheianu_digiserver_v2_app_models_playlist_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L1", "weight": 1.0}, {"source": "playlist_rationale_20", "target": "playlist_playlist", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L20", "weight": 1.0}, {"source": "playlist_rationale_49", "target": "playlist_playlist_repr", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L49", "weight": 1.0}, {"source": "playlist_rationale_54", "target": "playlist_playlist_player_count", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L54", "weight": 1.0}, {"source": "playlist_rationale_59", "target": "playlist_playlist_content_count", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L59", "weight": 1.0}, {"source": "playlist_rationale_64", "target": "playlist_playlist_total_duration", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L64", "weight": 1.0}, {"source": "playlist_rationale_71", "target": "playlist_playlist_increment_version", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L71", "weight": 1.0}, {"source": "playlist_rationale_76", "target": "playlist_playlist_get_content_ordered", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L76", "weight": 1.0}], "raw_calls": [{"caller_nid": "playlist_player_count", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L55"}, {"caller_nid": "playlist_content_count", "callee": "count", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L60"}, {"caller_nid": "playlist_playlist_increment_version", "callee": "utcnow", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L73"}, {"caller_nid": "playlist_playlist_get_content_ordered", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L79"}, {"caller_nid": "playlist_playlist_get_content_ordered", "callee": "where", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L79"}, {"caller_nid": "playlist_playlist_get_content_ordered", "callee": "select", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L79"}, {"caller_nid": "playlist_playlist_get_content_ordered", "callee": "fetchall", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L87"}, {"caller_nid": "playlist_playlist_get_content_ordered", "callee": "execute", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L87"}, {"caller_nid": "playlist_playlist_get_content_ordered", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L91"}, {"caller_nid": "playlist_playlist_get_content_ordered", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L95"}, {"caller_nid": "playlist_playlist_get_content_ordered", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L96"}, {"caller_nid": "playlist_playlist_get_content_ordered", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", "source_location": "L97"}]} \ No newline at end of file diff --git a/graphify-out/cache/f7dc1ac90509b8b858c474ecba2f13a5f795e20640cd932236c89c81e2eb770a.json b/graphify-out/cache/f7dc1ac90509b8b858c474ecba2f13a5f795e20640cd932236c89c81e2eb770a.json new file mode 100644 index 0000000..a7855c9 --- /dev/null +++ b/graphify-out/cache/f7dc1ac90509b8b858c474ecba2f13a5f795e20640cd932236c89c81e2eb770a.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "label": "blueprint_groups.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "blueprint_groups_groups_list", "label": "groups_list()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L16", "complexity": 3, "loc": 18}, {"id": "blueprint_groups_create_group", "label": "create_group()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L38", "complexity": 8, "loc": 48}, {"id": "blueprint_groups_edit_group", "label": "edit_group()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L90", "complexity": 9, "loc": 54}, {"id": "blueprint_groups_delete_group", "label": "delete_group()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L148", "complexity": 3, "loc": 23}, {"id": "blueprint_groups_manage_group", "label": "manage_group()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L175", "complexity": 3, "loc": 36}, {"id": "blueprint_groups_group_fullscreen", "label": "group_fullscreen()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L214", "complexity": 3, "loc": 21}, {"id": "blueprint_groups_add_player_to_group", "label": "add_player_to_group()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L239", "complexity": 3, "loc": 26}, {"id": "blueprint_groups_remove_player_from_group", "label": "remove_player_from_group()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L269", "complexity": 3, "loc": 25}, {"id": "blueprint_groups_add_content_to_group", "label": "add_content_to_group()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L298", "complexity": 6, "loc": 33}, {"id": "blueprint_groups_remove_content_from_group", "label": "remove_content_from_group()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L335", "complexity": 4, "loc": 26}, {"id": "blueprint_groups_reorder_group_content", "label": "reorder_group_content()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L365", "complexity": 5, "loc": 25}, {"id": "blueprint_groups_group_stats", "label": "group_stats()", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L394", "complexity": 2, "loc": 8}, {"id": "blueprint_groups_rationale_1", "label": "Groups blueprint for group management and player assignments.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L1"}, {"id": "blueprint_groups_rationale_17", "label": "Display list of all groups.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L17"}, {"id": "blueprint_groups_rationale_176", "label": "Manage group with player status cards and content.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L176"}, {"id": "blueprint_groups_rationale_215", "label": "Display group fullscreen view with all player status cards.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L215"}, {"id": "blueprint_groups_rationale_240", "label": "Add a player to a group.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L240"}, {"id": "blueprint_groups_rationale_270", "label": "Remove a player from a group.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L270"}, {"id": "blueprint_groups_rationale_299", "label": "Add content to a group.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L299"}, {"id": "blueprint_groups_rationale_336", "label": "Remove content from a group.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L336"}, {"id": "blueprint_groups_rationale_366", "label": "Reorder content within a group.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L366"}, {"id": "blueprint_groups_rationale_395", "label": "Get group statistics as JSON.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L395"}], "edges": [{"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "flask", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "flask_login", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L3", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L4", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "app_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L7", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "app_utils_logger", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L8", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "app_utils_group_player_management", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L9", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "blueprint_groups_groups_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L16", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "blueprint_groups_create_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L38", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "blueprint_groups_edit_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L90", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "blueprint_groups_delete_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L148", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "blueprint_groups_manage_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L175", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "blueprint_groups_group_fullscreen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L214", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "blueprint_groups_add_player_to_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L239", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "blueprint_groups_remove_player_from_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L269", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "blueprint_groups_add_content_to_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L298", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "blueprint_groups_remove_content_from_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L335", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "blueprint_groups_reorder_group_content", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L365", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "target": "blueprint_groups_group_stats", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L394", "weight": 1.0}, {"source": "blueprint_groups_rationale_1", "target": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L1", "weight": 1.0}, {"source": "blueprint_groups_rationale_17", "target": "blueprint_groups_groups_list", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L17", "weight": 1.0}, {"source": "blueprint_groups_rationale_176", "target": "blueprint_groups_manage_group", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L176", "weight": 1.0}, {"source": "blueprint_groups_rationale_215", "target": "blueprint_groups_group_fullscreen", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L215", "weight": 1.0}, {"source": "blueprint_groups_rationale_240", "target": "blueprint_groups_add_player_to_group", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L240", "weight": 1.0}, {"source": "blueprint_groups_rationale_270", "target": "blueprint_groups_remove_player_from_group", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L270", "weight": 1.0}, {"source": "blueprint_groups_rationale_299", "target": "blueprint_groups_add_content_to_group", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L299", "weight": 1.0}, {"source": "blueprint_groups_rationale_336", "target": "blueprint_groups_remove_content_from_group", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L336", "weight": 1.0}, {"source": "blueprint_groups_rationale_366", "target": "blueprint_groups_reorder_group_content", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L366", "weight": 1.0}, {"source": "blueprint_groups_rationale_395", "target": "blueprint_groups_group_stats", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L395", "weight": 1.0}], "raw_calls": [{"caller_nid": "blueprint_groups_groups_list", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L19"}, {"caller_nid": "blueprint_groups_groups_list", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L19"}, {"caller_nid": "blueprint_groups_groups_list", "callee": "get_group_statistics", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L24"}, {"caller_nid": "blueprint_groups_groups_list", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L27"}, {"caller_nid": "blueprint_groups_groups_list", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L31"}, {"caller_nid": "blueprint_groups_groups_list", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L31"}, {"caller_nid": "blueprint_groups_groups_list", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L32"}, {"caller_nid": "blueprint_groups_groups_list", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L33"}, {"caller_nid": "blueprint_groups_groups_list", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L33"}, {"caller_nid": "blueprint_groups_create_group", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L41"}, {"caller_nid": "blueprint_groups_create_group", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L41"}, {"caller_nid": "blueprint_groups_create_group", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L42"}, {"caller_nid": "blueprint_groups_create_group", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L45"}, {"caller_nid": "blueprint_groups_create_group", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L45"}, {"caller_nid": "blueprint_groups_create_group", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L46"}, {"caller_nid": "blueprint_groups_create_group", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L46"}, {"caller_nid": "blueprint_groups_create_group", "callee": "getlist", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L47"}, {"caller_nid": "blueprint_groups_create_group", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L50"}, {"caller_nid": "blueprint_groups_create_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L51"}, {"caller_nid": "blueprint_groups_create_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L52"}, {"caller_nid": "blueprint_groups_create_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L52"}, {"caller_nid": "blueprint_groups_create_group", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L55"}, {"caller_nid": "blueprint_groups_create_group", "callee": "filter_by", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L55"}, {"caller_nid": "blueprint_groups_create_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L57"}, {"caller_nid": "blueprint_groups_create_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L58"}, {"caller_nid": "blueprint_groups_create_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L58"}, {"caller_nid": "blueprint_groups_create_group", "callee": "Group", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L61"}, {"caller_nid": "blueprint_groups_create_group", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L69"}, {"caller_nid": "blueprint_groups_create_group", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L69"}, {"caller_nid": "blueprint_groups_create_group", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L71"}, {"caller_nid": "blueprint_groups_create_group", "callee": "add", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L73"}, {"caller_nid": "blueprint_groups_create_group", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L74"}, {"caller_nid": "blueprint_groups_create_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L76"}, {"caller_nid": "blueprint_groups_create_group", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L76"}, {"caller_nid": "blueprint_groups_create_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L77"}, {"caller_nid": "blueprint_groups_create_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L79"}, {"caller_nid": "blueprint_groups_create_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L79"}, {"caller_nid": "blueprint_groups_create_group", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L82"}, {"caller_nid": "blueprint_groups_create_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L83"}, {"caller_nid": "blueprint_groups_create_group", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L83"}, {"caller_nid": "blueprint_groups_create_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L84"}, {"caller_nid": "blueprint_groups_create_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L85"}, {"caller_nid": "blueprint_groups_create_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L85"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L92"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L95"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L95"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L96"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L101"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L101"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "strip", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L102"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L102"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "getlist", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L103"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "len", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L106"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L107"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L108"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L108"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "first", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L111"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L111"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L113"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L114"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L114"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L124"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L124"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L126"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L128"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L132"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L134"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L135"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L137"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L137"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L140"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L141"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L141"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L142"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L143"}, {"caller_nid": "blueprint_groups_edit_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L143"}, {"caller_nid": "blueprint_groups_delete_group", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L151"}, {"caller_nid": "blueprint_groups_delete_group", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L157"}, {"caller_nid": "blueprint_groups_delete_group", "callee": "delete", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L159"}, {"caller_nid": "blueprint_groups_delete_group", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L160"}, {"caller_nid": "blueprint_groups_delete_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L162"}, {"caller_nid": "blueprint_groups_delete_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L163"}, {"caller_nid": "blueprint_groups_delete_group", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L166"}, {"caller_nid": "blueprint_groups_delete_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L167"}, {"caller_nid": "blueprint_groups_delete_group", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L167"}, {"caller_nid": "blueprint_groups_delete_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L168"}, {"caller_nid": "blueprint_groups_delete_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L170"}, {"caller_nid": "blueprint_groups_delete_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L170"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L178"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L181"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L181"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "get_player_status_info", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L186"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L190"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L190"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L193"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L193"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "filter", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L193"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L198"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L198"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L200"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L208"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L208"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L209"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L210"}, {"caller_nid": "blueprint_groups_manage_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L210"}, {"caller_nid": "blueprint_groups_group_fullscreen", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L217"}, {"caller_nid": "blueprint_groups_group_fullscreen", "callee": "all", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L220"}, {"caller_nid": "blueprint_groups_group_fullscreen", "callee": "order_by", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L220"}, {"caller_nid": "blueprint_groups_group_fullscreen", "callee": "get_player_status_info", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L225"}, {"caller_nid": "blueprint_groups_group_fullscreen", "callee": "render_template", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L228"}, {"caller_nid": "blueprint_groups_group_fullscreen", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L233"}, {"caller_nid": "blueprint_groups_group_fullscreen", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L233"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L242"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L243"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L246"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L247"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L247"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L249"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L249"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L251"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L254"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L256"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L257"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L260"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L261"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L261"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L262"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L264"}, {"caller_nid": "blueprint_groups_add_player_to_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L264"}, {"caller_nid": "blueprint_groups_remove_player_from_group", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L272"}, {"caller_nid": "blueprint_groups_remove_player_from_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L275"}, {"caller_nid": "blueprint_groups_remove_player_from_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L276"}, {"caller_nid": "blueprint_groups_remove_player_from_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L276"}, {"caller_nid": "blueprint_groups_remove_player_from_group", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L280"}, {"caller_nid": "blueprint_groups_remove_player_from_group", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L283"}, {"caller_nid": "blueprint_groups_remove_player_from_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L285"}, {"caller_nid": "blueprint_groups_remove_player_from_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L286"}, {"caller_nid": "blueprint_groups_remove_player_from_group", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L289"}, {"caller_nid": "blueprint_groups_remove_player_from_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L290"}, {"caller_nid": "blueprint_groups_remove_player_from_group", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L290"}, {"caller_nid": "blueprint_groups_remove_player_from_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L291"}, {"caller_nid": "blueprint_groups_remove_player_from_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L293"}, {"caller_nid": "blueprint_groups_remove_player_from_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L293"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L301"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "getlist", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L302"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L305"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L306"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L306"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L311"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "int", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L311"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "append", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L313"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L316"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L320"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L322"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L323"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L326"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L327"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L327"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L328"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L330"}, {"caller_nid": "blueprint_groups_add_content_to_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L330"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L338"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L339"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L342"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L343"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L343"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "remove", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L345"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L346"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L350"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L352"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L353"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L356"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L357"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L357"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "flash", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L358"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "redirect", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L360"}, {"caller_nid": "blueprint_groups_remove_content_from_group", "callee": "url_for", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L360"}, {"caller_nid": "blueprint_groups_reorder_group_content", "callee": "get_or_404", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L368"}, {"caller_nid": "blueprint_groups_reorder_group_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L369"}, {"caller_nid": "blueprint_groups_reorder_group_content", "callee": "enumerate", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L372"}, {"caller_nid": "blueprint_groups_reorder_group_content", "callee": "get", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L373"}, {"caller_nid": "blueprint_groups_reorder_group_content", "callee": "commit", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L377"}, {"caller_nid": "blueprint_groups_reorder_group_content", "callee": "delete_memoized", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L381"}, {"caller_nid": "blueprint_groups_reorder_group_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L383"}, {"caller_nid": "blueprint_groups_reorder_group_content", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L384"}, {"caller_nid": "blueprint_groups_reorder_group_content", "callee": "rollback", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L387"}, {"caller_nid": "blueprint_groups_reorder_group_content", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L388"}, {"caller_nid": "blueprint_groups_reorder_group_content", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L388"}, {"caller_nid": "blueprint_groups_reorder_group_content", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L389"}, {"caller_nid": "blueprint_groups_reorder_group_content", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L389"}, {"caller_nid": "blueprint_groups_group_stats", "callee": "get_group_statistics", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L397"}, {"caller_nid": "blueprint_groups_group_stats", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L398"}, {"caller_nid": "blueprint_groups_group_stats", "callee": "log_action", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L400"}, {"caller_nid": "blueprint_groups_group_stats", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L400"}, {"caller_nid": "blueprint_groups_group_stats", "callee": "jsonify", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L401"}, {"caller_nid": "blueprint_groups_group_stats", "callee": "str", "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", "source_location": "L401"}]} \ No newline at end of file diff --git a/graphify-out/cache/fc189becb472d9d42e7a5e27ed9ccdb939442755123cfecce7b7e1bc92b57892.json b/graphify-out/cache/fc189becb472d9d42e7a5e27ed9ccdb939442755123cfecce7b7e1bc92b57892.json new file mode 100644 index 0000000..6f1f1f4 --- /dev/null +++ b/graphify-out/cache/fc189becb472d9d42e7a5e27ed9ccdb939442755123cfecce7b7e1bc92b57892.json @@ -0,0 +1 @@ +{"nodes": [{"id": "home_scheianu_digiserver_v2_migrations_add_player_user_table_py", "label": "add_player_user_table.py", "file_type": "code", "type": "FUNCTION", "source_file": "/home/scheianu/digiserver-v2/migrations/add_player_user_table.py", "source_location": "L1", "complexity": 1, "loc": 1}, {"id": "add_player_user_table_rationale_1", "label": "Add player_user table for user code mappings.", "file_type": "rationale", "source_file": "/home/scheianu/digiserver-v2/migrations/add_player_user_table.py", "source_location": "L1"}], "edges": [{"source": "home_scheianu_digiserver_v2_migrations_add_player_user_table_py", "target": "sys", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_player_user_table.py", "source_location": "L2", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_player_user_table_py", "target": "app_app", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_player_user_table.py", "source_location": "L5", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_player_user_table_py", "target": "app_extensions", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_player_user_table.py", "source_location": "L6", "weight": 1.0}, {"source": "home_scheianu_digiserver_v2_migrations_add_player_user_table_py", "target": "app_models_player_user", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_player_user_table.py", "source_location": "L7", "weight": 1.0}, {"source": "add_player_user_table_rationale_1", "target": "home_scheianu_digiserver_v2_migrations_add_player_user_table_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/home/scheianu/digiserver-v2/migrations/add_player_user_table.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/graph.compact.txt b/graphify-out/graph.compact.txt new file mode 100644 index 0000000..262dd44 --- /dev/null +++ b/graphify-out/graph.compact.txt @@ -0,0 +1,1793 @@ +n home_scheianu_digiserver_v2_migrations_add_player_user_table_py FUNCTION add_player_user_table.py +n add_player_user_table_rationale_1 UNKNOWN Add_player_user_table_for_user_code_mappings. +n home_scheianu_digiserver_v2_migrations_migrate_player_user_global_py FUNCTION migrate_player_user_global.py +n migrate_player_user_global_rationale_1 UNKNOWN Migrate_player_user_table_to_remove_player_id_and_make_user_code_unique_globally +n home_scheianu_digiserver_v2_migrations_add_original_filename_to_content_py FUNCTION add_original_filename_to_content.py +n add_original_filename_to_content_rationale_1 UNKNOWN Add_original_filename_column_to_content_table.__This_preserves_the_pristine_uplo +n home_scheianu_digiserver_v2_migrations_add_url_to_content_py FUNCTION add_url_to_content.py +n add_url_to_content_rationale_1 UNKNOWN Add_url_column_to_content_table_for_weblink_support. +n home_scheianu_digiserver_v2_migrations_add_https_config_table_py FUNCTION add_https_config_table.py +n add_https_config_table_rationale_1 UNKNOWN Add_https_config_table_for_HTTPS_configuration_management. +n home_scheianu_digiserver_v2_migrations_add_deployment_fields_to_player_py FUNCTION add_deployment_fields_to_player.py +n add_deployment_fields_to_player_rationale_1 UNKNOWN Add_deployment_tracking_columns_to_player_table. +n home_scheianu_digiserver_v2_migrations_add_email_to_https_config_py FUNCTION add_email_to_https_config.py +n add_email_to_https_config_rationale_1 UNKNOWN Add_email_field_to_https_config_table. +n home_scheianu_digiserver_v2_app_config_py FUNCTION config.py +n config_config CLASS Config +n config_developmentconfig CLASS DevelopmentConfig +n config_productionconfig CLASS ProductionConfig +n config_testingconfig CLASS TestingConfig +n config_get_config FUNCTION get_config() +n config_rationale_1 UNKNOWN Configuration_settings_for_DigiServer_v2_Environment-based_configuration_with_se +n config_rationale_57 UNKNOWN Development_configuration +n config_rationale_79 UNKNOWN Production_configuration +n config_rationale_103 UNKNOWN Testing_configuration +n config_rationale_128 UNKNOWN Get_configuration_based_on_environment +n home_scheianu_digiserver_v2_app_extensions_py FUNCTION extensions.py +n extensions_rationale_1 UNKNOWN Flask_extensions_initialization_Centralized_extension_management_for_the_applica +n home_scheianu_digiserver_v2_app_app_py FUNCTION app.py +n app_create_app FUNCTION create_app() +n app_register_blueprints FUNCTION register_blueprints() +n app_configure_login_manager FUNCTION configure_login_manager() +n app_register_error_handlers FUNCTION register_error_handlers() +n app_register_commands FUNCTION register_commands() +n app_register_context_processors FUNCTION register_context_processors() +n app_register_template_filters FUNCTION register_template_filters() +n app_rationale_1 UNKNOWN DigiServer_v2_-_Application_Factory_Modern_Flask_application_with_blueprint_arch +n app_rationale_18 UNKNOWN Application_factory_pattern__________Args:_________config_name:_Configuration_en +n app_rationale_91 UNKNOWN Register_application_blueprints +n app_rationale_111 UNKNOWN Configure_Flask-Login +n app_rationale_124 UNKNOWN Register_error_handlers +n app_rationale_149 UNKNOWN Register_CLI_commands +n app_rationale_190 UNKNOWN Register_context_processors_for_templates +n app_rationale_214 UNKNOWN Register_custom_Jinja2_template_filters +n home_scheianu_digiserver_v2_app_blueprints_admin_py FUNCTION admin.py +n admin_admin_required FUNCTION admin_required() +n admin_admin_panel FUNCTION admin_panel() +n admin_create_user FUNCTION create_user() +n admin_change_user_role FUNCTION change_user_role() +n admin_delete_user FUNCTION delete_user() +n admin_change_theme FUNCTION change_theme() +n admin_upload_logo FUNCTION upload_logo() +n admin_clear_logs FUNCTION clear_logs() +n admin_user_management FUNCTION user_management() +n admin_reset_user_password FUNCTION reset_user_password() +n admin_system_info FUNCTION system_info() +n admin_leftover_media FUNCTION leftover_media() +n admin_delete_leftover_images FUNCTION delete_leftover_images() +n admin_delete_leftover_videos FUNCTION delete_leftover_videos() +n admin_delete_single_leftover FUNCTION delete_single_leftover() +n admin_dependencies FUNCTION dependencies() +n admin_install_libreoffice FUNCTION install_libreoffice() +n admin_install_emoji_fonts FUNCTION install_emoji_fonts() +n admin_customize_logos FUNCTION customize_logos() +n admin_upload_header_logo FUNCTION upload_header_logo() +n admin_upload_login_logo FUNCTION upload_login_logo() +n admin_manage_editing_users FUNCTION manage_editing_users() +n admin_update_editing_user FUNCTION update_editing_user() +n admin_delete_editing_user FUNCTION delete_editing_user() +n admin_https_config FUNCTION https_config() +n admin_update_https_config FUNCTION update_https_config() +n admin_https_config_status FUNCTION https_config_status() +n admin_player_build_meta_path FUNCTION _player_build_meta_path() +n admin_build_player FUNCTION build_player() +n admin_build_player_action FUNCTION build_player_action() +n admin_rationale_1 UNKNOWN Admin_blueprint_for_user_management_and_system_settings. +n admin_rationale_19 UNKNOWN Decorator_to_require_admin_role_for_route_access. +n admin_rationale_36 UNKNOWN Display_admin_panel_with_system_overview. +n admin_rationale_80 UNKNOWN Create_a_new_user_account. +n admin_rationale_126 UNKNOWN Change_user_role_between_user_and_admin. +n admin_rationale_160 UNKNOWN Delete_a_user_account. +n admin_rationale_188 UNKNOWN Change_application_theme. +n admin_rationale_212 UNKNOWN Upload_custom_logo_for_application. +n admin_rationale_254 UNKNOWN Clear_all_server_logs. +n admin_rationale_274 UNKNOWN Display_user_management_page. +n admin_rationale_323 UNKNOWN Get_system_information_as_JSON. +n admin_rationale_355 UNKNOWN Display_leftover_media_files_not_assigned_to_any_playlist. +n admin_rationale_407 UNKNOWN Delete_all_leftover_images_that_are_not_part_of_any_playlist +n admin_rationale_462 UNKNOWN Delete_all_leftover_videos_that_are_not_part_of_any_playlist +n admin_rationale_517 UNKNOWN Delete_a_single_leftover_content_file +n admin_rationale_554 UNKNOWN Show_system_dependencies_status. +n admin_rationale_635 UNKNOWN Install_LibreOffice_for_PPTX_conversion. +n admin_rationale_672 UNKNOWN Install_Emoji_Fonts_for_better_UI_display. +n admin_rationale_709 UNKNOWN Logo_customization_page. +n admin_rationale_749 UNKNOWN Upload_login_page_logo. +n admin_rationale_779 UNKNOWN Display_and_manage_users_that_edit_images_on_players. +n admin_rationale_805 UNKNOWN Update_editing_user_name. +n admin_rationale_857 UNKNOWN Display_HTTPS_configuration_management_page. +n admin_rationale_887 UNKNOWN Update_HTTPS_configuration. +n admin_rationale_996 UNKNOWN Get_current_HTTPS_configuration_status_as_JSON. +n admin_rationale_1020 UNKNOWN Path_to_the_persisted_player-build_settings_(in_the_instance_folder). +n admin_rationale_1029 UNKNOWN Display_the_'Build_player_files_for_deployment'_admin_page. +n admin_rationale_1075 UNKNOWN Build/refresh_the_staged_player_code_and/or_write_its_base_config. +n home_scheianu_digiserver_v2_app_blueprints_content_old_py FUNCTION content_old.py +n content_old_content_list FUNCTION content_list() +n content_old_upload_content FUNCTION upload_content() +n content_old_edit_content FUNCTION edit_content() +n content_old_delete_content FUNCTION delete_content() +n content_old_delete_by_filename FUNCTION delete_by_filename() +n content_old_bulk_delete_content FUNCTION bulk_delete_content() +n content_old_upload_progress_status FUNCTION upload_progress_status() +n content_old_preview_content FUNCTION preview_content() +n content_old_download_content FUNCTION download_content() +n content_old_content_statistics FUNCTION content_statistics() +n content_old_check_duplicates FUNCTION check_duplicates() +n content_old_content_groups_info FUNCTION content_groups_info() +n content_old_rationale_1 UNKNOWN Content_blueprint_for_media_upload_and_management. +n content_old_rationale_31 UNKNOWN Display_list_of_all_content. +n content_old_rationale_225 UNKNOWN Edit_content_metadata. +n content_old_rationale_259 UNKNOWN Delete_content_and_associated_file. +n content_old_rationale_290 UNKNOWN Delete_all_content_entries_with_a_specific_filename. +n content_old_rationale_338 UNKNOWN Delete_multiple_content_items_at_once. +n content_old_rationale_375 UNKNOWN Get_upload_progress_for_a_specific_upload. +n content_old_rationale_383 UNKNOWN Preview_content_in_browser. +n content_old_rationale_401 UNKNOWN Download_content_file. +n content_old_rationale_420 UNKNOWN Get_content_statistics. +n content_old_rationale_454 UNKNOWN Check_for_duplicate_filenames. +n content_old_rationale_479 UNKNOWN Get_groups_that_contain_this_content. +n home_scheianu_digiserver_v2_app_blueprints_content_py FUNCTION content.py +n content_content_list FUNCTION content_list() +n content_media_library FUNCTION media_library() +n content_delete_media FUNCTION delete_media() +n content_create_playlist FUNCTION create_playlist() +n content_delete_playlist FUNCTION delete_playlist() +n content_manage_playlist_content FUNCTION manage_playlist_content() +n content_add_content_to_playlist FUNCTION add_content_to_playlist() +n content_add_weblink FUNCTION add_weblink() +n content_add_weblink_to_playlist FUNCTION add_weblink_to_playlist() +n content_remove_content_from_playlist FUNCTION remove_content_from_playlist() +n content_bulk_remove_from_playlist FUNCTION bulk_remove_from_playlist() +n content_reorder_playlist_content FUNCTION reorder_playlist_content() +n content_update_playlist_content_muted FUNCTION update_playlist_content_muted() +n content_update_playlist_content_edit_enabled FUNCTION update_playlist_content_edit_enabled() +n content_update_playlist_content_duration FUNCTION update_playlist_content_duration() +n content_upload_media_page FUNCTION upload_media_page() +n content_process_image_file FUNCTION process_image_file() +n content_process_video_file_extended FUNCTION process_video_file_extended() +n content_process_pdf_file FUNCTION process_pdf_file() +n content_process_file_in_background FUNCTION process_file_in_background() +n content_process_presentation_file FUNCTION process_presentation_file() +n content_create_fullhd_image FUNCTION create_fullhd_image() +n content_resize_image_to_fullhd FUNCTION resize_image_to_fullhd() +n content_optimize_image_to_fullhd FUNCTION optimize_image_to_fullhd() +n content_upload_media FUNCTION upload_media() +n content_assign_player_to_playlist FUNCTION assign_player_to_playlist() +n content_rationale_1 UNKNOWN Content_model_for_media_files. +n content_rationale_28 UNKNOWN Main_playlist_management_page. +n content_rationale_44 UNKNOWN View_all_media_files_in_the_library. +n content_rationale_72 UNKNOWN Delete_a_media_file_and_remove_it_from_all_playlists. +n content_rationale_136 UNKNOWN Create_a_new_playlist. +n content_rationale_201 UNKNOWN Manage_content_in_a_specific_playlist. +n content_rationale_223 UNKNOWN Add_content_to_playlist. +n content_rationale_273 UNKNOWN Create_a_web_link_content_item_from_the_Upload_Media_page.______Optionally_adds +n content_rationale_353 UNKNOWN Create_a_web_link_content_item_and_add_it_to_the_playlist. +n content_rationale_419 UNKNOWN Remove_content_from_playlist. +n content_rationale_456 UNKNOWN Remove_multiple_content_items_from_playlist. +n content_rationale_498 UNKNOWN Reorder_content_in_playlist. +n content_rationale_539 UNKNOWN Update_content_muted_setting_in_playlist. +n content_rationale_580 UNKNOWN Update_content_edit_on_player_enabled_setting_in_playlist. +n content_rationale_621 UNKNOWN Update_content_duration_in_playlist. +n content_rationale_671 UNKNOWN Display_upload_media_page. +n content_rationale_677 UNKNOWN Process_and_optimize_image_files. +n content_rationale_703 UNKNOWN Process_and_optimize_video_files_for_Raspberry_Pi_playback. +n content_rationale_728 UNKNOWN Process_PDF_files_by_converting_each_page_to_PNG_images. +n content_rationale_800 UNKNOWN Process_large_files_(PDF,_PPTX,_Video)_in_background_thread. +n content_rationale_978 UNKNOWN Process_PowerPoint_presentation_files_by_converting_slides_to_images. +n content_rationale_1121 UNKNOWN Create_a_Full_HD_(1920x1080)_image_from_PIL_Image_object,_centered_on_white_back +n content_rationale_1146 UNKNOWN Resize_image_to_exactly_Full_HD_(1920x1080)_maintaining_aspect_ratio_with_center +n content_rationale_1204 UNKNOWN Optimize_and_resize_image_file_to_Full_HD_(1920x1080)_maintaining_aspect_ratio. +n content_rationale_1221 UNKNOWN Upload_media_files_to_library_with_type-specific_processing. +n content_rationale_1495 UNKNOWN Assign_a_player_to_a_playlist. +n home_scheianu_digiserver_v2_app_blueprints_init_py FUNCTION __init__.py +n init_rationale_1 UNKNOWN Models_package_for_digiserver-v2. +n home_scheianu_digiserver_v2_app_blueprints_api_py FUNCTION api.py +n api_rate_limit FUNCTION rate_limit() +n api_verify_player_auth FUNCTION verify_player_auth() +n api_health_check FUNCTION health_check() +n api_get_server_certificate FUNCTION get_server_certificate() +n api_authenticate_player FUNCTION authenticate_player() +n api_verify_auth_code FUNCTION verify_auth_code() +n api_get_playlist_by_quickconnect FUNCTION get_playlist_by_quickconnect() +n api_get_player_playlist FUNCTION get_player_playlist() +n api_get_playlist_version FUNCTION get_playlist_version() +n api_get_cached_playlist FUNCTION get_cached_playlist() +n api_receive_player_feedback FUNCTION receive_player_feedback() +n api_get_player_status FUNCTION get_player_status() +n api_get_upload_progress FUNCTION get_upload_progress() +n api_system_info FUNCTION system_info() +n api_list_content FUNCTION list_content() +n api_get_logs FUNCTION get_logs() +n api_receive_edited_media FUNCTION receive_edited_media() +n api_test_ssh_connection FUNCTION test_ssh_connection() +n api_deploy_player FUNCTION deploy_player() +n api_api_not_found FUNCTION api_not_found() +n api_method_not_allowed FUNCTION method_not_allowed() +n api_internal_error FUNCTION internal_error() +n api_rationale_1 UNKNOWN API_blueprint_for_REST_endpoints_and_player_communication. +n api_rationale_22 UNKNOWN Rate_limiting_decorator.__________Args:_________max_requests:_Maximum_number_of +n api_rationale_65 UNKNOWN Decorator_to_verify_player_authentication_via_auth_code. +n api_rationale_91 UNKNOWN API_health_check_endpoint. +n api_rationale_101 UNKNOWN Get_server_SSL_certificate. +n api_rationale_108 UNKNOWN Authenticate_a_player_and_return_auth_code_and_configuration.__________Request_J +n api_rationale_164 UNKNOWN Verify_an_auth_code_and_return_player_information.__________Request_JSON: +n api_rationale_208 UNKNOWN Get_playlist_using_hostname_and_quickconnect_code_(Kivy_player_compatible). +n api_rationale_306 UNKNOWN Get_playlist_for_a_specific_player.__________Requires_player_authentication_via +n api_rationale_350 UNKNOWN Get_current_playlist_version_for_a_player.__________Lightweight_endpoint_for_pla +n api_rationale_379 UNKNOWN Get_cached_playlist_for_a_player_based_on_assigned_playlist. +n api_rationale_430 UNKNOWN Receive_feedback/status_updates_from_players_(Kivy_player_compatible). +n api_rationale_541 UNKNOWN Get_current_status_of_a_player_(public_endpoint_for_monitoring). +n api_rationale_578 UNKNOWN Get_progress_of_a_file_upload. +n api_rationale_592 UNKNOWN Get_system_information_and_statistics. +n api_rationale_656 UNKNOWN List_all_content_with_basic_information. +n api_rationale_685 UNKNOWN Get_recent_server_logs.__________Query_parameters:_________limit:_Number_of_logs +n api_rationale_737 UNKNOWN Receive_edited_media_from_player.__________Expected_multipart/form-data:_____-_i +n api_rationale_937 UNKNOWN Test_SSH_connection_to_a_remote_host.__________Request_JSON:_________hostname:_T +n api_rationale_981 UNKNOWN Deploy_player_code_to_a_remote_host_via_SSH.__________Request_JSON:_________host +n api_rationale_1050 UNKNOWN Handle_404_errors_in_API. +n api_rationale_1056 UNKNOWN Handle_405_errors_in_API. +n api_rationale_1062 UNKNOWN Handle_500_errors_in_API. +n home_scheianu_digiserver_v2_app_blueprints_players_py FUNCTION players.py +n players_list FUNCTION list() +n players_add_player FUNCTION add_player() +n players_edit_player FUNCTION edit_player() +n players_delete_player FUNCTION delete_player() +n players_regenerate_auth_code FUNCTION regenerate_auth_code() +n players_player_page FUNCTION player_page() +n players_manage_player FUNCTION manage_player() +n players_edited_media FUNCTION edited_media() +n players_edited_media_report FUNCTION edited_media_report() +n players_player_fullscreen FUNCTION player_fullscreen() +n players_get_player_playlist FUNCTION get_player_playlist() +n players_reorder_content FUNCTION reorder_content() +n players_bulk_delete_players FUNCTION bulk_delete_players() +n players_bulk_assign_playlist FUNCTION bulk_assign_playlist() +n players_deployment_status FUNCTION deployment_status() +n players_reorder_playlist FUNCTION reorder_playlist() +n players_remove_from_playlist FUNCTION remove_from_playlist() +n players_rationale_1 UNKNOWN Players_blueprint_for_player_management_and_display. +n players_rationale_20 UNKNOWN Display_list_of_all_players. +n players_rationale_57 UNKNOWN Add_a_new_player_with_optional_SSH_deployment. +n players_rationale_299 UNKNOWN Regenerate_authentication_code_for_a_player. +n players_rationale_322 UNKNOWN Redirect_to_manage_player_page_(combined_view). +n players_rationale_329 UNKNOWN Manage_player_-_edit_credentials,_assign_playlist,_view_logs. +n players_rationale_446 UNKNOWN Display_all_edited_media_files_from_this_player. +n players_rationale_490 UNKNOWN Display_a_tabular_report_of_all_edited_media_from_this_player. +n players_rationale_523 UNKNOWN Display_player_fullscreen_view_(no_authentication_required_for_players). +n players_rationale_546 UNKNOWN Get_playlist_for_a_player_based_on_their_assigned_playlist.__________Args: +n players_rationale_591 UNKNOWN Legacy_endpoint_-_Content_reordering_now_handled_in_playlist_management. +n players_rationale_601 UNKNOWN Delete_multiple_players_at_once. +n players_rationale_633 UNKNOWN Assign_multiple_players_to_a_playlist. +n players_rationale_670 UNKNOWN Return_deployment_status_for_all_players_(used_by_polling_JS). +n players_rationale_694 UNKNOWN Reorder_items_in_player's_playlist. +n players_rationale_747 UNKNOWN Remove_content_from_player's_playlist. +n home_scheianu_digiserver_v2_app_blueprints_auth_py FUNCTION auth.py +n auth_login FUNCTION login() +n auth_logout FUNCTION logout() +n auth_register FUNCTION register() +n auth_change_password FUNCTION change_password() +n auth_rationale_1 UNKNOWN Authentication_Blueprint_-_Login,_Logout,_Register +n home_scheianu_digiserver_v2_app_blueprints_playlist_py FUNCTION playlist.py +n playlist_manage_playlist FUNCTION manage_playlist() +n playlist_add_to_playlist FUNCTION add_to_playlist() +n playlist_remove_from_playlist FUNCTION remove_from_playlist() +n playlist_reorder_playlist FUNCTION reorder_playlist() +n playlist_update_duration FUNCTION update_duration() +n playlist_update_muted FUNCTION update_muted() +n playlist_clear_playlist FUNCTION clear_playlist() +n playlist_rationale_1 UNKNOWN Playlist_model_for_managing_content_collections. +n playlist_rationale_19 UNKNOWN Legacy_route_-_redirect_to_new_content_management_area. +n playlist_rationale_34 UNKNOWN Add_content_to_player's_playlist. +n playlist_rationale_89 UNKNOWN Remove_content_from_player's_playlist. +n playlist_rationale_144 UNKNOWN Reorder_playlist_items. +n playlist_rationale_191 UNKNOWN Update_content_duration_in_playlist. +n playlist_rationale_236 UNKNOWN Update_content_muted_setting_in_playlist. +n playlist_rationale_279 UNKNOWN Clear_all_content_from_player's_playlist. +n home_scheianu_digiserver_v2_app_blueprints_main_py FUNCTION main.py +n main_dashboard FUNCTION dashboard() +n main_health FUNCTION health() +n main_rationale_1 UNKNOWN Main_Blueprint_-_Dashboard_and_Home_Routes +n main_rationale_50 UNKNOWN Health_check_endpoint +n home_scheianu_digiserver_v2_app_utils_script_name_fix_py FUNCTION script_name_fix.py +n script_name_fix_scriptnamefix CLASS ScriptNameFix +n script_name_fix_scriptnamefix_init FUNCTION .__init__() +n script_name_fix_scriptnamefix_call FUNCTION .__call__() +n script_name_fix_rationale_1 UNKNOWN ScriptNameFix_WSGI_middleware.__When_nginx_strips_the_path_prefix_before_forward +n home_scheianu_digiserver_v2_app_utils_portal_sso_py FUNCTION portal_sso.py +n portal_sso_init_portal_sso FUNCTION init_portal_sso() +n portal_sso_get_or_create_user FUNCTION _get_or_create_user() +n portal_sso_rationale_1 UNKNOWN Portal_SSO_middleware_for_DigiServer_v2.__When_the_umbrella_nginx_verifies_the_p +n portal_sso_rationale_18 UNKNOWN Register_the_SSO_before_request_handler_on_the_given_Flask_app. +n home_scheianu_digiserver_v2_app_utils_caddy_manager_py FUNCTION caddy_manager.py +n caddy_manager_caddyconfiggenerator CLASS CaddyConfigGenerator +n caddy_manager_generate_caddyfile FUNCTION generate_caddyfile() +n caddy_manager_write_caddyfile FUNCTION write_caddyfile() +n caddy_manager_reload_caddy FUNCTION reload_caddy() +n caddy_manager_rationale_1 UNKNOWN Caddy_configuration_generator_and_manager. +n caddy_manager_rationale_37 UNKNOWN Generate_Caddyfile_configuration_based_on_HTTPSConfig. +n caddy_manager_rationale_41 UNKNOWN Generate_a_complete_Caddyfile.__________Behaviour:_________-_HTTPS_disabled_/_no +n caddy_manager_rationale_83 UNKNOWN Write_Caddyfile_to_disk.__________The_default_path_is_/etc/caddy/Caddyfile_—_the +n caddy_manager_rationale_99 UNKNOWN Push_the_current_Caddyfile_to_Caddy_via_its_admin_API_(/load).__________Caddy_ap +n caddy_manager_rationale_231 UNKNOWN Write_Caddyfile_to_disk.__________________Args:_____________caddyfile_content:_C +n caddy_manager_rationale_250 UNKNOWN Reload_Caddy_configuration_without_restart.__________________Note:_Caddy_monitor +n home_scheianu_digiserver_v2_app_utils_group_player_management_py FUNCTION group_player_management.py +n group_player_management_get_player_status_info FUNCTION get_player_status_info() +n group_player_management_get_group_statistics FUNCTION get_group_statistics() +n group_player_management_assign_player_to_group FUNCTION assign_player_to_group() +n group_player_management_bulk_assign_players_to_group FUNCTION bulk_assign_players_to_group() +n group_player_management_get_online_players_count FUNCTION get_online_players_count() +n group_player_management_get_players_by_status FUNCTION get_players_by_status() +n group_player_management_format_time_ago FUNCTION _format_time_ago() +n group_player_management_rationale_1 UNKNOWN Group_and_player_management_utilities. +n group_player_management_rationale_11 UNKNOWN Get_comprehensive_status_information_for_a_player.__________Args:_________player +n group_player_management_rationale_55 UNKNOWN Get_statistics_for_a_group.__________Args:_________group_id:_Group_ID_to_query +n group_player_management_rationale_99 UNKNOWN Assign_a_player_to_a_group_or_unassign_if_group_id_is_None.__________Args: +n group_player_management_rationale_134 UNKNOWN Assign_multiple_players_to_a_group.__________Args:_________player_ids:_List_of_p +n group_player_management_rationale_169 UNKNOWN Get_count_of_online_players_(seen_in_last_5_minutes).__________Returns: +n group_player_management_rationale_179 UNKNOWN Get_all_players_with_a_specific_status.__________Args:_________status:_Status_to +n group_player_management_rationale_191 UNKNOWN Format_datetime_as_'time_ago'_string.__________Args:_________dt:_Datetime_to_for +n home_scheianu_digiserver_v2_app_utils_ssh_deploy_py FUNCTION ssh_deploy.py +n ssh_deploy_get_local_player_code_status FUNCTION get_local_player_code_status() +n ssh_deploy_test_ssh_connection FUNCTION test_ssh_connection() +n ssh_deploy_generate_player_config FUNCTION generate_player_config() +n ssh_deploy_detect_server_ip FUNCTION detect_server_ip() +n ssh_deploy_parse_server_address FUNCTION parse_server_address() +n ssh_deploy_generate_app_config FUNCTION generate_app_config() +n ssh_deploy_deploy_player_to_host FUNCTION deploy_player_to_host() +n ssh_deploy_rationale_1 UNKNOWN SSH_deployment_utilities_for_player_provisioning. +n ssh_deploy_rationale_16 UNKNOWN Check_status_of_pre-staged_player_code.______Args:_________player_code_dir:_Opti +n ssh_deploy_rationale_86 UNKNOWN Test_SSH_connection_to_a_remote_host.__________Args:_________hostname:_Target_ho +n ssh_deploy_rationale_156 UNKNOWN Generate_player_configuration_JSON_for_connecting_to_DigiServer.__________Args: +n ssh_deploy_rationale_209 UNKNOWN Best-effort_detection_of_this_server's_primary_LAN_IP_address.______Opens_a_UDP +n ssh_deploy_rationale_242 UNKNOWN Derive_the_values_the_player_needs_from_a_DigiServer_URL.______The_player's_conf +n ssh_deploy_rationale_277 UNKNOWN Generate_the_config/app_config.json_the_player_actually_reads.______This_is_what +n ssh_deploy_rationale_326 UNKNOWN Deploy_player_code_to_remote_host.__________Args:_________hostname:_Target_hostn +n home_scheianu_digiserver_v2_app_utils_init_py FUNCTION __init__.py +n home_scheianu_digiserver_v2_app_utils_pptx_converter_py FUNCTION pptx_converter.py +n pptx_converter_cleanup_libreoffice_processes FUNCTION cleanup_libreoffice_processes() +n pptx_converter_pptx_to_pdf_libreoffice FUNCTION pptx_to_pdf_libreoffice() +n pptx_converter_validate_pptx_file FUNCTION validate_pptx_file() +n pptx_converter_rationale_1 UNKNOWN PowerPoint_to_PDF_converter_using_LibreOffice. +n pptx_converter_rationale_12 UNKNOWN Clean_up_any_hanging_LibreOffice_processes. +n pptx_converter_rationale_21 UNKNOWN Convert_PPTX_to_PDF_using_LibreOffice_for_highest_quality.__________This_functio +n pptx_converter_rationale_87 UNKNOWN Validate_if_file_is_a_valid_PowerPoint_file.__________Args:_________filepath:_Pa +n home_scheianu_digiserver_v2_app_utils_uploads_py FUNCTION uploads.py +n uploads_get_upload_progress FUNCTION get_upload_progress() +n uploads_set_upload_progress FUNCTION set_upload_progress() +n uploads_clear_upload_progress FUNCTION clear_upload_progress() +n uploads_save_uploaded_file FUNCTION save_uploaded_file() +n uploads_process_video_file FUNCTION process_video_file() +n uploads_process_pdf_file FUNCTION process_pdf_file() +n uploads_get_file_size FUNCTION get_file_size() +n uploads_delete_file FUNCTION delete_file() +n uploads_rationale_1 UNKNOWN Upload_utilities_for_handling_file_uploads_and_processing. +n uploads_rationale_18 UNKNOWN Get_upload_progress_for_a_specific_upload_ID.__________Args:_________upload_id: +n uploads_rationale_35 UNKNOWN Set_upload_progress_for_a_specific_upload_ID.__________Args:_________upload_id: +n uploads_rationale_51 UNKNOWN Clear_upload_progress_for_a_specific_upload_ID.__________Args:_________upload_id +n uploads_rationale_62 UNKNOWN Save_an_uploaded_file_to_the_upload_folder.__________Args:_________file:_FileSto +n uploads_rationale_95 UNKNOWN Process_video_file_for_optimization_(H.264,_30fps,_max_1080p).__________Args: +n uploads_rationale_177 UNKNOWN Process_PDF_file_(convert_to_images_for_display).__________Args:_________filepat +n uploads_rationale_210 UNKNOWN Get_file_size_in_bytes.__________Args:_________filepath:_Path_to_file +n uploads_rationale_225 UNKNOWN Delete_a_file_from_disk.__________Args:_________filepath:_Path_to_file +n home_scheianu_digiserver_v2_app_utils_logger_py FUNCTION logger.py +n logger_log_action FUNCTION log_action() +n logger_get_recent_logs FUNCTION get_recent_logs() +n logger_clear_old_logs FUNCTION clear_old_logs() +n logger_log_info FUNCTION log_info() +n logger_log_warning FUNCTION log_warning() +n logger_log_error FUNCTION log_error() +n logger_rationale_1 UNKNOWN Logging_utility_for_tracking_system_events. +n logger_rationale_10 UNKNOWN Log_an_action_to_the_database_with_specified_level.__________Args:_________level +n logger_rationale_27 UNKNOWN Get_the_most_recent_log_entries.__________Args:_________limit:_Maximum_number_of +n logger_rationale_45 UNKNOWN Delete_logs_older_than_specified_days.__________Args:_________days:_Number_of_da +n logger_rationale_67 UNKNOWN Log_an_info_level_message. +n logger_rationale_72 UNKNOWN Log_a_warning_level_message. +n logger_rationale_77 UNKNOWN Log_an_error_level_message. +n home_scheianu_digiserver_v2_app_utils_player_build_py FUNCTION player_build.py +n player_build_run_git FUNCTION _run_git() +n player_build_get_short_head FUNCTION get_short_head() +n player_build_build_player_files FUNCTION build_player_files() +n player_build_write_base_config FUNCTION write_base_config() +n player_build_load_build_settings FUNCTION load_build_settings() +n player_build_save_build_settings FUNCTION save_build_settings() +n player_build_get_player_server_settings FUNCTION get_player_server_settings() +n player_build_make_build_record FUNCTION make_build_record() +n player_build_rationale_1 UNKNOWN Utilities_for_building/staging_the_player_files_on_the_server.__Admins_use_the_" +n player_build_rationale_39 UNKNOWN Return_the_short_git_commit_of_the_staged_code,_or_'unknown'. +n player_build_rationale_50 UNKNOWN Clone_or_refresh_the_player_source_into_``player_code_dir``.______If_the_directo +n player_build_rationale_137 UNKNOWN Write_a_base_``config/app_config.json``_into_the_staged_player_code.______``scre +n player_build_rationale_166 UNKNOWN Load_saved_build_settings_from_``meta_path``_(or_None_if_absent/invalid). +n player_build_rationale_177 UNKNOWN Persist_build_settings_to_``meta_path``. +n player_build_rationale_189 UNKNOWN Return_the_saved_server_address_settings_for_deployment,_if_available.______Retu +n player_build_rationale_210 UNKNOWN Assemble_the_metadata_record_to_persist_after_a_build. +n home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py FUNCTION nginx_config_reader.py +n nginx_config_reader_nginxconfigreader CLASS NginxConfigReader +n nginx_config_reader_nginxconfigreader_init FUNCTION .__init__() +n nginx_config_reader_nginxconfigreader_get_status FUNCTION .get_status() +n nginx_config_reader_nginxconfigreader_check_ssl_enabled FUNCTION ._check_ssl_enabled() +n nginx_config_reader_nginxconfigreader_extract_http_ports FUNCTION ._extract_http_ports() +n nginx_config_reader_nginxconfigreader_extract_https_ports FUNCTION ._extract_https_ports() +n nginx_config_reader_nginxconfigreader_extract_upstream_servers FUNCTION ._extract_upstream_servers() +n nginx_config_reader_nginxconfigreader_extract_server_names FUNCTION ._extract_server_names() +n nginx_config_reader_nginxconfigreader_extract_ssl_protocols FUNCTION ._extract_ssl_protocols() +n nginx_config_reader_nginxconfigreader_extract_client_max_body_size FUNCTION ._extract_client_max_body_size() +n nginx_config_reader_nginxconfigreader_check_gzip_enabled FUNCTION ._check_gzip_enabled() +n nginx_config_reader_get_nginx_status FUNCTION get_nginx_status() +n nginx_config_reader_rationale_1 UNKNOWN Nginx_configuration_reader_utility. +n nginx_config_reader_rationale_8 UNKNOWN Read_and_parse_Nginx_configuration_files. +n nginx_config_reader_rationale_11 UNKNOWN Initialize_Nginx_config_reader. +n nginx_config_reader_rationale_25 UNKNOWN Get_Nginx_configuration_status. +n nginx_config_reader_rationale_48 UNKNOWN Check_if_SSL_is_enabled. +n nginx_config_reader_rationale_54 UNKNOWN Extract_HTTP_listening_ports. +n nginx_config_reader_rationale_62 UNKNOWN Extract_HTTPS_listening_ports. +n nginx_config_reader_rationale_70 UNKNOWN Extract_upstream_servers. +n nginx_config_reader_rationale_81 UNKNOWN Extract_server_names. +n nginx_config_reader_rationale_93 UNKNOWN Extract_SSL_protocols. +n nginx_config_reader_rationale_103 UNKNOWN Extract_client_max_body_size. +n nginx_config_reader_rationale_111 UNKNOWN Check_if_gzip_is_enabled. +n nginx_config_reader_rationale_118 UNKNOWN Get_Nginx_configuration_status. +n home_scheianu_digiserver_v2_app_utils_background_tasks_py FUNCTION background_tasks.py +n background_tasks_run_background_task FUNCTION run_background_task() +n background_tasks_background_player_deployment FUNCTION background_player_deployment() +n background_tasks_rationale_1 UNKNOWN Background_task_execution_for_long-running_operations. +n background_tasks_rationale_10 UNKNOWN Run_a_function_in_a_background_thread,_with_a_Flask_app_context_pushed. +n background_tasks_rationale_43 UNKNOWN Deploy_player_code_to_host_in_background.__________Args:_________hostname:_SSH_h +n home_scheianu_digiserver_v2_app_models_player_feedback_py FUNCTION player_feedback.py +n player_feedback_playerfeedback CLASS PlayerFeedback +n player_feedback_playerfeedback_repr FUNCTION .__repr__() +n player_feedback_is_error FUNCTION is_error() +n player_feedback_age_seconds FUNCTION age_seconds() +n player_feedback_get_latest_for_player FUNCTION get_latest_for_player() +n player_feedback_rationale_1 UNKNOWN Player_feedback_model_for_tracking_player_status_and_errors. +n player_feedback_rationale_9 UNKNOWN Player_feedback_model_for_tracking_player_status_updates.__________Attributes: +n player_feedback_rationale_38 UNKNOWN String_representation_of_PlayerFeedback. +n player_feedback_rationale_43 UNKNOWN Check_if_feedback_indicates_an_error. +n player_feedback_rationale_48 UNKNOWN Get_age_of_feedback_in_seconds. +n player_feedback_rationale_54 UNKNOWN Get_most_recent_feedback_for_a_player.__________________Args:_____________player +n home_scheianu_digiserver_v2_app_models_https_config_py FUNCTION https_config.py +n https_config_httpsconfig CLASS HTTPSConfig +n https_config_httpsconfig_repr FUNCTION .__repr__() +n https_config_get_config FUNCTION get_config() +n https_config_create_or_update FUNCTION create_or_update() +n https_config_httpsconfig_to_dict FUNCTION .to_dict() +n https_config_rationale_1 UNKNOWN HTTPS_Configuration_model. +n https_config_rationale_9 UNKNOWN HTTPS_configuration_model_for_managing_secure_connections.__________Attributes: +n https_config_rationale_38 UNKNOWN String_representation_of_HTTPSConfig. +n https_config_rationale_44 UNKNOWN Get_the_current_HTTPS_configuration.__________________Returns:_____________HTTPS +n https_config_rationale_56 UNKNOWN Create_or_update_HTTPS_configuration.__________________Args:_____________https_e +n https_config_rationale_88 UNKNOWN Convert_configuration_to_dictionary.__________________Returns:_____________Dicti +n home_scheianu_digiserver_v2_app_models_user_py FUNCTION user.py +n user_user CLASS User +n usermixin UNKNOWN UserMixin +n user_user_repr FUNCTION .__repr__() +n user_is_admin FUNCTION is_admin() +n user_user_update_last_login FUNCTION .update_last_login() +n user_rationale_1 UNKNOWN User_model_for_authentication_and_authorization. +n user_rationale_11 UNKNOWN User_model_for_application_authentication.__________Attributes:_________id:_Prim +n user_rationale_33 UNKNOWN String_representation_of_User. +n user_rationale_38 UNKNOWN Check_if_user_has_admin_role. +n user_rationale_42 UNKNOWN Update_last_login_timestamp. +n home_scheianu_digiserver_v2_app_models_player_py FUNCTION player.py +n player_player CLASS Player +n player_player_repr FUNCTION .__repr__() +n player_is_online FUNCTION is_online() +n player_player_update_status FUNCTION .update_status() +n player_player_set_password FUNCTION .set_password() +n player_player_check_password FUNCTION .check_password() +n player_player_set_quickconnect_code FUNCTION .set_quickconnect_code() +n player_player_check_quickconnect_code FUNCTION .check_quickconnect_code() +n player_authenticate FUNCTION authenticate() +n player_rationale_1 UNKNOWN Player_model_for_digital_signage_players. +n player_rationale_9 UNKNOWN Player_model_representing_a_digital_signage_device.__________Attributes: +n player_rationale_56 UNKNOWN String_representation_of_Player. +n player_rationale_61 UNKNOWN Check_if_player_is_online_(seen_in_last_5_minutes). +n player_rationale_68 UNKNOWN Update_player_status_and_last_seen_timestamp.__________________Args: +n player_rationale_77 UNKNOWN Set_player_password_with_bcrypt_hashing.__________________Args:_____________pass +n player_rationale_86 UNKNOWN Verify_player_password.__________________Args:_____________password:_Plain_text +n player_rationale_98 UNKNOWN Set_quick_connect_code_with_bcrypt_hashing.__________________Args:_____________c +n player_rationale_107 UNKNOWN Verify_quick_connect_code.__________________Args:_____________code:_Plain_text_c +n player_rationale_122 UNKNOWN Authenticate_a_player_by_hostname_and_password_or_quickconnect_code. +n home_scheianu_digiserver_v2_app_models_server_log_py FUNCTION server_log.py +n server_log_serverlog CLASS ServerLog +n server_log_serverlog_repr FUNCTION .__repr__() +n server_log_log_info FUNCTION log_info() +n server_log_log_warning FUNCTION log_warning() +n server_log_log_error FUNCTION log_error() +n server_log_rationale_1 UNKNOWN Server_log_model_for_audit_trail. +n server_log_rationale_9 UNKNOWN Server_log_model_for_tracking_system_events.__________Attributes:_________id:_Pr +n server_log_rationale_26 UNKNOWN String_representation_of_ServerLog. +n server_log_rationale_31 UNKNOWN Create_an_info_level_log_entry.__________________Args:_____________message:_Log +n server_log_rationale_46 UNKNOWN Create_a_warning_level_log_entry.__________________Args:_____________message:_Lo +n server_log_rationale_61 UNKNOWN Create_an_error_level_log_entry.__________________Args:_____________message:_Log +n home_scheianu_digiserver_v2_app_models_player_user_py FUNCTION player_user.py +n player_user_playeruser CLASS PlayerUser +n player_user_playeruser_repr FUNCTION .__repr__() +n player_user_playeruser_to_dict FUNCTION .to_dict() +n player_user_rationale_1 UNKNOWN Player_user_model_for_managing_user_codes_and_names. +n player_user_rationale_8 UNKNOWN Player_user_model_for_managing_user_codes_and_names_globally.__________Attribute +n player_user_rationale_26 UNKNOWN String_representation_of_PlayerUser. +n player_user_rationale_30 UNKNOWN Convert_to_dictionary_for_API_responses. +n home_scheianu_digiserver_v2_app_models_group_py FUNCTION group.py +n group_group CLASS Group +n group_group_repr FUNCTION .__repr__() +n group_content_count FUNCTION content_count() +n group_group_add_player FUNCTION .add_player() +n group_group_remove_player FUNCTION .remove_player() +n group_rationale_1 UNKNOWN Group_model_for_organizing_players_and_content. +n group_rationale_16 UNKNOWN Group_model_for_organizing_players_with_shared_content.__________Attributes: +n group_rationale_39 UNKNOWN String_representation_of_Group. +n group_rationale_46 UNKNOWN Get_number_of_content_items_in_this_group. +n group_rationale_50 UNKNOWN Add_a_player_to_this_group.__________________Args:_____________player:_Player_in +n group_rationale_59 UNKNOWN Remove_a_player_from_this_group.__________________Args:_____________player:_Play +n home_scheianu_digiserver_v2_app_models_content_py FUNCTION content.py +n content_content CLASS Content +n content_content_repr FUNCTION .__repr__() +n content_file_size_mb FUNCTION file_size_mb() +n content_group_count FUNCTION group_count() +n content_original_display_name FUNCTION original_display_name() +n content_original_media_path FUNCTION original_media_path() +n content_current_media_path FUNCTION current_media_path() +n content_content_is_image FUNCTION .is_image() +n content_content_is_video FUNCTION .is_video() +n content_content_is_pdf FUNCTION .is_pdf() +n content_content_is_weblink FUNCTION .is_weblink() +n content_has_player_edits FUNCTION has_player_edits() +n content_rationale_9 UNKNOWN Content_model_representing_media_files_for_display.__________Attributes: +n content_rationale_45 UNKNOWN String_representation_of_Content. +n content_rationale_50 UNKNOWN Get_file_size_in_megabytes. +n content_rationale_57 UNKNOWN Get_number_of_groups_containing_this_content. +n content_rationale_62 UNKNOWN Name_of_the_original_(unedited)_file_for_display_purposes. +n content_rationale_67 UNKNOWN Path_(relative_to_uploads/)_where_the_original_unedited_file_lives.__________Whe +n content_rationale_79 UNKNOWN Path_(relative_to_uploads/)_of_the_current/latest_version_to_display. +n content_rationale_83 UNKNOWN Check_if_content_is_an_image. +n content_rationale_87 UNKNOWN Check_if_content_is_a_video. +n content_rationale_91 UNKNOWN Check_if_content_is_a_PDF. +n content_rationale_95 UNKNOWN Check_if_content_is_a_web_link_(URL)_rather_than_an_uploaded_file. +n content_rationale_100 UNKNOWN Whether_this_content_has_been_edited_on_a_player. +n content_rationale_105 UNKNOWN Display_name_of_the_original_(unedited)_file. +n content_rationale_110 UNKNOWN uploads/-relative_path_of_the_pristine_original_file.__________After_a_player_ed +n home_scheianu_digiserver_v2_app_models_init_py FUNCTION __init__.py +n home_scheianu_digiserver_v2_app_models_player_edit_py FUNCTION player_edit.py +n player_edit_playeredit CLASS PlayerEdit +n player_edit_playeredit_repr FUNCTION .__repr__() +n player_edit_playeredit_to_dict FUNCTION .to_dict() +n player_edit_rationale_1 UNKNOWN Player_edit_model_for_tracking_media_edited_on_players. +n player_edit_rationale_9 UNKNOWN Player_edit_model_for_tracking_media_files_edited_on_player_devices.__________At +n player_edit_rationale_43 UNKNOWN String_representation_of_PlayerEdit. +n player_edit_rationale_47 UNKNOWN Convert_to_dictionary_for_API_responses. +n home_scheianu_digiserver_v2_app_models_playlist_py FUNCTION playlist.py +n playlist_playlist CLASS Playlist +n playlist_playlist_repr FUNCTION .__repr__() +n playlist_player_count FUNCTION player_count() +n playlist_content_count FUNCTION content_count() +n playlist_total_duration FUNCTION total_duration() +n playlist_playlist_increment_version FUNCTION .increment_version() +n playlist_playlist_get_content_ordered FUNCTION .get_content_ordered() +n playlist_rationale_20 UNKNOWN Playlist_model_representing_a_collection_of_content.__________Attributes: +n playlist_rationale_49 UNKNOWN String_representation_of_Playlist. +n playlist_rationale_54 UNKNOWN Get_number_of_players_assigned_to_this_playlist. +n playlist_rationale_59 UNKNOWN Get_number_of_content_items_in_this_playlist. +n playlist_rationale_64 UNKNOWN Calculate_total_duration_of_all_content_in_seconds. +n playlist_rationale_71 UNKNOWN Increment_playlist_version_for_sync_detection. +n playlist_rationale_76 UNKNOWN Get_content_items_ordered_by_position. +n home_scheianu_digiserver_v2_old_code_documentation_fix_player_user_schema_py FUNCTION fix_player_user_schema.py +n fix_player_user_schema_main FUNCTION main() +n home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py FUNCTION test_edit_media_simple.py +n test_edit_media_simple_test_edit_media_endpoint FUNCTION test_edit_media_endpoint() +n test_edit_media_simple_rationale_20 UNKNOWN Test_the_edit_media_endpoint_using_Flask_test_client +n home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py FUNCTION test_edit_media_api.py +n test_edit_media_api_colors CLASS Colors +n test_edit_media_api_print_section FUNCTION print_section() +n test_edit_media_api_print_success FUNCTION print_success() +n test_edit_media_api_print_error FUNCTION print_error() +n test_edit_media_api_print_info FUNCTION print_info() +n test_edit_media_api_print_warning FUNCTION print_warning() +n test_edit_media_api_test_server_health FUNCTION test_server_health() +n test_edit_media_api_test_endpoint_exists FUNCTION test_endpoint_exists() +n test_edit_media_api_get_player_auth_code FUNCTION get_player_auth_code() +n test_edit_media_api_get_sample_content FUNCTION get_sample_content() +n test_edit_media_api_test_authentication FUNCTION test_authentication() +n test_edit_media_api_test_full_upload FUNCTION test_full_upload() +n test_edit_media_api_check_database_integrity FUNCTION check_database_integrity() +n test_edit_media_api_main FUNCTION main() +n test_edit_media_api_rationale_26 UNKNOWN Print_a_section_header +n test_edit_media_api_rationale_44 UNKNOWN Test_if_server_is_accessible +n test_edit_media_api_rationale_66 UNKNOWN Test_if_the_endpoint_is_available +n test_edit_media_api_rationale_98 UNKNOWN Get_a_valid_player_auth_code_from_the_database +n test_edit_media_api_rationale_138 UNKNOWN Get_a_sample_content_file_to_use_for_testing +n test_edit_media_api_rationale_172 UNKNOWN Test_if_authentication_works +n test_edit_media_api_rationale_203 UNKNOWN Test_a_full_media_upload +n test_edit_media_api_rationale_272 UNKNOWN Check_database_tables_and_records +n test_edit_media_api_rationale_310 UNKNOWN Run_all_diagnostic_tests +n home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py FUNCTION blueprint_groups.py +n blueprint_groups_groups_list FUNCTION groups_list() +n blueprint_groups_create_group FUNCTION create_group() +n blueprint_groups_edit_group FUNCTION edit_group() +n blueprint_groups_delete_group FUNCTION delete_group() +n blueprint_groups_manage_group FUNCTION manage_group() +n blueprint_groups_group_fullscreen FUNCTION group_fullscreen() +n blueprint_groups_add_player_to_group FUNCTION add_player_to_group() +n blueprint_groups_remove_player_from_group FUNCTION remove_player_from_group() +n blueprint_groups_add_content_to_group FUNCTION add_content_to_group() +n blueprint_groups_remove_content_from_group FUNCTION remove_content_from_group() +n blueprint_groups_reorder_group_content FUNCTION reorder_group_content() +n blueprint_groups_group_stats FUNCTION group_stats() +n blueprint_groups_rationale_1 UNKNOWN Groups_blueprint_for_group_management_and_player_assignments. +n blueprint_groups_rationale_17 UNKNOWN Display_list_of_all_groups. +n blueprint_groups_rationale_176 UNKNOWN Manage_group_with_player_status_cards_and_content. +n blueprint_groups_rationale_215 UNKNOWN Display_group_fullscreen_view_with_all_player_status_cards. +n blueprint_groups_rationale_240 UNKNOWN Add_a_player_to_a_group. +n blueprint_groups_rationale_270 UNKNOWN Remove_a_player_from_a_group. +n blueprint_groups_rationale_299 UNKNOWN Add_content_to_a_group. +n blueprint_groups_rationale_336 UNKNOWN Remove_content_from_a_group. +n blueprint_groups_rationale_366 UNKNOWN Reorder_content_within_a_group. +n blueprint_groups_rationale_395 UNKNOWN Get_group_statistics_as_JSON. +n home_scheianu_digiserver_v2_old_code_documentation_add_muted_column_py FUNCTION add_muted_column.py +n add_muted_column_add_muted_column FUNCTION add_muted_column() +n add_muted_column_rationale_7 UNKNOWN Add_muted_column_to_playlist_content_association_table. +n home_scheianu_digiserver_v2_old_code_documentation_check_fix_player_py FUNCTION check_fix_player.py +n home_scheianu_digiserver_v2_old_code_documentation_migrate_add_edit_enabled_py FUNCTION migrate_add_edit_enabled.py +n migrate_add_edit_enabled_migrate FUNCTION migrate() +n migrate_add_edit_enabled_rationale_1 UNKNOWN Migration:_Add_edit_on_player_enabled_column_to_playlist_content_table. +n migrate_add_edit_enabled_rationale_8 UNKNOWN Add_edit_on_player_enabled_column_to_playlist_content. +e home_scheianu_digiserver_v2_migrations_add_player_user_table_py add_player_user_table_rationale_1 rationale_for +e add_player_user_table_rationale_1 player_user_playeruser uses +e home_scheianu_digiserver_v2_migrations_migrate_player_user_global_py migrate_player_user_global_rationale_1 rationale_for +e home_scheianu_digiserver_v2_migrations_add_original_filename_to_content_py add_original_filename_to_content_rationale_1 rationale_for +e home_scheianu_digiserver_v2_migrations_add_url_to_content_py add_url_to_content_rationale_1 rationale_for +e home_scheianu_digiserver_v2_migrations_add_https_config_table_py add_https_config_table_rationale_1 rationale_for +e add_https_config_table_rationale_1 https_config_httpsconfig uses +e home_scheianu_digiserver_v2_migrations_add_deployment_fields_to_player_py add_deployment_fields_to_player_rationale_1 rationale_for +e home_scheianu_digiserver_v2_migrations_add_email_to_https_config_py add_email_to_https_config_rationale_1 rationale_for +e home_scheianu_digiserver_v2_app_config_py config_config contains +e home_scheianu_digiserver_v2_app_config_py config_developmentconfig contains +e home_scheianu_digiserver_v2_app_config_py config_productionconfig contains +e home_scheianu_digiserver_v2_app_config_py config_testingconfig contains +e home_scheianu_digiserver_v2_app_config_py config_get_config contains +e home_scheianu_digiserver_v2_app_config_py config_rationale_1 rationale_for +e config_config config_developmentconfig inherits +e config_config config_productionconfig inherits +e config_config config_testingconfig inherits +e config_developmentconfig config_rationale_57 rationale_for +e config_developmentconfig app_rationale_1 uses +e config_developmentconfig app_rationale_18 uses +e config_developmentconfig app_rationale_91 uses +e config_developmentconfig app_rationale_111 uses +e config_developmentconfig app_rationale_124 uses +e config_developmentconfig app_rationale_149 uses +e config_developmentconfig app_rationale_190 uses +e config_developmentconfig app_rationale_214 uses +e config_productionconfig config_rationale_79 rationale_for +e config_productionconfig app_rationale_1 uses +e config_productionconfig app_rationale_18 uses +e config_productionconfig app_rationale_91 uses +e config_productionconfig app_rationale_111 uses +e config_productionconfig app_rationale_124 uses +e config_productionconfig app_rationale_149 uses +e config_productionconfig app_rationale_190 uses +e config_productionconfig app_rationale_214 uses +e config_testingconfig config_rationale_103 rationale_for +e config_testingconfig app_rationale_1 uses +e config_testingconfig app_rationale_18 uses +e config_testingconfig app_rationale_91 uses +e config_testingconfig app_rationale_111 uses +e config_testingconfig app_rationale_124 uses +e config_testingconfig app_rationale_149 uses +e config_testingconfig app_rationale_190 uses +e config_testingconfig app_rationale_214 uses +e config_get_config config_rationale_128 rationale_for +e home_scheianu_digiserver_v2_app_extensions_py extensions_rationale_1 rationale_for +e home_scheianu_digiserver_v2_app_app_py app_create_app contains +e home_scheianu_digiserver_v2_app_app_py app_register_blueprints contains +e home_scheianu_digiserver_v2_app_app_py app_configure_login_manager contains +e home_scheianu_digiserver_v2_app_app_py app_register_error_handlers contains +e home_scheianu_digiserver_v2_app_app_py app_register_commands contains +e home_scheianu_digiserver_v2_app_app_py app_register_context_processors contains +e home_scheianu_digiserver_v2_app_app_py app_register_template_filters contains +e home_scheianu_digiserver_v2_app_app_py app_rationale_1 rationale_for +e app_create_app app_configure_login_manager calls +e app_create_app app_register_blueprints calls +e app_create_app app_register_error_handlers calls +e app_create_app app_register_commands calls +e app_create_app app_register_context_processors calls +e app_create_app app_register_template_filters calls +e app_create_app app_rationale_18 rationale_for +e app_create_app script_name_fix_scriptnamefix calls +e app_create_app portal_sso_init_portal_sso calls +e app_create_app fix_player_user_schema_main calls +e app_create_app test_edit_media_simple_test_edit_media_endpoint calls +e app_create_app add_muted_column_add_muted_column calls +e app_register_blueprints app_rationale_91 rationale_for +e app_configure_login_manager app_rationale_111 rationale_for +e app_register_error_handlers app_rationale_124 rationale_for +e app_register_commands app_rationale_149 rationale_for +e app_register_context_processors app_rationale_190 rationale_for +e app_register_template_filters app_rationale_214 rationale_for +e app_rationale_1 script_name_fix_scriptnamefix uses +e app_rationale_1 user_user uses +e app_rationale_18 script_name_fix_scriptnamefix uses +e app_rationale_18 user_user uses +e app_rationale_91 script_name_fix_scriptnamefix uses +e app_rationale_91 user_user uses +e app_rationale_111 script_name_fix_scriptnamefix uses +e app_rationale_111 user_user uses +e app_rationale_124 script_name_fix_scriptnamefix uses +e app_rationale_124 user_user uses +e app_rationale_149 script_name_fix_scriptnamefix uses +e app_rationale_149 user_user uses +e app_rationale_190 script_name_fix_scriptnamefix uses +e app_rationale_190 user_user uses +e app_rationale_214 script_name_fix_scriptnamefix uses +e app_rationale_214 user_user uses +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_admin_required contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_admin_panel contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_create_user contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_change_user_role contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_delete_user contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_change_theme contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_upload_logo contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_clear_logs contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_user_management contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_reset_user_password contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_system_info contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_leftover_media contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_delete_leftover_images contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_delete_leftover_videos contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_delete_single_leftover contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_dependencies contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_install_libreoffice contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_install_emoji_fonts contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_customize_logos contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_upload_header_logo contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_upload_login_logo contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_manage_editing_users contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_update_editing_user contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_delete_editing_user contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_https_config contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_update_https_config contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_https_config_status contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_player_build_meta_path contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_build_player contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_build_player_action contains +e home_scheianu_digiserver_v2_app_blueprints_admin_py admin_rationale_1 rationale_for +e admin_admin_required admin_rationale_19 rationale_for +e admin_admin_panel admin_rationale_36 rationale_for +e admin_admin_panel logger_log_action calls +e admin_create_user admin_rationale_80 rationale_for +e admin_create_user user_user calls +e admin_create_user logger_log_action calls +e admin_change_user_role admin_rationale_126 rationale_for +e admin_change_user_role logger_log_action calls +e admin_delete_user admin_rationale_160 rationale_for +e admin_delete_user logger_log_action calls +e admin_change_theme admin_rationale_188 rationale_for +e admin_change_theme logger_log_action calls +e admin_upload_logo admin_rationale_212 rationale_for +e admin_upload_logo logger_log_action calls +e admin_clear_logs admin_rationale_254 rationale_for +e admin_clear_logs logger_log_action calls +e admin_user_management admin_rationale_274 rationale_for +e admin_user_management logger_log_action calls +e admin_reset_user_password logger_log_action calls +e admin_system_info admin_rationale_323 rationale_for +e admin_system_info logger_log_action calls +e admin_leftover_media admin_rationale_355 rationale_for +e admin_leftover_media logger_log_action calls +e admin_delete_leftover_images admin_rationale_407 rationale_for +e admin_delete_leftover_videos admin_rationale_462 rationale_for +e admin_delete_single_leftover admin_rationale_517 rationale_for +e admin_dependencies admin_rationale_554 rationale_for +e admin_install_libreoffice admin_rationale_635 rationale_for +e admin_install_libreoffice logger_log_action calls +e admin_install_emoji_fonts admin_rationale_672 rationale_for +e admin_install_emoji_fonts logger_log_action calls +e admin_customize_logos admin_rationale_709 rationale_for +e admin_upload_header_logo logger_log_action calls +e admin_upload_login_logo admin_rationale_749 rationale_for +e admin_upload_login_logo logger_log_action calls +e admin_manage_editing_users admin_rationale_779 rationale_for +e admin_manage_editing_users logger_log_action calls +e admin_update_editing_user admin_rationale_805 rationale_for +e admin_update_editing_user logger_log_action calls +e admin_delete_editing_user logger_log_action calls +e admin_https_config admin_rationale_857 rationale_for +e admin_https_config https_config_get_config calls +e admin_https_config logger_log_action calls +e admin_update_https_config admin_rationale_887 rationale_for +e admin_update_https_config https_config_create_or_update calls +e admin_update_https_config caddy_manager_generate_caddyfile calls +e admin_update_https_config caddy_manager_write_caddyfile calls +e admin_update_https_config caddy_manager_reload_caddy calls +e admin_update_https_config logger_log_action calls +e admin_https_config_status admin_rationale_996 rationale_for +e admin_https_config_status https_config_get_config calls +e admin_https_config_status player_edit_playeredit_to_dict calls +e admin_https_config_status logger_log_action calls +e admin_player_build_meta_path admin_build_player calls +e admin_player_build_meta_path admin_build_player_action calls +e admin_player_build_meta_path admin_rationale_1020 rationale_for +e admin_build_player admin_rationale_1029 rationale_for +e admin_build_player player_build_load_build_settings calls +e admin_build_player https_config_get_config calls +e admin_build_player ssh_deploy_detect_server_ip calls +e admin_build_player ssh_deploy_get_local_player_code_status calls +e admin_build_player_action admin_rationale_1075 rationale_for +e admin_build_player_action player_build_build_player_files calls +e admin_build_player_action logger_log_action calls +e admin_build_player_action player_build_write_base_config calls +e admin_build_player_action player_build_get_short_head calls +e admin_build_player_action player_build_save_build_settings calls +e admin_build_player_action player_build_make_build_record calls +e admin_rationale_1 caddy_manager_caddyconfiggenerator uses +e admin_rationale_1 player_edit_playeredit uses +e admin_rationale_1 player_user_playeruser uses +e admin_rationale_19 caddy_manager_caddyconfiggenerator uses +e admin_rationale_19 player_edit_playeredit uses +e admin_rationale_19 player_user_playeruser uses +e admin_rationale_36 caddy_manager_caddyconfiggenerator uses +e admin_rationale_36 player_edit_playeredit uses +e admin_rationale_36 player_user_playeruser uses +e admin_rationale_80 caddy_manager_caddyconfiggenerator uses +e admin_rationale_80 player_edit_playeredit uses +e admin_rationale_80 player_user_playeruser uses +e admin_rationale_126 caddy_manager_caddyconfiggenerator uses +e admin_rationale_126 player_edit_playeredit uses +e admin_rationale_126 player_user_playeruser uses +e admin_rationale_160 caddy_manager_caddyconfiggenerator uses +e admin_rationale_160 player_edit_playeredit uses +e admin_rationale_160 player_user_playeruser uses +e admin_rationale_188 caddy_manager_caddyconfiggenerator uses +e admin_rationale_188 player_edit_playeredit uses +e admin_rationale_188 player_user_playeruser uses +e admin_rationale_212 caddy_manager_caddyconfiggenerator uses +e admin_rationale_212 player_edit_playeredit uses +e admin_rationale_212 player_user_playeruser uses +e admin_rationale_254 caddy_manager_caddyconfiggenerator uses +e admin_rationale_254 player_edit_playeredit uses +e admin_rationale_254 player_user_playeruser uses +e admin_rationale_274 caddy_manager_caddyconfiggenerator uses +e admin_rationale_274 player_edit_playeredit uses +e admin_rationale_274 player_user_playeruser uses +e admin_rationale_323 caddy_manager_caddyconfiggenerator uses +e admin_rationale_323 player_edit_playeredit uses +e admin_rationale_323 player_user_playeruser uses +e admin_rationale_355 caddy_manager_caddyconfiggenerator uses +e admin_rationale_355 player_edit_playeredit uses +e admin_rationale_355 player_user_playeruser uses +e admin_rationale_407 caddy_manager_caddyconfiggenerator uses +e admin_rationale_407 player_edit_playeredit uses +e admin_rationale_407 player_user_playeruser uses +e admin_rationale_462 caddy_manager_caddyconfiggenerator uses +e admin_rationale_462 player_edit_playeredit uses +e admin_rationale_462 player_user_playeruser uses +e admin_rationale_517 caddy_manager_caddyconfiggenerator uses +e admin_rationale_517 player_edit_playeredit uses +e admin_rationale_517 player_user_playeruser uses +e admin_rationale_554 caddy_manager_caddyconfiggenerator uses +e admin_rationale_554 player_edit_playeredit uses +e admin_rationale_554 player_user_playeruser uses +e admin_rationale_635 caddy_manager_caddyconfiggenerator uses +e admin_rationale_635 player_edit_playeredit uses +e admin_rationale_635 player_user_playeruser uses +e admin_rationale_672 caddy_manager_caddyconfiggenerator uses +e admin_rationale_672 player_edit_playeredit uses +e admin_rationale_672 player_user_playeruser uses +e admin_rationale_709 caddy_manager_caddyconfiggenerator uses +e admin_rationale_709 player_edit_playeredit uses +e admin_rationale_709 player_user_playeruser uses +e admin_rationale_749 caddy_manager_caddyconfiggenerator uses +e admin_rationale_749 player_edit_playeredit uses +e admin_rationale_749 player_user_playeruser uses +e admin_rationale_779 caddy_manager_caddyconfiggenerator uses +e admin_rationale_779 player_edit_playeredit uses +e admin_rationale_779 player_user_playeruser uses +e admin_rationale_805 caddy_manager_caddyconfiggenerator uses +e admin_rationale_805 player_edit_playeredit uses +e admin_rationale_805 player_user_playeruser uses +e admin_rationale_857 caddy_manager_caddyconfiggenerator uses +e admin_rationale_857 player_edit_playeredit uses +e admin_rationale_857 player_user_playeruser uses +e admin_rationale_887 caddy_manager_caddyconfiggenerator uses +e admin_rationale_887 player_edit_playeredit uses +e admin_rationale_887 player_user_playeruser uses +e admin_rationale_996 caddy_manager_caddyconfiggenerator uses +e admin_rationale_996 player_edit_playeredit uses +e admin_rationale_996 player_user_playeruser uses +e admin_rationale_1020 caddy_manager_caddyconfiggenerator uses +e admin_rationale_1020 player_edit_playeredit uses +e admin_rationale_1020 player_user_playeruser uses +e admin_rationale_1029 caddy_manager_caddyconfiggenerator uses +e admin_rationale_1029 player_edit_playeredit uses +e admin_rationale_1029 player_user_playeruser uses +e admin_rationale_1075 caddy_manager_caddyconfiggenerator uses +e admin_rationale_1075 player_edit_playeredit uses +e admin_rationale_1075 player_user_playeruser uses +e home_scheianu_digiserver_v2_app_blueprints_content_old_py content_old_content_list contains +e home_scheianu_digiserver_v2_app_blueprints_content_old_py content_old_upload_content contains +e home_scheianu_digiserver_v2_app_blueprints_content_old_py content_old_edit_content contains +e home_scheianu_digiserver_v2_app_blueprints_content_old_py content_old_delete_content contains +e home_scheianu_digiserver_v2_app_blueprints_content_old_py content_old_delete_by_filename contains +e home_scheianu_digiserver_v2_app_blueprints_content_old_py content_old_bulk_delete_content contains +e home_scheianu_digiserver_v2_app_blueprints_content_old_py content_old_upload_progress_status contains +e home_scheianu_digiserver_v2_app_blueprints_content_old_py content_old_preview_content contains +e home_scheianu_digiserver_v2_app_blueprints_content_old_py content_old_download_content contains +e home_scheianu_digiserver_v2_app_blueprints_content_old_py content_old_content_statistics contains +e home_scheianu_digiserver_v2_app_blueprints_content_old_py content_old_check_duplicates contains +e home_scheianu_digiserver_v2_app_blueprints_content_old_py content_old_content_groups_info contains +e home_scheianu_digiserver_v2_app_blueprints_content_old_py content_old_rationale_1 rationale_for +e content_old_content_list content_old_rationale_31 rationale_for +e content_old_content_list logger_log_action calls +e content_old_upload_content uploads_set_upload_progress calls +e content_old_upload_content uploads_process_video_file calls +e content_old_upload_content logger_log_action calls +e content_old_upload_content content_content calls +e content_old_edit_content content_old_rationale_225 rationale_for +e content_old_edit_content logger_log_action calls +e content_old_delete_content content_old_rationale_259 rationale_for +e content_old_delete_content logger_log_action calls +e content_old_delete_by_filename content_old_rationale_290 rationale_for +e content_old_delete_by_filename logger_log_action calls +e content_old_bulk_delete_content content_old_rationale_338 rationale_for +e content_old_bulk_delete_content logger_log_action calls +e content_old_upload_progress_status content_old_rationale_375 rationale_for +e content_old_upload_progress_status uploads_get_upload_progress calls +e content_old_preview_content content_old_rationale_383 rationale_for +e content_old_preview_content logger_log_action calls +e content_old_download_content content_old_rationale_401 rationale_for +e content_old_download_content logger_log_action calls +e content_old_content_statistics content_old_rationale_420 rationale_for +e content_old_content_statistics logger_log_action calls +e content_old_check_duplicates content_old_rationale_454 rationale_for +e content_old_check_duplicates logger_log_action calls +e content_old_content_groups_info content_old_rationale_479 rationale_for +e content_old_content_groups_info logger_log_action calls +e home_scheianu_digiserver_v2_app_blueprints_content_py content_content_list contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_media_library contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_delete_media contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_create_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_delete_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_manage_playlist_content contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_add_content_to_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_add_weblink contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_add_weblink_to_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_remove_content_from_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_bulk_remove_from_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_reorder_playlist_content contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_update_playlist_content_muted contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_update_playlist_content_edit_enabled contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_update_playlist_content_duration contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_upload_media_page contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_process_image_file contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_process_video_file_extended contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_process_pdf_file contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_process_file_in_background contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_process_presentation_file contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_create_fullhd_image contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_resize_image_to_fullhd contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_optimize_image_to_fullhd contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_upload_media contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_assign_player_to_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_content_py content_rationale_1 rationale_for +e content_content_list content_rationale_28 rationale_for +e content_media_library content_rationale_44 rationale_for +e content_delete_media content_rationale_72 rationale_for +e content_delete_media players_list calls +e content_delete_media logger_log_action calls +e content_create_playlist content_rationale_136 rationale_for +e content_create_playlist playlist_playlist calls +e content_create_playlist logger_log_action calls +e content_delete_playlist logger_log_action calls +e content_manage_playlist_content content_rationale_201 rationale_for +e content_manage_playlist_content playlist_playlist_get_content_ordered calls +e content_add_content_to_playlist content_rationale_223 rationale_for +e content_add_content_to_playlist playlist_playlist_increment_version calls +e content_add_content_to_playlist logger_log_action calls +e content_add_weblink content_rationale_273 rationale_for +e content_add_weblink content_content calls +e content_add_weblink playlist_playlist_increment_version calls +e content_add_weblink logger_log_action calls +e content_add_weblink_to_playlist content_rationale_353 rationale_for +e content_add_weblink_to_playlist content_content calls +e content_add_weblink_to_playlist playlist_playlist_increment_version calls +e content_add_weblink_to_playlist logger_log_action calls +e content_remove_content_from_playlist content_rationale_419 rationale_for +e content_remove_content_from_playlist playlist_playlist_increment_version calls +e content_remove_content_from_playlist logger_log_action calls +e content_bulk_remove_from_playlist content_rationale_456 rationale_for +e content_bulk_remove_from_playlist playlist_playlist_increment_version calls +e content_bulk_remove_from_playlist logger_log_action calls +e content_reorder_playlist_content content_rationale_498 rationale_for +e content_reorder_playlist_content playlist_playlist_increment_version calls +e content_reorder_playlist_content logger_log_action calls +e content_update_playlist_content_muted content_rationale_539 rationale_for +e content_update_playlist_content_muted playlist_playlist_increment_version calls +e content_update_playlist_content_muted logger_log_action calls +e content_update_playlist_content_edit_enabled content_rationale_580 rationale_for +e content_update_playlist_content_edit_enabled playlist_playlist_increment_version calls +e content_update_playlist_content_edit_enabled logger_log_action calls +e content_update_playlist_content_duration content_rationale_621 rationale_for +e content_update_playlist_content_duration playlist_playlist_increment_version calls +e content_update_playlist_content_duration logger_log_action calls +e content_upload_media_page content_rationale_671 rationale_for +e content_process_image_file content_upload_media calls +e content_process_image_file content_rationale_677 rationale_for +e content_process_image_file logger_log_action calls +e content_process_video_file_extended content_process_file_in_background calls +e content_process_video_file_extended content_upload_media calls +e content_process_video_file_extended content_rationale_703 rationale_for +e content_process_video_file_extended logger_log_action calls +e content_process_pdf_file content_process_file_in_background calls +e content_process_pdf_file content_upload_media calls +e content_process_pdf_file content_rationale_728 rationale_for +e content_process_pdf_file logger_log_action calls +e content_process_file_in_background content_process_presentation_file calls +e content_process_file_in_background content_rationale_800 rationale_for +e content_process_file_in_background content_content calls +e content_process_file_in_background logger_log_action calls +e content_process_presentation_file content_resize_image_to_fullhd calls +e content_process_presentation_file content_upload_media calls +e content_process_presentation_file content_rationale_978 rationale_for +e content_process_presentation_file logger_log_action calls +e content_process_presentation_file players_list calls +e content_create_fullhd_image content_optimize_image_to_fullhd calls +e content_create_fullhd_image content_rationale_1121 rationale_for +e content_resize_image_to_fullhd content_rationale_1146 rationale_for +e content_resize_image_to_fullhd logger_log_action calls +e content_optimize_image_to_fullhd content_rationale_1204 rationale_for +e content_optimize_image_to_fullhd logger_log_action calls +e content_upload_media content_rationale_1221 rationale_for +e content_upload_media logger_log_action calls +e content_upload_media content_content calls +e content_upload_media playlist_playlist_increment_version calls +e content_assign_player_to_playlist content_rationale_1495 rationale_for +e content_assign_player_to_playlist logger_log_action calls +e content_rationale_1 home_scheianu_digiserver_v2_app_models_content_py rationale_for +e content_rationale_1 player_edit_playeredit uses +e content_rationale_28 player_edit_playeredit uses +e content_rationale_44 player_edit_playeredit uses +e content_rationale_72 player_edit_playeredit uses +e content_rationale_136 player_edit_playeredit uses +e content_rationale_201 player_edit_playeredit uses +e content_rationale_223 player_edit_playeredit uses +e content_rationale_273 player_edit_playeredit uses +e content_rationale_353 player_edit_playeredit uses +e content_rationale_419 player_edit_playeredit uses +e content_rationale_456 player_edit_playeredit uses +e content_rationale_498 player_edit_playeredit uses +e content_rationale_539 player_edit_playeredit uses +e content_rationale_580 player_edit_playeredit uses +e content_rationale_621 player_edit_playeredit uses +e content_rationale_671 player_edit_playeredit uses +e content_rationale_677 player_edit_playeredit uses +e content_rationale_703 player_edit_playeredit uses +e content_rationale_728 player_edit_playeredit uses +e content_rationale_800 player_edit_playeredit uses +e content_rationale_978 player_edit_playeredit uses +e content_rationale_1121 player_edit_playeredit uses +e content_rationale_1146 player_edit_playeredit uses +e content_rationale_1204 player_edit_playeredit uses +e content_rationale_1221 player_edit_playeredit uses +e content_rationale_1495 player_edit_playeredit uses +e home_scheianu_digiserver_v2_app_blueprints_init_py init_rationale_1 rationale_for +e init_rationale_1 home_scheianu_digiserver_v2_app_utils_init_py rationale_for +e init_rationale_1 home_scheianu_digiserver_v2_app_models_init_py rationale_for +e init_rationale_1 user_user uses +e init_rationale_1 player_player uses +e init_rationale_1 group_group uses +e init_rationale_1 playlist_playlist uses +e init_rationale_1 content_content uses +e init_rationale_1 server_log_serverlog uses +e init_rationale_1 player_feedback_playerfeedback uses +e init_rationale_1 player_edit_playeredit uses +e init_rationale_1 player_user_playeruser uses +e init_rationale_1 https_config_httpsconfig uses +e home_scheianu_digiserver_v2_app_blueprints_api_py api_rate_limit contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_verify_player_auth contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_health_check contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_get_server_certificate contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_authenticate_player contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_verify_auth_code contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_get_playlist_by_quickconnect contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_get_player_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_get_playlist_version contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_get_cached_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_receive_player_feedback contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_get_player_status contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_get_upload_progress contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_system_info contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_list_content contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_get_logs contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_receive_edited_media contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_test_ssh_connection contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_deploy_player contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_api_not_found contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_method_not_allowed contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_internal_error contains +e home_scheianu_digiserver_v2_app_blueprints_api_py api_rationale_1 rationale_for +e api_rate_limit api_rationale_22 rationale_for +e api_verify_player_auth api_rationale_65 rationale_for +e api_health_check api_rationale_91 rationale_for +e api_get_server_certificate api_rationale_101 rationale_for +e api_authenticate_player api_rationale_108 rationale_for +e api_authenticate_player player_authenticate calls +e api_authenticate_player logger_log_action calls +e api_authenticate_player player_player_update_status calls +e api_verify_auth_code api_rationale_164 rationale_for +e api_verify_auth_code player_player_update_status calls +e api_get_playlist_by_quickconnect api_get_cached_playlist calls +e api_get_playlist_by_quickconnect api_rationale_208 rationale_for +e api_get_playlist_by_quickconnect logger_log_action calls +e api_get_playlist_by_quickconnect player_player_check_quickconnect_code calls +e api_get_player_playlist api_get_cached_playlist calls +e api_get_player_playlist api_rationale_306 rationale_for +e api_get_player_playlist logger_log_action calls +e api_get_playlist_version api_rationale_350 rationale_for +e api_get_playlist_version logger_log_action calls +e api_get_cached_playlist api_rationale_379 rationale_for +e api_get_cached_playlist playlist_playlist_get_content_ordered calls +e api_receive_player_feedback api_rationale_430 rationale_for +e api_receive_player_feedback logger_log_action calls +e api_receive_player_feedback player_player_check_quickconnect_code calls +e api_receive_player_feedback player_feedback_playerfeedback calls +e api_get_player_status api_rationale_541 rationale_for +e api_get_player_status logger_log_action calls +e api_get_upload_progress api_rationale_578 rationale_for +e api_get_upload_progress logger_log_action calls +e api_system_info api_rationale_592 rationale_for +e api_system_info logger_log_action calls +e api_list_content api_rationale_656 rationale_for +e api_list_content logger_log_action calls +e api_get_logs api_rationale_685 rationale_for +e api_get_logs logger_log_action calls +e api_receive_edited_media api_rationale_737 rationale_for +e api_receive_edited_media group_group calls +e api_receive_edited_media logger_log_action calls +e api_receive_edited_media player_user_playeruser calls +e api_receive_edited_media player_edit_playeredit calls +e api_test_ssh_connection api_rationale_937 rationale_for +e api_test_ssh_connection logger_log_action calls +e api_deploy_player api_rationale_981 rationale_for +e api_deploy_player ssh_deploy_deploy_player_to_host calls +e api_deploy_player logger_log_action calls +e api_api_not_found api_rationale_1050 rationale_for +e api_method_not_allowed api_rationale_1056 rationale_for +e api_internal_error api_rationale_1062 rationale_for +e api_rationale_1 player_edit_playeredit uses +e api_rationale_1 player_user_playeruser uses +e api_rationale_1 playlist_playlist uses +e api_rationale_22 player_edit_playeredit uses +e api_rationale_22 player_user_playeruser uses +e api_rationale_22 playlist_playlist uses +e api_rationale_65 player_edit_playeredit uses +e api_rationale_65 player_user_playeruser uses +e api_rationale_65 playlist_playlist uses +e api_rationale_91 player_edit_playeredit uses +e api_rationale_91 player_user_playeruser uses +e api_rationale_91 playlist_playlist uses +e api_rationale_101 player_edit_playeredit uses +e api_rationale_101 player_user_playeruser uses +e api_rationale_101 playlist_playlist uses +e api_rationale_108 player_edit_playeredit uses +e api_rationale_108 player_user_playeruser uses +e api_rationale_108 playlist_playlist uses +e api_rationale_164 player_edit_playeredit uses +e api_rationale_164 player_user_playeruser uses +e api_rationale_164 playlist_playlist uses +e api_rationale_208 player_edit_playeredit uses +e api_rationale_208 player_user_playeruser uses +e api_rationale_208 playlist_playlist uses +e api_rationale_306 player_edit_playeredit uses +e api_rationale_306 player_user_playeruser uses +e api_rationale_306 playlist_playlist uses +e api_rationale_350 player_edit_playeredit uses +e api_rationale_350 player_user_playeruser uses +e api_rationale_350 playlist_playlist uses +e api_rationale_379 player_edit_playeredit uses +e api_rationale_379 player_user_playeruser uses +e api_rationale_379 playlist_playlist uses +e api_rationale_430 player_edit_playeredit uses +e api_rationale_430 player_user_playeruser uses +e api_rationale_430 playlist_playlist uses +e api_rationale_541 player_edit_playeredit uses +e api_rationale_541 player_user_playeruser uses +e api_rationale_541 playlist_playlist uses +e api_rationale_578 player_edit_playeredit uses +e api_rationale_578 player_user_playeruser uses +e api_rationale_578 playlist_playlist uses +e api_rationale_592 player_edit_playeredit uses +e api_rationale_592 player_user_playeruser uses +e api_rationale_592 playlist_playlist uses +e api_rationale_656 player_edit_playeredit uses +e api_rationale_656 player_user_playeruser uses +e api_rationale_656 playlist_playlist uses +e api_rationale_685 player_edit_playeredit uses +e api_rationale_685 player_user_playeruser uses +e api_rationale_685 playlist_playlist uses +e api_rationale_737 player_edit_playeredit uses +e api_rationale_737 player_user_playeruser uses +e api_rationale_737 playlist_playlist uses +e api_rationale_937 player_edit_playeredit uses +e api_rationale_937 player_user_playeruser uses +e api_rationale_937 playlist_playlist uses +e api_rationale_981 player_edit_playeredit uses +e api_rationale_981 player_user_playeruser uses +e api_rationale_981 playlist_playlist uses +e api_rationale_1050 player_edit_playeredit uses +e api_rationale_1050 player_user_playeruser uses +e api_rationale_1050 playlist_playlist uses +e api_rationale_1056 player_edit_playeredit uses +e api_rationale_1056 player_user_playeruser uses +e api_rationale_1056 playlist_playlist uses +e api_rationale_1062 player_edit_playeredit uses +e api_rationale_1062 player_user_playeruser uses +e api_rationale_1062 playlist_playlist uses +e home_scheianu_digiserver_v2_app_blueprints_players_py players_list contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_add_player contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_edit_player contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_delete_player contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_regenerate_auth_code contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_player_page contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_manage_player contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_edited_media contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_edited_media_report contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_player_fullscreen contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_get_player_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_reorder_content contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_bulk_delete_players contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_bulk_assign_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_deployment_status contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_reorder_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_remove_from_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_players_py players_rationale_1 rationale_for +e players_list players_rationale_20 rationale_for +e players_list group_player_management_get_player_status_info calls +e players_list logger_log_action calls +e players_list nginx_config_reader_nginxconfigreader_extract_http_ports calls +e players_list nginx_config_reader_nginxconfigreader_extract_https_ports calls +e players_list test_edit_media_api_get_sample_content calls +e players_add_player players_rationale_57 rationale_for +e players_add_player player_player calls +e players_add_player player_player_set_password calls +e players_add_player player_player_set_quickconnect_code calls +e players_add_player logger_log_action calls +e players_add_player player_build_get_player_server_settings calls +e players_add_player https_config_get_config calls +e players_add_player ssh_deploy_detect_server_ip calls +e players_add_player background_tasks_run_background_task calls +e players_edit_player logger_log_action calls +e players_delete_player logger_log_action calls +e players_regenerate_auth_code players_rationale_299 rationale_for +e players_regenerate_auth_code logger_log_action calls +e players_player_page players_rationale_322 rationale_for +e players_manage_player players_rationale_329 rationale_for +e players_manage_player player_player_set_password calls +e players_manage_player logger_log_action calls +e players_manage_player player_player_set_quickconnect_code calls +e players_manage_player group_player_management_get_player_status_info calls +e players_edited_media players_rationale_446 rationale_for +e players_edited_media logger_log_action calls +e players_edited_media_report players_rationale_490 rationale_for +e players_edited_media_report logger_log_action calls +e players_player_fullscreen players_get_player_playlist calls +e players_player_fullscreen players_rationale_523 rationale_for +e players_player_fullscreen logger_log_action calls +e players_get_player_playlist players_rationale_546 rationale_for +e players_get_player_playlist playlist_playlist_get_content_ordered calls +e players_reorder_content players_rationale_591 rationale_for +e players_bulk_delete_players players_rationale_601 rationale_for +e players_bulk_delete_players logger_log_action calls +e players_bulk_assign_playlist players_rationale_633 rationale_for +e players_bulk_assign_playlist logger_log_action calls +e players_deployment_status players_rationale_670 rationale_for +e players_deployment_status logger_log_action calls +e players_reorder_playlist players_rationale_694 rationale_for +e players_reorder_playlist logger_log_action calls +e players_remove_from_playlist players_rationale_747 rationale_for +e players_remove_from_playlist logger_log_action calls +e players_rationale_1 https_config_httpsconfig uses +e players_rationale_1 player_edit_playeredit uses +e players_rationale_1 player_user_playeruser uses +e players_rationale_20 https_config_httpsconfig uses +e players_rationale_20 player_edit_playeredit uses +e players_rationale_20 player_user_playeruser uses +e players_rationale_57 https_config_httpsconfig uses +e players_rationale_57 player_edit_playeredit uses +e players_rationale_57 player_user_playeruser uses +e players_rationale_299 https_config_httpsconfig uses +e players_rationale_299 player_edit_playeredit uses +e players_rationale_299 player_user_playeruser uses +e players_rationale_322 https_config_httpsconfig uses +e players_rationale_322 player_edit_playeredit uses +e players_rationale_322 player_user_playeruser uses +e players_rationale_329 https_config_httpsconfig uses +e players_rationale_329 player_edit_playeredit uses +e players_rationale_329 player_user_playeruser uses +e players_rationale_446 https_config_httpsconfig uses +e players_rationale_446 player_edit_playeredit uses +e players_rationale_446 player_user_playeruser uses +e players_rationale_490 https_config_httpsconfig uses +e players_rationale_490 player_edit_playeredit uses +e players_rationale_490 player_user_playeruser uses +e players_rationale_523 https_config_httpsconfig uses +e players_rationale_523 player_edit_playeredit uses +e players_rationale_523 player_user_playeruser uses +e players_rationale_546 https_config_httpsconfig uses +e players_rationale_546 player_edit_playeredit uses +e players_rationale_546 player_user_playeruser uses +e players_rationale_591 https_config_httpsconfig uses +e players_rationale_591 player_edit_playeredit uses +e players_rationale_591 player_user_playeruser uses +e players_rationale_601 https_config_httpsconfig uses +e players_rationale_601 player_edit_playeredit uses +e players_rationale_601 player_user_playeruser uses +e players_rationale_633 https_config_httpsconfig uses +e players_rationale_633 player_edit_playeredit uses +e players_rationale_633 player_user_playeruser uses +e players_rationale_670 https_config_httpsconfig uses +e players_rationale_670 player_edit_playeredit uses +e players_rationale_670 player_user_playeruser uses +e players_rationale_694 https_config_httpsconfig uses +e players_rationale_694 player_edit_playeredit uses +e players_rationale_694 player_user_playeruser uses +e players_rationale_747 https_config_httpsconfig uses +e players_rationale_747 player_edit_playeredit uses +e players_rationale_747 player_user_playeruser uses +e home_scheianu_digiserver_v2_app_blueprints_auth_py auth_login contains +e home_scheianu_digiserver_v2_app_blueprints_auth_py auth_logout contains +e home_scheianu_digiserver_v2_app_blueprints_auth_py auth_register contains +e home_scheianu_digiserver_v2_app_blueprints_auth_py auth_change_password contains +e home_scheianu_digiserver_v2_app_blueprints_auth_py auth_rationale_1 rationale_for +e auth_login logger_log_action calls +e auth_logout logger_log_action calls +e auth_register user_user calls +e auth_change_password logger_log_action calls +e home_scheianu_digiserver_v2_app_blueprints_playlist_py playlist_manage_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_playlist_py playlist_add_to_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_playlist_py playlist_remove_from_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_playlist_py playlist_reorder_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_playlist_py playlist_update_duration contains +e home_scheianu_digiserver_v2_app_blueprints_playlist_py playlist_update_muted contains +e home_scheianu_digiserver_v2_app_blueprints_playlist_py playlist_clear_playlist contains +e home_scheianu_digiserver_v2_app_blueprints_playlist_py playlist_rationale_1 rationale_for +e playlist_manage_playlist playlist_rationale_19 rationale_for +e playlist_add_to_playlist playlist_rationale_34 rationale_for +e playlist_add_to_playlist playlist_playlist_increment_version calls +e playlist_add_to_playlist logger_log_action calls +e playlist_remove_from_playlist playlist_rationale_89 rationale_for +e playlist_remove_from_playlist playlist_playlist_increment_version calls +e playlist_remove_from_playlist logger_log_action calls +e playlist_reorder_playlist playlist_rationale_144 rationale_for +e playlist_reorder_playlist playlist_playlist_increment_version calls +e playlist_reorder_playlist logger_log_action calls +e playlist_update_duration playlist_rationale_191 rationale_for +e playlist_update_duration playlist_playlist_increment_version calls +e playlist_update_duration logger_log_action calls +e playlist_update_muted playlist_rationale_236 rationale_for +e playlist_update_muted playlist_playlist_increment_version calls +e playlist_update_muted logger_log_action calls +e playlist_clear_playlist playlist_rationale_279 rationale_for +e playlist_clear_playlist playlist_playlist_increment_version calls +e playlist_clear_playlist logger_log_action calls +e playlist_rationale_1 home_scheianu_digiserver_v2_app_models_playlist_py rationale_for +e playlist_rationale_1 content_content uses +e home_scheianu_digiserver_v2_app_blueprints_main_py main_dashboard contains +e home_scheianu_digiserver_v2_app_blueprints_main_py main_health contains +e home_scheianu_digiserver_v2_app_blueprints_main_py main_rationale_1 rationale_for +e main_dashboard logger_get_recent_logs calls +e main_health main_rationale_50 rationale_for +e main_rationale_1 player_player uses +e main_rationale_1 playlist_playlist uses +e main_rationale_1 content_content uses +e main_rationale_50 player_player uses +e main_rationale_50 playlist_playlist uses +e main_rationale_50 content_content uses +e home_scheianu_digiserver_v2_app_utils_script_name_fix_py script_name_fix_scriptnamefix contains +e home_scheianu_digiserver_v2_app_utils_script_name_fix_py script_name_fix_rationale_1 rationale_for +e script_name_fix_scriptnamefix script_name_fix_scriptnamefix_init method +e script_name_fix_scriptnamefix script_name_fix_scriptnamefix_call method +e home_scheianu_digiserver_v2_app_utils_portal_sso_py portal_sso_init_portal_sso contains +e home_scheianu_digiserver_v2_app_utils_portal_sso_py portal_sso_get_or_create_user contains +e home_scheianu_digiserver_v2_app_utils_portal_sso_py portal_sso_rationale_1 rationale_for +e portal_sso_init_portal_sso portal_sso_rationale_18 rationale_for +e portal_sso_get_or_create_user user_user calls +e portal_sso_rationale_1 user_user uses +e portal_sso_rationale_18 user_user uses +e home_scheianu_digiserver_v2_app_utils_caddy_manager_py caddy_manager_caddyconfiggenerator contains +e home_scheianu_digiserver_v2_app_utils_caddy_manager_py caddy_manager_generate_caddyfile contains +e home_scheianu_digiserver_v2_app_utils_caddy_manager_py caddy_manager_write_caddyfile contains +e home_scheianu_digiserver_v2_app_utils_caddy_manager_py caddy_manager_reload_caddy contains +e home_scheianu_digiserver_v2_app_utils_caddy_manager_py caddy_manager_rationale_1 rationale_for +e caddy_manager_caddyconfiggenerator caddy_manager_rationale_37 rationale_for +e caddy_manager_caddyconfiggenerator https_config_httpsconfig uses +e caddy_manager_generate_caddyfile https_config_get_config calls +e caddy_manager_reload_caddy https_config_get_config calls +e caddy_manager_rationale_1 https_config_httpsconfig uses +e caddy_manager_rationale_37 https_config_httpsconfig uses +e caddy_manager_rationale_41 https_config_httpsconfig uses +e caddy_manager_rationale_83 https_config_httpsconfig uses +e caddy_manager_rationale_99 https_config_httpsconfig uses +e caddy_manager_rationale_231 https_config_httpsconfig uses +e caddy_manager_rationale_250 https_config_httpsconfig uses +e home_scheianu_digiserver_v2_app_utils_group_player_management_py group_player_management_get_player_status_info contains +e home_scheianu_digiserver_v2_app_utils_group_player_management_py group_player_management_get_group_statistics contains +e home_scheianu_digiserver_v2_app_utils_group_player_management_py group_player_management_assign_player_to_group contains +e home_scheianu_digiserver_v2_app_utils_group_player_management_py group_player_management_bulk_assign_players_to_group contains +e home_scheianu_digiserver_v2_app_utils_group_player_management_py group_player_management_get_online_players_count contains +e home_scheianu_digiserver_v2_app_utils_group_player_management_py group_player_management_get_players_by_status contains +e home_scheianu_digiserver_v2_app_utils_group_player_management_py group_player_management_format_time_ago contains +e home_scheianu_digiserver_v2_app_utils_group_player_management_py group_player_management_rationale_1 rationale_for +e group_player_management_get_player_status_info group_player_management_format_time_ago calls +e group_player_management_get_player_status_info group_player_management_rationale_11 rationale_for +e group_player_management_get_player_status_info blueprint_groups_manage_group calls +e group_player_management_get_player_status_info blueprint_groups_group_fullscreen calls +e group_player_management_get_group_statistics group_player_management_rationale_55 rationale_for +e group_player_management_get_group_statistics blueprint_groups_groups_list calls +e group_player_management_get_group_statistics blueprint_groups_group_stats calls +e group_player_management_assign_player_to_group group_player_management_rationale_99 rationale_for +e group_player_management_assign_player_to_group logger_log_action calls +e group_player_management_bulk_assign_players_to_group group_player_management_rationale_134 rationale_for +e group_player_management_bulk_assign_players_to_group logger_log_action calls +e group_player_management_get_online_players_count group_player_management_rationale_169 rationale_for +e group_player_management_get_players_by_status group_player_management_rationale_179 rationale_for +e group_player_management_format_time_ago group_player_management_rationale_191 rationale_for +e home_scheianu_digiserver_v2_app_utils_ssh_deploy_py ssh_deploy_get_local_player_code_status contains +e home_scheianu_digiserver_v2_app_utils_ssh_deploy_py ssh_deploy_test_ssh_connection contains +e home_scheianu_digiserver_v2_app_utils_ssh_deploy_py ssh_deploy_generate_player_config contains +e home_scheianu_digiserver_v2_app_utils_ssh_deploy_py ssh_deploy_detect_server_ip contains +e home_scheianu_digiserver_v2_app_utils_ssh_deploy_py ssh_deploy_parse_server_address contains +e home_scheianu_digiserver_v2_app_utils_ssh_deploy_py ssh_deploy_generate_app_config contains +e home_scheianu_digiserver_v2_app_utils_ssh_deploy_py ssh_deploy_deploy_player_to_host contains +e home_scheianu_digiserver_v2_app_utils_ssh_deploy_py ssh_deploy_rationale_1 rationale_for +e ssh_deploy_get_local_player_code_status ssh_deploy_deploy_player_to_host calls +e ssh_deploy_get_local_player_code_status ssh_deploy_rationale_16 rationale_for +e ssh_deploy_test_ssh_connection ssh_deploy_deploy_player_to_host calls +e ssh_deploy_test_ssh_connection ssh_deploy_rationale_86 rationale_for +e ssh_deploy_generate_player_config ssh_deploy_rationale_156 rationale_for +e ssh_deploy_detect_server_ip ssh_deploy_rationale_209 rationale_for +e ssh_deploy_parse_server_address ssh_deploy_deploy_player_to_host calls +e ssh_deploy_parse_server_address ssh_deploy_rationale_242 rationale_for +e ssh_deploy_generate_app_config ssh_deploy_deploy_player_to_host calls +e ssh_deploy_generate_app_config ssh_deploy_rationale_277 rationale_for +e ssh_deploy_generate_app_config player_build_write_base_config calls +e ssh_deploy_deploy_player_to_host ssh_deploy_rationale_326 rationale_for +e ssh_deploy_deploy_player_to_host background_tasks_background_player_deployment calls +e home_scheianu_digiserver_v2_app_utils_pptx_converter_py pptx_converter_cleanup_libreoffice_processes contains +e home_scheianu_digiserver_v2_app_utils_pptx_converter_py pptx_converter_pptx_to_pdf_libreoffice contains +e home_scheianu_digiserver_v2_app_utils_pptx_converter_py pptx_converter_validate_pptx_file contains +e home_scheianu_digiserver_v2_app_utils_pptx_converter_py pptx_converter_rationale_1 rationale_for +e pptx_converter_cleanup_libreoffice_processes pptx_converter_pptx_to_pdf_libreoffice calls +e pptx_converter_cleanup_libreoffice_processes pptx_converter_rationale_12 rationale_for +e pptx_converter_pptx_to_pdf_libreoffice pptx_converter_rationale_21 rationale_for +e pptx_converter_validate_pptx_file pptx_converter_rationale_87 rationale_for +e home_scheianu_digiserver_v2_app_utils_uploads_py uploads_get_upload_progress contains +e home_scheianu_digiserver_v2_app_utils_uploads_py uploads_set_upload_progress contains +e home_scheianu_digiserver_v2_app_utils_uploads_py uploads_clear_upload_progress contains +e home_scheianu_digiserver_v2_app_utils_uploads_py uploads_save_uploaded_file contains +e home_scheianu_digiserver_v2_app_utils_uploads_py uploads_process_video_file contains +e home_scheianu_digiserver_v2_app_utils_uploads_py uploads_process_pdf_file contains +e home_scheianu_digiserver_v2_app_utils_uploads_py uploads_get_file_size contains +e home_scheianu_digiserver_v2_app_utils_uploads_py uploads_delete_file contains +e home_scheianu_digiserver_v2_app_utils_uploads_py uploads_rationale_1 rationale_for +e uploads_get_upload_progress uploads_rationale_18 rationale_for +e uploads_set_upload_progress uploads_process_video_file calls +e uploads_set_upload_progress uploads_process_pdf_file calls +e uploads_set_upload_progress uploads_rationale_35 rationale_for +e uploads_clear_upload_progress uploads_rationale_51 rationale_for +e uploads_save_uploaded_file uploads_rationale_62 rationale_for +e uploads_save_uploaded_file logger_log_action calls +e uploads_process_video_file uploads_rationale_95 rationale_for +e uploads_process_video_file logger_log_action calls +e uploads_process_pdf_file uploads_rationale_177 rationale_for +e uploads_process_pdf_file logger_log_action calls +e uploads_get_file_size uploads_rationale_210 rationale_for +e uploads_delete_file uploads_rationale_225 rationale_for +e uploads_delete_file logger_log_action calls +e home_scheianu_digiserver_v2_app_utils_logger_py logger_log_action contains +e home_scheianu_digiserver_v2_app_utils_logger_py logger_get_recent_logs contains +e home_scheianu_digiserver_v2_app_utils_logger_py logger_clear_old_logs contains +e home_scheianu_digiserver_v2_app_utils_logger_py logger_log_info contains +e home_scheianu_digiserver_v2_app_utils_logger_py logger_log_warning contains +e home_scheianu_digiserver_v2_app_utils_logger_py logger_log_error contains +e home_scheianu_digiserver_v2_app_utils_logger_py logger_rationale_1 rationale_for +e logger_log_action logger_clear_old_logs calls +e logger_log_action logger_log_info calls +e logger_log_action logger_log_warning calls +e logger_log_action logger_log_error calls +e logger_log_action logger_rationale_10 rationale_for +e logger_log_action server_log_serverlog calls +e logger_log_action background_tasks_background_player_deployment calls +e logger_log_action blueprint_groups_groups_list calls +e logger_log_action blueprint_groups_create_group calls +e logger_log_action blueprint_groups_edit_group calls +e logger_log_action blueprint_groups_delete_group calls +e logger_log_action blueprint_groups_manage_group calls +e logger_log_action blueprint_groups_group_fullscreen calls +e logger_log_action blueprint_groups_add_player_to_group calls +e logger_log_action blueprint_groups_remove_player_from_group calls +e logger_log_action blueprint_groups_add_content_to_group calls +e logger_log_action blueprint_groups_remove_content_from_group calls +e logger_log_action blueprint_groups_reorder_group_content calls +e logger_log_action blueprint_groups_group_stats calls +e logger_get_recent_logs logger_rationale_27 rationale_for +e logger_clear_old_logs logger_rationale_45 rationale_for +e logger_log_info logger_rationale_67 rationale_for +e logger_log_warning logger_rationale_72 rationale_for +e logger_log_error logger_rationale_77 rationale_for +e logger_rationale_1 server_log_serverlog uses +e logger_rationale_10 server_log_serverlog uses +e logger_rationale_27 server_log_serverlog uses +e logger_rationale_45 server_log_serverlog uses +e logger_rationale_67 server_log_serverlog uses +e logger_rationale_72 server_log_serverlog uses +e logger_rationale_77 server_log_serverlog uses +e home_scheianu_digiserver_v2_app_utils_player_build_py player_build_run_git contains +e home_scheianu_digiserver_v2_app_utils_player_build_py player_build_get_short_head contains +e home_scheianu_digiserver_v2_app_utils_player_build_py player_build_build_player_files contains +e home_scheianu_digiserver_v2_app_utils_player_build_py player_build_write_base_config contains +e home_scheianu_digiserver_v2_app_utils_player_build_py player_build_load_build_settings contains +e home_scheianu_digiserver_v2_app_utils_player_build_py player_build_save_build_settings contains +e home_scheianu_digiserver_v2_app_utils_player_build_py player_build_get_player_server_settings contains +e home_scheianu_digiserver_v2_app_utils_player_build_py player_build_make_build_record contains +e home_scheianu_digiserver_v2_app_utils_player_build_py player_build_rationale_1 rationale_for +e player_build_run_git player_build_get_short_head calls +e player_build_run_git player_build_build_player_files calls +e player_build_get_short_head player_build_build_player_files calls +e player_build_get_short_head player_build_rationale_39 rationale_for +e player_build_build_player_files player_build_rationale_50 rationale_for +e player_build_write_base_config player_build_rationale_137 rationale_for +e player_build_load_build_settings player_build_get_player_server_settings calls +e player_build_load_build_settings player_build_rationale_166 rationale_for +e player_build_save_build_settings player_build_rationale_177 rationale_for +e player_build_get_player_server_settings player_build_rationale_189 rationale_for +e player_build_make_build_record player_build_rationale_210 rationale_for +e home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py nginx_config_reader_nginxconfigreader contains +e home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py nginx_config_reader_get_nginx_status contains +e home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py nginx_config_reader_rationale_1 rationale_for +e nginx_config_reader_nginxconfigreader nginx_config_reader_nginxconfigreader_init method +e nginx_config_reader_nginxconfigreader nginx_config_reader_nginxconfigreader_get_status method +e nginx_config_reader_nginxconfigreader nginx_config_reader_nginxconfigreader_check_ssl_enabled method +e nginx_config_reader_nginxconfigreader nginx_config_reader_nginxconfigreader_extract_http_ports method +e nginx_config_reader_nginxconfigreader nginx_config_reader_nginxconfigreader_extract_https_ports method +e nginx_config_reader_nginxconfigreader nginx_config_reader_nginxconfigreader_extract_upstream_servers method +e nginx_config_reader_nginxconfigreader nginx_config_reader_nginxconfigreader_extract_server_names method +e nginx_config_reader_nginxconfigreader nginx_config_reader_nginxconfigreader_extract_ssl_protocols method +e nginx_config_reader_nginxconfigreader nginx_config_reader_nginxconfigreader_extract_client_max_body_size method +e nginx_config_reader_nginxconfigreader nginx_config_reader_nginxconfigreader_check_gzip_enabled method +e nginx_config_reader_nginxconfigreader nginx_config_reader_get_nginx_status calls +e nginx_config_reader_nginxconfigreader nginx_config_reader_rationale_8 rationale_for +e nginx_config_reader_nginxconfigreader_init nginx_config_reader_rationale_11 rationale_for +e nginx_config_reader_nginxconfigreader_get_status nginx_config_reader_nginxconfigreader_check_ssl_enabled calls +e nginx_config_reader_nginxconfigreader_get_status nginx_config_reader_nginxconfigreader_extract_http_ports calls +e nginx_config_reader_nginxconfigreader_get_status nginx_config_reader_nginxconfigreader_extract_https_ports calls +e nginx_config_reader_nginxconfigreader_get_status nginx_config_reader_nginxconfigreader_extract_upstream_servers calls +e nginx_config_reader_nginxconfigreader_get_status nginx_config_reader_nginxconfigreader_extract_server_names calls +e nginx_config_reader_nginxconfigreader_get_status nginx_config_reader_nginxconfigreader_extract_ssl_protocols calls +e nginx_config_reader_nginxconfigreader_get_status nginx_config_reader_nginxconfigreader_extract_client_max_body_size calls +e nginx_config_reader_nginxconfigreader_get_status nginx_config_reader_nginxconfigreader_check_gzip_enabled calls +e nginx_config_reader_nginxconfigreader_get_status nginx_config_reader_get_nginx_status calls +e nginx_config_reader_nginxconfigreader_get_status nginx_config_reader_rationale_25 rationale_for +e nginx_config_reader_nginxconfigreader_check_ssl_enabled nginx_config_reader_rationale_48 rationale_for +e nginx_config_reader_nginxconfigreader_extract_http_ports nginx_config_reader_rationale_54 rationale_for +e nginx_config_reader_nginxconfigreader_extract_https_ports nginx_config_reader_rationale_62 rationale_for +e nginx_config_reader_nginxconfigreader_extract_upstream_servers nginx_config_reader_rationale_70 rationale_for +e nginx_config_reader_nginxconfigreader_extract_upstream_servers group_group calls +e nginx_config_reader_nginxconfigreader_extract_server_names nginx_config_reader_rationale_81 rationale_for +e nginx_config_reader_nginxconfigreader_extract_ssl_protocols nginx_config_reader_rationale_93 rationale_for +e nginx_config_reader_nginxconfigreader_extract_ssl_protocols group_group calls +e nginx_config_reader_nginxconfigreader_extract_client_max_body_size nginx_config_reader_rationale_103 rationale_for +e nginx_config_reader_nginxconfigreader_extract_client_max_body_size group_group calls +e nginx_config_reader_nginxconfigreader_check_gzip_enabled nginx_config_reader_rationale_111 rationale_for +e nginx_config_reader_get_nginx_status nginx_config_reader_rationale_118 rationale_for +e home_scheianu_digiserver_v2_app_utils_background_tasks_py background_tasks_run_background_task contains +e home_scheianu_digiserver_v2_app_utils_background_tasks_py background_tasks_background_player_deployment contains +e home_scheianu_digiserver_v2_app_utils_background_tasks_py background_tasks_rationale_1 rationale_for +e background_tasks_run_background_task background_tasks_rationale_10 rationale_for +e background_tasks_background_player_deployment background_tasks_rationale_43 rationale_for +e home_scheianu_digiserver_v2_app_models_player_feedback_py player_feedback_playerfeedback contains +e home_scheianu_digiserver_v2_app_models_player_feedback_py player_feedback_is_error contains +e home_scheianu_digiserver_v2_app_models_player_feedback_py player_feedback_age_seconds contains +e home_scheianu_digiserver_v2_app_models_player_feedback_py player_feedback_get_latest_for_player contains +e home_scheianu_digiserver_v2_app_models_player_feedback_py player_feedback_rationale_1 rationale_for +e player_feedback_playerfeedback player_feedback_playerfeedback_repr method +e player_feedback_playerfeedback player_feedback_rationale_9 rationale_for +e player_feedback_playerfeedback_repr player_feedback_rationale_38 rationale_for +e home_scheianu_digiserver_v2_app_models_https_config_py https_config_httpsconfig contains +e home_scheianu_digiserver_v2_app_models_https_config_py https_config_get_config contains +e home_scheianu_digiserver_v2_app_models_https_config_py https_config_create_or_update contains +e home_scheianu_digiserver_v2_app_models_https_config_py https_config_rationale_1 rationale_for +e https_config_httpsconfig https_config_httpsconfig_repr method +e https_config_httpsconfig https_config_httpsconfig_to_dict method +e https_config_httpsconfig https_config_rationale_9 rationale_for +e https_config_httpsconfig_repr https_config_rationale_38 rationale_for +e https_config_get_config https_config_create_or_update calls +e https_config_httpsconfig_to_dict https_config_rationale_88 rationale_for +e home_scheianu_digiserver_v2_app_models_user_py user_user contains +e home_scheianu_digiserver_v2_app_models_user_py user_is_admin contains +e home_scheianu_digiserver_v2_app_models_user_py user_rationale_1 rationale_for +e user_user usermixin inherits +e user_user user_user_repr method +e user_user user_user_update_last_login method +e user_user user_rationale_11 rationale_for +e user_user_repr user_rationale_33 rationale_for +e user_user_update_last_login user_rationale_42 rationale_for +e home_scheianu_digiserver_v2_app_models_player_py player_player contains +e home_scheianu_digiserver_v2_app_models_player_py player_is_online contains +e home_scheianu_digiserver_v2_app_models_player_py player_authenticate contains +e home_scheianu_digiserver_v2_app_models_player_py player_rationale_1 rationale_for +e player_player player_player_repr method +e player_player player_player_update_status method +e player_player player_player_set_password method +e player_player player_player_check_password method +e player_player player_player_set_quickconnect_code method +e player_player player_player_check_quickconnect_code method +e player_player player_rationale_9 rationale_for +e player_player_repr player_rationale_56 rationale_for +e player_player_update_status player_rationale_68 rationale_for +e player_player_set_password player_rationale_77 rationale_for +e player_player_check_password player_authenticate calls +e player_player_check_password player_rationale_86 rationale_for +e player_player_set_quickconnect_code player_rationale_98 rationale_for +e player_player_check_quickconnect_code player_authenticate calls +e player_player_check_quickconnect_code player_rationale_107 rationale_for +e home_scheianu_digiserver_v2_app_models_server_log_py server_log_serverlog contains +e home_scheianu_digiserver_v2_app_models_server_log_py server_log_log_info contains +e home_scheianu_digiserver_v2_app_models_server_log_py server_log_log_warning contains +e home_scheianu_digiserver_v2_app_models_server_log_py server_log_log_error contains +e home_scheianu_digiserver_v2_app_models_server_log_py server_log_rationale_1 rationale_for +e server_log_serverlog server_log_serverlog_repr method +e server_log_serverlog server_log_rationale_9 rationale_for +e server_log_serverlog_repr server_log_rationale_26 rationale_for +e home_scheianu_digiserver_v2_app_models_player_user_py player_user_playeruser contains +e home_scheianu_digiserver_v2_app_models_player_user_py player_user_rationale_1 rationale_for +e player_user_playeruser player_user_playeruser_repr method +e player_user_playeruser player_user_playeruser_to_dict method +e player_user_playeruser player_user_rationale_8 rationale_for +e player_user_playeruser_repr player_user_rationale_26 rationale_for +e player_user_playeruser_to_dict player_user_rationale_30 rationale_for +e home_scheianu_digiserver_v2_app_models_group_py group_group contains +e home_scheianu_digiserver_v2_app_models_group_py group_content_count contains +e home_scheianu_digiserver_v2_app_models_group_py group_rationale_1 rationale_for +e group_group group_group_repr method +e group_group group_group_add_player method +e group_group group_group_remove_player method +e group_group group_rationale_16 rationale_for +e group_group blueprint_groups_create_group calls +e group_group_repr group_rationale_39 rationale_for +e group_group_add_player group_rationale_50 rationale_for +e group_group_remove_player group_rationale_59 rationale_for +e home_scheianu_digiserver_v2_app_models_content_py content_content contains +e home_scheianu_digiserver_v2_app_models_content_py content_file_size_mb contains +e home_scheianu_digiserver_v2_app_models_content_py content_group_count contains +e home_scheianu_digiserver_v2_app_models_content_py content_original_display_name contains +e home_scheianu_digiserver_v2_app_models_content_py content_original_media_path contains +e home_scheianu_digiserver_v2_app_models_content_py content_current_media_path contains +e home_scheianu_digiserver_v2_app_models_content_py content_has_player_edits contains +e content_content content_content_repr method +e content_content content_content_is_image method +e content_content content_content_is_video method +e content_content content_content_is_pdf method +e content_content content_content_is_weblink method +e content_content content_rationale_9 rationale_for +e content_content playlist_playlist uses +e content_content playlist_rationale_20 uses +e content_content playlist_rationale_49 uses +e content_content playlist_rationale_54 uses +e content_content playlist_rationale_59 uses +e content_content playlist_rationale_64 uses +e content_content playlist_rationale_71 uses +e content_content playlist_rationale_76 uses +e content_content_repr content_rationale_45 rationale_for +e content_content_is_image content_rationale_83 rationale_for +e content_content_is_video content_rationale_87 rationale_for +e content_content_is_pdf content_rationale_91 rationale_for +e content_content_is_weblink content_rationale_95 rationale_for +e home_scheianu_digiserver_v2_app_models_player_edit_py player_edit_playeredit contains +e home_scheianu_digiserver_v2_app_models_player_edit_py player_edit_rationale_1 rationale_for +e player_edit_playeredit player_edit_playeredit_repr method +e player_edit_playeredit player_edit_playeredit_to_dict method +e player_edit_playeredit player_edit_rationale_9 rationale_for +e player_edit_playeredit_repr player_edit_rationale_43 rationale_for +e player_edit_playeredit_to_dict player_edit_rationale_47 rationale_for +e home_scheianu_digiserver_v2_app_models_playlist_py playlist_playlist contains +e home_scheianu_digiserver_v2_app_models_playlist_py playlist_player_count contains +e home_scheianu_digiserver_v2_app_models_playlist_py playlist_content_count contains +e home_scheianu_digiserver_v2_app_models_playlist_py playlist_total_duration contains +e playlist_playlist playlist_playlist_repr method +e playlist_playlist playlist_playlist_increment_version method +e playlist_playlist playlist_playlist_get_content_ordered method +e playlist_playlist playlist_rationale_20 rationale_for +e playlist_playlist_repr playlist_rationale_49 rationale_for +e playlist_playlist_increment_version playlist_rationale_71 rationale_for +e playlist_playlist_get_content_ordered playlist_rationale_76 rationale_for +e home_scheianu_digiserver_v2_old_code_documentation_fix_player_user_schema_py fix_player_user_schema_main contains +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py test_edit_media_simple_test_edit_media_endpoint contains +e test_edit_media_simple_test_edit_media_endpoint test_edit_media_simple_rationale_20 rationale_for +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py test_edit_media_api_colors contains +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py test_edit_media_api_print_section contains +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py test_edit_media_api_print_success contains +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py test_edit_media_api_print_error contains +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py test_edit_media_api_print_info contains +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py test_edit_media_api_print_warning contains +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py test_edit_media_api_test_server_health contains +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py test_edit_media_api_test_endpoint_exists contains +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py test_edit_media_api_get_player_auth_code contains +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py test_edit_media_api_get_sample_content contains +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py test_edit_media_api_test_authentication contains +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py test_edit_media_api_test_full_upload contains +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py test_edit_media_api_check_database_integrity contains +e home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py test_edit_media_api_main contains +e test_edit_media_api_print_section test_edit_media_api_test_server_health calls +e test_edit_media_api_print_section test_edit_media_api_test_endpoint_exists calls +e test_edit_media_api_print_section test_edit_media_api_get_player_auth_code calls +e test_edit_media_api_print_section test_edit_media_api_get_sample_content calls +e test_edit_media_api_print_section test_edit_media_api_test_authentication calls +e test_edit_media_api_print_section test_edit_media_api_test_full_upload calls +e test_edit_media_api_print_section test_edit_media_api_check_database_integrity calls +e test_edit_media_api_print_section test_edit_media_api_main calls +e test_edit_media_api_print_section test_edit_media_api_rationale_26 rationale_for +e test_edit_media_api_print_success test_edit_media_api_test_server_health calls +e test_edit_media_api_print_success test_edit_media_api_test_endpoint_exists calls +e test_edit_media_api_print_success test_edit_media_api_get_player_auth_code calls +e test_edit_media_api_print_success test_edit_media_api_get_sample_content calls +e test_edit_media_api_print_success test_edit_media_api_test_authentication calls +e test_edit_media_api_print_success test_edit_media_api_test_full_upload calls +e test_edit_media_api_print_success test_edit_media_api_check_database_integrity calls +e test_edit_media_api_print_error test_edit_media_api_test_server_health calls +e test_edit_media_api_print_error test_edit_media_api_test_endpoint_exists calls +e test_edit_media_api_print_error test_edit_media_api_get_player_auth_code calls +e test_edit_media_api_print_error test_edit_media_api_get_sample_content calls +e test_edit_media_api_print_error test_edit_media_api_test_authentication calls +e test_edit_media_api_print_error test_edit_media_api_test_full_upload calls +e test_edit_media_api_print_error test_edit_media_api_check_database_integrity calls +e test_edit_media_api_print_error test_edit_media_api_main calls +e test_edit_media_api_print_info test_edit_media_api_test_endpoint_exists calls +e test_edit_media_api_print_info test_edit_media_api_get_player_auth_code calls +e test_edit_media_api_print_info test_edit_media_api_test_full_upload calls +e test_edit_media_api_print_info test_edit_media_api_check_database_integrity calls +e test_edit_media_api_print_info test_edit_media_api_main calls +e test_edit_media_api_print_warning test_edit_media_api_test_endpoint_exists calls +e test_edit_media_api_print_warning test_edit_media_api_get_player_auth_code calls +e test_edit_media_api_print_warning test_edit_media_api_get_sample_content calls +e test_edit_media_api_print_warning test_edit_media_api_test_authentication calls +e test_edit_media_api_print_warning test_edit_media_api_main calls +e test_edit_media_api_test_server_health test_edit_media_api_main calls +e test_edit_media_api_test_server_health test_edit_media_api_rationale_44 rationale_for +e test_edit_media_api_test_endpoint_exists test_edit_media_api_main calls +e test_edit_media_api_test_endpoint_exists test_edit_media_api_rationale_66 rationale_for +e test_edit_media_api_get_player_auth_code test_edit_media_api_main calls +e test_edit_media_api_get_player_auth_code test_edit_media_api_rationale_98 rationale_for +e test_edit_media_api_get_sample_content test_edit_media_api_main calls +e test_edit_media_api_get_sample_content test_edit_media_api_rationale_138 rationale_for +e test_edit_media_api_test_authentication test_edit_media_api_main calls +e test_edit_media_api_test_authentication test_edit_media_api_rationale_172 rationale_for +e test_edit_media_api_test_full_upload test_edit_media_api_main calls +e test_edit_media_api_test_full_upload test_edit_media_api_rationale_203 rationale_for +e test_edit_media_api_check_database_integrity test_edit_media_api_main calls +e test_edit_media_api_check_database_integrity test_edit_media_api_rationale_272 rationale_for +e test_edit_media_api_main test_edit_media_api_rationale_310 rationale_for +e home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py blueprint_groups_groups_list contains +e home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py blueprint_groups_create_group contains +e home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py blueprint_groups_edit_group contains +e home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py blueprint_groups_delete_group contains +e home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py blueprint_groups_manage_group contains +e home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py blueprint_groups_group_fullscreen contains +e home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py blueprint_groups_add_player_to_group contains +e home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py blueprint_groups_remove_player_from_group contains +e home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py blueprint_groups_add_content_to_group contains +e home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py blueprint_groups_remove_content_from_group contains +e home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py blueprint_groups_reorder_group_content contains +e home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py blueprint_groups_group_stats contains +e home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py blueprint_groups_rationale_1 rationale_for +e blueprint_groups_groups_list blueprint_groups_rationale_17 rationale_for +e blueprint_groups_manage_group blueprint_groups_rationale_176 rationale_for +e blueprint_groups_group_fullscreen blueprint_groups_rationale_215 rationale_for +e blueprint_groups_add_player_to_group blueprint_groups_rationale_240 rationale_for +e blueprint_groups_remove_player_from_group blueprint_groups_rationale_270 rationale_for +e blueprint_groups_add_content_to_group blueprint_groups_rationale_299 rationale_for +e blueprint_groups_remove_content_from_group blueprint_groups_rationale_336 rationale_for +e blueprint_groups_reorder_group_content blueprint_groups_rationale_366 rationale_for +e blueprint_groups_group_stats blueprint_groups_rationale_395 rationale_for +e home_scheianu_digiserver_v2_old_code_documentation_add_muted_column_py add_muted_column_add_muted_column contains +e add_muted_column_add_muted_column add_muted_column_rationale_7 rationale_for +e home_scheianu_digiserver_v2_old_code_documentation_migrate_add_edit_enabled_py migrate_add_edit_enabled_migrate contains +e home_scheianu_digiserver_v2_old_code_documentation_migrate_add_edit_enabled_py migrate_add_edit_enabled_rationale_1 rationale_for +e migrate_add_edit_enabled_migrate migrate_add_edit_enabled_rationale_8 rationale_for \ No newline at end of file diff --git a/graphify-out/graph.html b/graphify-out/graph.html new file mode 100644 index 0000000..f4fb6b3 --- /dev/null +++ b/graphify-out/graph.html @@ -0,0 +1,602 @@ + + + + +graphify - digiserver-v2 + + + + +
+ + + + +
+
+
+

Schema Details

+ × +
+
+
+
+ + + \ No newline at end of file diff --git a/graphify-out/graph.json b/graphify-out/graph.json new file mode 100644 index 0000000..6112945 --- /dev/null +++ b/graphify-out/graph.json @@ -0,0 +1,23241 @@ +{ + "directed": false, + "multigraph": false, + "graph": {}, + "nodes": [ + { + "label": "add_player_user_table.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_player_user_table.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_migrations_add_player_user_table_py", + "community": 1, + "norm_label": "add_player_user_table.py" + }, + { + "label": "Add player_user table for user code mappings.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_player_user_table.py", + "source_location": "L1", + "level": 0, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "add_player_user_table_rationale_1", + "community": 1, + "norm_label": "add player_user table for user code mappings." + }, + { + "label": "migrate_player_user_global.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/migrations/migrate_player_user_global.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_migrations_migrate_player_user_global_py", + "community": 14, + "norm_label": "migrate_player_user_global.py" + }, + { + "label": "Migrate player_user table to remove player_id and make user_code unique globally", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/migrations/migrate_player_user_global.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "migrate_player_user_global_rationale_1", + "community": 14, + "norm_label": "migrate player_user table to remove player_id and make user_code unique globally" + }, + { + "label": "add_original_filename_to_content.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_original_filename_to_content.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_migrations_add_original_filename_to_content_py", + "community": 15, + "norm_label": "add_original_filename_to_content.py" + }, + { + "label": "Add original_filename column to content table. This preserves the pristine uplo", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_original_filename_to_content.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "add_original_filename_to_content_rationale_1", + "community": 15, + "norm_label": "add original_filename column to content table. this preserves the pristine uplo" + }, + { + "label": "add_url_to_content.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_url_to_content.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_migrations_add_url_to_content_py", + "community": 16, + "norm_label": "add_url_to_content.py" + }, + { + "label": "Add url column to content table for weblink support.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_url_to_content.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "add_url_to_content_rationale_1", + "community": 16, + "norm_label": "add url column to content table for weblink support." + }, + { + "label": "add_https_config_table.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_https_config_table.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_migrations_add_https_config_table_py", + "community": 6, + "norm_label": "add_https_config_table.py" + }, + { + "label": "Add https_config table for HTTPS configuration management.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_https_config_table.py", + "source_location": "L1", + "level": 0, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "add_https_config_table_rationale_1", + "community": 6, + "norm_label": "add https_config table for https configuration management." + }, + { + "label": "add_deployment_fields_to_player.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_deployment_fields_to_player.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_migrations_add_deployment_fields_to_player_py", + "community": 17, + "norm_label": "add_deployment_fields_to_player.py" + }, + { + "label": "Add deployment tracking columns to player table.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_deployment_fields_to_player.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "add_deployment_fields_to_player_rationale_1", + "community": 17, + "norm_label": "add deployment tracking columns to player table." + }, + { + "label": "add_email_to_https_config.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_email_to_https_config.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_migrations_add_email_to_https_config_py", + "community": 18, + "norm_label": "add_email_to_https_config.py" + }, + { + "label": "Add email field to https_config table.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_email_to_https_config.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "add_email_to_https_config_rationale_1", + "community": 18, + "norm_label": "add email field to https_config table." + }, + { + "label": "config.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 1, + "granularity": "low", + "heat": 0.024, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_config_py", + "community": 4, + "norm_label": "config.py" + }, + { + "label": "Config", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L9", + "complexity": 1, + "loc": 45, + "level": 1, + "granularity": "low", + "heat": 0.04, + "owner": "unowned", + "id": "config_config", + "community": 4, + "norm_label": "config" + }, + { + "label": "DevelopmentConfig", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L56", + "complexity": 1, + "loc": 20, + "level": 1, + "granularity": "low", + "heat": 0.041, + "owner": "unowned", + "id": "config_developmentconfig", + "community": 4, + "norm_label": "developmentconfig" + }, + { + "label": "ProductionConfig", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L78", + "complexity": 1, + "loc": 22, + "level": 1, + "granularity": "low", + "heat": 0.042, + "owner": "unowned", + "id": "config_productionconfig", + "community": 4, + "norm_label": "productionconfig" + }, + { + "label": "TestingConfig", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L102", + "complexity": 1, + "loc": 14, + "level": 1, + "granularity": "low", + "heat": 0.038, + "owner": "unowned", + "id": "config_testingconfig", + "community": 4, + "norm_label": "testingconfig" + }, + { + "label": "get_config()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L127", + "complexity": 2, + "loc": 5, + "level": 2, + "granularity": "low", + "heat": 0.032, + "owner": "unowned", + "id": "config_get_config", + "community": 4, + "norm_label": "get_config()" + }, + { + "label": "Configuration settings for DigiServer v2 Environment-based configuration with se", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "config_rationale_1", + "community": 4, + "norm_label": "configuration settings for digiserver v2 environment-based configuration with se" + }, + { + "label": "Development configuration", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L57", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "config_rationale_57", + "community": 4, + "norm_label": "development configuration" + }, + { + "label": "Production configuration", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L79", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "config_rationale_79", + "community": 4, + "norm_label": "production configuration" + }, + { + "label": "Testing configuration", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L103", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "config_rationale_103", + "community": 4, + "norm_label": "testing configuration" + }, + { + "label": "Get configuration based on environment", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L128", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "config_rationale_128", + "community": 4, + "norm_label": "get configuration based on environment" + }, + { + "label": "extensions.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/extensions.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_extensions_py", + "community": 19, + "norm_label": "extensions.py" + }, + { + "label": "Flask extensions initialization Centralized extension management for the applica", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/extensions.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "extensions_rationale_1", + "community": 19, + "norm_label": "flask extensions initialization centralized extension management for the applica" + }, + { + "label": "app.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 0, + "granularity": "low", + "heat": 0.027, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_app_py", + "community": 4, + "norm_label": "app.py" + }, + { + "label": "create_app()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L17", + "complexity": 2, + "loc": 71, + "level": 0, + "granularity": "low", + "heat": 0.08, + "owner": "unowned", + "id": "app_create_app", + "community": 4, + "norm_label": "create_app()" + }, + { + "label": "register_blueprints()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L90", + "complexity": 1, + "loc": 18, + "level": 2, + "granularity": "low", + "heat": 0.026, + "owner": "unowned", + "id": "app_register_blueprints", + "community": 4, + "norm_label": "register_blueprints()" + }, + { + "label": "configure_login_manager()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L110", + "complexity": 1, + "loc": 11, + "level": 2, + "granularity": "low", + "heat": 0.023, + "owner": "unowned", + "id": "app_configure_login_manager", + "community": 4, + "norm_label": "configure_login_manager()" + }, + { + "label": "register_error_handlers()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L123", + "complexity": 1, + "loc": 23, + "level": 2, + "granularity": "low", + "heat": 0.028, + "owner": "unowned", + "id": "app_register_error_handlers", + "community": 4, + "norm_label": "register_error_handlers()" + }, + { + "label": "register_commands()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L148", + "complexity": 3, + "loc": 39, + "level": 2, + "granularity": "low", + "heat": 0.061, + "owner": "unowned", + "id": "app_register_commands", + "community": 4, + "norm_label": "register_commands()" + }, + { + "label": "register_context_processors()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L189", + "complexity": 2, + "loc": 22, + "level": 2, + "granularity": "low", + "heat": 0.041, + "owner": "unowned", + "id": "app_register_context_processors", + "community": 4, + "norm_label": "register_context_processors()" + }, + { + "label": "register_template_filters()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L213", + "complexity": 3, + "loc": 26, + "level": 2, + "granularity": "low", + "heat": 0.056, + "owner": "unowned", + "id": "app_register_template_filters", + "community": 4, + "norm_label": "register_template_filters()" + }, + { + "label": "DigiServer v2 - Application Factory Modern Flask application with blueprint arch", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L1", + "level": 0, + "granularity": "low", + "heat": 0.024, + "owner": "unowned", + "id": "app_rationale_1", + "community": 4, + "norm_label": "digiserver v2 - application factory modern flask application with blueprint arch" + }, + { + "label": "Application factory pattern Args: config_name: Configuration en", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L18", + "level": 0, + "granularity": "low", + "heat": 0.024, + "owner": "unowned", + "id": "app_rationale_18", + "community": 4, + "norm_label": "application factory pattern args: config_name: configuration en" + }, + { + "label": "Register application blueprints", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L91", + "level": 0, + "granularity": "low", + "heat": 0.024, + "owner": "unowned", + "id": "app_rationale_91", + "community": 4, + "norm_label": "register application blueprints" + }, + { + "label": "Configure Flask-Login", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L111", + "level": 1, + "granularity": "low", + "heat": 0.024, + "owner": "unowned", + "id": "app_rationale_111", + "community": 4, + "norm_label": "configure flask-login" + }, + { + "label": "Register error handlers", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L124", + "level": 1, + "granularity": "low", + "heat": 0.024, + "owner": "unowned", + "id": "app_rationale_124", + "community": 4, + "norm_label": "register error handlers" + }, + { + "label": "Register CLI commands", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L149", + "level": 0, + "granularity": "low", + "heat": 0.024, + "owner": "unowned", + "id": "app_rationale_149", + "community": 4, + "norm_label": "register cli commands" + }, + { + "label": "Register context processors for templates", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L190", + "level": 1, + "granularity": "low", + "heat": 0.024, + "owner": "unowned", + "id": "app_rationale_190", + "community": 4, + "norm_label": "register context processors for templates" + }, + { + "label": "Register custom Jinja2 template filters", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L214", + "level": 1, + "granularity": "low", + "heat": 0.024, + "owner": "unowned", + "id": "app_rationale_214", + "community": 4, + "norm_label": "register custom jinja2 template filters" + }, + { + "label": "admin.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 0, + "granularity": "low", + "heat": 0.067, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "community": 1, + "norm_label": "admin.py" + }, + { + "label": "admin_required()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L18", + "complexity": 3, + "loc": 13, + "level": 2, + "granularity": "low", + "heat": 0.048, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_admin_required", + "community": 1, + "norm_label": "admin_required()" + }, + { + "label": "admin_panel()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L35", + "complexity": 6, + "loc": 39, + "level": 1, + "granularity": "low", + "heat": 0.1, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_admin_panel", + "community": 1, + "norm_label": "admin_panel()" + }, + { + "label": "create_user()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L79", + "complexity": 6, + "loc": 41, + "level": 1, + "granularity": "low", + "heat": 0.103, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_create_user", + "community": 1, + "norm_label": "create_user()" + }, + { + "label": "change_user_role()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L125", + "complexity": 4, + "loc": 29, + "level": 1, + "granularity": "low", + "heat": 0.07, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_change_user_role", + "community": 1, + "norm_label": "change_user_role()" + }, + { + "label": "delete_user()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L159", + "complexity": 3, + "loc": 23, + "level": 1, + "granularity": "low", + "heat": 0.054, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_delete_user", + "community": 1, + "norm_label": "delete_user()" + }, + { + "label": "change_theme()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L187", + "complexity": 3, + "loc": 19, + "level": 1, + "granularity": "low", + "heat": 0.052, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_change_theme", + "community": 1, + "norm_label": "change_theme()" + }, + { + "label": "upload_logo()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L211", + "complexity": 5, + "loc": 37, + "level": 1, + "granularity": "low", + "heat": 0.086, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_upload_logo", + "community": 1, + "norm_label": "upload_logo()" + }, + { + "label": "clear_logs()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L253", + "complexity": 2, + "loc": 15, + "level": 1, + "granularity": "low", + "heat": 0.038, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_clear_logs", + "community": 1, + "norm_label": "clear_logs()" + }, + { + "label": "user_management()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L273", + "complexity": 2, + "loc": 9, + "level": 1, + "granularity": "low", + "heat": 0.035, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_user_management", + "community": 1, + "norm_label": "user_management()" + }, + { + "label": "reset_user_password()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L287", + "complexity": 4, + "loc": 30, + "level": 1, + "granularity": "low", + "heat": 0.069, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_reset_user_password", + "community": 1, + "norm_label": "reset_user_password()" + }, + { + "label": "system_info()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L322", + "complexity": 2, + "loc": 28, + "level": 1, + "granularity": "low", + "heat": 0.044, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_system_info", + "community": 1, + "norm_label": "system_info()" + }, + { + "label": "leftover_media()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L354", + "complexity": 2, + "loc": 48, + "level": 1, + "granularity": "low", + "heat": 0.053, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_leftover_media", + "community": 1, + "norm_label": "leftover_media()" + }, + { + "label": "delete_leftover_images()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L406", + "complexity": 8, + "loc": 52, + "level": 2, + "granularity": "low", + "heat": 0.13, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_delete_leftover_images", + "community": 1, + "norm_label": "delete_leftover_images()" + }, + { + "label": "delete_leftover_videos()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L461", + "complexity": 8, + "loc": 52, + "level": 2, + "granularity": "low", + "heat": 0.13, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_delete_leftover_videos", + "community": 1, + "norm_label": "delete_leftover_videos()" + }, + { + "label": "delete_single_leftover()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L516", + "complexity": 5, + "loc": 32, + "level": 2, + "granularity": "low", + "heat": 0.082, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_delete_single_leftover", + "community": 1, + "norm_label": "delete_single_leftover()" + }, + { + "label": "dependencies()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L553", + "complexity": 12, + "loc": 76, + "level": 2, + "granularity": "low", + "heat": 0.193, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_dependencies", + "community": 1, + "norm_label": "dependencies()" + }, + { + "label": "install_libreoffice()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L634", + "complexity": 4, + "loc": 32, + "level": 1, + "granularity": "low", + "heat": 0.071, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_install_libreoffice", + "community": 1, + "norm_label": "install_libreoffice()" + }, + { + "label": "install_emoji_fonts()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L671", + "complexity": 4, + "loc": 32, + "level": 1, + "granularity": "low", + "heat": 0.071, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_install_emoji_fonts", + "community": 1, + "norm_label": "install_emoji_fonts()" + }, + { + "label": "customize_logos()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L708", + "complexity": 1, + "loc": 4, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_customize_logos", + "community": 1, + "norm_label": "customize_logos()" + }, + { + "label": "upload_header_logo()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L717", + "complexity": 5, + "loc": 26, + "level": 1, + "granularity": "low", + "heat": 0.08, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_upload_header_logo", + "community": 1, + "norm_label": "upload_header_logo()" + }, + { + "label": "upload_login_logo()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L748", + "complexity": 5, + "loc": 26, + "level": 1, + "granularity": "low", + "heat": 0.081, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_upload_login_logo", + "community": 1, + "norm_label": "upload_login_logo()" + }, + { + "label": "manage_editing_users()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L778", + "complexity": 3, + "loc": 22, + "level": 1, + "granularity": "low", + "heat": 0.054, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_manage_editing_users", + "community": 1, + "norm_label": "manage_editing_users()" + }, + { + "label": "update_editing_user()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L804", + "complexity": 3, + "loc": 20, + "level": 1, + "granularity": "low", + "heat": 0.053, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_update_editing_user", + "community": 1, + "norm_label": "update_editing_user()" + }, + { + "label": "delete_editing_user()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L828", + "complexity": 2, + "loc": 19, + "level": 1, + "granularity": "low", + "heat": 0.038, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_delete_editing_user", + "community": 1, + "norm_label": "delete_editing_user()" + }, + { + "label": "https_config()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L856", + "complexity": 3, + "loc": 25, + "level": 0, + "granularity": "low", + "heat": 0.057, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_https_config", + "community": 1, + "norm_label": "https_config()" + }, + { + "label": "update_https_config()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L886", + "complexity": 27, + "loc": 104, + "level": 0, + "granularity": "low", + "heat": 0.407, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_update_https_config", + "community": 1, + "norm_label": "update_https_config()" + }, + { + "label": "https_config_status()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L995", + "complexity": 3, + "loc": 18, + "level": 0, + "granularity": "low", + "heat": 0.055, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_https_config_status", + "community": 1, + "norm_label": "https_config_status()" + }, + { + "label": "_player_build_meta_path()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1019", + "complexity": 1, + "loc": 4, + "level": 1, + "granularity": "low", + "heat": 0.022, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_player_build_meta_path", + "community": 1, + "norm_label": "_player_build_meta_path()" + }, + { + "label": "build_player()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1028", + "complexity": 5, + "loc": 41, + "level": 1, + "granularity": "low", + "heat": 0.095, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_build_player", + "community": 1, + "norm_label": "build_player()" + }, + { + "label": "build_player_action()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1074", + "complexity": 14, + "loc": 85, + "level": 1, + "granularity": "low", + "heat": 0.235, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_build_player_action", + "community": 11, + "norm_label": "build_player_action()" + }, + { + "label": "Admin blueprint for user management and system settings.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_1", + "community": 1, + "norm_label": "admin blueprint for user management and system settings." + }, + { + "label": "Decorator to require admin role for route access.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L19", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_19", + "community": 1, + "norm_label": "decorator to require admin role for route access." + }, + { + "label": "Display admin panel with system overview.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L36", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_36", + "community": 1, + "norm_label": "display admin panel with system overview." + }, + { + "label": "Create a new user account.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L80", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_80", + "community": 1, + "norm_label": "create a new user account." + }, + { + "label": "Change user role between user and admin.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L126", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_126", + "community": 1, + "norm_label": "change user role between user and admin." + }, + { + "label": "Delete a user account.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L160", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_160", + "community": 1, + "norm_label": "delete a user account." + }, + { + "label": "Change application theme.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L188", + "level": 0, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_188", + "community": 1, + "norm_label": "change application theme." + }, + { + "label": "Upload custom logo for application.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L212", + "level": 0, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_212", + "community": 1, + "norm_label": "upload custom logo for application." + }, + { + "label": "Clear all server logs.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L254", + "level": 0, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_254", + "community": 1, + "norm_label": "clear all server logs." + }, + { + "label": "Display user management page.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L274", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_274", + "community": 1, + "norm_label": "display user management page." + }, + { + "label": "Get system information as JSON.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L323", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_323", + "community": 1, + "norm_label": "get system information as json." + }, + { + "label": "Display leftover media files not assigned to any playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L355", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_355", + "community": 1, + "norm_label": "display leftover media files not assigned to any playlist." + }, + { + "label": "Delete all leftover images that are not part of any playlist", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L407", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_407", + "community": 1, + "norm_label": "delete all leftover images that are not part of any playlist" + }, + { + "label": "Delete all leftover videos that are not part of any playlist", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L462", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_462", + "community": 1, + "norm_label": "delete all leftover videos that are not part of any playlist" + }, + { + "label": "Delete a single leftover content file", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L517", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_517", + "community": 1, + "norm_label": "delete a single leftover content file" + }, + { + "label": "Show system dependencies status.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L554", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_554", + "community": 1, + "norm_label": "show system dependencies status." + }, + { + "label": "Install LibreOffice for PPTX conversion.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L635", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_635", + "community": 1, + "norm_label": "install libreoffice for pptx conversion." + }, + { + "label": "Install Emoji Fonts for better UI display.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L672", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_672", + "community": 1, + "norm_label": "install emoji fonts for better ui display." + }, + { + "label": "Logo customization page.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L709", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_709", + "community": 1, + "norm_label": "logo customization page." + }, + { + "label": "Upload login page logo.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L749", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_749", + "community": 1, + "norm_label": "upload login page logo." + }, + { + "label": "Display and manage users that edit images on players.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L779", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_779", + "community": 1, + "norm_label": "display and manage users that edit images on players." + }, + { + "label": "Update editing user name.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L805", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_805", + "community": 1, + "norm_label": "update editing user name." + }, + { + "label": "Display HTTPS configuration management page.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L857", + "level": 0, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_857", + "community": 1, + "norm_label": "display https configuration management page." + }, + { + "label": "Update HTTPS configuration.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L887", + "level": 0, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_887", + "community": 1, + "norm_label": "update https configuration." + }, + { + "label": "Get current HTTPS configuration status as JSON.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L996", + "level": 0, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_996", + "community": 1, + "norm_label": "get current https configuration status as json." + }, + { + "label": "Path to the persisted player-build settings (in the instance folder).", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1020", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_1020", + "community": 1, + "norm_label": "path to the persisted player-build settings (in the instance folder)." + }, + { + "label": "Display the 'Build player files for deployment' admin page.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1029", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_1029", + "community": 1, + "norm_label": "display the 'build player files for deployment' admin page." + }, + { + "label": "Build/refresh the staged player code and/or write its base config.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1075", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "admin_rationale_1075", + "community": 11, + "norm_label": "build/refresh the staged player code and/or write its base config." + }, + { + "label": "content_old.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 0, + "granularity": "low", + "heat": 0.036, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "community": 0, + "norm_label": "content_old.py" + }, + { + "label": "content_list()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L30", + "complexity": 8, + "loc": 52, + "level": 2, + "granularity": "low", + "heat": 0.132, + "owner": "unowned", + "id": "content_old_content_list", + "community": 0, + "norm_label": "content_list()" + }, + { + "label": "upload_content()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L86", + "complexity": 12, + "loc": 134, + "level": 1, + "granularity": "low", + "heat": 0.224, + "owner": "unowned", + "id": "content_old_upload_content", + "community": 9, + "norm_label": "upload_content()" + }, + { + "label": "edit_content()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L224", + "complexity": 4, + "loc": 30, + "level": 2, + "granularity": "low", + "heat": 0.07, + "owner": "unowned", + "id": "content_old_edit_content", + "community": 0, + "norm_label": "edit_content()" + }, + { + "label": "delete_content()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L258", + "complexity": 3, + "loc": 27, + "level": 2, + "granularity": "low", + "heat": 0.056, + "owner": "unowned", + "id": "content_old_delete_content", + "community": 0, + "norm_label": "delete_content()" + }, + { + "label": "delete_by_filename()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L289", + "complexity": 6, + "loc": 44, + "level": 2, + "granularity": "low", + "heat": 0.102, + "owner": "unowned", + "id": "content_old_delete_by_filename", + "community": 0, + "norm_label": "delete_by_filename()" + }, + { + "label": "bulk_delete_content()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L337", + "complexity": 6, + "loc": 33, + "level": 2, + "granularity": "low", + "heat": 0.097, + "owner": "unowned", + "id": "content_old_bulk_delete_content", + "community": 0, + "norm_label": "bulk_delete_content()" + }, + { + "label": "upload_progress_status()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L374", + "complexity": 1, + "loc": 4, + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "id": "content_old_upload_progress_status", + "community": 9, + "norm_label": "upload_progress_status()" + }, + { + "label": "preview_content()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L382", + "complexity": 2, + "loc": 14, + "level": 2, + "granularity": "low", + "heat": 0.037, + "owner": "unowned", + "id": "content_old_preview_content", + "community": 0, + "norm_label": "preview_content()" + }, + { + "label": "download_content()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L400", + "complexity": 2, + "loc": 15, + "level": 2, + "granularity": "low", + "heat": 0.038, + "owner": "unowned", + "id": "content_old_download_content", + "community": 0, + "norm_label": "download_content()" + }, + { + "label": "content_statistics()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L419", + "complexity": 7, + "loc": 30, + "level": 2, + "granularity": "low", + "heat": 0.109, + "owner": "unowned", + "id": "content_old_content_statistics", + "community": 0, + "norm_label": "content_statistics()" + }, + { + "label": "check_duplicates()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L453", + "complexity": 3, + "loc": 21, + "level": 2, + "granularity": "low", + "heat": 0.053, + "owner": "unowned", + "id": "content_old_check_duplicates", + "community": 0, + "norm_label": "check_duplicates()" + }, + { + "label": "content_groups_info()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L478", + "complexity": 3, + "loc": 23, + "level": 2, + "granularity": "low", + "heat": 0.054, + "owner": "unowned", + "id": "content_old_content_groups_info", + "community": 0, + "norm_label": "content_groups_info()" + }, + { + "label": "Content blueprint for media upload and management.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_old_rationale_1", + "community": 0, + "norm_label": "content blueprint for media upload and management." + }, + { + "label": "Display list of all content.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L31", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_old_rationale_31", + "community": 0, + "norm_label": "display list of all content." + }, + { + "label": "Edit content metadata.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L225", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_old_rationale_225", + "community": 0, + "norm_label": "edit content metadata." + }, + { + "label": "Delete content and associated file.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L259", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_old_rationale_259", + "community": 0, + "norm_label": "delete content and associated file." + }, + { + "label": "Delete all content entries with a specific filename.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L290", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_old_rationale_290", + "community": 0, + "norm_label": "delete all content entries with a specific filename." + }, + { + "label": "Delete multiple content items at once.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L338", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_old_rationale_338", + "community": 0, + "norm_label": "delete multiple content items at once." + }, + { + "label": "Get upload progress for a specific upload.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L375", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_old_rationale_375", + "community": 9, + "norm_label": "get upload progress for a specific upload." + }, + { + "label": "Preview content in browser.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L383", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_old_rationale_383", + "community": 0, + "norm_label": "preview content in browser." + }, + { + "label": "Download content file.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L401", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_old_rationale_401", + "community": 0, + "norm_label": "download content file." + }, + { + "label": "Get content statistics.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L420", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_old_rationale_420", + "community": 0, + "norm_label": "get content statistics." + }, + { + "label": "Check for duplicate filenames.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L454", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_old_rationale_454", + "community": 0, + "norm_label": "check for duplicate filenames." + }, + { + "label": "Get groups that contain this content.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L479", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_old_rationale_479", + "community": 0, + "norm_label": "get groups that contain this content." + }, + { + "label": "content.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 0, + "granularity": "low", + "heat": 0.06, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "community": 2, + "norm_label": "content.py" + }, + { + "label": "content_list()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L27", + "complexity": 1, + "loc": 12, + "level": 2, + "granularity": "low", + "heat": 0.022, + "owner": "unowned", + "id": "content_content_list", + "community": 2, + "norm_label": "content_list()" + }, + { + "label": "media_library()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L43", + "complexity": 2, + "loc": 24, + "level": 2, + "granularity": "low", + "heat": 0.04, + "owner": "unowned", + "id": "content_media_library", + "community": 2, + "norm_label": "media_library()" + }, + { + "label": "delete_media()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L71", + "complexity": 10, + "loc": 60, + "level": 1, + "granularity": "low", + "heat": 0.163, + "owner": "unowned", + "id": "content_delete_media", + "community": 7, + "norm_label": "delete_media()" + }, + { + "label": "create_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L135", + "complexity": 4, + "loc": 34, + "level": 1, + "granularity": "low", + "heat": 0.074, + "owner": "unowned", + "id": "content_create_playlist", + "community": 3, + "norm_label": "create_playlist()" + }, + { + "label": "delete_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L173", + "complexity": 2, + "loc": 23, + "level": 1, + "granularity": "low", + "heat": 0.04, + "owner": "unowned", + "id": "content_delete_playlist", + "community": 2, + "norm_label": "delete_playlist()" + }, + { + "label": "manage_playlist_content()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L200", + "complexity": 1, + "loc": 18, + "level": 1, + "granularity": "low", + "heat": 0.026, + "owner": "unowned", + "id": "content_manage_playlist_content", + "community": 3, + "norm_label": "manage_playlist_content()" + }, + { + "label": "add_content_to_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L222", + "complexity": 3, + "loc": 46, + "level": 1, + "granularity": "low", + "heat": 0.066, + "owner": "unowned", + "id": "content_add_content_to_playlist", + "community": 2, + "norm_label": "add_content_to_playlist()" + }, + { + "label": "add_weblink()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L272", + "complexity": 9, + "loc": 76, + "level": 1, + "granularity": "low", + "heat": 0.159, + "owner": "unowned", + "id": "content_add_weblink", + "community": 2, + "norm_label": "add_weblink()" + }, + { + "label": "add_weblink_to_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L352", + "complexity": 4, + "loc": 62, + "level": 1, + "granularity": "low", + "heat": 0.088, + "owner": "unowned", + "id": "content_add_weblink_to_playlist", + "community": 2, + "norm_label": "add_weblink_to_playlist()" + }, + { + "label": "remove_content_from_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L418", + "complexity": 3, + "loc": 33, + "level": 1, + "granularity": "low", + "heat": 0.061, + "owner": "unowned", + "id": "content_remove_content_from_playlist", + "community": 2, + "norm_label": "remove_content_from_playlist()" + }, + { + "label": "bulk_remove_from_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L455", + "complexity": 4, + "loc": 38, + "level": 1, + "granularity": "low", + "heat": 0.076, + "owner": "unowned", + "id": "content_bulk_remove_from_playlist", + "community": 2, + "norm_label": "bulk_remove_from_playlist()" + }, + { + "label": "reorder_playlist_content()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L497", + "complexity": 4, + "loc": 37, + "level": 1, + "granularity": "low", + "heat": 0.075, + "owner": "unowned", + "id": "content_reorder_playlist_content", + "community": 2, + "norm_label": "reorder_playlist_content()" + }, + { + "label": "update_playlist_content_muted()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L538", + "complexity": 2, + "loc": 37, + "level": 1, + "granularity": "low", + "heat": 0.049, + "owner": "unowned", + "id": "content_update_playlist_content_muted", + "community": 2, + "norm_label": "update_playlist_content_muted()" + }, + { + "label": "update_playlist_content_edit_enabled()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L579", + "complexity": 2, + "loc": 37, + "level": 1, + "granularity": "low", + "heat": 0.049, + "owner": "unowned", + "id": "content_update_playlist_content_edit_enabled", + "community": 2, + "norm_label": "update_playlist_content_edit_enabled()" + }, + { + "label": "update_playlist_content_duration()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L620", + "complexity": 4, + "loc": 46, + "level": 1, + "granularity": "low", + "heat": 0.079, + "owner": "unowned", + "id": "content_update_playlist_content_duration", + "community": 2, + "norm_label": "update_playlist_content_duration()" + }, + { + "label": "upload_media_page()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L670", + "complexity": 1, + "loc": 4, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "content_upload_media_page", + "community": 2, + "norm_label": "upload_media_page()" + }, + { + "label": "process_image_file()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L676", + "complexity": 4, + "loc": 24, + "level": 1, + "granularity": "low", + "heat": 0.069, + "owner": "unowned", + "id": "content_process_image_file", + "community": 2, + "norm_label": "process_image_file()" + }, + { + "label": "process_video_file_extended()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L702", + "complexity": 3, + "loc": 23, + "level": 1, + "granularity": "low", + "heat": 0.058, + "owner": "unowned", + "id": "content_process_video_file_extended", + "community": 2, + "norm_label": "process_video_file_extended()" + }, + { + "label": "process_pdf_file()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L727", + "complexity": 6, + "loc": 69, + "level": 1, + "granularity": "low", + "heat": 0.117, + "owner": "unowned", + "id": "content_process_pdf_file", + "community": 2, + "norm_label": "process_pdf_file()" + }, + { + "label": "process_file_in_background()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L798", + "complexity": 22, + "loc": 177, + "level": 1, + "granularity": "low", + "heat": 0.376, + "owner": "unowned", + "id": "content_process_file_in_background", + "community": 2, + "norm_label": "process_file_in_background()" + }, + { + "label": "process_presentation_file()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L977", + "complexity": 13, + "loc": 141, + "level": 1, + "granularity": "low", + "heat": 0.243, + "owner": "unowned", + "id": "content_process_presentation_file", + "community": 2, + "norm_label": "process_presentation_file()" + }, + { + "label": "create_fullhd_image()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1120", + "complexity": 2, + "loc": 23, + "level": 2, + "granularity": "low", + "heat": 0.041, + "owner": "unowned", + "id": "content_create_fullhd_image", + "community": 2, + "norm_label": "create_fullhd_image()" + }, + { + "label": "resize_image_to_fullhd()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1145", + "complexity": 5, + "loc": 56, + "level": 1, + "granularity": "low", + "heat": 0.097, + "owner": "unowned", + "id": "content_resize_image_to_fullhd", + "community": 2, + "norm_label": "resize_image_to_fullhd()" + }, + { + "label": "optimize_image_to_fullhd()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1203", + "complexity": 2, + "loc": 13, + "level": 1, + "granularity": "low", + "heat": 0.039, + "owner": "unowned", + "id": "content_optimize_image_to_fullhd", + "community": 2, + "norm_label": "optimize_image_to_fullhd()" + }, + { + "label": "upload_media()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1220", + "complexity": 31, + "loc": 270, + "level": 1, + "granularity": "low", + "heat": 0.537, + "owner": "unowned", + "id": "content_upload_media", + "community": 2, + "norm_label": "upload_media()" + }, + { + "label": "assign_player_to_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1494", + "complexity": 3, + "loc": 26, + "level": 1, + "granularity": "low", + "heat": 0.056, + "owner": "unowned", + "id": "content_assign_player_to_playlist", + "community": 2, + "norm_label": "assign_player_to_playlist()" + }, + { + "label": "Content model for media files.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L1", + "level": 1, + "granularity": "low", + "heat": 0.019, + "owner": "unowned", + "id": "content_rationale_1", + "community": 5, + "norm_label": "content model for media files." + }, + { + "label": "Main playlist management page.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L28", + "level": 0, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_28", + "community": 2, + "norm_label": "main playlist management page." + }, + { + "label": "View all media files in the library.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L44", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_44", + "community": 2, + "norm_label": "view all media files in the library." + }, + { + "label": "Delete a media file and remove it from all playlists.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L72", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_72", + "community": 7, + "norm_label": "delete a media file and remove it from all playlists." + }, + { + "label": "Create a new playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L136", + "level": 2, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_136", + "community": 3, + "norm_label": "create a new playlist." + }, + { + "label": "Manage content in a specific playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L201", + "level": 2, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_201", + "community": 3, + "norm_label": "manage content in a specific playlist." + }, + { + "label": "Add content to playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L223", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_223", + "community": 2, + "norm_label": "add content to playlist." + }, + { + "label": "Create a web link content item from the Upload Media page. Optionally adds", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L273", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_273", + "community": 2, + "norm_label": "create a web link content item from the upload media page. optionally adds" + }, + { + "label": "Create a web link content item and add it to the playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L353", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_353", + "community": 2, + "norm_label": "create a web link content item and add it to the playlist." + }, + { + "label": "Remove content from playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L419", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_419", + "community": 2, + "norm_label": "remove content from playlist." + }, + { + "label": "Remove multiple content items from playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L456", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_456", + "community": 2, + "norm_label": "remove multiple content items from playlist." + }, + { + "label": "Reorder content in playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L498", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_498", + "community": 2, + "norm_label": "reorder content in playlist." + }, + { + "label": "Update content muted setting in playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L539", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_539", + "community": 2, + "norm_label": "update content muted setting in playlist." + }, + { + "label": "Update content edit_on_player_enabled setting in playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L580", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_580", + "community": 2, + "norm_label": "update content edit_on_player_enabled setting in playlist." + }, + { + "label": "Update content duration in playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L621", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_621", + "community": 2, + "norm_label": "update content duration in playlist." + }, + { + "label": "Display upload media page.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L671", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_671", + "community": 2, + "norm_label": "display upload media page." + }, + { + "label": "Process and optimize image files.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L677", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_677", + "community": 2, + "norm_label": "process and optimize image files." + }, + { + "label": "Process and optimize video files for Raspberry Pi playback.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L703", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_703", + "community": 2, + "norm_label": "process and optimize video files for raspberry pi playback." + }, + { + "label": "Process PDF files by converting each page to PNG images.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L728", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_728", + "community": 2, + "norm_label": "process pdf files by converting each page to png images." + }, + { + "label": "Process large files (PDF, PPTX, Video) in background thread.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L800", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_800", + "community": 2, + "norm_label": "process large files (pdf, pptx, video) in background thread." + }, + { + "label": "Process PowerPoint presentation files by converting slides to images.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L978", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_978", + "community": 2, + "norm_label": "process powerpoint presentation files by converting slides to images." + }, + { + "label": "Create a Full HD (1920x1080) image from PIL Image object, centered on white back", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1121", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_1121", + "community": 2, + "norm_label": "create a full hd (1920x1080) image from pil image object, centered on white back" + }, + { + "label": "Resize image to exactly Full HD (1920x1080) maintaining aspect ratio with center", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1146", + "level": 0, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_1146", + "community": 2, + "norm_label": "resize image to exactly full hd (1920x1080) maintaining aspect ratio with center" + }, + { + "label": "Optimize and resize image file to Full HD (1920x1080) maintaining aspect ratio.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1204", + "level": 0, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_1204", + "community": 2, + "norm_label": "optimize and resize image file to full hd (1920x1080) maintaining aspect ratio." + }, + { + "label": "Upload media files to library with type-specific processing.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1221", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_1221", + "community": 2, + "norm_label": "upload media files to library with type-specific processing." + }, + { + "label": "Assign a player to a playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1495", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "content_rationale_1495", + "community": 2, + "norm_label": "assign a player to a playlist." + }, + { + "label": "__init__.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/__init__.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_blueprints_init_py", + "community": 5, + "norm_label": "__init__.py" + }, + { + "label": "Models package for digiserver-v2.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", + "source_location": "L1", + "level": 0, + "granularity": "low", + "heat": 0.036, + "owner": "unowned", + "id": "init_rationale_1", + "community": 5, + "norm_label": "models package for digiserver-v2." + }, + { + "label": "api.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 0, + "granularity": "low", + "heat": 0.253, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "community": 3, + "norm_label": "api.py" + }, + { + "label": "rate_limit()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L21", + "complexity": 4, + "loc": 41, + "level": 2, + "granularity": "low", + "heat": 0.274, + "owner": "unowned", + "id": "api_rate_limit", + "community": 3, + "norm_label": "rate_limit()" + }, + { + "label": "verify_player_auth()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L64", + "complexity": 3, + "loc": 23, + "level": 2, + "granularity": "low", + "heat": 0.253, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "api_verify_player_auth", + "community": 3, + "norm_label": "verify_player_auth()" + }, + { + "label": "health_check()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L90", + "complexity": 1, + "loc": 7, + "level": 2, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_health_check", + "community": 3, + "norm_label": "health_check()" + }, + { + "label": "get_server_certificate()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L100", + "complexity": 1, + "loc": 3, + "level": 0, + "granularity": "low", + "heat": 0.218, + "owner": "unowned", + "id": "api_get_server_certificate", + "community": 3, + "norm_label": "get_server_certificate()" + }, + { + "label": "authenticate_player()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L107", + "complexity": 5, + "loc": 52, + "level": 1, + "granularity": "low", + "heat": 0.297, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "api_authenticate_player", + "community": 3, + "norm_label": "authenticate_player()" + }, + { + "label": "verify_auth_code()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L163", + "complexity": 4, + "loc": 40, + "level": 2, + "granularity": "low", + "heat": 0.275, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "api_verify_auth_code", + "community": 3, + "norm_label": "verify_auth_code()" + }, + { + "label": "get_playlist_by_quickconnect()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L207", + "complexity": 8, + "loc": 93, + "level": 1, + "granularity": "low", + "heat": 0.354, + "owner": "unowned", + "id": "api_get_playlist_by_quickconnect", + "community": 3, + "norm_label": "get_playlist_by_quickconnect()" + }, + { + "label": "get_player_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L305", + "complexity": 5, + "loc": 39, + "level": 1, + "granularity": "low", + "heat": 0.289, + "owner": "unowned", + "id": "api_get_player_playlist", + "community": 3, + "norm_label": "get_player_playlist()" + }, + { + "label": "get_playlist_version()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L349", + "complexity": 3, + "loc": 26, + "level": 1, + "granularity": "low", + "heat": 0.256, + "owner": "unowned", + "id": "api_get_playlist_version", + "community": 3, + "norm_label": "get_playlist_version()" + }, + { + "label": "get_cached_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L378", + "complexity": 6, + "loc": 47, + "level": 1, + "granularity": "low", + "heat": 0.307, + "owner": "unowned", + "id": "api_get_cached_playlist", + "community": 3, + "norm_label": "get_cached_playlist()" + }, + { + "label": "receive_player_feedback()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L429", + "complexity": 13, + "loc": 107, + "level": 1, + "granularity": "low", + "heat": 0.425, + "owner": "unowned", + "id": "api_receive_player_feedback", + "community": 3, + "norm_label": "receive_player_feedback()" + }, + { + "label": "get_player_status()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L540", + "complexity": 5, + "loc": 33, + "level": 1, + "granularity": "low", + "heat": 0.285, + "owner": "unowned", + "id": "api_get_player_status", + "community": 3, + "norm_label": "get_player_status()" + }, + { + "label": "get_upload_progress()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L577", + "complexity": 2, + "loc": 10, + "level": 1, + "granularity": "low", + "heat": 0.235, + "owner": "unowned", + "id": "api_get_upload_progress", + "community": 3, + "norm_label": "get_upload_progress()" + }, + { + "label": "system_info()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L591", + "complexity": 2, + "loc": 31, + "level": 1, + "granularity": "low", + "heat": 0.245, + "owner": "unowned", + "id": "api_system_info", + "community": 3, + "norm_label": "system_info()" + }, + { + "label": "list_content()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L655", + "complexity": 3, + "loc": 25, + "level": 1, + "granularity": "low", + "heat": 0.255, + "owner": "unowned", + "id": "api_list_content", + "community": 3, + "norm_label": "list_content()" + }, + { + "label": "get_logs()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L684", + "complexity": 6, + "loc": 47, + "level": 1, + "granularity": "low", + "heat": 0.304, + "owner": "unowned", + "id": "api_get_logs", + "community": 3, + "norm_label": "get_logs()" + }, + { + "label": "receive_edited_media()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L736", + "complexity": 25, + "loc": 192, + "level": 1, + "granularity": "low", + "heat": 0.62, + "owner": "unowned", + "id": "api_receive_edited_media", + "community": 3, + "norm_label": "receive_edited_media()" + }, + { + "label": "test_ssh_connection()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L936", + "complexity": 5, + "loc": 40, + "level": 1, + "granularity": "low", + "heat": 0.288, + "owner": "unowned", + "id": "api_test_ssh_connection", + "community": 3, + "norm_label": "test_ssh_connection()" + }, + { + "label": "deploy_player()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L980", + "complexity": 6, + "loc": 66, + "level": 1, + "granularity": "low", + "heat": 0.314, + "owner": "unowned", + "id": "api_deploy_player", + "community": 3, + "norm_label": "deploy_player()" + }, + { + "label": "api_not_found()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1049", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.218, + "owner": "unowned", + "id": "api_api_not_found", + "community": 3, + "norm_label": "api_not_found()" + }, + { + "label": "method_not_allowed()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1055", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.218, + "owner": "unowned", + "id": "api_method_not_allowed", + "community": 3, + "norm_label": "method_not_allowed()" + }, + { + "label": "internal_error()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1061", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.218, + "owner": "unowned", + "id": "api_internal_error", + "community": 3, + "norm_label": "internal_error()" + }, + { + "label": "API blueprint for REST endpoints and player communication.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_1", + "community": 3, + "norm_label": "api blueprint for rest endpoints and player communication." + }, + { + "label": "Rate limiting decorator. Args: max_requests: Maximum number of", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L22", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_22", + "community": 3, + "norm_label": "rate limiting decorator. args: max_requests: maximum number of" + }, + { + "label": "Decorator to verify player authentication via auth code.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L65", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "api_rationale_65", + "community": 3, + "norm_label": "decorator to verify player authentication via auth code." + }, + { + "label": "API health check endpoint.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L91", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_91", + "community": 3, + "norm_label": "api health check endpoint." + }, + { + "label": "Get server SSL certificate.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L101", + "level": 0, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_101", + "community": 3, + "norm_label": "get server ssl certificate." + }, + { + "label": "Authenticate a player and return auth code and configuration. Request J", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L108", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "api_rationale_108", + "community": 3, + "norm_label": "authenticate a player and return auth code and configuration. request j" + }, + { + "label": "Verify an auth code and return player information. Request JSON:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L164", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "api_rationale_164", + "community": 3, + "norm_label": "verify an auth code and return player information. request json:" + }, + { + "label": "Get playlist using hostname and quickconnect code (Kivy player compatible).", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L208", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_208", + "community": 3, + "norm_label": "get playlist using hostname and quickconnect code (kivy player compatible)." + }, + { + "label": "Get playlist for a specific player. Requires player authentication via", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L306", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "api_rationale_306", + "community": 3, + "norm_label": "get playlist for a specific player. requires player authentication via" + }, + { + "label": "Get current playlist version for a player. Lightweight endpoint for pla", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L350", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_350", + "community": 3, + "norm_label": "get current playlist version for a player. lightweight endpoint for pla" + }, + { + "label": "Get cached playlist for a player based on assigned playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L379", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_379", + "community": 3, + "norm_label": "get cached playlist for a player based on assigned playlist." + }, + { + "label": "Receive feedback/status updates from players (Kivy player compatible).", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L430", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_430", + "community": 3, + "norm_label": "receive feedback/status updates from players (kivy player compatible)." + }, + { + "label": "Get current status of a player (public endpoint for monitoring).", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L541", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_541", + "community": 3, + "norm_label": "get current status of a player (public endpoint for monitoring)." + }, + { + "label": "Get progress of a file upload.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L578", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_578", + "community": 3, + "norm_label": "get progress of a file upload." + }, + { + "label": "Get system information and statistics.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L592", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_592", + "community": 3, + "norm_label": "get system information and statistics." + }, + { + "label": "List all content with basic information.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L656", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_656", + "community": 3, + "norm_label": "list all content with basic information." + }, + { + "label": "Get recent server logs. Query parameters: limit: Number of logs", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L685", + "level": 0, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_685", + "community": 3, + "norm_label": "get recent server logs. query parameters: limit: number of logs" + }, + { + "label": "Receive edited media from player. Expected multipart/form-data: - i", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L737", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_737", + "community": 3, + "norm_label": "receive edited media from player. expected multipart/form-data: - i" + }, + { + "label": "Test SSH connection to a remote host. Request JSON: hostname: T", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L937", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_937", + "community": 3, + "norm_label": "test ssh connection to a remote host. request json: hostname: t" + }, + { + "label": "Deploy player code to a remote host via SSH. Request JSON: host", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L981", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_981", + "community": 3, + "norm_label": "deploy player code to a remote host via ssh. request json: host" + }, + { + "label": "Handle 404 errors in API.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1050", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_1050", + "community": 3, + "norm_label": "handle 404 errors in api." + }, + { + "label": "Handle 405 errors in API.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1056", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_1056", + "community": 3, + "norm_label": "handle 405 errors in api." + }, + { + "label": "Handle 500 errors in API.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1062", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "api_rationale_1062", + "community": 3, + "norm_label": "handle 500 errors in api." + }, + { + "label": "players.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 0, + "granularity": "low", + "heat": 0.244, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "community": 6, + "norm_label": "players.py" + }, + { + "label": "list()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L19", + "complexity": 5, + "loc": 33, + "level": 1, + "granularity": "low", + "heat": 0.295, + "owner": "unowned", + "id": "players_list", + "community": 7, + "norm_label": "list()" + }, + { + "label": "add_player()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L56", + "complexity": 23, + "loc": 172, + "level": 1, + "granularity": "low", + "heat": 0.592, + "owner": "unowned", + "id": "players_add_player", + "community": 6, + "norm_label": "add_player()" + }, + { + "label": "edit_player()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L232", + "complexity": 4, + "loc": 34, + "level": 1, + "granularity": "low", + "heat": 0.27, + "owner": "unowned", + "id": "players_edit_player", + "community": 6, + "norm_label": "edit_player()" + }, + { + "label": "delete_player()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L270", + "complexity": 2, + "loc": 24, + "level": 1, + "granularity": "low", + "heat": 0.24, + "owner": "unowned", + "id": "players_delete_player", + "community": 6, + "norm_label": "delete_player()" + }, + { + "label": "regenerate_auth_code()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L298", + "complexity": 2, + "loc": 19, + "level": 1, + "granularity": "low", + "heat": 0.24, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "players_regenerate_auth_code", + "community": 6, + "norm_label": "regenerate_auth_code()" + }, + { + "label": "player_page()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L321", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.218, + "owner": "unowned", + "id": "players_player_page", + "community": 6, + "norm_label": "player_page()" + }, + { + "label": "manage_player()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L328", + "complexity": 13, + "loc": 113, + "level": 1, + "granularity": "low", + "heat": 0.429, + "owner": "unowned", + "id": "players_manage_player", + "community": 6, + "norm_label": "manage_player()" + }, + { + "label": "edited_media()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L445", + "complexity": 8, + "loc": 40, + "level": 1, + "granularity": "low", + "heat": 0.326, + "owner": "unowned", + "id": "players_edited_media", + "community": 6, + "norm_label": "edited_media()" + }, + { + "label": "edited_media_report()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L489", + "complexity": 5, + "loc": 30, + "level": 1, + "granularity": "low", + "heat": 0.283, + "owner": "unowned", + "id": "players_edited_media_report", + "community": 6, + "norm_label": "edited_media_report()" + }, + { + "label": "player_fullscreen()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L522", + "complexity": 3, + "loc": 20, + "level": 1, + "granularity": "low", + "heat": 0.255, + "owner": "unowned", + "id": "players_player_fullscreen", + "community": 6, + "norm_label": "player_fullscreen()" + }, + { + "label": "get_player_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L545", + "complexity": 6, + "loc": 41, + "level": 1, + "granularity": "low", + "heat": 0.303, + "owner": "unowned", + "id": "players_get_player_playlist", + "community": 6, + "norm_label": "get_player_playlist()" + }, + { + "label": "reorder_content()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L590", + "complexity": 1, + "loc": 6, + "level": 2, + "granularity": "low", + "heat": 0.219, + "owner": "unowned", + "id": "players_reorder_content", + "community": 6, + "norm_label": "reorder_content()" + }, + { + "label": "bulk_delete_players()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L600", + "complexity": 5, + "loc": 28, + "level": 1, + "granularity": "low", + "heat": 0.282, + "owner": "unowned", + "id": "players_bulk_delete_players", + "community": 6, + "norm_label": "bulk_delete_players()" + }, + { + "label": "bulk_assign_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L632", + "complexity": 7, + "loc": 33, + "level": 1, + "granularity": "low", + "heat": 0.31, + "owner": "unowned", + "id": "players_bulk_assign_playlist", + "community": 6, + "norm_label": "bulk_assign_playlist()" + }, + { + "label": "deployment_status()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L669", + "complexity": 4, + "loc": 20, + "level": 1, + "granularity": "low", + "heat": 0.266, + "owner": "unowned", + "id": "players_deployment_status", + "community": 6, + "norm_label": "deployment_status()" + }, + { + "label": "reorder_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L693", + "complexity": 8, + "loc": 49, + "level": 1, + "granularity": "low", + "heat": 0.331, + "owner": "unowned", + "id": "players_reorder_playlist", + "community": 6, + "norm_label": "reorder_playlist()" + }, + { + "label": "remove_from_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L746", + "complexity": 5, + "loc": 36, + "level": 1, + "granularity": "low", + "heat": 0.286, + "owner": "unowned", + "id": "players_remove_from_playlist", + "community": 6, + "norm_label": "remove_from_playlist()" + }, + { + "label": "Players blueprint for player management and display.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L1", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "players_rationale_1", + "community": 6, + "norm_label": "players blueprint for player management and display." + }, + { + "label": "Display list of all players.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L20", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "players_rationale_20", + "community": 7, + "norm_label": "display list of all players." + }, + { + "label": "Add a new player with optional SSH deployment.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L57", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "players_rationale_57", + "community": 6, + "norm_label": "add a new player with optional ssh deployment." + }, + { + "label": "Regenerate authentication code for a player.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L299", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "players_rationale_299", + "community": 6, + "norm_label": "regenerate authentication code for a player." + }, + { + "label": "Redirect to manage player page (combined view).", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L322", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "players_rationale_322", + "community": 6, + "norm_label": "redirect to manage player page (combined view)." + }, + { + "label": "Manage player - edit credentials, assign playlist, view logs.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L329", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "players_rationale_329", + "community": 6, + "norm_label": "manage player - edit credentials, assign playlist, view logs." + }, + { + "label": "Display all edited media files from this player.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L446", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "players_rationale_446", + "community": 6, + "norm_label": "display all edited media files from this player." + }, + { + "label": "Display a tabular report of all edited media from this player.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L490", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "players_rationale_490", + "community": 6, + "norm_label": "display a tabular report of all edited media from this player." + }, + { + "label": "Display player fullscreen view (no authentication required for players).", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L523", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "players_rationale_523", + "community": 6, + "norm_label": "display player fullscreen view (no authentication required for players)." + }, + { + "label": "Get playlist for a player based on their assigned playlist. Args:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L546", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "players_rationale_546", + "community": 6, + "norm_label": "get playlist for a player based on their assigned playlist. args:" + }, + { + "label": "Legacy endpoint - Content reordering now handled in playlist management.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L591", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "players_rationale_591", + "community": 6, + "norm_label": "legacy endpoint - content reordering now handled in playlist management." + }, + { + "label": "Delete multiple players at once.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L601", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "players_rationale_601", + "community": 6, + "norm_label": "delete multiple players at once." + }, + { + "label": "Assign multiple players to a playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L633", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "players_rationale_633", + "community": 6, + "norm_label": "assign multiple players to a playlist." + }, + { + "label": "Return deployment status for all players (used by polling JS).", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L670", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "players_rationale_670", + "community": 6, + "norm_label": "return deployment status for all players (used by polling js)." + }, + { + "label": "Reorder items in player's playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L694", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "players_rationale_694", + "community": 6, + "norm_label": "reorder items in player's playlist." + }, + { + "label": "Remove content from player's playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L747", + "level": 1, + "granularity": "low", + "heat": 0.22, + "owner": "unowned", + "id": "players_rationale_747", + "community": 6, + "norm_label": "remove content from player's playlist." + }, + { + "label": "auth.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 1, + "granularity": "low", + "heat": 0.022, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "home_scheianu_digiserver_v2_app_blueprints_auth_py", + "community": 0, + "norm_label": "auth.py" + }, + { + "label": "login()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L15", + "complexity": 6, + "loc": 40, + "level": 2, + "granularity": "low", + "heat": 0.099, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "auth_login", + "community": 0, + "norm_label": "login()" + }, + { + "label": "logout()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L59", + "complexity": 1, + "loc": 7, + "level": 2, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "auth_logout", + "community": 0, + "norm_label": "logout()" + }, + { + "label": "register()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L69", + "complexity": 7, + "loc": 45, + "level": 1, + "granularity": "low", + "heat": 0.114, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "auth_register", + "community": 0, + "norm_label": "register()" + }, + { + "label": "change_password()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L118", + "complexity": 5, + "loc": 30, + "level": 2, + "granularity": "low", + "heat": 0.082, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "auth_change_password", + "community": 0, + "norm_label": "change_password()" + }, + { + "label": "Authentication Blueprint - Login, Logout, Register", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "auth_rationale_1", + "community": 0, + "norm_label": "authentication blueprint - login, logout, register" + }, + { + "label": "playlist.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 1, + "granularity": "low", + "heat": 0.027, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "community": 2, + "norm_label": "playlist.py" + }, + { + "label": "manage_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L18", + "complexity": 2, + "loc": 11, + "level": 2, + "granularity": "low", + "heat": 0.034, + "owner": "unowned", + "id": "playlist_manage_playlist", + "community": 2, + "norm_label": "manage_playlist()" + }, + { + "label": "add_to_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L33", + "complexity": 4, + "loc": 51, + "level": 1, + "granularity": "low", + "heat": 0.082, + "owner": "unowned", + "id": "playlist_add_to_playlist", + "community": 2, + "norm_label": "add_to_playlist()" + }, + { + "label": "remove_from_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L88", + "complexity": 4, + "loc": 51, + "level": 1, + "granularity": "low", + "heat": 0.082, + "owner": "unowned", + "id": "playlist_remove_from_playlist", + "community": 2, + "norm_label": "remove_from_playlist()" + }, + { + "label": "reorder_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L143", + "complexity": 5, + "loc": 43, + "level": 1, + "granularity": "low", + "heat": 0.091, + "owner": "unowned", + "id": "playlist_reorder_playlist", + "community": 2, + "norm_label": "reorder_playlist()" + }, + { + "label": "update_duration()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L190", + "complexity": 4, + "loc": 41, + "level": 1, + "granularity": "low", + "heat": 0.077, + "owner": "unowned", + "id": "playlist_update_duration", + "community": 2, + "norm_label": "update_duration()" + }, + { + "label": "update_muted()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L235", + "complexity": 3, + "loc": 39, + "level": 1, + "granularity": "low", + "heat": 0.063, + "owner": "unowned", + "id": "playlist_update_muted", + "community": 2, + "norm_label": "update_muted()" + }, + { + "label": "clear_playlist()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L278", + "complexity": 3, + "loc": 33, + "level": 1, + "granularity": "low", + "heat": 0.061, + "owner": "unowned", + "id": "playlist_clear_playlist", + "community": 2, + "norm_label": "clear_playlist()" + }, + { + "label": "Playlist model for managing content collections.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L1", + "level": 1, + "granularity": "low", + "heat": 0.019, + "owner": "unowned", + "id": "playlist_rationale_1", + "community": 2, + "norm_label": "playlist model for managing content collections." + }, + { + "label": "Legacy route - redirect to new content management area.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L19", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "playlist_rationale_19", + "community": 2, + "norm_label": "legacy route - redirect to new content management area." + }, + { + "label": "Add content to player's playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L34", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "playlist_rationale_34", + "community": 2, + "norm_label": "add content to player's playlist." + }, + { + "label": "Remove content from player's playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L89", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "playlist_rationale_89", + "community": 2, + "norm_label": "remove content from player's playlist." + }, + { + "label": "Reorder playlist items.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L144", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "playlist_rationale_144", + "community": 2, + "norm_label": "reorder playlist items." + }, + { + "label": "Update content duration in playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L191", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "playlist_rationale_191", + "community": 2, + "norm_label": "update content duration in playlist." + }, + { + "label": "Update content muted setting in playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L236", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "playlist_rationale_236", + "community": 2, + "norm_label": "update content muted setting in playlist." + }, + { + "label": "Clear all content from player's playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L279", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "playlist_rationale_279", + "community": 2, + "norm_label": "clear all content from player's playlist." + }, + { + "label": "main.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 0, + "granularity": "low", + "heat": 0.019, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_blueprints_main_py", + "community": 5, + "norm_label": "main.py" + }, + { + "label": "dashboard()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L19", + "complexity": 4, + "loc": 27, + "level": 1, + "granularity": "low", + "heat": 0.067, + "owner": "unowned", + "id": "main_dashboard", + "community": 0, + "norm_label": "dashboard()" + }, + { + "label": "health()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L49", + "complexity": 3, + "loc": 32, + "level": 2, + "granularity": "low", + "heat": 0.057, + "owner": "unowned", + "id": "main_health", + "community": 5, + "norm_label": "health()" + }, + { + "label": "Main Blueprint - Dashboard and Home Routes", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L1", + "level": 0, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "id": "main_rationale_1", + "community": 5, + "norm_label": "main blueprint - dashboard and home routes" + }, + { + "label": "Health check endpoint", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L50", + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "id": "main_rationale_50", + "community": 5, + "norm_label": "health check endpoint" + }, + { + "label": "script_name_fix.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 2, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_utils_script_name_fix_py", + "community": 4, + "norm_label": "script_name_fix.py" + }, + { + "label": "ScriptNameFix", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", + "source_location": "L15", + "complexity": 3, + "loc": 12, + "level": 0, + "granularity": "low", + "heat": 0.065, + "owner": "unowned", + "id": "script_name_fix_scriptnamefix", + "community": 4, + "norm_label": "scriptnamefix" + }, + { + "label": ".__init__()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", + "source_location": "L16", + "complexity": 1, + "loc": 2, + "level": 3, + "granularity": "low", + "heat": 0.016, + "owner": "unowned", + "id": "script_name_fix_scriptnamefix_init", + "community": 4, + "norm_label": ".__init__()" + }, + { + "label": ".__call__()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", + "source_location": "L19", + "complexity": 3, + "loc": 8, + "level": 3, + "granularity": "low", + "heat": 0.044, + "owner": "unowned", + "id": "script_name_fix_scriptnamefix_call", + "community": 4, + "norm_label": ".__call__()" + }, + { + "label": "ScriptNameFix WSGI middleware. When nginx strips the path prefix before forward", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "script_name_fix_rationale_1", + "community": 4, + "norm_label": "scriptnamefix wsgi middleware. when nginx strips the path prefix before forward" + }, + { + "label": "portal_sso.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 2, + "granularity": "low", + "heat": 0.019, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_utils_portal_sso_py", + "community": 4, + "norm_label": "portal_sso.py" + }, + { + "label": "init_portal_sso()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", + "source_location": "L17", + "complexity": 4, + "loc": 16, + "level": 2, + "granularity": "low", + "heat": 0.064, + "owner": "unowned", + "id": "portal_sso_init_portal_sso", + "community": 4, + "norm_label": "init_portal_sso()" + }, + { + "label": "_get_or_create_user()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", + "source_location": "L35", + "complexity": 4, + "loc": 18, + "level": 2, + "granularity": "low", + "heat": 0.063, + "owner": "unowned", + "id": "portal_sso_get_or_create_user", + "community": 4, + "norm_label": "_get_or_create_user()" + }, + { + "label": "Portal SSO middleware for DigiServer v2. When the umbrella nginx verifies the p", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", + "source_location": "L1", + "level": 0, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "portal_sso_rationale_1", + "community": 4, + "norm_label": "portal sso middleware for digiserver v2. when the umbrella nginx verifies the p" + }, + { + "label": "Register the SSO before_request handler on the given Flask app.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", + "source_location": "L18", + "level": 0, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "portal_sso_rationale_18", + "community": 4, + "norm_label": "register the sso before_request handler on the given flask app." + }, + { + "label": "caddy_manager.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 1, + "granularity": "low", + "heat": 0.022, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", + "community": 1, + "norm_label": "caddy_manager.py" + }, + { + "label": "CaddyConfigGenerator", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L36", + "complexity": 16, + "loc": 233, + "level": 0, + "granularity": "low", + "heat": 0.365, + "owner": "unowned", + "id": "caddy_manager_caddyconfiggenerator", + "community": 1, + "norm_label": "caddyconfiggenerator" + }, + { + "label": "generate_caddyfile()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L40", + "complexity": 8, + "loc": 39, + "level": 2, + "granularity": "low", + "heat": 0.126, + "owner": "unowned", + "id": "caddy_manager_generate_caddyfile", + "community": 1, + "norm_label": "generate_caddyfile()" + }, + { + "label": "write_caddyfile()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L81", + "complexity": 2, + "loc": 15, + "level": 2, + "granularity": "low", + "heat": 0.036, + "owner": "unowned", + "id": "caddy_manager_write_caddyfile", + "community": 1, + "norm_label": "write_caddyfile()" + }, + { + "label": "reload_caddy()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L98", + "complexity": 6, + "loc": 130, + "level": 2, + "granularity": "low", + "heat": 0.141, + "owner": "unowned", + "id": "caddy_manager_reload_caddy", + "community": 1, + "norm_label": "reload_caddy()" + }, + { + "label": "Caddy configuration generator and manager.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L1", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "caddy_manager_rationale_1", + "community": 1, + "norm_label": "caddy configuration generator and manager." + }, + { + "label": "Generate Caddyfile configuration based on HTTPSConfig.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L37", + "level": 0, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "caddy_manager_rationale_37", + "community": 1, + "norm_label": "generate caddyfile configuration based on httpsconfig." + }, + { + "label": "Generate a complete Caddyfile. Behaviour: - HTTPS disabled / no", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L41", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "caddy_manager_rationale_41", + "community": 6, + "norm_label": "generate a complete caddyfile. behaviour: - https disabled / no" + }, + { + "label": "Write Caddyfile to disk. The default path is /etc/caddy/Caddyfile \u2014 the", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L83", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "caddy_manager_rationale_83", + "community": 6, + "norm_label": "write caddyfile to disk. the default path is /etc/caddy/caddyfile \u2014 the" + }, + { + "label": "Push the current Caddyfile to Caddy via its admin API (/load). Caddy ap", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L99", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "caddy_manager_rationale_99", + "community": 6, + "norm_label": "push the current caddyfile to caddy via its admin api (/load). caddy ap" + }, + { + "label": "Write Caddyfile to disk. Args: caddyfile_content: C", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L231", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "caddy_manager_rationale_231", + "community": 6, + "norm_label": "write caddyfile to disk. args: caddyfile_content: c" + }, + { + "label": "Reload Caddy configuration without restart. Note: Caddy monitor", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L250", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "caddy_manager_rationale_250", + "community": 6, + "norm_label": "reload caddy configuration without restart. note: caddy monitor" + }, + { + "label": "group_player_management.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 1, + "granularity": "low", + "heat": 0.027, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "community": 0, + "norm_label": "group_player_management.py" + }, + { + "label": "get_player_status_info()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L10", + "complexity": 6, + "loc": 42, + "level": 1, + "granularity": "low", + "heat": 0.108, + "owner": "unowned", + "id": "group_player_management_get_player_status_info", + "community": 0, + "norm_label": "get_player_status_info()" + }, + { + "label": "get_group_statistics()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L54", + "complexity": 5, + "loc": 42, + "level": 1, + "granularity": "low", + "heat": 0.09, + "owner": "unowned", + "id": "group_player_management_get_group_statistics", + "community": 0, + "norm_label": "get_group_statistics()" + }, + { + "label": "assign_player_to_group()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L98", + "complexity": 4, + "loc": 33, + "level": 2, + "granularity": "low", + "heat": 0.072, + "owner": "unowned", + "id": "group_player_management_assign_player_to_group", + "community": 0, + "norm_label": "assign_player_to_group()" + }, + { + "label": "bulk_assign_players_to_group()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L133", + "complexity": 5, + "loc": 33, + "level": 2, + "granularity": "low", + "heat": 0.085, + "owner": "unowned", + "id": "group_player_management_bulk_assign_players_to_group", + "community": 0, + "norm_label": "bulk_assign_players_to_group()" + }, + { + "label": "get_online_players_count()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L168", + "complexity": 1, + "loc": 8, + "level": 2, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "id": "group_player_management_get_online_players_count", + "community": 0, + "norm_label": "get_online_players_count()" + }, + { + "label": "get_players_by_status()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L178", + "complexity": 1, + "loc": 10, + "level": 2, + "granularity": "low", + "heat": 0.021, + "owner": "unowned", + "id": "group_player_management_get_players_by_status", + "community": 0, + "norm_label": "get_players_by_status()" + }, + { + "label": "_format_time_ago()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L190", + "complexity": 2, + "loc": 20, + "level": 2, + "granularity": "low", + "heat": 0.04, + "owner": "unowned", + "id": "group_player_management_format_time_ago", + "community": 0, + "norm_label": "_format_time_ago()" + }, + { + "label": "Group and player management utilities.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "group_player_management_rationale_1", + "community": 0, + "norm_label": "group and player management utilities." + }, + { + "label": "Get comprehensive status information for a player. Args: player", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L11", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "group_player_management_rationale_11", + "community": 0, + "norm_label": "get comprehensive status information for a player. args: player" + }, + { + "label": "Get statistics for a group. Args: group_id: Group ID to query", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L55", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "group_player_management_rationale_55", + "community": 0, + "norm_label": "get statistics for a group. args: group_id: group id to query" + }, + { + "label": "Assign a player to a group or unassign if group_id is None. Args:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L99", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "group_player_management_rationale_99", + "community": 0, + "norm_label": "assign a player to a group or unassign if group_id is none. args:" + }, + { + "label": "Assign multiple players to a group. Args: player_ids: List of p", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L134", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "group_player_management_rationale_134", + "community": 0, + "norm_label": "assign multiple players to a group. args: player_ids: list of p" + }, + { + "label": "Get count of online players (seen in last 5 minutes). Returns:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L169", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "group_player_management_rationale_169", + "community": 0, + "norm_label": "get count of online players (seen in last 5 minutes). returns:" + }, + { + "label": "Get all players with a specific status. Args: status: Status to", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L179", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "group_player_management_rationale_179", + "community": 0, + "norm_label": "get all players with a specific status. args: status: status to" + }, + { + "label": "Format datetime as 'time ago' string. Args: dt: Datetime to for", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L191", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "group_player_management_rationale_191", + "community": 0, + "norm_label": "format datetime as 'time ago' string. args: dt: datetime to for" + }, + { + "label": "ssh_deploy.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 1, + "granularity": "low", + "heat": 0.027, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "community": 10, + "norm_label": "ssh_deploy.py" + }, + { + "label": "get_local_player_code_status()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L15", + "complexity": 8, + "loc": 68, + "level": 1, + "granularity": "low", + "heat": 0.141, + "owner": "unowned", + "id": "ssh_deploy_get_local_player_code_status", + "community": 10, + "norm_label": "get_local_player_code_status()" + }, + { + "label": "test_ssh_connection()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L85", + "complexity": 3, + "loc": 62, + "level": 2, + "granularity": "low", + "heat": 0.072, + "owner": "unowned", + "id": "ssh_deploy_test_ssh_connection", + "community": 10, + "norm_label": "test_ssh_connection()" + }, + { + "label": "generate_player_config()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L149", + "complexity": 1, + "loc": 57, + "level": 2, + "granularity": "low", + "heat": 0.042, + "owner": "unowned", + "id": "ssh_deploy_generate_player_config", + "community": 10, + "norm_label": "generate_player_config()" + }, + { + "label": "detect_server_ip()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L208", + "complexity": 7, + "loc": 31, + "level": 0, + "granularity": "low", + "heat": 0.111, + "owner": "unowned", + "id": "ssh_deploy_detect_server_ip", + "community": 6, + "norm_label": "detect_server_ip()" + }, + { + "label": "parse_server_address()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L241", + "complexity": 4, + "loc": 24, + "level": 0, + "granularity": "low", + "heat": 0.068, + "owner": "unowned", + "id": "ssh_deploy_parse_server_address", + "community": 10, + "norm_label": "parse_server_address()" + }, + { + "label": "generate_app_config()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L267", + "complexity": 1, + "loc": 42, + "level": 0, + "granularity": "low", + "heat": 0.039, + "owner": "unowned", + "id": "ssh_deploy_generate_app_config", + "community": 10, + "norm_label": "generate_app_config()" + }, + { + "label": "deploy_player_to_host()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L311", + "complexity": 31, + "loc": 443, + "level": 1, + "granularity": "low", + "heat": 0.614, + "owner": "unowned", + "id": "ssh_deploy_deploy_player_to_host", + "community": 10, + "norm_label": "deploy_player_to_host()" + }, + { + "label": "SSH deployment utilities for player provisioning.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "ssh_deploy_rationale_1", + "community": 10, + "norm_label": "ssh deployment utilities for player provisioning." + }, + { + "label": "Check status of pre-staged player code. Args: player_code_dir: Opti", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L16", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "ssh_deploy_rationale_16", + "community": 10, + "norm_label": "check status of pre-staged player code. args: player_code_dir: opti" + }, + { + "label": "Test SSH connection to a remote host. Args: hostname: Target ho", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L86", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "ssh_deploy_rationale_86", + "community": 10, + "norm_label": "test ssh connection to a remote host. args: hostname: target ho" + }, + { + "label": "Generate player configuration JSON for connecting to DigiServer. Args:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L156", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "ssh_deploy_rationale_156", + "community": 10, + "norm_label": "generate player configuration json for connecting to digiserver. args:" + }, + { + "label": "Best-effort detection of this server's primary LAN IP address. Opens a UDP", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L209", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "ssh_deploy_rationale_209", + "community": 6, + "norm_label": "best-effort detection of this server's primary lan ip address. opens a udp" + }, + { + "label": "Derive the values the player needs from a DigiServer URL. The player's conf", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L242", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "ssh_deploy_rationale_242", + "community": 10, + "norm_label": "derive the values the player needs from a digiserver url. the player's conf" + }, + { + "label": "Generate the config/app_config.json the player actually reads. This is what", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L277", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "ssh_deploy_rationale_277", + "community": 10, + "norm_label": "generate the config/app_config.json the player actually reads. this is what" + }, + { + "label": "Deploy player code to remote host. Args: hostname: Target hostn", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L326", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "ssh_deploy_rationale_326", + "community": 10, + "norm_label": "deploy player code to remote host. args: hostname: target hostn" + }, + { + "label": "__init__.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/__init__.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_utils_init_py", + "community": 5, + "norm_label": "__init__.py" + }, + { + "label": "pptx_converter.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", + "community": 12, + "norm_label": "pptx_converter.py" + }, + { + "label": "cleanup_libreoffice_processes()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L11", + "complexity": 2, + "loc": 7, + "level": 2, + "granularity": "low", + "heat": 0.034, + "owner": "unowned", + "id": "pptx_converter_cleanup_libreoffice_processes", + "community": 12, + "norm_label": "cleanup_libreoffice_processes()" + }, + { + "label": "pptx_to_pdf_libreoffice()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L20", + "complexity": 4, + "loc": 64, + "level": 2, + "granularity": "low", + "heat": 0.086, + "owner": "unowned", + "id": "pptx_converter_pptx_to_pdf_libreoffice", + "community": 12, + "norm_label": "pptx_to_pdf_libreoffice()" + }, + { + "label": "validate_pptx_file()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L86", + "complexity": 4, + "loc": 21, + "level": 2, + "granularity": "low", + "heat": 0.065, + "owner": "unowned", + "id": "pptx_converter_validate_pptx_file", + "community": 12, + "norm_label": "validate_pptx_file()" + }, + { + "label": "PowerPoint to PDF converter using LibreOffice.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "pptx_converter_rationale_1", + "community": 12, + "norm_label": "powerpoint to pdf converter using libreoffice." + }, + { + "label": "Clean up any hanging LibreOffice processes.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L12", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "pptx_converter_rationale_12", + "community": 12, + "norm_label": "clean up any hanging libreoffice processes." + }, + { + "label": "Convert PPTX to PDF using LibreOffice for highest quality. This functio", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L21", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "pptx_converter_rationale_21", + "community": 12, + "norm_label": "convert pptx to pdf using libreoffice for highest quality. this functio" + }, + { + "label": "Validate if file is a valid PowerPoint file. Args: filepath: Pa", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L87", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "pptx_converter_rationale_87", + "community": 12, + "norm_label": "validate if file is a valid powerpoint file. args: filepath: pa" + }, + { + "label": "uploads.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 1, + "granularity": "low", + "heat": 0.029, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "community": 9, + "norm_label": "uploads.py" + }, + { + "label": "get_upload_progress()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L17", + "complexity": 1, + "loc": 14, + "level": 2, + "granularity": "low", + "heat": 0.024, + "owner": "unowned", + "id": "uploads_get_upload_progress", + "community": 9, + "norm_label": "get_upload_progress()" + }, + { + "label": "set_upload_progress()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L33", + "complexity": 1, + "loc": 15, + "level": 1, + "granularity": "low", + "heat": 0.028, + "owner": "unowned", + "id": "uploads_set_upload_progress", + "community": 9, + "norm_label": "set_upload_progress()" + }, + { + "label": "clear_upload_progress()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L50", + "complexity": 2, + "loc": 8, + "level": 2, + "granularity": "low", + "heat": 0.033, + "owner": "unowned", + "id": "uploads_clear_upload_progress", + "community": 9, + "norm_label": "clear_upload_progress()" + }, + { + "label": "save_uploaded_file()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L60", + "complexity": 3, + "loc": 32, + "level": 1, + "granularity": "low", + "heat": 0.058, + "owner": "unowned", + "id": "uploads_save_uploaded_file", + "community": 9, + "norm_label": "save_uploaded_file()" + }, + { + "label": "process_video_file()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L94", + "complexity": 10, + "loc": 80, + "level": 1, + "granularity": "low", + "heat": 0.174, + "owner": "unowned", + "id": "uploads_process_video_file", + "community": 9, + "norm_label": "process_video_file()" + }, + { + "label": "process_pdf_file()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L176", + "complexity": 5, + "loc": 31, + "level": 1, + "granularity": "low", + "heat": 0.085, + "owner": "unowned", + "id": "uploads_process_pdf_file", + "community": 9, + "norm_label": "process_pdf_file()" + }, + { + "label": "get_file_size()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L209", + "complexity": 2, + "loc": 13, + "level": 2, + "granularity": "low", + "heat": 0.035, + "owner": "unowned", + "id": "uploads_get_file_size", + "community": 9, + "norm_label": "get_file_size()" + }, + { + "label": "delete_file()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L224", + "complexity": 3, + "loc": 20, + "level": 1, + "granularity": "low", + "heat": 0.053, + "owner": "unowned", + "id": "uploads_delete_file", + "community": 9, + "norm_label": "delete_file()" + }, + { + "label": "Upload utilities for handling file uploads and processing.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "uploads_rationale_1", + "community": 9, + "norm_label": "upload utilities for handling file uploads and processing." + }, + { + "label": "Get upload progress for a specific upload ID. Args: upload_id:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L18", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "uploads_rationale_18", + "community": 9, + "norm_label": "get upload progress for a specific upload id. args: upload_id:" + }, + { + "label": "Set upload progress for a specific upload ID. Args: upload_id:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L35", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "uploads_rationale_35", + "community": 9, + "norm_label": "set upload progress for a specific upload id. args: upload_id:" + }, + { + "label": "Clear upload progress for a specific upload ID. Args: upload_id", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L51", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "uploads_rationale_51", + "community": 9, + "norm_label": "clear upload progress for a specific upload id. args: upload_id" + }, + { + "label": "Save an uploaded file to the upload folder. Args: file: FileSto", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L62", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "uploads_rationale_62", + "community": 9, + "norm_label": "save an uploaded file to the upload folder. args: file: filesto" + }, + { + "label": "Process video file for optimization (H.264, 30fps, max 1080p). Args:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L95", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "uploads_rationale_95", + "community": 9, + "norm_label": "process video file for optimization (h.264, 30fps, max 1080p). args:" + }, + { + "label": "Process PDF file (convert to images for display). Args: filepat", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L177", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "uploads_rationale_177", + "community": 9, + "norm_label": "process pdf file (convert to images for display). args: filepat" + }, + { + "label": "Get file size in bytes. Args: filepath: Path to file", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L210", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "uploads_rationale_210", + "community": 9, + "norm_label": "get file size in bytes. args: filepath: path to file" + }, + { + "label": "Delete a file from disk. Args: filepath: Path to file", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L225", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "uploads_rationale_225", + "community": 9, + "norm_label": "delete a file from disk. args: filepath: path to file" + }, + { + "label": "logger.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 1, + "granularity": "low", + "heat": 0.025, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_utils_logger_py", + "community": 0, + "norm_label": "logger.py" + }, + { + "label": "log_action()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L9", + "complexity": 2, + "loc": 15, + "level": 0, + "granularity": "low", + "heat": 0.233, + "owner": "unowned", + "id": "logger_log_action", + "community": 0, + "norm_label": "log_action()" + }, + { + "label": "get_recent_logs()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L26", + "complexity": 2, + "loc": 16, + "level": 2, + "granularity": "low", + "heat": 0.038, + "owner": "unowned", + "id": "logger_get_recent_logs", + "community": 0, + "norm_label": "get_recent_logs()" + }, + { + "label": "clear_old_logs()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L44", + "complexity": 2, + "loc": 19, + "level": 2, + "granularity": "low", + "heat": 0.04, + "owner": "unowned", + "id": "logger_clear_old_logs", + "community": 0, + "norm_label": "clear_old_logs()" + }, + { + "label": "log_info()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L66", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.019, + "owner": "unowned", + "id": "logger_log_info", + "community": 0, + "norm_label": "log_info()" + }, + { + "label": "log_warning()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L71", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.019, + "owner": "unowned", + "id": "logger_log_warning", + "community": 0, + "norm_label": "log_warning()" + }, + { + "label": "log_error()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L76", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.019, + "owner": "unowned", + "id": "logger_log_error", + "community": 0, + "norm_label": "log_error()" + }, + { + "label": "Logging utility for tracking system events.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L1", + "level": 2, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "logger_rationale_1", + "community": 0, + "norm_label": "logging utility for tracking system events." + }, + { + "label": "Log an action to the database with specified level. Args: level", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L10", + "level": 2, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "logger_rationale_10", + "community": 0, + "norm_label": "log an action to the database with specified level. args: level" + }, + { + "label": "Get the most recent log entries. Args: limit: Maximum number of", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L27", + "level": 2, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "logger_rationale_27", + "community": 0, + "norm_label": "get the most recent log entries. args: limit: maximum number of" + }, + { + "label": "Delete logs older than specified days. Args: days: Number of da", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L45", + "level": 2, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "logger_rationale_45", + "community": 0, + "norm_label": "delete logs older than specified days. args: days: number of da" + }, + { + "label": "Log an info level message.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L67", + "level": 2, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "logger_rationale_67", + "community": 0, + "norm_label": "log an info level message." + }, + { + "label": "Log a warning level message.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L72", + "level": 2, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "logger_rationale_72", + "community": 0, + "norm_label": "log a warning level message." + }, + { + "label": "Log an error level message.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L77", + "level": 2, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "logger_rationale_77", + "community": 0, + "norm_label": "log an error level message." + }, + { + "label": "player_build.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 1, + "granularity": "low", + "heat": 0.029, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "community": 11, + "norm_label": "player_build.py" + }, + { + "label": "_run_git()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L28", + "complexity": 1, + "loc": 8, + "level": 2, + "granularity": "low", + "heat": 0.022, + "owner": "unowned", + "id": "player_build_run_git", + "community": 11, + "norm_label": "_run_git()" + }, + { + "label": "get_short_head()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L38", + "complexity": 3, + "loc": 9, + "level": 1, + "granularity": "low", + "heat": 0.051, + "owner": "unowned", + "id": "player_build_get_short_head", + "community": 11, + "norm_label": "get_short_head()" + }, + { + "label": "build_player_files()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L49", + "complexity": 9, + "loc": 77, + "level": 1, + "granularity": "low", + "heat": 0.16, + "owner": "unowned", + "id": "player_build_build_player_files", + "community": 11, + "norm_label": "build_player_files()" + }, + { + "label": "write_base_config()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L128", + "complexity": 2, + "loc": 35, + "level": 1, + "granularity": "low", + "heat": 0.049, + "owner": "unowned", + "id": "player_build_write_base_config", + "community": 11, + "norm_label": "write_base_config()" + }, + { + "label": "load_build_settings()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L165", + "complexity": 3, + "loc": 9, + "level": 1, + "granularity": "low", + "heat": 0.05, + "owner": "unowned", + "id": "player_build_load_build_settings", + "community": 11, + "norm_label": "load_build_settings()" + }, + { + "label": "save_build_settings()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L176", + "complexity": 2, + "loc": 10, + "level": 2, + "granularity": "low", + "heat": 0.035, + "owner": "unowned", + "id": "player_build_save_build_settings", + "community": 11, + "norm_label": "save_build_settings()" + }, + { + "label": "get_player_server_settings()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L188", + "complexity": 4, + "loc": 18, + "level": 0, + "granularity": "low", + "heat": 0.067, + "owner": "unowned", + "id": "player_build_get_player_server_settings", + "community": 11, + "norm_label": "get_player_server_settings()" + }, + { + "label": "make_build_record()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L208", + "complexity": 1, + "loc": 16, + "level": 2, + "granularity": "low", + "heat": 0.025, + "owner": "unowned", + "id": "player_build_make_build_record", + "community": 11, + "norm_label": "make_build_record()" + }, + { + "label": "Utilities for building/staging the player files on the server. Admins use the \"", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "player_build_rationale_1", + "community": 11, + "norm_label": "utilities for building/staging the player files on the server. admins use the \"" + }, + { + "label": "Return the short git commit of the staged code, or 'unknown'.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L39", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_build_rationale_39", + "community": 11, + "norm_label": "return the short git commit of the staged code, or 'unknown'." + }, + { + "label": "Clone or refresh the player source into ``player_code_dir``. If the directo", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L50", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_build_rationale_50", + "community": 11, + "norm_label": "clone or refresh the player source into ``player_code_dir``. if the directo" + }, + { + "label": "Write a base ``config/app_config.json`` into the staged player code. ``scre", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L137", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_build_rationale_137", + "community": 11, + "norm_label": "write a base ``config/app_config.json`` into the staged player code. ``scre" + }, + { + "label": "Load saved build settings from ``meta_path`` (or None if absent/invalid).", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L166", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_build_rationale_166", + "community": 11, + "norm_label": "load saved build settings from ``meta_path`` (or none if absent/invalid)." + }, + { + "label": "Persist build settings to ``meta_path``.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L177", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_build_rationale_177", + "community": 11, + "norm_label": "persist build settings to ``meta_path``." + }, + { + "label": "Return the saved server address settings for deployment, if available. Retu", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L189", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_build_rationale_189", + "community": 11, + "norm_label": "return the saved server address settings for deployment, if available. retu" + }, + { + "label": "Assemble the metadata record to persist after a build.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L210", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_build_rationale_210", + "community": 11, + "norm_label": "assemble the metadata record to persist after a build." + }, + { + "label": "nginx_config_reader.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 2, + "granularity": "low", + "heat": 0.019, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py", + "community": 7, + "norm_label": "nginx_config_reader.py" + }, + { + "label": "NginxConfigReader", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L7", + "complexity": 16, + "loc": 108, + "level": 0, + "granularity": "low", + "heat": 0.278, + "owner": "unowned", + "id": "nginx_config_reader_nginxconfigreader", + "community": 7, + "norm_label": "nginxconfigreader" + }, + { + "label": ".__init__()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L10", + "complexity": 3, + "loc": 13, + "level": 2, + "granularity": "low", + "heat": 0.048, + "owner": "unowned", + "id": "nginx_config_reader_nginxconfigreader_init", + "community": 7, + "norm_label": ".__init__()" + }, + { + "label": ".get_status()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L24", + "complexity": 2, + "loc": 22, + "level": 1, + "granularity": "low", + "heat": 0.055, + "owner": "unowned", + "id": "nginx_config_reader_nginxconfigreader_get_status", + "community": 7, + "norm_label": ".get_status()" + }, + { + "label": "._check_ssl_enabled()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L47", + "complexity": 2, + "loc": 5, + "level": 2, + "granularity": "low", + "heat": 0.033, + "owner": "unowned", + "id": "nginx_config_reader_nginxconfigreader_check_ssl_enabled", + "community": 7, + "norm_label": "._check_ssl_enabled()" + }, + { + "label": "._extract_http_ports()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L53", + "complexity": 2, + "loc": 7, + "level": 0, + "granularity": "low", + "heat": 0.036, + "owner": "unowned", + "id": "nginx_config_reader_nginxconfigreader_extract_http_ports", + "community": 7, + "norm_label": "._extract_http_ports()" + }, + { + "label": "._extract_https_ports()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L61", + "complexity": 2, + "loc": 7, + "level": 0, + "granularity": "low", + "heat": 0.036, + "owner": "unowned", + "id": "nginx_config_reader_nginxconfigreader_extract_https_ports", + "community": 7, + "norm_label": "._extract_https_ports()" + }, + { + "label": "._extract_upstream_servers()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L69", + "complexity": 3, + "loc": 10, + "level": 1, + "granularity": "low", + "heat": 0.05, + "owner": "unowned", + "id": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", + "community": 7, + "norm_label": "._extract_upstream_servers()" + }, + { + "label": "._extract_server_names()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L80", + "complexity": 3, + "loc": 11, + "level": 2, + "granularity": "low", + "heat": 0.049, + "owner": "unowned", + "id": "nginx_config_reader_nginxconfigreader_extract_server_names", + "community": 7, + "norm_label": "._extract_server_names()" + }, + { + "label": "._extract_ssl_protocols()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L92", + "complexity": 3, + "loc": 9, + "level": 1, + "granularity": "low", + "heat": 0.05, + "owner": "unowned", + "id": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", + "community": 7, + "norm_label": "._extract_ssl_protocols()" + }, + { + "label": "._extract_client_max_body_size()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L102", + "complexity": 3, + "loc": 7, + "level": 1, + "granularity": "low", + "heat": 0.049, + "owner": "unowned", + "id": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", + "community": 7, + "norm_label": "._extract_client_max_body_size()" + }, + { + "label": "._check_gzip_enabled()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L110", + "complexity": 2, + "loc": 5, + "level": 2, + "granularity": "low", + "heat": 0.033, + "owner": "unowned", + "id": "nginx_config_reader_nginxconfigreader_check_gzip_enabled", + "community": 7, + "norm_label": "._check_gzip_enabled()" + }, + { + "label": "get_nginx_status()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L117", + "complexity": 1, + "loc": 4, + "level": 1, + "granularity": "low", + "heat": 0.022, + "owner": "unowned", + "id": "nginx_config_reader_get_nginx_status", + "community": 7, + "norm_label": "get_nginx_status()" + }, + { + "label": "Nginx configuration reader utility.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "nginx_config_reader_rationale_1", + "community": 7, + "norm_label": "nginx configuration reader utility." + }, + { + "label": "Read and parse Nginx configuration files.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L8", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "nginx_config_reader_rationale_8", + "community": 7, + "norm_label": "read and parse nginx configuration files." + }, + { + "label": "Initialize Nginx config reader.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L11", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "nginx_config_reader_rationale_11", + "community": 7, + "norm_label": "initialize nginx config reader." + }, + { + "label": "Get Nginx configuration status.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L25", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "nginx_config_reader_rationale_25", + "community": 7, + "norm_label": "get nginx configuration status." + }, + { + "label": "Check if SSL is enabled.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L48", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "nginx_config_reader_rationale_48", + "community": 7, + "norm_label": "check if ssl is enabled." + }, + { + "label": "Extract HTTP listening ports.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L54", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "nginx_config_reader_rationale_54", + "community": 7, + "norm_label": "extract http listening ports." + }, + { + "label": "Extract HTTPS listening ports.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L62", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "nginx_config_reader_rationale_62", + "community": 7, + "norm_label": "extract https listening ports." + }, + { + "label": "Extract upstream servers.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L70", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "nginx_config_reader_rationale_70", + "community": 7, + "norm_label": "extract upstream servers." + }, + { + "label": "Extract server names.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L81", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "nginx_config_reader_rationale_81", + "community": 7, + "norm_label": "extract server names." + }, + { + "label": "Extract SSL protocols.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L93", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "nginx_config_reader_rationale_93", + "community": 7, + "norm_label": "extract ssl protocols." + }, + { + "label": "Extract client max body size.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L103", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "nginx_config_reader_rationale_103", + "community": 7, + "norm_label": "extract client max body size." + }, + { + "label": "Check if gzip is enabled.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L111", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "nginx_config_reader_rationale_111", + "community": 7, + "norm_label": "check if gzip is enabled." + }, + { + "label": "Get Nginx configuration status.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L118", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "nginx_config_reader_rationale_118", + "community": 7, + "norm_label": "get nginx configuration status." + }, + { + "label": "background_tasks.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 2, + "granularity": "low", + "heat": 0.119, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_utils_background_tasks_py", + "community": 10, + "norm_label": "background_tasks.py" + }, + { + "label": "run_background_task()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", + "source_location": "L9", + "complexity": 2, + "loc": 18, + "level": 1, + "granularity": "low", + "heat": 0.139, + "owner": "unowned", + "id": "background_tasks_run_background_task", + "community": 10, + "norm_label": "run_background_task()" + }, + { + "label": "background_player_deployment()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", + "source_location": "L29", + "complexity": 6, + "loc": 88, + "level": 1, + "granularity": "low", + "heat": 0.224, + "owner": "unowned", + "id": "background_tasks_background_player_deployment", + "community": 10, + "norm_label": "background_player_deployment()" + }, + { + "label": "Background task execution for long-running operations.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.115, + "owner": "unowned", + "id": "background_tasks_rationale_1", + "community": 10, + "norm_label": "background task execution for long-running operations." + }, + { + "label": "Run a function in a background thread, with a Flask app context pushed.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", + "source_location": "L10", + "level": 3, + "granularity": "low", + "heat": 0.115, + "owner": "unowned", + "id": "background_tasks_rationale_10", + "community": 10, + "norm_label": "run a function in a background thread, with a flask app context pushed." + }, + { + "label": "Deploy player code to host in background. Args: hostname: SSH h", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", + "source_location": "L43", + "level": 3, + "granularity": "low", + "heat": 0.115, + "owner": "unowned", + "id": "background_tasks_rationale_43", + "community": 10, + "norm_label": "deploy player code to host in background. args: hostname: ssh h" + }, + { + "label": "player_feedback.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 1, + "granularity": "low", + "heat": 0.022, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_models_player_feedback_py", + "community": 5, + "norm_label": "player_feedback.py" + }, + { + "label": "PlayerFeedback", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L8", + "complexity": 1, + "loc": 57, + "level": 1, + "granularity": "low", + "heat": 0.047, + "owner": "unowned", + "id": "player_feedback_playerfeedback", + "community": 5, + "norm_label": "playerfeedback" + }, + { + "label": ".__repr__()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L37", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "player_feedback_playerfeedback_repr", + "community": 5, + "norm_label": ".__repr__()" + }, + { + "label": "is_error()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L42", + "complexity": 1, + "loc": 3, + "level": 3, + "granularity": "low", + "heat": 0.016, + "owner": "unowned", + "id": "player_feedback_is_error", + "community": 5, + "norm_label": "is_error()" + }, + { + "label": "age_seconds()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L47", + "complexity": 1, + "loc": 4, + "level": 3, + "granularity": "low", + "heat": 0.016, + "owner": "unowned", + "id": "player_feedback_age_seconds", + "community": 5, + "norm_label": "age_seconds()" + }, + { + "label": "get_latest_for_player()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L53", + "complexity": 1, + "loc": 12, + "level": 3, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "id": "player_feedback_get_latest_for_player", + "community": 5, + "norm_label": "get_latest_for_player()" + }, + { + "label": "Player feedback model for tracking player status and errors.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_feedback_rationale_1", + "community": 5, + "norm_label": "player feedback model for tracking player status and errors." + }, + { + "label": "Player feedback model for tracking player status updates. Attributes:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L9", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_feedback_rationale_9", + "community": 5, + "norm_label": "player feedback model for tracking player status updates. attributes:" + }, + { + "label": "String representation of PlayerFeedback.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L38", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_feedback_rationale_38", + "community": 5, + "norm_label": "string representation of playerfeedback." + }, + { + "label": "Check if feedback indicates an error.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L43", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "player_feedback_rationale_43", + "community": 20, + "norm_label": "check if feedback indicates an error." + }, + { + "label": "Get age of feedback in seconds.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L48", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "player_feedback_rationale_48", + "community": 21, + "norm_label": "get age of feedback in seconds." + }, + { + "label": "Get most recent feedback for a player. Args: player", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L54", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "player_feedback_rationale_54", + "community": 22, + "norm_label": "get most recent feedback for a player. args: player" + }, + { + "label": "https_config.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 0, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_models_https_config_py", + "community": 1, + "norm_label": "https_config.py" + }, + { + "label": "HTTPSConfig", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L8", + "complexity": 5, + "loc": 97, + "level": 0, + "granularity": "low", + "heat": 0.16, + "owner": "unowned", + "id": "https_config_httpsconfig", + "community": 6, + "norm_label": "httpsconfig" + }, + { + "label": ".__repr__()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L37", + "complexity": 2, + "loc": 4, + "level": 2, + "granularity": "low", + "heat": 0.031, + "owner": "unowned", + "id": "https_config_httpsconfig_repr", + "community": 6, + "norm_label": ".__repr__()" + }, + { + "label": "get_config()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L43", + "complexity": 1, + "loc": 7, + "level": 1, + "granularity": "low", + "heat": 0.03, + "owner": "unowned", + "id": "https_config_get_config", + "community": 1, + "norm_label": "get_config()" + }, + { + "label": "create_or_update()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L52", + "complexity": 2, + "loc": 34, + "level": 2, + "granularity": "low", + "heat": 0.046, + "owner": "unowned", + "id": "https_config_create_or_update", + "community": 1, + "norm_label": "create_or_update()" + }, + { + "label": ".to_dict()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L87", + "complexity": 3, + "loc": 18, + "level": 2, + "granularity": "low", + "heat": 0.05, + "owner": "unowned", + "id": "https_config_httpsconfig_to_dict", + "community": 6, + "norm_label": ".to_dict()" + }, + { + "label": "HTTPS Configuration model.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "https_config_rationale_1", + "community": 1, + "norm_label": "https configuration model." + }, + { + "label": "HTTPS configuration model for managing secure connections. Attributes:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L9", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "https_config_rationale_9", + "community": 6, + "norm_label": "https configuration model for managing secure connections. attributes:" + }, + { + "label": "String representation of HTTPSConfig.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L38", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "https_config_rationale_38", + "community": 6, + "norm_label": "string representation of httpsconfig." + }, + { + "label": "Get the current HTTPS configuration. Returns: HTTPS", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L44", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "https_config_rationale_44", + "community": 23, + "norm_label": "get the current https configuration. returns: https" + }, + { + "label": "Create or update HTTPS configuration. Args: https_e", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L56", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "https_config_rationale_56", + "community": 24, + "norm_label": "create or update https configuration. args: https_e" + }, + { + "label": "Convert configuration to dictionary. Returns: Dicti", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L88", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "https_config_rationale_88", + "community": 6, + "norm_label": "convert configuration to dictionary. returns: dicti" + }, + { + "label": "user.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 2, + "granularity": "low", + "heat": 0.019, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_models_user_py", + "community": 4, + "norm_label": "user.py" + }, + { + "label": "User", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L10", + "complexity": 1, + "loc": 34, + "level": 0, + "granularity": "low", + "heat": 0.061, + "owner": "unowned", + "id": "user_user", + "community": 4, + "norm_label": "user" + }, + { + "label": "UserMixin", + "file_type": "code", + "source_file": "", + "source_location": "", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "usermixin", + "community": 4, + "norm_label": "usermixin" + }, + { + "label": ".__repr__()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L32", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "user_user_repr", + "community": 4, + "norm_label": ".__repr__()" + }, + { + "label": "is_admin()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L37", + "complexity": 1, + "loc": 3, + "level": 3, + "granularity": "low", + "heat": 0.016, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "user_is_admin", + "community": 4, + "norm_label": "is_admin()" + }, + { + "label": ".update_last_login()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L41", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "user_user_update_last_login", + "community": 4, + "norm_label": ".update_last_login()" + }, + { + "label": "User model for authentication and authorization.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "user_rationale_1", + "community": 4, + "norm_label": "user model for authentication and authorization." + }, + { + "label": "User model for application authentication. Attributes: id: Prim", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L11", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "user_rationale_11", + "community": 4, + "norm_label": "user model for application authentication. attributes: id: prim" + }, + { + "label": "String representation of User.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L33", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "user_rationale_33", + "community": 4, + "norm_label": "string representation of user." + }, + { + "label": "Check if user has admin role.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L38", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "user_rationale_38", + "community": 25, + "norm_label": "check if user has admin role." + }, + { + "label": "Update last login timestamp.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L42", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "user_rationale_42", + "community": 4, + "norm_label": "update last login timestamp." + }, + { + "label": "player.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 1, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_models_player_py", + "community": 5, + "norm_label": "player.py" + }, + { + "label": "Player", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L8", + "complexity": 6, + "loc": 137, + "level": 0, + "granularity": "low", + "heat": 0.16, + "owner": "unowned", + "id": "player_player", + "community": 5, + "norm_label": "player" + }, + { + "label": ".__repr__()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L55", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "player_player_repr", + "community": 5, + "norm_label": ".__repr__()" + }, + { + "label": "is_online()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L60", + "complexity": 2, + "loc": 6, + "level": 3, + "granularity": "low", + "heat": 0.03, + "owner": "unowned", + "id": "player_is_online", + "community": 5, + "norm_label": "is_online()" + }, + { + "label": ".update_status()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L67", + "complexity": 1, + "loc": 8, + "level": 1, + "granularity": "low", + "heat": 0.023, + "owner": "unowned", + "id": "player_player_update_status", + "community": 3, + "norm_label": ".update_status()" + }, + { + "label": ".set_password()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L76", + "complexity": 1, + "loc": 8, + "level": 1, + "granularity": "low", + "heat": 0.023, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "player_player_set_password", + "community": 6, + "norm_label": ".set_password()" + }, + { + "label": ".check_password()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L85", + "complexity": 1, + "loc": 11, + "level": 2, + "granularity": "low", + "heat": 0.023, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "player_player_check_password", + "community": 5, + "norm_label": ".check_password()" + }, + { + "label": ".set_quickconnect_code()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L97", + "complexity": 1, + "loc": 8, + "level": 1, + "granularity": "low", + "heat": 0.023, + "owner": "unowned", + "id": "player_player_set_quickconnect_code", + "community": 6, + "norm_label": ".set_quickconnect_code()" + }, + { + "label": ".check_quickconnect_code()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L106", + "complexity": 2, + "loc": 13, + "level": 1, + "granularity": "low", + "heat": 0.04, + "owner": "unowned", + "id": "player_player_check_quickconnect_code", + "community": 5, + "norm_label": ".check_quickconnect_code()" + }, + { + "label": "authenticate()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L121", + "complexity": 4, + "loc": 24, + "level": 1, + "granularity": "low", + "heat": 0.069, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "player_authenticate", + "community": 5, + "norm_label": "authenticate()" + }, + { + "label": "Player model for digital signage players.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_rationale_1", + "community": 5, + "norm_label": "player model for digital signage players." + }, + { + "label": "Player model representing a digital signage device. Attributes:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L9", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_rationale_9", + "community": 5, + "norm_label": "player model representing a digital signage device. attributes:" + }, + { + "label": "String representation of Player.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L56", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_rationale_56", + "community": 5, + "norm_label": "string representation of player." + }, + { + "label": "Check if player is online (seen in last 5 minutes).", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L61", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "player_rationale_61", + "community": 26, + "norm_label": "check if player is online (seen in last 5 minutes)." + }, + { + "label": "Update player status and last seen timestamp. Args:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L68", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_rationale_68", + "community": 3, + "norm_label": "update player status and last seen timestamp. args:" + }, + { + "label": "Set player password with bcrypt hashing. Args: pass", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L77", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "player_rationale_77", + "community": 6, + "norm_label": "set player password with bcrypt hashing. args: pass" + }, + { + "label": "Verify player password. Args: password: Plain text", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L86", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "player_rationale_86", + "community": 5, + "norm_label": "verify player password. args: password: plain text" + }, + { + "label": "Set quick connect code with bcrypt hashing. Args: c", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L98", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_rationale_98", + "community": 6, + "norm_label": "set quick connect code with bcrypt hashing. args: c" + }, + { + "label": "Verify quick connect code. Args: code: Plain text c", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L107", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_rationale_107", + "community": 5, + "norm_label": "verify quick connect code. args: code: plain text c" + }, + { + "label": "Authenticate a player by hostname and password or quickconnect code.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L122", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "player_rationale_122", + "community": 27, + "norm_label": "authenticate a player by hostname and password or quickconnect code." + }, + { + "label": "server_log.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 0, + "granularity": "low", + "heat": 0.022, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_models_server_log_py", + "community": 0, + "norm_label": "server_log.py" + }, + { + "label": "ServerLog", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L8", + "complexity": 1, + "loc": 65, + "level": 0, + "granularity": "low", + "heat": 0.063, + "owner": "unowned", + "id": "server_log_serverlog", + "community": 0, + "norm_label": "serverlog" + }, + { + "label": ".__repr__()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L25", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "server_log_serverlog_repr", + "community": 0, + "norm_label": ".__repr__()" + }, + { + "label": "log_info()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L30", + "complexity": 1, + "loc": 13, + "level": 3, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "id": "server_log_log_info", + "community": 0, + "norm_label": "log_info()" + }, + { + "label": "log_warning()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L45", + "complexity": 1, + "loc": 13, + "level": 3, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "id": "server_log_log_warning", + "community": 0, + "norm_label": "log_warning()" + }, + { + "label": "log_error()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L60", + "complexity": 1, + "loc": 13, + "level": 3, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "id": "server_log_log_error", + "community": 0, + "norm_label": "log_error()" + }, + { + "label": "Server log model for audit trail.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "server_log_rationale_1", + "community": 0, + "norm_label": "server log model for audit trail." + }, + { + "label": "Server log model for tracking system events. Attributes: id: Pr", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L9", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "server_log_rationale_9", + "community": 0, + "norm_label": "server log model for tracking system events. attributes: id: pr" + }, + { + "label": "String representation of ServerLog.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L26", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "server_log_rationale_26", + "community": 0, + "norm_label": "string representation of serverlog." + }, + { + "label": "Create an info level log entry. Args: message: Log", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L31", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "server_log_rationale_31", + "community": 28, + "norm_label": "create an info level log entry. args: message: log" + }, + { + "label": "Create a warning level log entry. Args: message: Lo", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L46", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "server_log_rationale_46", + "community": 29, + "norm_label": "create a warning level log entry. args: message: lo" + }, + { + "label": "Create an error level log entry. Args: message: Log", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L61", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "server_log_rationale_61", + "community": 30, + "norm_label": "create an error level log entry. args: message: log" + }, + { + "label": "player_user.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 2, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_models_player_user_py", + "community": 1, + "norm_label": "player_user.py" + }, + { + "label": "PlayerUser", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L7", + "complexity": 3, + "loc": 31, + "level": 0, + "granularity": "low", + "heat": 0.18, + "owner": "unowned", + "id": "player_user_playeruser", + "community": 1, + "norm_label": "playeruser" + }, + { + "label": ".__repr__()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L25", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "player_user_playeruser_repr", + "community": 1, + "norm_label": ".__repr__()" + }, + { + "label": ".to_dict()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L29", + "complexity": 3, + "loc": 9, + "level": 2, + "granularity": "low", + "heat": 0.046, + "owner": "unowned", + "id": "player_user_playeruser_to_dict", + "community": 1, + "norm_label": ".to_dict()" + }, + { + "label": "Player user model for managing user codes and names.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_user_rationale_1", + "community": 1, + "norm_label": "player user model for managing user codes and names." + }, + { + "label": "Player user model for managing user codes and names globally. Attribute", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L8", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_user_rationale_8", + "community": 1, + "norm_label": "player user model for managing user codes and names globally. attribute" + }, + { + "label": "String representation of PlayerUser.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L26", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_user_rationale_26", + "community": 1, + "norm_label": "string representation of playeruser." + }, + { + "label": "Convert to dictionary for API responses.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L30", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_user_rationale_30", + "community": 1, + "norm_label": "convert to dictionary for api responses." + }, + { + "label": "group.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 2, + "granularity": "low", + "heat": 0.019, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_models_group_py", + "community": 7, + "norm_label": "group.py" + }, + { + "label": "Group", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L15", + "complexity": 2, + "loc": 52, + "level": 1, + "granularity": "low", + "heat": 0.068, + "owner": "unowned", + "id": "group_group", + "community": 7, + "norm_label": "group" + }, + { + "label": ".__repr__()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L38", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "group_group_repr", + "community": 7, + "norm_label": ".__repr__()" + }, + { + "label": "content_count()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L45", + "complexity": 1, + "loc": 3, + "level": 3, + "granularity": "low", + "heat": 0.016, + "owner": "unowned", + "id": "group_content_count", + "community": 7, + "norm_label": "content_count()" + }, + { + "label": ".add_player()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L49", + "complexity": 1, + "loc": 8, + "level": 2, + "granularity": "low", + "heat": 0.02, + "owner": "unowned", + "id": "group_group_add_player", + "community": 7, + "norm_label": ".add_player()" + }, + { + "label": ".remove_player()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L58", + "complexity": 2, + "loc": 9, + "level": 2, + "granularity": "low", + "heat": 0.033, + "owner": "unowned", + "id": "group_group_remove_player", + "community": 7, + "norm_label": ".remove_player()" + }, + { + "label": "Group model for organizing players and content.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "group_rationale_1", + "community": 7, + "norm_label": "group model for organizing players and content." + }, + { + "label": "Group model for organizing players with shared content. Attributes:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L16", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "group_rationale_16", + "community": 7, + "norm_label": "group model for organizing players with shared content. attributes:" + }, + { + "label": "String representation of Group.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L39", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "group_rationale_39", + "community": 7, + "norm_label": "string representation of group." + }, + { + "label": "Get number of content items in this group.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L46", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "group_rationale_46", + "community": 31, + "norm_label": "get number of content items in this group." + }, + { + "label": "Add a player to this group. Args: player: Player in", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L50", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "group_rationale_50", + "community": 7, + "norm_label": "add a player to this group. args: player: player in" + }, + { + "label": "Remove a player from this group. Args: player: Play", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L59", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "group_rationale_59", + "community": 7, + "norm_label": "remove a player from this group. args: player: play" + }, + { + "label": "content.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 1, + "granularity": "low", + "heat": 0.027, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_models_content_py", + "community": 5, + "norm_label": "content.py" + }, + { + "label": "Content", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L8", + "complexity": 4, + "loc": 111, + "level": 0, + "granularity": "low", + "heat": 0.143, + "owner": "unowned", + "id": "content_content", + "community": 5, + "norm_label": "content" + }, + { + "label": ".__repr__()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L44", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "content_content_repr", + "community": 5, + "norm_label": ".__repr__()" + }, + { + "label": "file_size_mb()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L49", + "complexity": 2, + "loc": 5, + "level": 3, + "granularity": "low", + "heat": 0.03, + "owner": "unowned", + "id": "content_file_size_mb", + "community": 5, + "norm_label": "file_size_mb()" + }, + { + "label": "group_count()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L56", + "complexity": 1, + "loc": 3, + "level": 3, + "granularity": "low", + "heat": 0.016, + "owner": "unowned", + "id": "content_group_count", + "community": 5, + "norm_label": "group_count()" + }, + { + "label": "original_display_name()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L61", + "complexity": 1, + "loc": 3, + "level": 3, + "granularity": "low", + "heat": 0.016, + "owner": "unowned", + "id": "content_original_display_name", + "community": 5, + "norm_label": "original_display_name()" + }, + { + "label": "original_media_path()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L66", + "complexity": 2, + "loc": 10, + "level": 3, + "granularity": "low", + "heat": 0.032, + "owner": "unowned", + "id": "content_original_media_path", + "community": 5, + "norm_label": "original_media_path()" + }, + { + "label": "current_media_path()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L78", + "complexity": 1, + "loc": 3, + "level": 3, + "granularity": "low", + "heat": 0.016, + "owner": "unowned", + "id": "content_current_media_path", + "community": 5, + "norm_label": "current_media_path()" + }, + { + "label": ".is_image()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L82", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "content_content_is_image", + "community": 5, + "norm_label": ".is_image()" + }, + { + "label": ".is_video()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L86", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "content_content_is_video", + "community": 5, + "norm_label": ".is_video()" + }, + { + "label": ".is_pdf()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L90", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "content_content_is_pdf", + "community": 5, + "norm_label": ".is_pdf()" + }, + { + "label": ".is_weblink()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L94", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "content_content_is_weblink", + "community": 5, + "norm_label": ".is_weblink()" + }, + { + "label": "has_player_edits()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L99", + "complexity": 1, + "loc": 3, + "level": 3, + "granularity": "low", + "heat": 0.016, + "owner": "unowned", + "id": "content_has_player_edits", + "community": 5, + "norm_label": "has_player_edits()" + }, + { + "label": "Content model representing media files for display. Attributes:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L9", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_rationale_9", + "community": 5, + "norm_label": "content model representing media files for display. attributes:" + }, + { + "label": "String representation of Content.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L45", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_rationale_45", + "community": 5, + "norm_label": "string representation of content." + }, + { + "label": "Get file size in megabytes.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L50", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "content_rationale_50", + "community": 32, + "norm_label": "get file size in megabytes." + }, + { + "label": "Get number of groups containing this content.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L57", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "content_rationale_57", + "community": 33, + "norm_label": "get number of groups containing this content." + }, + { + "label": "Name of the original (unedited) file for display purposes.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L62", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "content_rationale_62", + "community": 34, + "norm_label": "name of the original (unedited) file for display purposes." + }, + { + "label": "Path (relative to uploads/) where the original unedited file lives. Whe", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L67", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "content_rationale_67", + "community": 35, + "norm_label": "path (relative to uploads/) where the original unedited file lives. whe" + }, + { + "label": "Path (relative to uploads/) of the current/latest version to display.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L79", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "content_rationale_79", + "community": 36, + "norm_label": "path (relative to uploads/) of the current/latest version to display." + }, + { + "label": "Check if content is an image.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L83", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_rationale_83", + "community": 5, + "norm_label": "check if content is an image." + }, + { + "label": "Check if content is a video.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L87", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_rationale_87", + "community": 5, + "norm_label": "check if content is a video." + }, + { + "label": "Check if content is a PDF.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L91", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_rationale_91", + "community": 5, + "norm_label": "check if content is a pdf." + }, + { + "label": "Check if content is a web link (URL) rather than an uploaded file.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L95", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "content_rationale_95", + "community": 5, + "norm_label": "check if content is a web link (url) rather than an uploaded file." + }, + { + "label": "Whether this content has been edited on a player.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L100", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "content_rationale_100", + "community": 37, + "norm_label": "whether this content has been edited on a player." + }, + { + "label": "Display name of the original (unedited) file.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L105", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "content_rationale_105", + "community": 38, + "norm_label": "display name of the original (unedited) file." + }, + { + "label": "uploads/-relative path of the pristine original file. After a player ed", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L110", + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "content_rationale_110", + "community": 39, + "norm_label": "uploads/-relative path of the pristine original file. after a player ed" + }, + { + "label": "__init__.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_models_init_py", + "community": 5, + "norm_label": "__init__.py" + }, + { + "label": "player_edit.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 2, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_models_player_edit_py", + "community": 3, + "norm_label": "player_edit.py" + }, + { + "label": "PlayerEdit", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L8", + "complexity": 4, + "loc": 53, + "level": 0, + "granularity": "low", + "heat": 0.246, + "owner": "unowned", + "id": "player_edit_playeredit", + "community": 3, + "norm_label": "playeredit" + }, + { + "label": ".__repr__()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L42", + "complexity": 1, + "loc": 3, + "level": 2, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "player_edit_playeredit_repr", + "community": 3, + "norm_label": ".__repr__()" + }, + { + "label": ".to_dict()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L46", + "complexity": 4, + "loc": 15, + "level": 1, + "granularity": "low", + "heat": 0.064, + "owner": "unowned", + "id": "player_edit_playeredit_to_dict", + "community": 1, + "norm_label": ".to_dict()" + }, + { + "label": "Player edit model for tracking media edited on players.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_edit_rationale_1", + "community": 3, + "norm_label": "player edit model for tracking media edited on players." + }, + { + "label": "Player edit model for tracking media files edited on player devices. At", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L9", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_edit_rationale_9", + "community": 3, + "norm_label": "player edit model for tracking media files edited on player devices. at" + }, + { + "label": "String representation of PlayerEdit.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L43", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_edit_rationale_43", + "community": 3, + "norm_label": "string representation of playeredit." + }, + { + "label": "Convert to dictionary for API responses.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L47", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "player_edit_rationale_47", + "community": 1, + "norm_label": "convert to dictionary for api responses." + }, + { + "label": "playlist.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 1, + "granularity": "low", + "heat": 0.022, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_app_models_playlist_py", + "community": 2, + "norm_label": "playlist.py" + }, + { + "label": "Playlist", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L19", + "complexity": 6, + "loc": 81, + "level": 0, + "granularity": "low", + "heat": 0.171, + "owner": "unowned", + "id": "playlist_playlist", + "community": 3, + "norm_label": "playlist" + }, + { + "label": ".__repr__()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L48", + "complexity": 1, + "loc": 3, + "level": 1, + "granularity": "low", + "heat": 0.018, + "owner": "unowned", + "id": "playlist_playlist_repr", + "community": 5, + "norm_label": ".__repr__()" + }, + { + "label": "player_count()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L53", + "complexity": 1, + "loc": 3, + "level": 3, + "granularity": "low", + "heat": 0.016, + "owner": "unowned", + "id": "playlist_player_count", + "community": 2, + "norm_label": "player_count()" + }, + { + "label": "content_count()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L58", + "complexity": 1, + "loc": 3, + "level": 3, + "granularity": "low", + "heat": 0.016, + "owner": "unowned", + "id": "playlist_content_count", + "community": 2, + "norm_label": "content_count()" + }, + { + "label": "total_duration()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L63", + "complexity": 2, + "loc": 6, + "level": 3, + "granularity": "low", + "heat": 0.03, + "owner": "unowned", + "id": "playlist_total_duration", + "community": 2, + "norm_label": "total_duration()" + }, + { + "label": ".increment_version()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L70", + "complexity": 1, + "loc": 4, + "level": 0, + "granularity": "low", + "heat": 0.046, + "owner": "unowned", + "id": "playlist_playlist_increment_version", + "community": 2, + "norm_label": ".increment_version()" + }, + { + "label": ".get_content_ordered()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L75", + "complexity": 5, + "loc": 25, + "level": 1, + "granularity": "low", + "heat": 0.084, + "owner": "unowned", + "id": "playlist_playlist_get_content_ordered", + "community": 3, + "norm_label": ".get_content_ordered()" + }, + { + "label": "Playlist model representing a collection of content. Attributes:", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L20", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "playlist_rationale_20", + "community": 3, + "norm_label": "playlist model representing a collection of content. attributes:" + }, + { + "label": "String representation of Playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L49", + "level": 2, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "playlist_rationale_49", + "community": 5, + "norm_label": "string representation of playlist." + }, + { + "label": "Get number of players assigned to this playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L54", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "playlist_rationale_54", + "community": 5, + "norm_label": "get number of players assigned to this playlist." + }, + { + "label": "Get number of content items in this playlist.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L59", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "playlist_rationale_59", + "community": 5, + "norm_label": "get number of content items in this playlist." + }, + { + "label": "Calculate total duration of all content in seconds.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L64", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "playlist_rationale_64", + "community": 5, + "norm_label": "calculate total duration of all content in seconds." + }, + { + "label": "Increment playlist version for sync detection.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L71", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "playlist_rationale_71", + "community": 2, + "norm_label": "increment playlist version for sync detection." + }, + { + "label": "Get content items ordered by position.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L76", + "level": 1, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "playlist_rationale_76", + "community": 3, + "norm_label": "get content items ordered by position." + }, + { + "label": "fix_player_user_schema.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.115, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_old_code_documentation_fix_player_user_schema_py", + "community": 4, + "norm_label": "fix_player_user_schema.py" + }, + { + "label": "main()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", + "source_location": "L10", + "complexity": 1, + "loc": 13, + "level": 0, + "granularity": "low", + "heat": 0.122, + "owner": "unowned", + "id": "fix_player_user_schema_main", + "community": 4, + "norm_label": "main()" + }, + { + "label": "test_edit_media_simple.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py", + "community": 4, + "norm_label": "test_edit_media_simple.py" + }, + { + "label": "test_edit_media_endpoint()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", + "source_location": "L19", + "complexity": 7, + "loc": 156, + "level": 2, + "granularity": "low", + "heat": 0.166, + "owner": "unowned", + "id": "test_edit_media_simple_test_edit_media_endpoint", + "community": 4, + "norm_label": "test_edit_media_endpoint()" + }, + { + "label": "Test the edit media endpoint using Flask test client", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", + "source_location": "L20", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "test_edit_media_simple_rationale_20", + "community": 4, + "norm_label": "test the edit media endpoint using flask test client" + }, + { + "label": "test_edit_media_api.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 0, + "granularity": "low", + "heat": 0.037, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "community": 8, + "norm_label": "test_edit_media_api.py" + }, + { + "label": "Colors", + "file_type": "code", + "type": "CLASS", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L14", + "complexity": 1, + "loc": 10, + "level": 3, + "granularity": "low", + "heat": 0.019, + "owner": "unowned", + "id": "test_edit_media_api_colors", + "community": 8, + "norm_label": "colors" + }, + { + "label": "print_section()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L25", + "complexity": 1, + "loc": 5, + "level": 1, + "granularity": "low", + "heat": 0.032, + "owner": "unowned", + "id": "test_edit_media_api_print_section", + "community": 8, + "norm_label": "print_section()" + }, + { + "label": "print_success()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L31", + "complexity": 1, + "loc": 2, + "level": 1, + "granularity": "low", + "heat": 0.028, + "owner": "unowned", + "id": "test_edit_media_api_print_success", + "community": 8, + "norm_label": "print_success()" + }, + { + "label": "print_error()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L34", + "complexity": 1, + "loc": 2, + "level": 1, + "granularity": "low", + "heat": 0.029, + "owner": "unowned", + "id": "test_edit_media_api_print_error", + "community": 8, + "norm_label": "print_error()" + }, + { + "label": "print_info()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L37", + "complexity": 1, + "loc": 2, + "level": 1, + "granularity": "low", + "heat": 0.024, + "owner": "unowned", + "id": "test_edit_media_api_print_info", + "community": 8, + "norm_label": "print_info()" + }, + { + "label": "print_warning()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L40", + "complexity": 1, + "loc": 2, + "level": 1, + "granularity": "low", + "heat": 0.024, + "owner": "unowned", + "id": "test_edit_media_api_print_warning", + "community": 8, + "norm_label": "print_warning()" + }, + { + "label": "test_server_health()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L43", + "complexity": 3, + "loc": 21, + "level": 0, + "granularity": "low", + "heat": 0.059, + "owner": "unowned", + "id": "test_edit_media_api_test_server_health", + "community": 8, + "norm_label": "test_server_health()" + }, + { + "label": "test_endpoint_exists()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L65", + "complexity": 3, + "loc": 31, + "level": 1, + "granularity": "low", + "heat": 0.066, + "owner": "unowned", + "id": "test_edit_media_api_test_endpoint_exists", + "community": 8, + "norm_label": "test_endpoint_exists()" + }, + { + "label": "get_player_auth_code()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L97", + "complexity": 4, + "loc": 39, + "level": 1, + "granularity": "low", + "heat": 0.083, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "test_edit_media_api_get_player_auth_code", + "community": 8, + "norm_label": "get_player_auth_code()" + }, + { + "label": "get_sample_content()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L137", + "complexity": 4, + "loc": 33, + "level": 1, + "granularity": "low", + "heat": 0.08, + "owner": "unowned", + "id": "test_edit_media_api_get_sample_content", + "community": 8, + "norm_label": "get_sample_content()" + }, + { + "label": "test_authentication()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L171", + "complexity": 3, + "loc": 30, + "level": 1, + "granularity": "low", + "heat": 0.064, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "test_edit_media_api_test_authentication", + "community": 8, + "norm_label": "test_authentication()" + }, + { + "label": "test_full_upload()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L202", + "complexity": 4, + "loc": 68, + "level": 1, + "granularity": "low", + "heat": 0.094, + "owner": "unowned", + "id": "test_edit_media_api_test_full_upload", + "community": 8, + "norm_label": "test_full_upload()" + }, + { + "label": "check_database_integrity()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L271", + "complexity": 3, + "loc": 37, + "level": 1, + "granularity": "low", + "heat": 0.067, + "owner": "unowned", + "id": "test_edit_media_api_check_database_integrity", + "community": 8, + "norm_label": "check_database_integrity()" + }, + { + "label": "main()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L309", + "complexity": 15, + "loc": 109, + "level": 0, + "granularity": "low", + "heat": 0.265, + "owner": "unowned", + "id": "test_edit_media_api_main", + "community": 8, + "norm_label": "main()" + }, + { + "label": "Print a section header", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L26", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "test_edit_media_api_rationale_26", + "community": 8, + "norm_label": "print a section header" + }, + { + "label": "Test if server is accessible", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L44", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "test_edit_media_api_rationale_44", + "community": 8, + "norm_label": "test if server is accessible" + }, + { + "label": "Test if the endpoint is available", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L66", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "test_edit_media_api_rationale_66", + "community": 8, + "norm_label": "test if the endpoint is available" + }, + { + "label": "Get a valid player auth code from the database", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L98", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "test_edit_media_api_rationale_98", + "community": 8, + "norm_label": "get a valid player auth code from the database" + }, + { + "label": "Get a sample content file to use for testing", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L138", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "test_edit_media_api_rationale_138", + "community": 8, + "norm_label": "get a sample content file to use for testing" + }, + { + "label": "Test if authentication works", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L172", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "sensitivity": "HIGH", + "id": "test_edit_media_api_rationale_172", + "community": 8, + "norm_label": "test if authentication works" + }, + { + "label": "Test a full media upload", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L203", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "test_edit_media_api_rationale_203", + "community": 8, + "norm_label": "test a full media upload" + }, + { + "label": "Check database tables and records", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L272", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "test_edit_media_api_rationale_272", + "community": 8, + "norm_label": "check database tables and records" + }, + { + "label": "Run all diagnostic tests", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L310", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "test_edit_media_api_rationale_310", + "community": 8, + "norm_label": "run all diagnostic tests" + }, + { + "label": "blueprint_groups.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 0, + "granularity": "low", + "heat": 0.036, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "community": 0, + "norm_label": "blueprint_groups.py" + }, + { + "label": "groups_list()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L16", + "complexity": 3, + "loc": 18, + "level": 1, + "granularity": "low", + "heat": 0.054, + "owner": "unowned", + "id": "blueprint_groups_groups_list", + "community": 0, + "norm_label": "groups_list()" + }, + { + "label": "create_group()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L38", + "complexity": 8, + "loc": 48, + "level": 1, + "granularity": "low", + "heat": 0.13, + "owner": "unowned", + "id": "blueprint_groups_create_group", + "community": 7, + "norm_label": "create_group()" + }, + { + "label": "edit_group()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L90", + "complexity": 9, + "loc": 54, + "level": 2, + "granularity": "low", + "heat": 0.144, + "owner": "unowned", + "id": "blueprint_groups_edit_group", + "community": 0, + "norm_label": "edit_group()" + }, + { + "label": "delete_group()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L148", + "complexity": 3, + "loc": 23, + "level": 2, + "granularity": "low", + "heat": 0.053, + "owner": "unowned", + "id": "blueprint_groups_delete_group", + "community": 0, + "norm_label": "delete_group()" + }, + { + "label": "manage_group()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L175", + "complexity": 3, + "loc": 36, + "level": 1, + "granularity": "low", + "heat": 0.062, + "owner": "unowned", + "id": "blueprint_groups_manage_group", + "community": 0, + "norm_label": "manage_group()" + }, + { + "label": "group_fullscreen()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L214", + "complexity": 3, + "loc": 21, + "level": 1, + "granularity": "low", + "heat": 0.055, + "owner": "unowned", + "id": "blueprint_groups_group_fullscreen", + "community": 0, + "norm_label": "group_fullscreen()" + }, + { + "label": "add_player_to_group()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L239", + "complexity": 3, + "loc": 26, + "level": 2, + "granularity": "low", + "heat": 0.056, + "owner": "unowned", + "id": "blueprint_groups_add_player_to_group", + "community": 0, + "norm_label": "add_player_to_group()" + }, + { + "label": "remove_player_from_group()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L269", + "complexity": 3, + "loc": 25, + "level": 2, + "granularity": "low", + "heat": 0.055, + "owner": "unowned", + "id": "blueprint_groups_remove_player_from_group", + "community": 0, + "norm_label": "remove_player_from_group()" + }, + { + "label": "add_content_to_group()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L298", + "complexity": 6, + "loc": 33, + "level": 2, + "granularity": "low", + "heat": 0.097, + "owner": "unowned", + "id": "blueprint_groups_add_content_to_group", + "community": 0, + "norm_label": "add_content_to_group()" + }, + { + "label": "remove_content_from_group()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L335", + "complexity": 4, + "loc": 26, + "level": 2, + "granularity": "low", + "heat": 0.069, + "owner": "unowned", + "id": "blueprint_groups_remove_content_from_group", + "community": 0, + "norm_label": "remove_content_from_group()" + }, + { + "label": "reorder_group_content()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L365", + "complexity": 5, + "loc": 25, + "level": 2, + "granularity": "low", + "heat": 0.081, + "owner": "unowned", + "id": "blueprint_groups_reorder_group_content", + "community": 0, + "norm_label": "reorder_group_content()" + }, + { + "label": "group_stats()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L394", + "complexity": 2, + "loc": 8, + "level": 1, + "granularity": "low", + "heat": 0.036, + "owner": "unowned", + "id": "blueprint_groups_group_stats", + "community": 0, + "norm_label": "group_stats()" + }, + { + "label": "Groups blueprint for group management and player assignments.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "blueprint_groups_rationale_1", + "community": 0, + "norm_label": "groups blueprint for group management and player assignments." + }, + { + "label": "Display list of all groups.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L17", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "blueprint_groups_rationale_17", + "community": 0, + "norm_label": "display list of all groups." + }, + { + "label": "Manage group with player status cards and content.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L176", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "blueprint_groups_rationale_176", + "community": 0, + "norm_label": "manage group with player status cards and content." + }, + { + "label": "Display group fullscreen view with all player status cards.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L215", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "blueprint_groups_rationale_215", + "community": 0, + "norm_label": "display group fullscreen view with all player status cards." + }, + { + "label": "Add a player to a group.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L240", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "blueprint_groups_rationale_240", + "community": 0, + "norm_label": "add a player to a group." + }, + { + "label": "Remove a player from a group.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L270", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "blueprint_groups_rationale_270", + "community": 0, + "norm_label": "remove a player from a group." + }, + { + "label": "Add content to a group.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L299", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "blueprint_groups_rationale_299", + "community": 0, + "norm_label": "add content to a group." + }, + { + "label": "Remove content from a group.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L336", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "blueprint_groups_rationale_336", + "community": 0, + "norm_label": "remove content from a group." + }, + { + "label": "Reorder content within a group.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L366", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "blueprint_groups_rationale_366", + "community": 0, + "norm_label": "reorder content within a group." + }, + { + "label": "Get group statistics as JSON.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L395", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "blueprint_groups_rationale_395", + "community": 0, + "norm_label": "get group statistics as json." + }, + { + "label": "add_muted_column.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_old_code_documentation_add_muted_column_py", + "community": 4, + "norm_label": "add_muted_column.py" + }, + { + "label": "add_muted_column()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", + "source_location": "L6", + "complexity": 3, + "loc": 25, + "level": 2, + "granularity": "low", + "heat": 0.055, + "owner": "unowned", + "id": "add_muted_column_add_muted_column", + "community": 4, + "norm_label": "add_muted_column()" + }, + { + "label": "Add muted column to playlist_content association table.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", + "source_location": "L7", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "add_muted_column_rationale_7", + "community": 4, + "norm_label": "add muted column to playlist_content association table." + }, + { + "label": "check_fix_player.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/check_fix_player.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 3, + "granularity": "low", + "heat": 0.013, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_old_code_documentation_check_fix_player_py", + "community": 40, + "norm_label": "check_fix_player.py" + }, + { + "label": "migrate_add_edit_enabled.py", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", + "source_location": "L1", + "complexity": 1, + "loc": 1, + "level": 2, + "granularity": "low", + "heat": 0.017, + "owner": "unowned", + "id": "home_scheianu_digiserver_v2_old_code_documentation_migrate_add_edit_enabled_py", + "community": 13, + "norm_label": "migrate_add_edit_enabled.py" + }, + { + "label": "migrate()", + "file_type": "code", + "type": "FUNCTION", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", + "source_location": "L7", + "complexity": 4, + "loc": 38, + "level": 2, + "granularity": "low", + "heat": 0.072, + "owner": "unowned", + "id": "migrate_add_edit_enabled_migrate", + "community": 13, + "norm_label": "migrate()" + }, + { + "label": "Migration: Add edit_on_player_enabled column to playlist_content table.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", + "source_location": "L1", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "migrate_add_edit_enabled_rationale_1", + "community": 13, + "norm_label": "migration: add edit_on_player_enabled column to playlist_content table." + }, + { + "label": "Add edit_on_player_enabled column to playlist_content.", + "file_type": "rationale", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", + "source_location": "L8", + "level": 3, + "granularity": "low", + "heat": 0.015, + "owner": "unowned", + "id": "migrate_add_edit_enabled_rationale_8", + "community": 13, + "norm_label": "add edit_on_player_enabled column to playlist_content." + } + ], + "links": [ + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_player_user_table.py", + "source_location": "L1", + "weight": 1.0, + "_src": "add_player_user_table_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_migrations_add_player_user_table_py", + "source": "home_scheianu_digiserver_v2_migrations_add_player_user_table_py", + "target": "add_player_user_table_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_player_user_table.py", + "source_location": "L7", + "weight": 0.8, + "_src": "add_player_user_table_rationale_1", + "_tgt": "player_user_playeruser", + "source": "add_player_user_table_rationale_1", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/migrations/migrate_player_user_global.py", + "source_location": "L1", + "weight": 1.0, + "_src": "migrate_player_user_global_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_migrations_migrate_player_user_global_py", + "source": "home_scheianu_digiserver_v2_migrations_migrate_player_user_global_py", + "target": "migrate_player_user_global_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_original_filename_to_content.py", + "source_location": "L1", + "weight": 1.0, + "_src": "add_original_filename_to_content_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_migrations_add_original_filename_to_content_py", + "source": "home_scheianu_digiserver_v2_migrations_add_original_filename_to_content_py", + "target": "add_original_filename_to_content_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_url_to_content.py", + "source_location": "L1", + "weight": 1.0, + "_src": "add_url_to_content_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_migrations_add_url_to_content_py", + "source": "home_scheianu_digiserver_v2_migrations_add_url_to_content_py", + "target": "add_url_to_content_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_https_config_table.py", + "source_location": "L1", + "weight": 1.0, + "_src": "add_https_config_table_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_migrations_add_https_config_table_py", + "source": "home_scheianu_digiserver_v2_migrations_add_https_config_table_py", + "target": "add_https_config_table_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_https_config_table.py", + "source_location": "L7", + "weight": 0.8, + "_src": "add_https_config_table_rationale_1", + "_tgt": "https_config_httpsconfig", + "source": "add_https_config_table_rationale_1", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_deployment_fields_to_player.py", + "source_location": "L1", + "weight": 1.0, + "_src": "add_deployment_fields_to_player_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_migrations_add_deployment_fields_to_player_py", + "source": "home_scheianu_digiserver_v2_migrations_add_deployment_fields_to_player_py", + "target": "add_deployment_fields_to_player_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/migrations/add_email_to_https_config.py", + "source_location": "L1", + "weight": 1.0, + "_src": "add_email_to_https_config_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_migrations_add_email_to_https_config_py", + "source": "home_scheianu_digiserver_v2_migrations_add_email_to_https_config_py", + "target": "add_email_to_https_config_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L9", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_config_py", + "_tgt": "config_config", + "source": "home_scheianu_digiserver_v2_app_config_py", + "target": "config_config", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L56", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_config_py", + "_tgt": "config_developmentconfig", + "source": "home_scheianu_digiserver_v2_app_config_py", + "target": "config_developmentconfig", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L78", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_config_py", + "_tgt": "config_productionconfig", + "source": "home_scheianu_digiserver_v2_app_config_py", + "target": "config_productionconfig", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L102", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_config_py", + "_tgt": "config_testingconfig", + "source": "home_scheianu_digiserver_v2_app_config_py", + "target": "config_testingconfig", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L127", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_config_py", + "_tgt": "config_get_config", + "source": "home_scheianu_digiserver_v2_app_config_py", + "target": "config_get_config", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L1", + "weight": 1.0, + "_src": "config_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_config_py", + "source": "home_scheianu_digiserver_v2_app_config_py", + "target": "config_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L56", + "weight": 1.0, + "_src": "config_developmentconfig", + "_tgt": "config_config", + "source": "config_config", + "target": "config_developmentconfig", + "confidence_score": 1.0 + }, + { + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L78", + "weight": 1.0, + "_src": "config_productionconfig", + "_tgt": "config_config", + "source": "config_config", + "target": "config_productionconfig", + "confidence_score": 1.0 + }, + { + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L102", + "weight": 1.0, + "_src": "config_testingconfig", + "_tgt": "config_config", + "source": "config_config", + "target": "config_testingconfig", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L57", + "weight": 1.0, + "_src": "config_rationale_57", + "_tgt": "config_developmentconfig", + "source": "config_developmentconfig", + "target": "config_rationale_57", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_1", + "_tgt": "config_developmentconfig", + "source": "config_developmentconfig", + "target": "app_rationale_1", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_18", + "_tgt": "config_developmentconfig", + "source": "config_developmentconfig", + "target": "app_rationale_18", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_91", + "_tgt": "config_developmentconfig", + "source": "config_developmentconfig", + "target": "app_rationale_91", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_111", + "_tgt": "config_developmentconfig", + "source": "config_developmentconfig", + "target": "app_rationale_111", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_124", + "_tgt": "config_developmentconfig", + "source": "config_developmentconfig", + "target": "app_rationale_124", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_149", + "_tgt": "config_developmentconfig", + "source": "config_developmentconfig", + "target": "app_rationale_149", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_190", + "_tgt": "config_developmentconfig", + "source": "config_developmentconfig", + "target": "app_rationale_190", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_214", + "_tgt": "config_developmentconfig", + "source": "config_developmentconfig", + "target": "app_rationale_214", + "confidence_score": 0.5 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L79", + "weight": 1.0, + "_src": "config_rationale_79", + "_tgt": "config_productionconfig", + "source": "config_productionconfig", + "target": "config_rationale_79", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_1", + "_tgt": "config_productionconfig", + "source": "config_productionconfig", + "target": "app_rationale_1", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_18", + "_tgt": "config_productionconfig", + "source": "config_productionconfig", + "target": "app_rationale_18", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_91", + "_tgt": "config_productionconfig", + "source": "config_productionconfig", + "target": "app_rationale_91", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_111", + "_tgt": "config_productionconfig", + "source": "config_productionconfig", + "target": "app_rationale_111", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_124", + "_tgt": "config_productionconfig", + "source": "config_productionconfig", + "target": "app_rationale_124", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_149", + "_tgt": "config_productionconfig", + "source": "config_productionconfig", + "target": "app_rationale_149", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_190", + "_tgt": "config_productionconfig", + "source": "config_productionconfig", + "target": "app_rationale_190", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_214", + "_tgt": "config_productionconfig", + "source": "config_productionconfig", + "target": "app_rationale_214", + "confidence_score": 0.5 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L103", + "weight": 1.0, + "_src": "config_rationale_103", + "_tgt": "config_testingconfig", + "source": "config_testingconfig", + "target": "config_rationale_103", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_1", + "_tgt": "config_testingconfig", + "source": "config_testingconfig", + "target": "app_rationale_1", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_18", + "_tgt": "config_testingconfig", + "source": "config_testingconfig", + "target": "app_rationale_18", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_91", + "_tgt": "config_testingconfig", + "source": "config_testingconfig", + "target": "app_rationale_91", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_111", + "_tgt": "config_testingconfig", + "source": "config_testingconfig", + "target": "app_rationale_111", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_124", + "_tgt": "config_testingconfig", + "source": "config_testingconfig", + "target": "app_rationale_124", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_149", + "_tgt": "config_testingconfig", + "source": "config_testingconfig", + "target": "app_rationale_149", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_190", + "_tgt": "config_testingconfig", + "source": "config_testingconfig", + "target": "app_rationale_190", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L10", + "weight": 0.8, + "_src": "app_rationale_214", + "_tgt": "config_testingconfig", + "source": "config_testingconfig", + "target": "app_rationale_214", + "confidence_score": 0.5 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/config.py", + "source_location": "L128", + "weight": 1.0, + "_src": "config_rationale_128", + "_tgt": "config_get_config", + "source": "config_get_config", + "target": "config_rationale_128", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/extensions.py", + "source_location": "L1", + "weight": 1.0, + "_src": "extensions_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_extensions_py", + "source": "home_scheianu_digiserver_v2_app_extensions_py", + "target": "extensions_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L17", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_app_py", + "_tgt": "app_create_app", + "source": "home_scheianu_digiserver_v2_app_app_py", + "target": "app_create_app", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L90", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_app_py", + "_tgt": "app_register_blueprints", + "source": "home_scheianu_digiserver_v2_app_app_py", + "target": "app_register_blueprints", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L110", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_app_py", + "_tgt": "app_configure_login_manager", + "source": "home_scheianu_digiserver_v2_app_app_py", + "target": "app_configure_login_manager", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L123", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_app_py", + "_tgt": "app_register_error_handlers", + "source": "home_scheianu_digiserver_v2_app_app_py", + "target": "app_register_error_handlers", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L148", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_app_py", + "_tgt": "app_register_commands", + "source": "home_scheianu_digiserver_v2_app_app_py", + "target": "app_register_commands", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L189", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_app_py", + "_tgt": "app_register_context_processors", + "source": "home_scheianu_digiserver_v2_app_app_py", + "target": "app_register_context_processors", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L213", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_app_py", + "_tgt": "app_register_template_filters", + "source": "home_scheianu_digiserver_v2_app_app_py", + "target": "app_register_template_filters", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L1", + "weight": 1.0, + "_src": "app_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_app_py", + "source": "home_scheianu_digiserver_v2_app_app_py", + "target": "app_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L58", + "weight": 1.0, + "_src": "app_create_app", + "_tgt": "app_configure_login_manager", + "source": "app_create_app", + "target": "app_configure_login_manager", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L73", + "weight": 1.0, + "_src": "app_create_app", + "_tgt": "app_register_blueprints", + "source": "app_create_app", + "target": "app_register_blueprints", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L74", + "weight": 1.0, + "_src": "app_create_app", + "_tgt": "app_register_error_handlers", + "source": "app_create_app", + "target": "app_register_error_handlers", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L75", + "weight": 1.0, + "_src": "app_create_app", + "_tgt": "app_register_commands", + "source": "app_create_app", + "target": "app_register_commands", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L76", + "weight": 1.0, + "_src": "app_create_app", + "_tgt": "app_register_context_processors", + "source": "app_create_app", + "target": "app_register_context_processors", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L77", + "weight": 1.0, + "_src": "app_create_app", + "_tgt": "app_register_template_filters", + "source": "app_create_app", + "target": "app_register_template_filters", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L18", + "weight": 1.0, + "_src": "app_rationale_18", + "_tgt": "app_create_app", + "source": "app_create_app", + "target": "app_rationale_18", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L48", + "weight": 1.0, + "_src": "app_create_app", + "_tgt": "script_name_fix_scriptnamefix", + "source": "app_create_app", + "target": "script_name_fix_scriptnamefix" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L81", + "weight": 1.0, + "_src": "app_create_app", + "_tgt": "portal_sso_init_portal_sso", + "source": "app_create_app", + "target": "portal_sso_init_portal_sso" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", + "source_location": "L11", + "weight": 1.0, + "_src": "fix_player_user_schema_main", + "_tgt": "app_create_app", + "source": "app_create_app", + "target": "fix_player_user_schema_main" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", + "source_location": "L27", + "weight": 1.0, + "_src": "test_edit_media_simple_test_edit_media_endpoint", + "_tgt": "app_create_app", + "source": "app_create_app", + "target": "test_edit_media_simple_test_edit_media_endpoint" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", + "source_location": "L8", + "weight": 1.0, + "_src": "add_muted_column_add_muted_column", + "_tgt": "app_create_app", + "source": "app_create_app", + "target": "add_muted_column_add_muted_column" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L91", + "weight": 1.0, + "_src": "app_rationale_91", + "_tgt": "app_register_blueprints", + "source": "app_register_blueprints", + "target": "app_rationale_91", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L111", + "weight": 1.0, + "_src": "app_rationale_111", + "_tgt": "app_configure_login_manager", + "source": "app_configure_login_manager", + "target": "app_rationale_111", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L124", + "weight": 1.0, + "_src": "app_rationale_124", + "_tgt": "app_register_error_handlers", + "source": "app_register_error_handlers", + "target": "app_rationale_124", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L149", + "weight": 1.0, + "_src": "app_rationale_149", + "_tgt": "app_register_commands", + "source": "app_register_commands", + "target": "app_rationale_149", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L190", + "weight": 1.0, + "_src": "app_rationale_190", + "_tgt": "app_register_context_processors", + "source": "app_register_context_processors", + "target": "app_rationale_190", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L214", + "weight": 1.0, + "_src": "app_rationale_214", + "_tgt": "app_register_template_filters", + "source": "app_register_template_filters", + "target": "app_rationale_214", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L47", + "weight": 0.8, + "_src": "app_rationale_1", + "_tgt": "script_name_fix_scriptnamefix", + "source": "app_rationale_1", + "target": "script_name_fix_scriptnamefix", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L163", + "weight": 0.8, + "_src": "app_rationale_1", + "_tgt": "user_user", + "source": "app_rationale_1", + "target": "user_user", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L47", + "weight": 0.8, + "_src": "app_rationale_18", + "_tgt": "script_name_fix_scriptnamefix", + "source": "app_rationale_18", + "target": "script_name_fix_scriptnamefix", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L163", + "weight": 0.8, + "_src": "app_rationale_18", + "_tgt": "user_user", + "source": "app_rationale_18", + "target": "user_user", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L47", + "weight": 0.8, + "_src": "app_rationale_91", + "_tgt": "script_name_fix_scriptnamefix", + "source": "app_rationale_91", + "target": "script_name_fix_scriptnamefix", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L163", + "weight": 0.8, + "_src": "app_rationale_91", + "_tgt": "user_user", + "source": "app_rationale_91", + "target": "user_user", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L47", + "weight": 0.8, + "_src": "app_rationale_111", + "_tgt": "script_name_fix_scriptnamefix", + "source": "app_rationale_111", + "target": "script_name_fix_scriptnamefix", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L163", + "weight": 0.8, + "_src": "app_rationale_111", + "_tgt": "user_user", + "source": "app_rationale_111", + "target": "user_user", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L47", + "weight": 0.8, + "_src": "app_rationale_124", + "_tgt": "script_name_fix_scriptnamefix", + "source": "app_rationale_124", + "target": "script_name_fix_scriptnamefix", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L163", + "weight": 0.8, + "_src": "app_rationale_124", + "_tgt": "user_user", + "source": "app_rationale_124", + "target": "user_user", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L47", + "weight": 0.8, + "_src": "app_rationale_149", + "_tgt": "script_name_fix_scriptnamefix", + "source": "app_rationale_149", + "target": "script_name_fix_scriptnamefix", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L163", + "weight": 0.8, + "_src": "app_rationale_149", + "_tgt": "user_user", + "source": "app_rationale_149", + "target": "user_user", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L47", + "weight": 0.8, + "_src": "app_rationale_190", + "_tgt": "script_name_fix_scriptnamefix", + "source": "app_rationale_190", + "target": "script_name_fix_scriptnamefix", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L163", + "weight": 0.8, + "_src": "app_rationale_190", + "_tgt": "user_user", + "source": "app_rationale_190", + "target": "user_user", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L47", + "weight": 0.8, + "_src": "app_rationale_214", + "_tgt": "script_name_fix_scriptnamefix", + "source": "app_rationale_214", + "target": "script_name_fix_scriptnamefix", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/app.py", + "source_location": "L163", + "weight": 0.8, + "_src": "app_rationale_214", + "_tgt": "user_user", + "source": "app_rationale_214", + "target": "user_user", + "confidence_score": 0.5 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L18", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_admin_required", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_admin_required", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L35", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_admin_panel", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_admin_panel", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L79", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_create_user", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_create_user", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L125", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_change_user_role", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_change_user_role", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L159", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_delete_user", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_delete_user", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L187", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_change_theme", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_change_theme", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L211", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_upload_logo", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_upload_logo", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L253", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_clear_logs", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_clear_logs", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L273", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_user_management", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_user_management", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L287", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_reset_user_password", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_reset_user_password", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L322", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_system_info", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_system_info", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L354", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_leftover_media", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_leftover_media", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L406", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_delete_leftover_images", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_delete_leftover_images", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L461", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_delete_leftover_videos", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_delete_leftover_videos", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L516", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_delete_single_leftover", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_delete_single_leftover", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L553", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_dependencies", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_dependencies", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L634", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_install_libreoffice", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_install_libreoffice", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L671", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_install_emoji_fonts", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_install_emoji_fonts", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L708", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_customize_logos", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_customize_logos", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L717", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_upload_header_logo", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_upload_header_logo", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L748", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_upload_login_logo", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_upload_login_logo", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L778", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_manage_editing_users", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_manage_editing_users", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L804", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_update_editing_user", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_update_editing_user", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L828", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_delete_editing_user", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_delete_editing_user", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L856", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_https_config", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_https_config", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L886", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_update_https_config", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_update_https_config", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L995", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_https_config_status", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_https_config_status", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1019", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_player_build_meta_path", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_player_build_meta_path", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1028", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_build_player", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_build_player", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1074", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "_tgt": "admin_build_player_action", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_build_player_action", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1", + "weight": 1.0, + "_src": "admin_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "source": "home_scheianu_digiserver_v2_app_blueprints_admin_py", + "target": "admin_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L19", + "weight": 1.0, + "_src": "admin_rationale_19", + "_tgt": "admin_admin_required", + "source": "admin_admin_required", + "target": "admin_rationale_19", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L36", + "weight": 1.0, + "_src": "admin_rationale_36", + "_tgt": "admin_admin_panel", + "source": "admin_admin_panel", + "target": "admin_rationale_36", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L71", + "weight": 1.0, + "_src": "admin_admin_panel", + "_tgt": "logger_log_action", + "source": "admin_admin_panel", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L80", + "weight": 1.0, + "_src": "admin_rationale_80", + "_tgt": "admin_create_user", + "source": "admin_create_user", + "target": "admin_rationale_80", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L107", + "weight": 1.0, + "_src": "admin_create_user", + "_tgt": "user_user", + "source": "admin_create_user", + "target": "user_user" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L111", + "weight": 1.0, + "_src": "admin_create_user", + "_tgt": "logger_log_action", + "source": "admin_create_user", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L126", + "weight": 1.0, + "_src": "admin_rationale_126", + "_tgt": "admin_change_user_role", + "source": "admin_change_user_role", + "target": "admin_rationale_126", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L145", + "weight": 1.0, + "_src": "admin_change_user_role", + "_tgt": "logger_log_action", + "source": "admin_change_user_role", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L160", + "weight": 1.0, + "_src": "admin_rationale_160", + "_tgt": "admin_delete_user", + "source": "admin_delete_user", + "target": "admin_rationale_160", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L173", + "weight": 1.0, + "_src": "admin_delete_user", + "_tgt": "logger_log_action", + "source": "admin_delete_user", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L188", + "weight": 1.0, + "_src": "admin_rationale_188", + "_tgt": "admin_change_theme", + "source": "admin_change_theme", + "target": "admin_rationale_188", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L198", + "weight": 1.0, + "_src": "admin_change_theme", + "_tgt": "logger_log_action", + "source": "admin_change_theme", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L212", + "weight": 1.0, + "_src": "admin_rationale_212", + "_tgt": "admin_upload_logo", + "source": "admin_upload_logo", + "target": "admin_rationale_212", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L240", + "weight": 1.0, + "_src": "admin_upload_logo", + "_tgt": "logger_log_action", + "source": "admin_upload_logo", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L254", + "weight": 1.0, + "_src": "admin_rationale_254", + "_tgt": "admin_clear_logs", + "source": "admin_clear_logs", + "target": "admin_rationale_254", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L259", + "weight": 1.0, + "_src": "admin_clear_logs", + "_tgt": "logger_log_action", + "source": "admin_clear_logs", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L274", + "weight": 1.0, + "_src": "admin_rationale_274", + "_tgt": "admin_user_management", + "source": "admin_user_management", + "target": "admin_rationale_274", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L279", + "weight": 1.0, + "_src": "admin_user_management", + "_tgt": "logger_log_action", + "source": "admin_user_management", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L308", + "weight": 1.0, + "_src": "admin_reset_user_password", + "_tgt": "logger_log_action", + "source": "admin_reset_user_password", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L323", + "weight": 1.0, + "_src": "admin_rationale_323", + "_tgt": "admin_system_info", + "source": "admin_system_info", + "target": "admin_rationale_323", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L348", + "weight": 1.0, + "_src": "admin_system_info", + "_tgt": "logger_log_action", + "source": "admin_system_info", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L355", + "weight": 1.0, + "_src": "admin_rationale_355", + "_tgt": "admin_leftover_media", + "source": "admin_leftover_media", + "target": "admin_rationale_355", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L399", + "weight": 1.0, + "_src": "admin_leftover_media", + "_tgt": "logger_log_action", + "source": "admin_leftover_media", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L407", + "weight": 1.0, + "_src": "admin_rationale_407", + "_tgt": "admin_delete_leftover_images", + "source": "admin_delete_leftover_images", + "target": "admin_rationale_407", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L462", + "weight": 1.0, + "_src": "admin_rationale_462", + "_tgt": "admin_delete_leftover_videos", + "source": "admin_delete_leftover_videos", + "target": "admin_rationale_462", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L517", + "weight": 1.0, + "_src": "admin_rationale_517", + "_tgt": "admin_delete_single_leftover", + "source": "admin_delete_single_leftover", + "target": "admin_rationale_517", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L554", + "weight": 1.0, + "_src": "admin_rationale_554", + "_tgt": "admin_dependencies", + "source": "admin_dependencies", + "target": "admin_rationale_554", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L635", + "weight": 1.0, + "_src": "admin_rationale_635", + "_tgt": "admin_install_libreoffice", + "source": "admin_install_libreoffice", + "target": "admin_rationale_635", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L653", + "weight": 1.0, + "_src": "admin_install_libreoffice", + "_tgt": "logger_log_action", + "source": "admin_install_libreoffice", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L672", + "weight": 1.0, + "_src": "admin_rationale_672", + "_tgt": "admin_install_emoji_fonts", + "source": "admin_install_emoji_fonts", + "target": "admin_rationale_672", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L690", + "weight": 1.0, + "_src": "admin_install_emoji_fonts", + "_tgt": "logger_log_action", + "source": "admin_install_emoji_fonts", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L709", + "weight": 1.0, + "_src": "admin_rationale_709", + "_tgt": "admin_customize_logos", + "source": "admin_customize_logos", + "target": "admin_rationale_709", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L735", + "weight": 1.0, + "_src": "admin_upload_header_logo", + "_tgt": "logger_log_action", + "source": "admin_upload_header_logo", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L749", + "weight": 1.0, + "_src": "admin_rationale_749", + "_tgt": "admin_upload_login_logo", + "source": "admin_upload_login_logo", + "target": "admin_rationale_749", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L766", + "weight": 1.0, + "_src": "admin_upload_login_logo", + "_tgt": "logger_log_action", + "source": "admin_upload_login_logo", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L779", + "weight": 1.0, + "_src": "admin_rationale_779", + "_tgt": "admin_manage_editing_users", + "source": "admin_manage_editing_users", + "target": "admin_rationale_779", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L797", + "weight": 1.0, + "_src": "admin_manage_editing_users", + "_tgt": "logger_log_action", + "source": "admin_manage_editing_users", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L805", + "weight": 1.0, + "_src": "admin_rationale_805", + "_tgt": "admin_update_editing_user", + "source": "admin_update_editing_user", + "target": "admin_rationale_805", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L816", + "weight": 1.0, + "_src": "admin_update_editing_user", + "_tgt": "logger_log_action", + "source": "admin_update_editing_user", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L839", + "weight": 1.0, + "_src": "admin_delete_editing_user", + "_tgt": "logger_log_action", + "source": "admin_delete_editing_user", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L857", + "weight": 1.0, + "_src": "admin_rationale_857", + "_tgt": "admin_https_config", + "source": "admin_https_config", + "target": "admin_rationale_857", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L859", + "weight": 1.0, + "_src": "admin_https_config", + "_tgt": "https_config_get_config", + "source": "admin_https_config", + "target": "https_config_get_config" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L871", + "weight": 1.0, + "_src": "admin_https_config", + "_tgt": "logger_log_action", + "source": "admin_https_config", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L887", + "weight": 1.0, + "_src": "admin_rationale_887", + "_tgt": "admin_update_https_config", + "source": "admin_update_https_config", + "target": "admin_rationale_887", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L948", + "weight": 1.0, + "_src": "admin_update_https_config", + "_tgt": "https_config_create_or_update", + "source": "admin_update_https_config", + "target": "https_config_create_or_update" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L960", + "weight": 1.0, + "_src": "admin_update_https_config", + "_tgt": "caddy_manager_generate_caddyfile", + "source": "admin_update_https_config", + "target": "caddy_manager_generate_caddyfile" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L961", + "weight": 1.0, + "_src": "admin_update_https_config", + "_tgt": "caddy_manager_write_caddyfile", + "source": "admin_update_https_config", + "target": "caddy_manager_write_caddyfile" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L963", + "weight": 1.0, + "_src": "admin_update_https_config", + "_tgt": "caddy_manager_reload_caddy", + "source": "admin_update_https_config", + "target": "caddy_manager_reload_caddy" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L965", + "weight": 1.0, + "_src": "admin_update_https_config", + "_tgt": "logger_log_action", + "source": "admin_update_https_config", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L996", + "weight": 1.0, + "_src": "admin_rationale_996", + "_tgt": "admin_https_config_status", + "source": "admin_https_config_status", + "target": "admin_rationale_996", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L998", + "weight": 1.0, + "_src": "admin_https_config_status", + "_tgt": "https_config_get_config", + "source": "admin_https_config_status", + "target": "https_config_get_config" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1001", + "weight": 1.0, + "_src": "admin_https_config_status", + "_tgt": "player_edit_playeredit_to_dict", + "source": "admin_https_config_status", + "target": "player_edit_playeredit_to_dict" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1011", + "weight": 1.0, + "_src": "admin_https_config_status", + "_tgt": "logger_log_action", + "source": "admin_https_config_status", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1034", + "weight": 1.0, + "_src": "admin_build_player", + "_tgt": "admin_player_build_meta_path", + "source": "admin_player_build_meta_path", + "target": "admin_build_player", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1143", + "weight": 1.0, + "_src": "admin_build_player_action", + "_tgt": "admin_player_build_meta_path", + "source": "admin_player_build_meta_path", + "target": "admin_build_player_action", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1020", + "weight": 1.0, + "_src": "admin_rationale_1020", + "_tgt": "admin_player_build_meta_path", + "source": "admin_player_build_meta_path", + "target": "admin_rationale_1020", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1029", + "weight": 1.0, + "_src": "admin_rationale_1029", + "_tgt": "admin_build_player", + "source": "admin_build_player", + "target": "admin_rationale_1029", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1034", + "weight": 1.0, + "_src": "admin_build_player", + "_tgt": "player_build_load_build_settings", + "source": "admin_build_player", + "target": "player_build_load_build_settings" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1038", + "weight": 1.0, + "_src": "admin_build_player", + "_tgt": "https_config_get_config", + "source": "admin_build_player", + "target": "https_config_get_config" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1050", + "weight": 1.0, + "_src": "admin_build_player", + "_tgt": "ssh_deploy_detect_server_ip", + "source": "admin_build_player", + "target": "ssh_deploy_detect_server_ip" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1058", + "weight": 1.0, + "_src": "admin_build_player", + "_tgt": "ssh_deploy_get_local_player_code_status", + "source": "admin_build_player", + "target": "ssh_deploy_get_local_player_code_status" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1075", + "weight": 1.0, + "_src": "admin_rationale_1075", + "_tgt": "admin_build_player_action", + "source": "admin_build_player_action", + "target": "admin_rationale_1075", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1117", + "weight": 1.0, + "_src": "admin_build_player_action", + "_tgt": "player_build_build_player_files", + "source": "admin_build_player_action", + "target": "player_build_build_player_files" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1122", + "weight": 1.0, + "_src": "admin_build_player_action", + "_tgt": "logger_log_action", + "source": "admin_build_player_action", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1126", + "weight": 1.0, + "_src": "admin_build_player_action", + "_tgt": "player_build_write_base_config", + "source": "admin_build_player_action", + "target": "player_build_write_base_config" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1141", + "weight": 1.0, + "_src": "admin_build_player_action", + "_tgt": "player_build_get_short_head", + "source": "admin_build_player_action", + "target": "player_build_get_short_head" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1142", + "weight": 1.0, + "_src": "admin_build_player_action", + "_tgt": "player_build_save_build_settings", + "source": "admin_build_player_action", + "target": "player_build_save_build_settings" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L1144", + "weight": 1.0, + "_src": "admin_build_player_action", + "_tgt": "player_build_make_build_record", + "source": "admin_build_player_action", + "target": "player_build_make_build_record" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_1", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_1", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_1", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_1", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_1", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_1", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_19", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_19", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_19", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_19", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_19", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_19", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_36", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_36", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_36", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_36", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_36", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_36", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_80", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_80", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_80", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_80", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_80", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_80", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_126", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_126", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_126", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_126", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_126", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_126", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_160", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_160", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_160", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_160", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_160", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_160", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_188", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_188", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_188", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_188", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_188", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_188", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_212", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_212", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_212", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_212", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_212", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_212", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_254", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_254", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_254", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_254", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_254", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_254", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_274", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_274", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_274", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_274", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_274", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_274", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_323", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_323", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_323", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_323", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_323", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_323", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_355", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_355", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_355", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_355", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_355", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_355", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_407", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_407", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_407", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_407", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_407", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_407", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_462", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_462", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_462", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_462", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_462", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_462", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_517", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_517", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_517", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_517", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_517", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_517", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_554", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_554", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_554", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_554", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_554", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_554", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_635", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_635", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_635", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_635", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_635", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_635", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_672", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_672", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_672", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_672", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_672", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_672", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_709", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_709", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_709", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_709", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_709", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_709", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_749", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_749", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_749", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_749", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_749", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_749", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_779", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_779", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_779", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_779", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_779", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_779", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_805", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_805", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_805", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_805", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_805", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_805", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_857", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_857", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_857", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_857", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_857", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_857", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_887", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_887", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_887", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_887", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_887", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_887", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_996", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_996", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_996", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_996", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_996", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_996", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_1020", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_1020", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_1020", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_1020", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_1020", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_1020", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_1029", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_1029", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_1029", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_1029", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_1029", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_1029", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L13", + "weight": 0.8, + "_src": "admin_rationale_1075", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "admin_rationale_1075", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L782", + "weight": 0.8, + "_src": "admin_rationale_1075", + "_tgt": "player_edit_playeredit", + "source": "admin_rationale_1075", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/admin.py", + "source_location": "L831", + "weight": 0.8, + "_src": "admin_rationale_1075", + "_tgt": "player_user_playeruser", + "source": "admin_rationale_1075", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L30", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "_tgt": "content_old_content_list", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "target": "content_old_content_list", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L86", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "_tgt": "content_old_upload_content", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "target": "content_old_upload_content", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L224", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "_tgt": "content_old_edit_content", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "target": "content_old_edit_content", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L258", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "_tgt": "content_old_delete_content", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "target": "content_old_delete_content", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L289", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "_tgt": "content_old_delete_by_filename", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "target": "content_old_delete_by_filename", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L337", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "_tgt": "content_old_bulk_delete_content", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "target": "content_old_bulk_delete_content", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L374", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "_tgt": "content_old_upload_progress_status", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "target": "content_old_upload_progress_status", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L382", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "_tgt": "content_old_preview_content", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "target": "content_old_preview_content", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L400", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "_tgt": "content_old_download_content", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "target": "content_old_download_content", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L419", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "_tgt": "content_old_content_statistics", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "target": "content_old_content_statistics", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L453", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "_tgt": "content_old_check_duplicates", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "target": "content_old_check_duplicates", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L478", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "_tgt": "content_old_content_groups_info", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "target": "content_old_content_groups_info", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L1", + "weight": 1.0, + "_src": "content_old_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_old_py", + "target": "content_old_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L31", + "weight": 1.0, + "_src": "content_old_rationale_31", + "_tgt": "content_old_content_list", + "source": "content_old_content_list", + "target": "content_old_rationale_31", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L79", + "weight": 1.0, + "_src": "content_old_content_list", + "_tgt": "logger_log_action", + "source": "content_old_content_list", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L122", + "weight": 1.0, + "_src": "content_old_upload_content", + "_tgt": "uploads_set_upload_progress", + "source": "content_old_upload_content", + "target": "uploads_set_upload_progress" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L156", + "weight": 1.0, + "_src": "content_old_upload_content", + "_tgt": "uploads_process_video_file", + "source": "content_old_upload_content", + "target": "uploads_process_video_file" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L158", + "weight": 1.0, + "_src": "content_old_upload_content", + "_tgt": "logger_log_action", + "source": "content_old_upload_content", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L179", + "weight": 1.0, + "_src": "content_old_upload_content", + "_tgt": "content_content", + "source": "content_old_upload_content", + "target": "content_content" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L225", + "weight": 1.0, + "_src": "content_old_rationale_225", + "_tgt": "content_old_edit_content", + "source": "content_old_edit_content", + "target": "content_old_rationale_225", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L244", + "weight": 1.0, + "_src": "content_old_edit_content", + "_tgt": "logger_log_action", + "source": "content_old_edit_content", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L259", + "weight": 1.0, + "_src": "content_old_rationale_259", + "_tgt": "content_old_delete_content", + "source": "content_old_delete_content", + "target": "content_old_rationale_259", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L276", + "weight": 1.0, + "_src": "content_old_delete_content", + "_tgt": "logger_log_action", + "source": "content_old_delete_content", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L290", + "weight": 1.0, + "_src": "content_old_rationale_290", + "_tgt": "content_old_delete_by_filename", + "source": "content_old_delete_by_filename", + "target": "content_old_rationale_290", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L310", + "weight": 1.0, + "_src": "content_old_delete_by_filename", + "_tgt": "logger_log_action", + "source": "content_old_delete_by_filename", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L338", + "weight": 1.0, + "_src": "content_old_rationale_338", + "_tgt": "content_old_bulk_delete_content", + "source": "content_old_bulk_delete_content", + "target": "content_old_rationale_338", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L363", + "weight": 1.0, + "_src": "content_old_bulk_delete_content", + "_tgt": "logger_log_action", + "source": "content_old_bulk_delete_content", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L375", + "weight": 1.0, + "_src": "content_old_rationale_375", + "_tgt": "content_old_upload_progress_status", + "source": "content_old_upload_progress_status", + "target": "content_old_rationale_375", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L376", + "weight": 1.0, + "_src": "content_old_upload_progress_status", + "_tgt": "uploads_get_upload_progress", + "source": "content_old_upload_progress_status", + "target": "uploads_get_upload_progress" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L383", + "weight": 1.0, + "_src": "content_old_rationale_383", + "_tgt": "content_old_preview_content", + "source": "content_old_preview_content", + "target": "content_old_rationale_383", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L394", + "weight": 1.0, + "_src": "content_old_preview_content", + "_tgt": "logger_log_action", + "source": "content_old_preview_content", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L401", + "weight": 1.0, + "_src": "content_old_rationale_401", + "_tgt": "content_old_download_content", + "source": "content_old_download_content", + "target": "content_old_rationale_401", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L405", + "weight": 1.0, + "_src": "content_old_download_content", + "_tgt": "logger_log_action", + "source": "content_old_download_content", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L420", + "weight": 1.0, + "_src": "content_old_rationale_420", + "_tgt": "content_old_content_statistics", + "source": "content_old_content_statistics", + "target": "content_old_rationale_420", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L447", + "weight": 1.0, + "_src": "content_old_content_statistics", + "_tgt": "logger_log_action", + "source": "content_old_content_statistics", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L454", + "weight": 1.0, + "_src": "content_old_rationale_454", + "_tgt": "content_old_check_duplicates", + "source": "content_old_check_duplicates", + "target": "content_old_rationale_454", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L472", + "weight": 1.0, + "_src": "content_old_check_duplicates", + "_tgt": "logger_log_action", + "source": "content_old_check_duplicates", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L479", + "weight": 1.0, + "_src": "content_old_rationale_479", + "_tgt": "content_old_content_groups_info", + "source": "content_old_content_groups_info", + "target": "content_old_rationale_479", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content_old.py", + "source_location": "L499", + "weight": 1.0, + "_src": "content_old_content_groups_info", + "_tgt": "logger_log_action", + "source": "content_old_content_groups_info", + "target": "logger_log_action" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L27", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_content_list", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_content_list", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L43", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_media_library", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_media_library", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L71", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_delete_media", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_delete_media", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L135", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_create_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_create_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L173", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_delete_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_delete_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L200", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_manage_playlist_content", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_manage_playlist_content", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L222", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_add_content_to_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_add_content_to_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L272", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_add_weblink", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_add_weblink", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L352", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_add_weblink_to_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_add_weblink_to_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L418", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_remove_content_from_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_remove_content_from_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L455", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_bulk_remove_from_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_bulk_remove_from_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L497", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_reorder_playlist_content", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_reorder_playlist_content", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L538", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_update_playlist_content_muted", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_update_playlist_content_muted", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L579", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_update_playlist_content_edit_enabled", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_update_playlist_content_edit_enabled", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L620", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_update_playlist_content_duration", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_update_playlist_content_duration", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L670", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_upload_media_page", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_upload_media_page", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L676", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_process_image_file", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_process_image_file", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L702", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_process_video_file_extended", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_process_video_file_extended", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L727", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_process_pdf_file", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_process_pdf_file", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L798", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_process_file_in_background", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_process_file_in_background", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L977", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_process_presentation_file", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_process_presentation_file", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1120", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_create_fullhd_image", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_create_fullhd_image", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1145", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_resize_image_to_fullhd", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_resize_image_to_fullhd", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1203", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_optimize_image_to_fullhd", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_optimize_image_to_fullhd", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1220", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_upload_media", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_upload_media", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1494", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "_tgt": "content_assign_player_to_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_assign_player_to_playlist", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1", + "weight": 1.0, + "_src": "content_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "source": "home_scheianu_digiserver_v2_app_blueprints_content_py", + "target": "content_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L28", + "weight": 1.0, + "_src": "content_rationale_28", + "_tgt": "content_content_list", + "source": "content_content_list", + "target": "content_rationale_28", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L44", + "weight": 1.0, + "_src": "content_rationale_44", + "_tgt": "content_media_library", + "source": "content_media_library", + "target": "content_rationale_44", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L72", + "weight": 1.0, + "_src": "content_rationale_72", + "_tgt": "content_delete_media", + "source": "content_delete_media", + "target": "content_rationale_72", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L78", + "weight": 1.0, + "_src": "content_delete_media", + "_tgt": "players_list", + "source": "content_delete_media", + "target": "players_list" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L84", + "weight": 1.0, + "_src": "content_delete_media", + "_tgt": "logger_log_action", + "source": "content_delete_media", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L136", + "weight": 1.0, + "_src": "content_rationale_136", + "_tgt": "content_create_playlist", + "source": "content_create_playlist", + "target": "content_rationale_136", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L152", + "weight": 1.0, + "_src": "content_create_playlist", + "_tgt": "playlist_playlist", + "source": "content_create_playlist", + "target": "playlist_playlist" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L160", + "weight": 1.0, + "_src": "content_create_playlist", + "_tgt": "logger_log_action", + "source": "content_create_playlist", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L187", + "weight": 1.0, + "_src": "content_delete_playlist", + "_tgt": "logger_log_action", + "source": "content_delete_playlist", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L201", + "weight": 1.0, + "_src": "content_rationale_201", + "_tgt": "content_manage_playlist_content", + "source": "content_manage_playlist_content", + "target": "content_rationale_201", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L205", + "weight": 1.0, + "_src": "content_manage_playlist_content", + "_tgt": "playlist_playlist_get_content_ordered", + "source": "content_manage_playlist_content", + "target": "playlist_playlist_get_content_ordered" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L223", + "weight": 1.0, + "_src": "content_rationale_223", + "_tgt": "content_add_content_to_playlist", + "source": "content_add_content_to_playlist", + "target": "content_rationale_223", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L255", + "weight": 1.0, + "_src": "content_add_content_to_playlist", + "_tgt": "playlist_playlist_increment_version", + "source": "content_add_content_to_playlist", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L259", + "weight": 1.0, + "_src": "content_add_content_to_playlist", + "_tgt": "logger_log_action", + "source": "content_add_content_to_playlist", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L273", + "weight": 1.0, + "_src": "content_rationale_273", + "_tgt": "content_add_weblink", + "source": "content_add_weblink", + "target": "content_rationale_273", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L298", + "weight": 1.0, + "_src": "content_add_weblink", + "_tgt": "content_content", + "source": "content_add_weblink", + "target": "content_content" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L326", + "weight": 1.0, + "_src": "content_add_weblink", + "_tgt": "playlist_playlist_increment_version", + "source": "content_add_weblink", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L327", + "weight": 1.0, + "_src": "content_add_weblink", + "_tgt": "logger_log_action", + "source": "content_add_weblink", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L353", + "weight": 1.0, + "_src": "content_rationale_353", + "_tgt": "content_add_weblink_to_playlist", + "source": "content_add_weblink_to_playlist", + "target": "content_rationale_353", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L372", + "weight": 1.0, + "_src": "content_add_weblink_to_playlist", + "_tgt": "content_content", + "source": "content_add_weblink_to_playlist", + "target": "content_content" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L401", + "weight": 1.0, + "_src": "content_add_weblink_to_playlist", + "_tgt": "playlist_playlist_increment_version", + "source": "content_add_weblink_to_playlist", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L405", + "weight": 1.0, + "_src": "content_add_weblink_to_playlist", + "_tgt": "logger_log_action", + "source": "content_add_weblink_to_playlist", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L419", + "weight": 1.0, + "_src": "content_rationale_419", + "_tgt": "content_remove_content_from_playlist", + "source": "content_remove_content_from_playlist", + "target": "content_rationale_419", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L438", + "weight": 1.0, + "_src": "content_remove_content_from_playlist", + "_tgt": "playlist_playlist_increment_version", + "source": "content_remove_content_from_playlist", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L442", + "weight": 1.0, + "_src": "content_remove_content_from_playlist", + "_tgt": "logger_log_action", + "source": "content_remove_content_from_playlist", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L456", + "weight": 1.0, + "_src": "content_rationale_456", + "_tgt": "content_bulk_remove_from_playlist", + "source": "content_bulk_remove_from_playlist", + "target": "content_rationale_456", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L476", + "weight": 1.0, + "_src": "content_bulk_remove_from_playlist", + "_tgt": "playlist_playlist_increment_version", + "source": "content_bulk_remove_from_playlist", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L481", + "weight": 1.0, + "_src": "content_bulk_remove_from_playlist", + "_tgt": "logger_log_action", + "source": "content_bulk_remove_from_playlist", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L498", + "weight": 1.0, + "_src": "content_rationale_498", + "_tgt": "content_reorder_playlist_content", + "source": "content_reorder_playlist_content", + "target": "content_rationale_498", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L518", + "weight": 1.0, + "_src": "content_reorder_playlist_content", + "_tgt": "playlist_playlist_increment_version", + "source": "content_reorder_playlist_content", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L522", + "weight": 1.0, + "_src": "content_reorder_playlist_content", + "_tgt": "logger_log_action", + "source": "content_reorder_playlist_content", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L539", + "weight": 1.0, + "_src": "content_rationale_539", + "_tgt": "content_update_playlist_content_muted", + "source": "content_update_playlist_content_muted", + "target": "content_rationale_539", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L557", + "weight": 1.0, + "_src": "content_update_playlist_content_muted", + "_tgt": "playlist_playlist_increment_version", + "source": "content_update_playlist_content_muted", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L562", + "weight": 1.0, + "_src": "content_update_playlist_content_muted", + "_tgt": "logger_log_action", + "source": "content_update_playlist_content_muted", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L580", + "weight": 1.0, + "_src": "content_rationale_580", + "_tgt": "content_update_playlist_content_edit_enabled", + "source": "content_update_playlist_content_edit_enabled", + "target": "content_rationale_580", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L598", + "weight": 1.0, + "_src": "content_update_playlist_content_edit_enabled", + "_tgt": "playlist_playlist_increment_version", + "source": "content_update_playlist_content_edit_enabled", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L603", + "weight": 1.0, + "_src": "content_update_playlist_content_edit_enabled", + "_tgt": "logger_log_action", + "source": "content_update_playlist_content_edit_enabled", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L621", + "weight": 1.0, + "_src": "content_rationale_621", + "_tgt": "content_update_playlist_content_duration", + "source": "content_update_playlist_content_duration", + "target": "content_rationale_621", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L648", + "weight": 1.0, + "_src": "content_update_playlist_content_duration", + "_tgt": "playlist_playlist_increment_version", + "source": "content_update_playlist_content_duration", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L653", + "weight": 1.0, + "_src": "content_update_playlist_content_duration", + "_tgt": "logger_log_action", + "source": "content_update_playlist_content_duration", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L671", + "weight": 1.0, + "_src": "content_rationale_671", + "_tgt": "content_upload_media_page", + "source": "content_upload_media_page", + "target": "content_rationale_671", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1285", + "weight": 1.0, + "_src": "content_upload_media", + "_tgt": "content_process_image_file", + "source": "content_process_image_file", + "target": "content_upload_media", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L677", + "weight": 1.0, + "_src": "content_rationale_677", + "_tgt": "content_process_image_file", + "source": "content_process_image_file", + "target": "content_rationale_677", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L695", + "weight": 1.0, + "_src": "content_process_image_file", + "_tgt": "logger_log_action", + "source": "content_process_image_file", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L928", + "weight": 1.0, + "_src": "content_process_file_in_background", + "_tgt": "content_process_video_file_extended", + "source": "content_process_video_file_extended", + "target": "content_process_file_in_background", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1289", + "weight": 1.0, + "_src": "content_upload_media", + "_tgt": "content_process_video_file_extended", + "source": "content_process_video_file_extended", + "target": "content_upload_media", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L703", + "weight": 1.0, + "_src": "content_rationale_703", + "_tgt": "content_process_video_file_extended", + "source": "content_process_video_file_extended", + "target": "content_rationale_703", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L717", + "weight": 1.0, + "_src": "content_process_video_file_extended", + "_tgt": "logger_log_action", + "source": "content_process_video_file_extended", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L812", + "weight": 1.0, + "_src": "content_process_file_in_background", + "_tgt": "content_process_pdf_file", + "source": "content_process_pdf_file", + "target": "content_process_file_in_background", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1293", + "weight": 1.0, + "_src": "content_upload_media", + "_tgt": "content_process_pdf_file", + "source": "content_process_pdf_file", + "target": "content_upload_media", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L728", + "weight": 1.0, + "_src": "content_rationale_728", + "_tgt": "content_process_pdf_file", + "source": "content_process_pdf_file", + "target": "content_rationale_728", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L739", + "weight": 1.0, + "_src": "content_process_pdf_file", + "_tgt": "logger_log_action", + "source": "content_process_pdf_file", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L870", + "weight": 1.0, + "_src": "content_process_file_in_background", + "_tgt": "content_process_presentation_file", + "source": "content_process_file_in_background", + "target": "content_process_presentation_file", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L800", + "weight": 1.0, + "_src": "content_rationale_800", + "_tgt": "content_process_file_in_background", + "source": "content_process_file_in_background", + "target": "content_rationale_800", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L830", + "weight": 1.0, + "_src": "content_process_file_in_background", + "_tgt": "content_content", + "source": "content_process_file_in_background", + "target": "content_content" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L866", + "weight": 1.0, + "_src": "content_process_file_in_background", + "_tgt": "logger_log_action", + "source": "content_process_file_in_background", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1100", + "weight": 1.0, + "_src": "content_process_presentation_file", + "_tgt": "content_resize_image_to_fullhd", + "source": "content_process_presentation_file", + "target": "content_resize_image_to_fullhd", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1354", + "weight": 1.0, + "_src": "content_upload_media", + "_tgt": "content_process_presentation_file", + "source": "content_process_presentation_file", + "target": "content_upload_media", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L978", + "weight": 1.0, + "_src": "content_rationale_978", + "_tgt": "content_process_presentation_file", + "source": "content_process_presentation_file", + "target": "content_rationale_978", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1007", + "weight": 1.0, + "_src": "content_process_presentation_file", + "_tgt": "logger_log_action", + "source": "content_process_presentation_file", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1048", + "weight": 1.0, + "_src": "content_process_presentation_file", + "_tgt": "players_list", + "source": "content_process_presentation_file", + "target": "players_list" + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1209", + "weight": 1.0, + "_src": "content_optimize_image_to_fullhd", + "_tgt": "content_create_fullhd_image", + "source": "content_create_fullhd_image", + "target": "content_optimize_image_to_fullhd", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1121", + "weight": 1.0, + "_src": "content_rationale_1121", + "_tgt": "content_create_fullhd_image", + "source": "content_create_fullhd_image", + "target": "content_rationale_1121", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1146", + "weight": 1.0, + "_src": "content_rationale_1146", + "_tgt": "content_resize_image_to_fullhd", + "source": "content_resize_image_to_fullhd", + "target": "content_rationale_1146", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1199", + "weight": 1.0, + "_src": "content_resize_image_to_fullhd", + "_tgt": "logger_log_action", + "source": "content_resize_image_to_fullhd", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1204", + "weight": 1.0, + "_src": "content_rationale_1204", + "_tgt": "content_optimize_image_to_fullhd", + "source": "content_optimize_image_to_fullhd", + "target": "content_rationale_1204", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1214", + "weight": 1.0, + "_src": "content_optimize_image_to_fullhd", + "_tgt": "logger_log_action", + "source": "content_optimize_image_to_fullhd", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1221", + "weight": 1.0, + "_src": "content_rationale_1221", + "_tgt": "content_upload_media", + "source": "content_upload_media", + "target": "content_rationale_1221", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1250", + "weight": 1.0, + "_src": "content_upload_media", + "_tgt": "logger_log_action", + "source": "content_upload_media", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1317", + "weight": 1.0, + "_src": "content_upload_media", + "_tgt": "content_content", + "source": "content_upload_media", + "target": "content_content" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1343", + "weight": 1.0, + "_src": "content_upload_media", + "_tgt": "playlist_playlist_increment_version", + "source": "content_upload_media", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1495", + "weight": 1.0, + "_src": "content_rationale_1495", + "_tgt": "content_assign_player_to_playlist", + "source": "content_assign_player_to_playlist", + "target": "content_rationale_1495", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L1504", + "weight": 1.0, + "_src": "content_assign_player_to_playlist", + "_tgt": "logger_log_action", + "source": "content_assign_player_to_playlist", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L1", + "weight": 1.0, + "_src": "content_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_models_content_py", + "source": "content_rationale_1", + "target": "home_scheianu_digiserver_v2_app_models_content_py", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_1", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_1", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_28", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_28", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_44", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_44", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_72", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_72", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_136", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_136", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_201", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_201", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_223", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_223", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_273", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_273", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_353", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_353", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_419", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_419", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_456", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_456", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_498", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_498", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_539", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_539", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_580", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_580", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_621", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_621", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_671", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_671", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_677", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_677", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_703", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_703", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_728", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_728", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_800", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_800", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_978", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_978", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_1121", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_1121", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_1146", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_1146", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_1204", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_1204", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_1221", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_1221", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/content.py", + "source_location": "L94", + "weight": 0.8, + "_src": "content_rationale_1495", + "_tgt": "player_edit_playeredit", + "source": "content_rationale_1495", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/__init__.py", + "source_location": "L1", + "weight": 1.0, + "_src": "init_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_blueprints_init_py", + "source": "home_scheianu_digiserver_v2_app_blueprints_init_py", + "target": "init_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/__init__.py", + "source_location": "L1", + "weight": 1.0, + "_src": "init_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_utils_init_py", + "source": "init_rationale_1", + "target": "home_scheianu_digiserver_v2_app_utils_init_py", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", + "source_location": "L1", + "weight": 1.0, + "_src": "init_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_models_init_py", + "source": "init_rationale_1", + "target": "home_scheianu_digiserver_v2_app_models_init_py", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", + "source_location": "L2", + "weight": 0.8, + "_src": "init_rationale_1", + "_tgt": "user_user", + "source": "init_rationale_1", + "target": "user_user", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", + "source_location": "L3", + "weight": 0.8, + "_src": "init_rationale_1", + "_tgt": "player_player", + "source": "init_rationale_1", + "target": "player_player", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", + "source_location": "L4", + "weight": 0.8, + "_src": "init_rationale_1", + "_tgt": "group_group", + "source": "init_rationale_1", + "target": "group_group", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", + "source_location": "L5", + "weight": 0.8, + "_src": "init_rationale_1", + "_tgt": "playlist_playlist", + "source": "init_rationale_1", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", + "source_location": "L6", + "weight": 0.8, + "_src": "init_rationale_1", + "_tgt": "content_content", + "source": "init_rationale_1", + "target": "content_content", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", + "source_location": "L7", + "weight": 0.8, + "_src": "init_rationale_1", + "_tgt": "server_log_serverlog", + "source": "init_rationale_1", + "target": "server_log_serverlog", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", + "source_location": "L8", + "weight": 0.8, + "_src": "init_rationale_1", + "_tgt": "player_feedback_playerfeedback", + "source": "init_rationale_1", + "target": "player_feedback_playerfeedback", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", + "source_location": "L9", + "weight": 0.8, + "_src": "init_rationale_1", + "_tgt": "player_edit_playeredit", + "source": "init_rationale_1", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", + "source_location": "L10", + "weight": 0.8, + "_src": "init_rationale_1", + "_tgt": "player_user_playeruser", + "source": "init_rationale_1", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/__init__.py", + "source_location": "L11", + "weight": 0.8, + "_src": "init_rationale_1", + "_tgt": "https_config_httpsconfig", + "source": "init_rationale_1", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L21", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_rate_limit", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_rate_limit", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L64", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_verify_player_auth", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_verify_player_auth", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L90", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_health_check", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_health_check", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L100", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_get_server_certificate", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_get_server_certificate", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L107", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_authenticate_player", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_authenticate_player", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L163", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_verify_auth_code", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_verify_auth_code", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L207", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_get_playlist_by_quickconnect", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_get_playlist_by_quickconnect", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L305", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_get_player_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_get_player_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L349", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_get_playlist_version", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_get_playlist_version", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L378", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_get_cached_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_get_cached_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L429", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_receive_player_feedback", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_receive_player_feedback", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L540", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_get_player_status", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_get_player_status", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L577", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_get_upload_progress", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_get_upload_progress", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L591", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_system_info", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_system_info", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L655", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_list_content", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_list_content", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L684", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_get_logs", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_get_logs", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L736", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_receive_edited_media", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_receive_edited_media", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L936", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_test_ssh_connection", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_test_ssh_connection", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L980", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_deploy_player", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_deploy_player", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1049", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_api_not_found", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_api_not_found", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1055", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_method_not_allowed", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_method_not_allowed", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1061", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "_tgt": "api_internal_error", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_internal_error", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1", + "weight": 1.0, + "_src": "api_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "source": "home_scheianu_digiserver_v2_app_blueprints_api_py", + "target": "api_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L22", + "weight": 1.0, + "_src": "api_rationale_22", + "_tgt": "api_rate_limit", + "source": "api_rate_limit", + "target": "api_rationale_22", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L65", + "weight": 1.0, + "_src": "api_rationale_65", + "_tgt": "api_verify_player_auth", + "source": "api_verify_player_auth", + "target": "api_rationale_65", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L91", + "weight": 1.0, + "_src": "api_rationale_91", + "_tgt": "api_health_check", + "source": "api_health_check", + "target": "api_rationale_91", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L101", + "weight": 1.0, + "_src": "api_rationale_101", + "_tgt": "api_get_server_certificate", + "source": "api_get_server_certificate", + "target": "api_rationale_101", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L108", + "weight": 1.0, + "_src": "api_rationale_108", + "_tgt": "api_authenticate_player", + "source": "api_authenticate_player", + "target": "api_rationale_108", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L134", + "weight": 1.0, + "_src": "api_authenticate_player", + "_tgt": "player_authenticate", + "source": "api_authenticate_player", + "target": "player_authenticate" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L137", + "weight": 1.0, + "_src": "api_authenticate_player", + "_tgt": "logger_log_action", + "source": "api_authenticate_player", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L141", + "weight": 1.0, + "_src": "api_authenticate_player", + "_tgt": "player_player_update_status", + "source": "api_authenticate_player", + "target": "player_player_update_status" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L164", + "weight": 1.0, + "_src": "api_rationale_164", + "_tgt": "api_verify_auth_code", + "source": "api_verify_auth_code", + "target": "api_rationale_164", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L189", + "weight": 1.0, + "_src": "api_verify_auth_code", + "_tgt": "player_player_update_status", + "source": "api_verify_auth_code", + "target": "player_player_update_status" + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L260", + "weight": 1.0, + "_src": "api_get_playlist_by_quickconnect", + "_tgt": "api_get_cached_playlist", + "source": "api_get_playlist_by_quickconnect", + "target": "api_get_cached_playlist", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L208", + "weight": 1.0, + "_src": "api_rationale_208", + "_tgt": "api_get_playlist_by_quickconnect", + "source": "api_get_playlist_by_quickconnect", + "target": "api_rationale_208", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L234", + "weight": 1.0, + "_src": "api_get_playlist_by_quickconnect", + "_tgt": "logger_log_action", + "source": "api_get_playlist_by_quickconnect", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L251", + "weight": 1.0, + "_src": "api_get_playlist_by_quickconnect", + "_tgt": "player_player_check_quickconnect_code", + "source": "api_get_playlist_by_quickconnect", + "target": "player_player_check_quickconnect_code" + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L318", + "weight": 1.0, + "_src": "api_get_player_playlist", + "_tgt": "api_get_cached_playlist", + "source": "api_get_player_playlist", + "target": "api_get_cached_playlist", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L306", + "weight": 1.0, + "_src": "api_rationale_306", + "_tgt": "api_get_player_playlist", + "source": "api_get_player_playlist", + "target": "api_rationale_306", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L342", + "weight": 1.0, + "_src": "api_get_player_playlist", + "_tgt": "logger_log_action", + "source": "api_get_player_playlist", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L350", + "weight": 1.0, + "_src": "api_rationale_350", + "_tgt": "api_get_playlist_version", + "source": "api_get_playlist_version", + "target": "api_rationale_350", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L373", + "weight": 1.0, + "_src": "api_get_playlist_version", + "_tgt": "logger_log_action", + "source": "api_get_playlist_version", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L379", + "weight": 1.0, + "_src": "api_rationale_379", + "_tgt": "api_get_cached_playlist", + "source": "api_get_cached_playlist", + "target": "api_rationale_379", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L393", + "weight": 1.0, + "_src": "api_get_cached_playlist", + "_tgt": "playlist_playlist_get_content_ordered", + "source": "api_get_cached_playlist", + "target": "playlist_playlist_get_content_ordered" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L430", + "weight": 1.0, + "_src": "api_rationale_430", + "_tgt": "api_receive_player_feedback", + "source": "api_receive_player_feedback", + "target": "api_rationale_430", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L447", + "weight": 1.0, + "_src": "api_receive_player_feedback", + "_tgt": "logger_log_action", + "source": "api_receive_player_feedback", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L489", + "weight": 1.0, + "_src": "api_receive_player_feedback", + "_tgt": "player_player_check_quickconnect_code", + "source": "api_receive_player_feedback", + "target": "player_player_check_quickconnect_code" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L498", + "weight": 1.0, + "_src": "api_receive_player_feedback", + "_tgt": "player_feedback_playerfeedback", + "source": "api_receive_player_feedback", + "target": "player_feedback_playerfeedback" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L541", + "weight": 1.0, + "_src": "api_rationale_541", + "_tgt": "api_get_player_status", + "source": "api_get_player_status", + "target": "api_rationale_541", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L571", + "weight": 1.0, + "_src": "api_get_player_status", + "_tgt": "logger_log_action", + "source": "api_get_player_status", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L578", + "weight": 1.0, + "_src": "api_rationale_578", + "_tgt": "api_get_upload_progress", + "source": "api_get_upload_progress", + "target": "api_rationale_578", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L585", + "weight": 1.0, + "_src": "api_get_upload_progress", + "_tgt": "logger_log_action", + "source": "api_get_upload_progress", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L592", + "weight": 1.0, + "_src": "api_rationale_592", + "_tgt": "api_system_info", + "source": "api_system_info", + "target": "api_rationale_592", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L620", + "weight": 1.0, + "_src": "api_system_info", + "_tgt": "logger_log_action", + "source": "api_system_info", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L656", + "weight": 1.0, + "_src": "api_rationale_656", + "_tgt": "api_list_content", + "source": "api_list_content", + "target": "api_rationale_656", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L678", + "weight": 1.0, + "_src": "api_list_content", + "_tgt": "logger_log_action", + "source": "api_list_content", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L685", + "weight": 1.0, + "_src": "api_rationale_685", + "_tgt": "api_get_logs", + "source": "api_get_logs", + "target": "api_rationale_685", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L729", + "weight": 1.0, + "_src": "api_get_logs", + "_tgt": "logger_log_action", + "source": "api_get_logs", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L737", + "weight": 1.0, + "_src": "api_rationale_737", + "_tgt": "api_receive_edited_media", + "source": "api_receive_edited_media", + "target": "api_rationale_737", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L800", + "weight": 1.0, + "_src": "api_receive_edited_media", + "_tgt": "group_group", + "source": "api_receive_edited_media", + "target": "group_group" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L810", + "weight": 1.0, + "_src": "api_receive_edited_media", + "_tgt": "logger_log_action", + "source": "api_receive_edited_media", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L878", + "weight": 1.0, + "_src": "api_receive_edited_media", + "_tgt": "player_user_playeruser", + "source": "api_receive_edited_media", + "target": "player_user_playeruser" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L886", + "weight": 1.0, + "_src": "api_receive_edited_media", + "_tgt": "player_edit_playeredit", + "source": "api_receive_edited_media", + "target": "player_edit_playeredit" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L937", + "weight": 1.0, + "_src": "api_rationale_937", + "_tgt": "api_test_ssh_connection", + "source": "api_test_ssh_connection", + "target": "api_rationale_937", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L965", + "weight": 1.0, + "_src": "api_test_ssh_connection", + "_tgt": "logger_log_action", + "source": "api_test_ssh_connection", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L981", + "weight": 1.0, + "_src": "api_rationale_981", + "_tgt": "api_deploy_player", + "source": "api_deploy_player", + "target": "api_rationale_981", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1022", + "weight": 1.0, + "_src": "api_deploy_player", + "_tgt": "ssh_deploy_deploy_player_to_host", + "source": "api_deploy_player", + "target": "ssh_deploy_deploy_player_to_host" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1034", + "weight": 1.0, + "_src": "api_deploy_player", + "_tgt": "logger_log_action", + "source": "api_deploy_player", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1050", + "weight": 1.0, + "_src": "api_rationale_1050", + "_tgt": "api_api_not_found", + "source": "api_api_not_found", + "target": "api_rationale_1050", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1056", + "weight": 1.0, + "_src": "api_rationale_1056", + "_tgt": "api_method_not_allowed", + "source": "api_method_not_allowed", + "target": "api_rationale_1056", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L1062", + "weight": 1.0, + "_src": "api_rationale_1062", + "_tgt": "api_internal_error", + "source": "api_internal_error", + "target": "api_rationale_1062", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_1", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_1", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_1", + "_tgt": "player_user_playeruser", + "source": "api_rationale_1", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_1", + "_tgt": "playlist_playlist", + "source": "api_rationale_1", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_22", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_22", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_22", + "_tgt": "player_user_playeruser", + "source": "api_rationale_22", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_22", + "_tgt": "playlist_playlist", + "source": "api_rationale_22", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_65", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_65", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_65", + "_tgt": "player_user_playeruser", + "source": "api_rationale_65", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_65", + "_tgt": "playlist_playlist", + "source": "api_rationale_65", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_91", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_91", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_91", + "_tgt": "player_user_playeruser", + "source": "api_rationale_91", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_91", + "_tgt": "playlist_playlist", + "source": "api_rationale_91", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_101", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_101", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_101", + "_tgt": "player_user_playeruser", + "source": "api_rationale_101", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_101", + "_tgt": "playlist_playlist", + "source": "api_rationale_101", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_108", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_108", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_108", + "_tgt": "player_user_playeruser", + "source": "api_rationale_108", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_108", + "_tgt": "playlist_playlist", + "source": "api_rationale_108", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_164", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_164", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_164", + "_tgt": "player_user_playeruser", + "source": "api_rationale_164", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_164", + "_tgt": "playlist_playlist", + "source": "api_rationale_164", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_208", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_208", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_208", + "_tgt": "player_user_playeruser", + "source": "api_rationale_208", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_208", + "_tgt": "playlist_playlist", + "source": "api_rationale_208", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_306", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_306", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_306", + "_tgt": "player_user_playeruser", + "source": "api_rationale_306", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_306", + "_tgt": "playlist_playlist", + "source": "api_rationale_306", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_350", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_350", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_350", + "_tgt": "player_user_playeruser", + "source": "api_rationale_350", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_350", + "_tgt": "playlist_playlist", + "source": "api_rationale_350", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_379", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_379", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_379", + "_tgt": "player_user_playeruser", + "source": "api_rationale_379", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_379", + "_tgt": "playlist_playlist", + "source": "api_rationale_379", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_430", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_430", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_430", + "_tgt": "player_user_playeruser", + "source": "api_rationale_430", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_430", + "_tgt": "playlist_playlist", + "source": "api_rationale_430", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_541", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_541", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_541", + "_tgt": "player_user_playeruser", + "source": "api_rationale_541", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_541", + "_tgt": "playlist_playlist", + "source": "api_rationale_541", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_578", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_578", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_578", + "_tgt": "player_user_playeruser", + "source": "api_rationale_578", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_578", + "_tgt": "playlist_playlist", + "source": "api_rationale_578", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_592", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_592", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_592", + "_tgt": "player_user_playeruser", + "source": "api_rationale_592", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_592", + "_tgt": "playlist_playlist", + "source": "api_rationale_592", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_656", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_656", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_656", + "_tgt": "player_user_playeruser", + "source": "api_rationale_656", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_656", + "_tgt": "playlist_playlist", + "source": "api_rationale_656", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_685", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_685", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_685", + "_tgt": "player_user_playeruser", + "source": "api_rationale_685", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_685", + "_tgt": "playlist_playlist", + "source": "api_rationale_685", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_737", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_737", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_737", + "_tgt": "player_user_playeruser", + "source": "api_rationale_737", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_737", + "_tgt": "playlist_playlist", + "source": "api_rationale_737", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_937", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_937", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_937", + "_tgt": "player_user_playeruser", + "source": "api_rationale_937", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_937", + "_tgt": "playlist_playlist", + "source": "api_rationale_937", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_981", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_981", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_981", + "_tgt": "player_user_playeruser", + "source": "api_rationale_981", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_981", + "_tgt": "playlist_playlist", + "source": "api_rationale_981", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_1050", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_1050", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_1050", + "_tgt": "player_user_playeruser", + "source": "api_rationale_1050", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_1050", + "_tgt": "playlist_playlist", + "source": "api_rationale_1050", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_1056", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_1056", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_1056", + "_tgt": "player_user_playeruser", + "source": "api_rationale_1056", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_1056", + "_tgt": "playlist_playlist", + "source": "api_rationale_1056", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L784", + "weight": 0.8, + "_src": "api_rationale_1062", + "_tgt": "player_edit_playeredit", + "source": "api_rationale_1062", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L875", + "weight": 0.8, + "_src": "api_rationale_1062", + "_tgt": "player_user_playeruser", + "source": "api_rationale_1062", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/api.py", + "source_location": "L902", + "weight": 0.8, + "_src": "api_rationale_1062", + "_tgt": "playlist_playlist", + "source": "api_rationale_1062", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L19", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_list", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_list", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L56", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_add_player", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_add_player", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L232", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_edit_player", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_edit_player", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L270", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_delete_player", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_delete_player", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L298", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_regenerate_auth_code", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_regenerate_auth_code", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L321", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_player_page", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_player_page", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L328", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_manage_player", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_manage_player", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L445", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_edited_media", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_edited_media", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L489", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_edited_media_report", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_edited_media_report", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L522", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_player_fullscreen", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_player_fullscreen", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L545", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_get_player_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_get_player_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L590", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_reorder_content", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_reorder_content", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L600", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_bulk_delete_players", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_bulk_delete_players", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L632", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_bulk_assign_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_bulk_assign_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L669", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_deployment_status", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_deployment_status", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L693", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_reorder_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_reorder_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L746", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "_tgt": "players_remove_from_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_remove_from_playlist", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L1", + "weight": 1.0, + "_src": "players_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "source": "home_scheianu_digiserver_v2_app_blueprints_players_py", + "target": "players_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L20", + "weight": 1.0, + "_src": "players_rationale_20", + "_tgt": "players_list", + "source": "players_list", + "target": "players_rationale_20", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L28", + "weight": 1.0, + "_src": "players_list", + "_tgt": "group_player_management_get_player_status_info", + "source": "players_list", + "target": "group_player_management_get_player_status_info" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L49", + "weight": 1.0, + "_src": "players_list", + "_tgt": "logger_log_action", + "source": "players_list", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L59", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader_extract_http_ports", + "_tgt": "players_list", + "source": "players_list", + "target": "nginx_config_reader_nginxconfigreader_extract_http_ports" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L67", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader_extract_https_ports", + "_tgt": "players_list", + "source": "players_list", + "target": "nginx_config_reader_nginxconfigreader_extract_https_ports" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L158", + "weight": 1.0, + "_src": "test_edit_media_api_get_sample_content", + "_tgt": "players_list", + "source": "players_list", + "target": "test_edit_media_api_get_sample_content" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L57", + "weight": 1.0, + "_src": "players_rationale_57", + "_tgt": "players_add_player", + "source": "players_add_player", + "target": "players_rationale_57", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L101", + "weight": 1.0, + "_src": "players_add_player", + "_tgt": "player_player", + "source": "players_add_player", + "target": "player_player" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L112", + "weight": 1.0, + "_src": "players_add_player", + "_tgt": "player_player_set_password", + "source": "players_add_player", + "target": "player_player_set_password" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L118", + "weight": 1.0, + "_src": "players_add_player", + "_tgt": "player_player_set_quickconnect_code", + "source": "players_add_player", + "target": "player_player_set_quickconnect_code" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L123", + "weight": 1.0, + "_src": "players_add_player", + "_tgt": "logger_log_action", + "source": "players_add_player", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L140", + "weight": 1.0, + "_src": "players_add_player", + "_tgt": "player_build_get_player_server_settings", + "source": "players_add_player", + "target": "player_build_get_player_server_settings" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L148", + "weight": 1.0, + "_src": "players_add_player", + "_tgt": "https_config_get_config", + "source": "players_add_player", + "target": "https_config_get_config" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L158", + "weight": 1.0, + "_src": "players_add_player", + "_tgt": "ssh_deploy_detect_server_ip", + "source": "players_add_player", + "target": "ssh_deploy_detect_server_ip" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L176", + "weight": 1.0, + "_src": "players_add_player", + "_tgt": "background_tasks_run_background_task", + "source": "players_add_player", + "target": "background_tasks_run_background_task" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L256", + "weight": 1.0, + "_src": "players_edit_player", + "_tgt": "logger_log_action", + "source": "players_edit_player", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L285", + "weight": 1.0, + "_src": "players_delete_player", + "_tgt": "logger_log_action", + "source": "players_delete_player", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L299", + "weight": 1.0, + "_src": "players_rationale_299", + "_tgt": "players_regenerate_auth_code", + "source": "players_regenerate_auth_code", + "target": "players_rationale_299", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L308", + "weight": 1.0, + "_src": "players_regenerate_auth_code", + "_tgt": "logger_log_action", + "source": "players_regenerate_auth_code", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L322", + "weight": 1.0, + "_src": "players_rationale_322", + "_tgt": "players_player_page", + "source": "players_player_page", + "target": "players_rationale_322", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L329", + "weight": 1.0, + "_src": "players_rationale_329", + "_tgt": "players_manage_player", + "source": "players_manage_player", + "target": "players_rationale_329", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L368", + "weight": 1.0, + "_src": "players_manage_player", + "_tgt": "player_player_set_password", + "source": "players_manage_player", + "target": "player_player_set_password" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L369", + "weight": 1.0, + "_src": "players_manage_player", + "_tgt": "logger_log_action", + "source": "players_manage_player", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L373", + "weight": 1.0, + "_src": "players_manage_player", + "_tgt": "player_player_set_quickconnect_code", + "source": "players_manage_player", + "target": "player_player_set_quickconnect_code" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L432", + "weight": 1.0, + "_src": "players_manage_player", + "_tgt": "group_player_management_get_player_status_info", + "source": "players_manage_player", + "target": "group_player_management_get_player_status_info" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L446", + "weight": 1.0, + "_src": "players_rationale_446", + "_tgt": "players_edited_media", + "source": "players_edited_media", + "target": "players_rationale_446", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L482", + "weight": 1.0, + "_src": "players_edited_media", + "_tgt": "logger_log_action", + "source": "players_edited_media", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L490", + "weight": 1.0, + "_src": "players_rationale_490", + "_tgt": "players_edited_media_report", + "source": "players_edited_media_report", + "target": "players_rationale_490", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L516", + "weight": 1.0, + "_src": "players_edited_media_report", + "_tgt": "logger_log_action", + "source": "players_edited_media_report", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L534", + "weight": 1.0, + "_src": "players_player_fullscreen", + "_tgt": "players_get_player_playlist", + "source": "players_player_fullscreen", + "target": "players_get_player_playlist", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L523", + "weight": 1.0, + "_src": "players_rationale_523", + "_tgt": "players_player_fullscreen", + "source": "players_player_fullscreen", + "target": "players_rationale_523", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L530", + "weight": 1.0, + "_src": "players_player_fullscreen", + "_tgt": "logger_log_action", + "source": "players_player_fullscreen", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L546", + "weight": 1.0, + "_src": "players_rationale_546", + "_tgt": "players_get_player_playlist", + "source": "players_get_player_playlist", + "target": "players_rationale_546", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L564", + "weight": 1.0, + "_src": "players_get_player_playlist", + "_tgt": "playlist_playlist_get_content_ordered", + "source": "players_get_player_playlist", + "target": "playlist_playlist_get_content_ordered" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L591", + "weight": 1.0, + "_src": "players_rationale_591", + "_tgt": "players_reorder_content", + "source": "players_reorder_content", + "target": "players_rationale_591", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L601", + "weight": 1.0, + "_src": "players_rationale_601", + "_tgt": "players_bulk_delete_players", + "source": "players_bulk_delete_players", + "target": "players_rationale_601", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L621", + "weight": 1.0, + "_src": "players_bulk_delete_players", + "_tgt": "logger_log_action", + "source": "players_bulk_delete_players", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L633", + "weight": 1.0, + "_src": "players_rationale_633", + "_tgt": "players_bulk_assign_playlist", + "source": "players_bulk_assign_playlist", + "target": "players_rationale_633", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L658", + "weight": 1.0, + "_src": "players_bulk_assign_playlist", + "_tgt": "logger_log_action", + "source": "players_bulk_assign_playlist", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L670", + "weight": 1.0, + "_src": "players_rationale_670", + "_tgt": "players_deployment_status", + "source": "players_deployment_status", + "target": "players_rationale_670", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L687", + "weight": 1.0, + "_src": "players_deployment_status", + "_tgt": "logger_log_action", + "source": "players_deployment_status", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L694", + "weight": 1.0, + "_src": "players_rationale_694", + "_tgt": "players_reorder_playlist", + "source": "players_reorder_playlist", + "target": "players_rationale_694", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L735", + "weight": 1.0, + "_src": "players_reorder_playlist", + "_tgt": "logger_log_action", + "source": "players_reorder_playlist", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L747", + "weight": 1.0, + "_src": "players_rationale_747", + "_tgt": "players_remove_from_playlist", + "source": "players_remove_from_playlist", + "target": "players_rationale_747", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L775", + "weight": 1.0, + "_src": "players_remove_from_playlist", + "_tgt": "logger_log_action", + "source": "players_remove_from_playlist", + "target": "logger_log_action" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_1", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_1", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_1", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_1", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_1", + "_tgt": "player_user_playeruser", + "source": "players_rationale_1", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_20", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_20", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_20", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_20", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_20", + "_tgt": "player_user_playeruser", + "source": "players_rationale_20", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_57", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_57", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_57", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_57", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_57", + "_tgt": "player_user_playeruser", + "source": "players_rationale_57", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_299", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_299", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_299", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_299", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_299", + "_tgt": "player_user_playeruser", + "source": "players_rationale_299", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_322", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_322", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_322", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_322", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_322", + "_tgt": "player_user_playeruser", + "source": "players_rationale_322", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_329", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_329", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_329", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_329", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_329", + "_tgt": "player_user_playeruser", + "source": "players_rationale_329", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_446", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_446", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_446", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_446", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_446", + "_tgt": "player_user_playeruser", + "source": "players_rationale_446", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_490", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_490", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_490", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_490", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_490", + "_tgt": "player_user_playeruser", + "source": "players_rationale_490", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_523", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_523", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_523", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_523", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_523", + "_tgt": "player_user_playeruser", + "source": "players_rationale_523", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_546", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_546", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_546", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_546", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_546", + "_tgt": "player_user_playeruser", + "source": "players_rationale_546", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_591", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_591", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_591", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_591", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_591", + "_tgt": "player_user_playeruser", + "source": "players_rationale_591", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_601", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_601", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_601", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_601", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_601", + "_tgt": "player_user_playeruser", + "source": "players_rationale_601", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_633", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_633", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_633", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_633", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_633", + "_tgt": "player_user_playeruser", + "source": "players_rationale_633", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_670", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_670", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_670", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_670", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_670", + "_tgt": "player_user_playeruser", + "source": "players_rationale_670", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_694", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_694", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_694", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_694", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_694", + "_tgt": "player_user_playeruser", + "source": "players_rationale_694", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L133", + "weight": 0.8, + "_src": "players_rationale_747", + "_tgt": "https_config_httpsconfig", + "source": "players_rationale_747", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L494", + "weight": 0.8, + "_src": "players_rationale_747", + "_tgt": "player_edit_playeredit", + "source": "players_rationale_747", + "target": "player_edit_playeredit", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/players.py", + "source_location": "L495", + "weight": 0.8, + "_src": "players_rationale_747", + "_tgt": "player_user_playeruser", + "source": "players_rationale_747", + "target": "player_user_playeruser", + "confidence_score": 0.5 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L15", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_auth_py", + "_tgt": "auth_login", + "source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", + "target": "auth_login", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L59", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_auth_py", + "_tgt": "auth_logout", + "source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", + "target": "auth_logout", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L69", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_auth_py", + "_tgt": "auth_register", + "source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", + "target": "auth_register", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L118", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_auth_py", + "_tgt": "auth_change_password", + "source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", + "target": "auth_change_password", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L1", + "weight": 1.0, + "_src": "auth_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_blueprints_auth_py", + "source": "home_scheianu_digiserver_v2_app_blueprints_auth_py", + "target": "auth_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L37", + "weight": 1.0, + "_src": "auth_login", + "_tgt": "logger_log_action", + "source": "auth_login", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L63", + "weight": 1.0, + "_src": "auth_logout", + "_tgt": "logger_log_action", + "source": "auth_logout", + "target": "logger_log_action" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L100", + "weight": 1.0, + "_src": "auth_register", + "_tgt": "user_user", + "source": "auth_register", + "target": "user_user" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/auth.py", + "source_location": "L143", + "weight": 1.0, + "_src": "auth_change_password", + "_tgt": "logger_log_action", + "source": "auth_change_password", + "target": "logger_log_action" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L18", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "_tgt": "playlist_manage_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "target": "playlist_manage_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L33", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "_tgt": "playlist_add_to_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "target": "playlist_add_to_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L88", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "_tgt": "playlist_remove_from_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "target": "playlist_remove_from_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L143", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "_tgt": "playlist_reorder_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "target": "playlist_reorder_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L190", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "_tgt": "playlist_update_duration", + "source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "target": "playlist_update_duration", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L235", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "_tgt": "playlist_update_muted", + "source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "target": "playlist_update_muted", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L278", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "_tgt": "playlist_clear_playlist", + "source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "target": "playlist_clear_playlist", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L1", + "weight": 1.0, + "_src": "playlist_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "source": "home_scheianu_digiserver_v2_app_blueprints_playlist_py", + "target": "playlist_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L19", + "weight": 1.0, + "_src": "playlist_rationale_19", + "_tgt": "playlist_manage_playlist", + "source": "playlist_manage_playlist", + "target": "playlist_rationale_19", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L34", + "weight": 1.0, + "_src": "playlist_rationale_34", + "_tgt": "playlist_add_to_playlist", + "source": "playlist_add_to_playlist", + "target": "playlist_rationale_34", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L70", + "weight": 1.0, + "_src": "playlist_add_to_playlist", + "_tgt": "playlist_playlist_increment_version", + "source": "playlist_add_to_playlist", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L75", + "weight": 1.0, + "_src": "playlist_add_to_playlist", + "_tgt": "logger_log_action", + "source": "playlist_add_to_playlist", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L89", + "weight": 1.0, + "_src": "playlist_rationale_89", + "_tgt": "playlist_remove_from_playlist", + "source": "playlist_remove_from_playlist", + "target": "playlist_rationale_89", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L125", + "weight": 1.0, + "_src": "playlist_remove_from_playlist", + "_tgt": "playlist_playlist_increment_version", + "source": "playlist_remove_from_playlist", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L130", + "weight": 1.0, + "_src": "playlist_remove_from_playlist", + "_tgt": "logger_log_action", + "source": "playlist_remove_from_playlist", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L144", + "weight": 1.0, + "_src": "playlist_rationale_144", + "_tgt": "playlist_reorder_playlist", + "source": "playlist_reorder_playlist", + "target": "playlist_rationale_144", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L169", + "weight": 1.0, + "_src": "playlist_reorder_playlist", + "_tgt": "playlist_playlist_increment_version", + "source": "playlist_reorder_playlist", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L174", + "weight": 1.0, + "_src": "playlist_reorder_playlist", + "_tgt": "logger_log_action", + "source": "playlist_reorder_playlist", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L191", + "weight": 1.0, + "_src": "playlist_rationale_191", + "_tgt": "playlist_update_duration", + "source": "playlist_update_duration", + "target": "playlist_rationale_191", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L214", + "weight": 1.0, + "_src": "playlist_update_duration", + "_tgt": "playlist_playlist_increment_version", + "source": "playlist_update_duration", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L219", + "weight": 1.0, + "_src": "playlist_update_duration", + "_tgt": "logger_log_action", + "source": "playlist_update_duration", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L236", + "weight": 1.0, + "_src": "playlist_rationale_236", + "_tgt": "playlist_update_muted", + "source": "playlist_update_muted", + "target": "playlist_rationale_236", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L256", + "weight": 1.0, + "_src": "playlist_update_muted", + "_tgt": "playlist_playlist_increment_version", + "source": "playlist_update_muted", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L261", + "weight": 1.0, + "_src": "playlist_update_muted", + "_tgt": "logger_log_action", + "source": "playlist_update_muted", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L279", + "weight": 1.0, + "_src": "playlist_rationale_279", + "_tgt": "playlist_clear_playlist", + "source": "playlist_clear_playlist", + "target": "playlist_rationale_279", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L297", + "weight": 1.0, + "_src": "playlist_clear_playlist", + "_tgt": "playlist_playlist_increment_version", + "source": "playlist_clear_playlist", + "target": "playlist_playlist_increment_version" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/playlist.py", + "source_location": "L302", + "weight": 1.0, + "_src": "playlist_clear_playlist", + "_tgt": "logger_log_action", + "source": "playlist_clear_playlist", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L1", + "weight": 1.0, + "_src": "playlist_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_models_playlist_py", + "source": "playlist_rationale_1", + "target": "home_scheianu_digiserver_v2_app_models_playlist_py", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L103", + "weight": 0.8, + "_src": "playlist_rationale_1", + "_tgt": "content_content", + "source": "playlist_rationale_1", + "target": "content_content", + "confidence_score": 0.5 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L19", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_main_py", + "_tgt": "main_dashboard", + "source": "home_scheianu_digiserver_v2_app_blueprints_main_py", + "target": "main_dashboard", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L49", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_blueprints_main_py", + "_tgt": "main_health", + "source": "home_scheianu_digiserver_v2_app_blueprints_main_py", + "target": "main_health", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L1", + "weight": 1.0, + "_src": "main_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_blueprints_main_py", + "source": "home_scheianu_digiserver_v2_app_blueprints_main_py", + "target": "main_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L36", + "weight": 1.0, + "_src": "main_dashboard", + "_tgt": "logger_get_recent_logs", + "source": "main_dashboard", + "target": "logger_get_recent_logs" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L50", + "weight": 1.0, + "_src": "main_rationale_50", + "_tgt": "main_health", + "source": "main_health", + "target": "main_rationale_50", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L7", + "weight": 0.8, + "_src": "main_rationale_1", + "_tgt": "player_player", + "source": "main_rationale_1", + "target": "player_player", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L8", + "weight": 0.8, + "_src": "main_rationale_1", + "_tgt": "playlist_playlist", + "source": "main_rationale_1", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L9", + "weight": 0.8, + "_src": "main_rationale_1", + "_tgt": "content_content", + "source": "main_rationale_1", + "target": "content_content", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L7", + "weight": 0.8, + "_src": "main_rationale_50", + "_tgt": "player_player", + "source": "main_rationale_50", + "target": "player_player", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L8", + "weight": 0.8, + "_src": "main_rationale_50", + "_tgt": "playlist_playlist", + "source": "main_rationale_50", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/blueprints/main.py", + "source_location": "L9", + "weight": 0.8, + "_src": "main_rationale_50", + "_tgt": "content_content", + "source": "main_rationale_50", + "target": "content_content", + "confidence_score": 0.5 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", + "source_location": "L15", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_script_name_fix_py", + "_tgt": "script_name_fix_scriptnamefix", + "source": "home_scheianu_digiserver_v2_app_utils_script_name_fix_py", + "target": "script_name_fix_scriptnamefix", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", + "source_location": "L1", + "weight": 1.0, + "_src": "script_name_fix_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_utils_script_name_fix_py", + "source": "home_scheianu_digiserver_v2_app_utils_script_name_fix_py", + "target": "script_name_fix_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", + "source_location": "L16", + "weight": 1.0, + "_src": "script_name_fix_scriptnamefix", + "_tgt": "script_name_fix_scriptnamefix_init", + "source": "script_name_fix_scriptnamefix", + "target": "script_name_fix_scriptnamefix_init", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/script_name_fix.py", + "source_location": "L19", + "weight": 1.0, + "_src": "script_name_fix_scriptnamefix", + "_tgt": "script_name_fix_scriptnamefix_call", + "source": "script_name_fix_scriptnamefix", + "target": "script_name_fix_scriptnamefix_call", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", + "source_location": "L17", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_portal_sso_py", + "_tgt": "portal_sso_init_portal_sso", + "source": "home_scheianu_digiserver_v2_app_utils_portal_sso_py", + "target": "portal_sso_init_portal_sso", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", + "source_location": "L35", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_portal_sso_py", + "_tgt": "portal_sso_get_or_create_user", + "source": "home_scheianu_digiserver_v2_app_utils_portal_sso_py", + "target": "portal_sso_get_or_create_user", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", + "source_location": "L1", + "weight": 1.0, + "_src": "portal_sso_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_utils_portal_sso_py", + "source": "home_scheianu_digiserver_v2_app_utils_portal_sso_py", + "target": "portal_sso_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", + "source_location": "L18", + "weight": 1.0, + "_src": "portal_sso_rationale_18", + "_tgt": "portal_sso_init_portal_sso", + "source": "portal_sso_init_portal_sso", + "target": "portal_sso_rationale_18", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", + "source_location": "L43", + "weight": 1.0, + "_src": "portal_sso_get_or_create_user", + "_tgt": "user_user", + "source": "portal_sso_get_or_create_user", + "target": "user_user" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", + "source_location": "L36", + "weight": 0.8, + "_src": "portal_sso_rationale_1", + "_tgt": "user_user", + "source": "portal_sso_rationale_1", + "target": "user_user", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/portal_sso.py", + "source_location": "L36", + "weight": 0.8, + "_src": "portal_sso_rationale_18", + "_tgt": "user_user", + "source": "portal_sso_rationale_18", + "target": "user_user", + "confidence_score": 0.5 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L36", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", + "target": "caddy_manager_caddyconfiggenerator", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L40", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", + "_tgt": "caddy_manager_generate_caddyfile", + "source": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", + "target": "caddy_manager_generate_caddyfile", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L230", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", + "_tgt": "caddy_manager_write_caddyfile", + "source": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", + "target": "caddy_manager_write_caddyfile", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L249", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", + "_tgt": "caddy_manager_reload_caddy", + "source": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", + "target": "caddy_manager_reload_caddy", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L1", + "weight": 1.0, + "_src": "caddy_manager_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", + "source": "home_scheianu_digiserver_v2_app_utils_caddy_manager_py", + "target": "caddy_manager_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L37", + "weight": 1.0, + "_src": "caddy_manager_rationale_37", + "_tgt": "caddy_manager_caddyconfiggenerator", + "source": "caddy_manager_caddyconfiggenerator", + "target": "caddy_manager_rationale_37", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L4", + "weight": 0.8, + "_src": "caddy_manager_caddyconfiggenerator", + "_tgt": "https_config_httpsconfig", + "source": "caddy_manager_caddyconfiggenerator", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L51", + "weight": 1.0, + "_src": "caddy_manager_generate_caddyfile", + "_tgt": "https_config_get_config", + "source": "caddy_manager_generate_caddyfile", + "target": "https_config_get_config" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L136", + "weight": 1.0, + "_src": "caddy_manager_reload_caddy", + "_tgt": "https_config_get_config", + "source": "caddy_manager_reload_caddy", + "target": "https_config_get_config" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L4", + "weight": 0.8, + "_src": "caddy_manager_rationale_1", + "_tgt": "https_config_httpsconfig", + "source": "caddy_manager_rationale_1", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L4", + "weight": 0.8, + "_src": "caddy_manager_rationale_37", + "_tgt": "https_config_httpsconfig", + "source": "caddy_manager_rationale_37", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L4", + "weight": 0.8, + "_src": "caddy_manager_rationale_41", + "_tgt": "https_config_httpsconfig", + "source": "caddy_manager_rationale_41", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L4", + "weight": 0.8, + "_src": "caddy_manager_rationale_83", + "_tgt": "https_config_httpsconfig", + "source": "caddy_manager_rationale_83", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L4", + "weight": 0.8, + "_src": "caddy_manager_rationale_99", + "_tgt": "https_config_httpsconfig", + "source": "caddy_manager_rationale_99", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L4", + "weight": 0.8, + "_src": "caddy_manager_rationale_231", + "_tgt": "https_config_httpsconfig", + "source": "caddy_manager_rationale_231", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/caddy_manager.py", + "source_location": "L4", + "weight": 0.8, + "_src": "caddy_manager_rationale_250", + "_tgt": "https_config_httpsconfig", + "source": "caddy_manager_rationale_250", + "target": "https_config_httpsconfig", + "confidence_score": 0.5 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L10", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "_tgt": "group_player_management_get_player_status_info", + "source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "target": "group_player_management_get_player_status_info", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L54", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "_tgt": "group_player_management_get_group_statistics", + "source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "target": "group_player_management_get_group_statistics", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L98", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "_tgt": "group_player_management_assign_player_to_group", + "source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "target": "group_player_management_assign_player_to_group", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L133", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "_tgt": "group_player_management_bulk_assign_players_to_group", + "source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "target": "group_player_management_bulk_assign_players_to_group", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L168", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "_tgt": "group_player_management_get_online_players_count", + "source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "target": "group_player_management_get_online_players_count", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L178", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "_tgt": "group_player_management_get_players_by_status", + "source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "target": "group_player_management_get_players_by_status", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L190", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "_tgt": "group_player_management_format_time_ago", + "source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "target": "group_player_management_format_time_ago", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L1", + "weight": 1.0, + "_src": "group_player_management_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "source": "home_scheianu_digiserver_v2_app_utils_group_player_management_py", + "target": "group_player_management_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L44", + "weight": 1.0, + "_src": "group_player_management_get_player_status_info", + "_tgt": "group_player_management_format_time_ago", + "source": "group_player_management_get_player_status_info", + "target": "group_player_management_format_time_ago", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L11", + "weight": 1.0, + "_src": "group_player_management_rationale_11", + "_tgt": "group_player_management_get_player_status_info", + "source": "group_player_management_get_player_status_info", + "target": "group_player_management_rationale_11", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L186", + "weight": 1.0, + "_src": "blueprint_groups_manage_group", + "_tgt": "group_player_management_get_player_status_info", + "source": "group_player_management_get_player_status_info", + "target": "blueprint_groups_manage_group" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L225", + "weight": 1.0, + "_src": "blueprint_groups_group_fullscreen", + "_tgt": "group_player_management_get_player_status_info", + "source": "group_player_management_get_player_status_info", + "target": "blueprint_groups_group_fullscreen" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L55", + "weight": 1.0, + "_src": "group_player_management_rationale_55", + "_tgt": "group_player_management_get_group_statistics", + "source": "group_player_management_get_group_statistics", + "target": "group_player_management_rationale_55", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L24", + "weight": 1.0, + "_src": "blueprint_groups_groups_list", + "_tgt": "group_player_management_get_group_statistics", + "source": "group_player_management_get_group_statistics", + "target": "blueprint_groups_groups_list" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L397", + "weight": 1.0, + "_src": "blueprint_groups_group_stats", + "_tgt": "group_player_management_get_group_statistics", + "source": "group_player_management_get_group_statistics", + "target": "blueprint_groups_group_stats" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L99", + "weight": 1.0, + "_src": "group_player_management_rationale_99", + "_tgt": "group_player_management_assign_player_to_group", + "source": "group_player_management_assign_player_to_group", + "target": "group_player_management_rationale_99", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L112", + "weight": 1.0, + "_src": "group_player_management_assign_player_to_group", + "_tgt": "logger_log_action", + "source": "group_player_management_assign_player_to_group", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L134", + "weight": 1.0, + "_src": "group_player_management_rationale_134", + "_tgt": "group_player_management_bulk_assign_players_to_group", + "source": "group_player_management_bulk_assign_players_to_group", + "target": "group_player_management_rationale_134", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L156", + "weight": 1.0, + "_src": "group_player_management_bulk_assign_players_to_group", + "_tgt": "logger_log_action", + "source": "group_player_management_bulk_assign_players_to_group", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L169", + "weight": 1.0, + "_src": "group_player_management_rationale_169", + "_tgt": "group_player_management_get_online_players_count", + "source": "group_player_management_get_online_players_count", + "target": "group_player_management_rationale_169", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L179", + "weight": 1.0, + "_src": "group_player_management_rationale_179", + "_tgt": "group_player_management_get_players_by_status", + "source": "group_player_management_get_players_by_status", + "target": "group_player_management_rationale_179", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/group_player_management.py", + "source_location": "L191", + "weight": 1.0, + "_src": "group_player_management_rationale_191", + "_tgt": "group_player_management_format_time_ago", + "source": "group_player_management_format_time_ago", + "target": "group_player_management_rationale_191", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L15", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "_tgt": "ssh_deploy_get_local_player_code_status", + "source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "target": "ssh_deploy_get_local_player_code_status", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L85", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "_tgt": "ssh_deploy_test_ssh_connection", + "source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "target": "ssh_deploy_test_ssh_connection", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L149", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "_tgt": "ssh_deploy_generate_player_config", + "source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "target": "ssh_deploy_generate_player_config", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L208", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "_tgt": "ssh_deploy_detect_server_ip", + "source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "target": "ssh_deploy_detect_server_ip", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L241", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "_tgt": "ssh_deploy_parse_server_address", + "source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "target": "ssh_deploy_parse_server_address", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L267", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "_tgt": "ssh_deploy_generate_app_config", + "source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "target": "ssh_deploy_generate_app_config", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L311", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "_tgt": "ssh_deploy_deploy_player_to_host", + "source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "target": "ssh_deploy_deploy_player_to_host", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L1", + "weight": 1.0, + "_src": "ssh_deploy_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "source": "home_scheianu_digiserver_v2_app_utils_ssh_deploy_py", + "target": "ssh_deploy_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L404", + "weight": 1.0, + "_src": "ssh_deploy_deploy_player_to_host", + "_tgt": "ssh_deploy_get_local_player_code_status", + "source": "ssh_deploy_get_local_player_code_status", + "target": "ssh_deploy_deploy_player_to_host", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L16", + "weight": 1.0, + "_src": "ssh_deploy_rationale_16", + "_tgt": "ssh_deploy_get_local_player_code_status", + "source": "ssh_deploy_get_local_player_code_status", + "target": "ssh_deploy_rationale_16", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L352", + "weight": 1.0, + "_src": "ssh_deploy_deploy_player_to_host", + "_tgt": "ssh_deploy_test_ssh_connection", + "source": "ssh_deploy_test_ssh_connection", + "target": "ssh_deploy_deploy_player_to_host", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L86", + "weight": 1.0, + "_src": "ssh_deploy_rationale_86", + "_tgt": "ssh_deploy_test_ssh_connection", + "source": "ssh_deploy_test_ssh_connection", + "target": "ssh_deploy_rationale_86", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L156", + "weight": 1.0, + "_src": "ssh_deploy_rationale_156", + "_tgt": "ssh_deploy_generate_player_config", + "source": "ssh_deploy_generate_player_config", + "target": "ssh_deploy_rationale_156", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L209", + "weight": 1.0, + "_src": "ssh_deploy_rationale_209", + "_tgt": "ssh_deploy_detect_server_ip", + "source": "ssh_deploy_detect_server_ip", + "target": "ssh_deploy_rationale_209", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L511", + "weight": 1.0, + "_src": "ssh_deploy_deploy_player_to_host", + "_tgt": "ssh_deploy_parse_server_address", + "source": "ssh_deploy_parse_server_address", + "target": "ssh_deploy_deploy_player_to_host", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L242", + "weight": 1.0, + "_src": "ssh_deploy_rationale_242", + "_tgt": "ssh_deploy_parse_server_address", + "source": "ssh_deploy_parse_server_address", + "target": "ssh_deploy_rationale_242", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L512", + "weight": 1.0, + "_src": "ssh_deploy_deploy_player_to_host", + "_tgt": "ssh_deploy_generate_app_config", + "source": "ssh_deploy_generate_app_config", + "target": "ssh_deploy_deploy_player_to_host", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L277", + "weight": 1.0, + "_src": "ssh_deploy_rationale_277", + "_tgt": "ssh_deploy_generate_app_config", + "source": "ssh_deploy_generate_app_config", + "target": "ssh_deploy_rationale_277", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L145", + "weight": 1.0, + "_src": "player_build_write_base_config", + "_tgt": "ssh_deploy_generate_app_config", + "source": "ssh_deploy_generate_app_config", + "target": "player_build_write_base_config" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/ssh_deploy.py", + "source_location": "L326", + "weight": 1.0, + "_src": "ssh_deploy_rationale_326", + "_tgt": "ssh_deploy_deploy_player_to_host", + "source": "ssh_deploy_deploy_player_to_host", + "target": "ssh_deploy_rationale_326", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", + "source_location": "L78", + "weight": 1.0, + "_src": "background_tasks_background_player_deployment", + "_tgt": "ssh_deploy_deploy_player_to_host", + "source": "ssh_deploy_deploy_player_to_host", + "target": "background_tasks_background_player_deployment" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L11", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", + "_tgt": "pptx_converter_cleanup_libreoffice_processes", + "source": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", + "target": "pptx_converter_cleanup_libreoffice_processes", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L20", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", + "_tgt": "pptx_converter_pptx_to_pdf_libreoffice", + "source": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", + "target": "pptx_converter_pptx_to_pdf_libreoffice", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L86", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", + "_tgt": "pptx_converter_validate_pptx_file", + "source": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", + "target": "pptx_converter_validate_pptx_file", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L1", + "weight": 1.0, + "_src": "pptx_converter_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", + "source": "home_scheianu_digiserver_v2_app_utils_pptx_converter_py", + "target": "pptx_converter_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L35", + "weight": 1.0, + "_src": "pptx_converter_pptx_to_pdf_libreoffice", + "_tgt": "pptx_converter_cleanup_libreoffice_processes", + "source": "pptx_converter_cleanup_libreoffice_processes", + "target": "pptx_converter_pptx_to_pdf_libreoffice", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L12", + "weight": 1.0, + "_src": "pptx_converter_rationale_12", + "_tgt": "pptx_converter_cleanup_libreoffice_processes", + "source": "pptx_converter_cleanup_libreoffice_processes", + "target": "pptx_converter_rationale_12", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L21", + "weight": 1.0, + "_src": "pptx_converter_rationale_21", + "_tgt": "pptx_converter_pptx_to_pdf_libreoffice", + "source": "pptx_converter_pptx_to_pdf_libreoffice", + "target": "pptx_converter_rationale_21", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/pptx_converter.py", + "source_location": "L87", + "weight": 1.0, + "_src": "pptx_converter_rationale_87", + "_tgt": "pptx_converter_validate_pptx_file", + "source": "pptx_converter_validate_pptx_file", + "target": "pptx_converter_rationale_87", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L17", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "_tgt": "uploads_get_upload_progress", + "source": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "target": "uploads_get_upload_progress", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L33", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "_tgt": "uploads_set_upload_progress", + "source": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "target": "uploads_set_upload_progress", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L50", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "_tgt": "uploads_clear_upload_progress", + "source": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "target": "uploads_clear_upload_progress", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L60", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "_tgt": "uploads_save_uploaded_file", + "source": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "target": "uploads_save_uploaded_file", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L94", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "_tgt": "uploads_process_video_file", + "source": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "target": "uploads_process_video_file", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L176", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "_tgt": "uploads_process_pdf_file", + "source": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "target": "uploads_process_pdf_file", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L209", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "_tgt": "uploads_get_file_size", + "source": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "target": "uploads_get_file_size", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L224", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "_tgt": "uploads_delete_file", + "source": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "target": "uploads_delete_file", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L1", + "weight": 1.0, + "_src": "uploads_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "source": "home_scheianu_digiserver_v2_app_utils_uploads_py", + "target": "uploads_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L18", + "weight": 1.0, + "_src": "uploads_rationale_18", + "_tgt": "uploads_get_upload_progress", + "source": "uploads_get_upload_progress", + "target": "uploads_rationale_18", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L106", + "weight": 1.0, + "_src": "uploads_process_video_file", + "_tgt": "uploads_set_upload_progress", + "source": "uploads_set_upload_progress", + "target": "uploads_process_video_file", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L188", + "weight": 1.0, + "_src": "uploads_process_pdf_file", + "_tgt": "uploads_set_upload_progress", + "source": "uploads_set_upload_progress", + "target": "uploads_process_pdf_file", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L35", + "weight": 1.0, + "_src": "uploads_rationale_35", + "_tgt": "uploads_set_upload_progress", + "source": "uploads_set_upload_progress", + "target": "uploads_rationale_35", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L51", + "weight": 1.0, + "_src": "uploads_rationale_51", + "_tgt": "uploads_clear_upload_progress", + "source": "uploads_clear_upload_progress", + "target": "uploads_rationale_51", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L62", + "weight": 1.0, + "_src": "uploads_rationale_62", + "_tgt": "uploads_save_uploaded_file", + "source": "uploads_save_uploaded_file", + "target": "uploads_rationale_62", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L86", + "weight": 1.0, + "_src": "uploads_save_uploaded_file", + "_tgt": "logger_log_action", + "source": "uploads_save_uploaded_file", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L95", + "weight": 1.0, + "_src": "uploads_rationale_95", + "_tgt": "uploads_process_video_file", + "source": "uploads_process_video_file", + "target": "uploads_rationale_95", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L137", + "weight": 1.0, + "_src": "uploads_process_video_file", + "_tgt": "logger_log_action", + "source": "uploads_process_video_file", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L177", + "weight": 1.0, + "_src": "uploads_rationale_177", + "_tgt": "uploads_process_pdf_file", + "source": "uploads_process_pdf_file", + "target": "uploads_rationale_177", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L192", + "weight": 1.0, + "_src": "uploads_process_pdf_file", + "_tgt": "logger_log_action", + "source": "uploads_process_pdf_file", + "target": "logger_log_action" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L210", + "weight": 1.0, + "_src": "uploads_rationale_210", + "_tgt": "uploads_get_file_size", + "source": "uploads_get_file_size", + "target": "uploads_rationale_210", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L225", + "weight": 1.0, + "_src": "uploads_rationale_225", + "_tgt": "uploads_delete_file", + "source": "uploads_delete_file", + "target": "uploads_rationale_225", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/uploads.py", + "source_location": "L236", + "weight": 1.0, + "_src": "uploads_delete_file", + "_tgt": "logger_log_action", + "source": "uploads_delete_file", + "target": "logger_log_action" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L9", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_logger_py", + "_tgt": "logger_log_action", + "source": "home_scheianu_digiserver_v2_app_utils_logger_py", + "target": "logger_log_action", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L26", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_logger_py", + "_tgt": "logger_get_recent_logs", + "source": "home_scheianu_digiserver_v2_app_utils_logger_py", + "target": "logger_get_recent_logs", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L44", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_logger_py", + "_tgt": "logger_clear_old_logs", + "source": "home_scheianu_digiserver_v2_app_utils_logger_py", + "target": "logger_clear_old_logs", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L66", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_logger_py", + "_tgt": "logger_log_info", + "source": "home_scheianu_digiserver_v2_app_utils_logger_py", + "target": "logger_log_info", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L71", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_logger_py", + "_tgt": "logger_log_warning", + "source": "home_scheianu_digiserver_v2_app_utils_logger_py", + "target": "logger_log_warning", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L76", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_logger_py", + "_tgt": "logger_log_error", + "source": "home_scheianu_digiserver_v2_app_utils_logger_py", + "target": "logger_log_error", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L1", + "weight": 1.0, + "_src": "logger_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_utils_logger_py", + "source": "home_scheianu_digiserver_v2_app_utils_logger_py", + "target": "logger_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L57", + "weight": 1.0, + "_src": "logger_clear_old_logs", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "logger_clear_old_logs", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L68", + "weight": 1.0, + "_src": "logger_log_info", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "logger_log_info", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L73", + "weight": 1.0, + "_src": "logger_log_warning", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "logger_log_warning", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L78", + "weight": 1.0, + "_src": "logger_log_error", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "logger_log_error", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L10", + "weight": 1.0, + "_src": "logger_rationale_10", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "logger_rationale_10", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L17", + "weight": 1.0, + "_src": "logger_log_action", + "_tgt": "server_log_serverlog", + "source": "logger_log_action", + "target": "server_log_serverlog" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", + "source_location": "L99", + "weight": 1.0, + "_src": "background_tasks_background_player_deployment", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "background_tasks_background_player_deployment" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L31", + "weight": 1.0, + "_src": "blueprint_groups_groups_list", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "blueprint_groups_groups_list" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L76", + "weight": 1.0, + "_src": "blueprint_groups_create_group", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "blueprint_groups_create_group" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L134", + "weight": 1.0, + "_src": "blueprint_groups_edit_group", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "blueprint_groups_edit_group" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L162", + "weight": 1.0, + "_src": "blueprint_groups_delete_group", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "blueprint_groups_delete_group" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L208", + "weight": 1.0, + "_src": "blueprint_groups_manage_group", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "blueprint_groups_manage_group" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L233", + "weight": 1.0, + "_src": "blueprint_groups_group_fullscreen", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "blueprint_groups_group_fullscreen" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L256", + "weight": 1.0, + "_src": "blueprint_groups_add_player_to_group", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "blueprint_groups_add_player_to_group" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L285", + "weight": 1.0, + "_src": "blueprint_groups_remove_player_from_group", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "blueprint_groups_remove_player_from_group" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L322", + "weight": 1.0, + "_src": "blueprint_groups_add_content_to_group", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "blueprint_groups_add_content_to_group" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L352", + "weight": 1.0, + "_src": "blueprint_groups_remove_content_from_group", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "blueprint_groups_remove_content_from_group" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L383", + "weight": 1.0, + "_src": "blueprint_groups_reorder_group_content", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "blueprint_groups_reorder_group_content" + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L400", + "weight": 1.0, + "_src": "blueprint_groups_group_stats", + "_tgt": "logger_log_action", + "source": "logger_log_action", + "target": "blueprint_groups_group_stats" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L27", + "weight": 1.0, + "_src": "logger_rationale_27", + "_tgt": "logger_get_recent_logs", + "source": "logger_get_recent_logs", + "target": "logger_rationale_27", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L45", + "weight": 1.0, + "_src": "logger_rationale_45", + "_tgt": "logger_clear_old_logs", + "source": "logger_clear_old_logs", + "target": "logger_rationale_45", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L67", + "weight": 1.0, + "_src": "logger_rationale_67", + "_tgt": "logger_log_info", + "source": "logger_log_info", + "target": "logger_rationale_67", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L72", + "weight": 1.0, + "_src": "logger_rationale_72", + "_tgt": "logger_log_warning", + "source": "logger_log_warning", + "target": "logger_rationale_72", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L77", + "weight": 1.0, + "_src": "logger_rationale_77", + "_tgt": "logger_log_error", + "source": "logger_log_error", + "target": "logger_rationale_77", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L6", + "weight": 0.8, + "_src": "logger_rationale_1", + "_tgt": "server_log_serverlog", + "source": "logger_rationale_1", + "target": "server_log_serverlog", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L6", + "weight": 0.8, + "_src": "logger_rationale_10", + "_tgt": "server_log_serverlog", + "source": "logger_rationale_10", + "target": "server_log_serverlog", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L6", + "weight": 0.8, + "_src": "logger_rationale_27", + "_tgt": "server_log_serverlog", + "source": "logger_rationale_27", + "target": "server_log_serverlog", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L6", + "weight": 0.8, + "_src": "logger_rationale_45", + "_tgt": "server_log_serverlog", + "source": "logger_rationale_45", + "target": "server_log_serverlog", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L6", + "weight": 0.8, + "_src": "logger_rationale_67", + "_tgt": "server_log_serverlog", + "source": "logger_rationale_67", + "target": "server_log_serverlog", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L6", + "weight": 0.8, + "_src": "logger_rationale_72", + "_tgt": "server_log_serverlog", + "source": "logger_rationale_72", + "target": "server_log_serverlog", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/logger.py", + "source_location": "L6", + "weight": 0.8, + "_src": "logger_rationale_77", + "_tgt": "server_log_serverlog", + "source": "logger_rationale_77", + "target": "server_log_serverlog", + "confidence_score": 0.5 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L28", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "_tgt": "player_build_run_git", + "source": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "target": "player_build_run_git", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L38", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "_tgt": "player_build_get_short_head", + "source": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "target": "player_build_get_short_head", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L49", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "_tgt": "player_build_build_player_files", + "source": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "target": "player_build_build_player_files", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L128", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "_tgt": "player_build_write_base_config", + "source": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "target": "player_build_write_base_config", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L165", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "_tgt": "player_build_load_build_settings", + "source": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "target": "player_build_load_build_settings", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L176", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "_tgt": "player_build_save_build_settings", + "source": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "target": "player_build_save_build_settings", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L188", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "_tgt": "player_build_get_player_server_settings", + "source": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "target": "player_build_get_player_server_settings", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L208", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "_tgt": "player_build_make_build_record", + "source": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "target": "player_build_make_build_record", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L1", + "weight": 1.0, + "_src": "player_build_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "source": "home_scheianu_digiserver_v2_app_utils_player_build_py", + "target": "player_build_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L41", + "weight": 1.0, + "_src": "player_build_get_short_head", + "_tgt": "player_build_run_git", + "source": "player_build_run_git", + "target": "player_build_get_short_head", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L70", + "weight": 1.0, + "_src": "player_build_build_player_files", + "_tgt": "player_build_run_git", + "source": "player_build_run_git", + "target": "player_build_build_player_files", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L75", + "weight": 1.0, + "_src": "player_build_build_player_files", + "_tgt": "player_build_get_short_head", + "source": "player_build_get_short_head", + "target": "player_build_build_player_files", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L39", + "weight": 1.0, + "_src": "player_build_rationale_39", + "_tgt": "player_build_get_short_head", + "source": "player_build_get_short_head", + "target": "player_build_rationale_39", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L50", + "weight": 1.0, + "_src": "player_build_rationale_50", + "_tgt": "player_build_build_player_files", + "source": "player_build_build_player_files", + "target": "player_build_rationale_50", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L137", + "weight": 1.0, + "_src": "player_build_rationale_137", + "_tgt": "player_build_write_base_config", + "source": "player_build_write_base_config", + "target": "player_build_rationale_137", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L194", + "weight": 1.0, + "_src": "player_build_get_player_server_settings", + "_tgt": "player_build_load_build_settings", + "source": "player_build_load_build_settings", + "target": "player_build_get_player_server_settings", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L166", + "weight": 1.0, + "_src": "player_build_rationale_166", + "_tgt": "player_build_load_build_settings", + "source": "player_build_load_build_settings", + "target": "player_build_rationale_166", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L177", + "weight": 1.0, + "_src": "player_build_rationale_177", + "_tgt": "player_build_save_build_settings", + "source": "player_build_save_build_settings", + "target": "player_build_rationale_177", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L189", + "weight": 1.0, + "_src": "player_build_rationale_189", + "_tgt": "player_build_get_player_server_settings", + "source": "player_build_get_player_server_settings", + "target": "player_build_rationale_189", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/player_build.py", + "source_location": "L210", + "weight": 1.0, + "_src": "player_build_rationale_210", + "_tgt": "player_build_make_build_record", + "source": "player_build_make_build_record", + "target": "player_build_rationale_210", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L7", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py", + "_tgt": "nginx_config_reader_nginxconfigreader", + "source": "home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py", + "target": "nginx_config_reader_nginxconfigreader", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L117", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py", + "_tgt": "nginx_config_reader_get_nginx_status", + "source": "home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py", + "target": "nginx_config_reader_get_nginx_status", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L1", + "weight": 1.0, + "_src": "nginx_config_reader_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py", + "source": "home_scheianu_digiserver_v2_app_utils_nginx_config_reader_py", + "target": "nginx_config_reader_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L10", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader", + "_tgt": "nginx_config_reader_nginxconfigreader_init", + "source": "nginx_config_reader_nginxconfigreader", + "target": "nginx_config_reader_nginxconfigreader_init", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L24", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader", + "_tgt": "nginx_config_reader_nginxconfigreader_get_status", + "source": "nginx_config_reader_nginxconfigreader", + "target": "nginx_config_reader_nginxconfigreader_get_status", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L47", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader", + "_tgt": "nginx_config_reader_nginxconfigreader_check_ssl_enabled", + "source": "nginx_config_reader_nginxconfigreader", + "target": "nginx_config_reader_nginxconfigreader_check_ssl_enabled", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L53", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_http_ports", + "source": "nginx_config_reader_nginxconfigreader", + "target": "nginx_config_reader_nginxconfigreader_extract_http_ports", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L61", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_https_ports", + "source": "nginx_config_reader_nginxconfigreader", + "target": "nginx_config_reader_nginxconfigreader_extract_https_ports", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L69", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", + "source": "nginx_config_reader_nginxconfigreader", + "target": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L80", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_server_names", + "source": "nginx_config_reader_nginxconfigreader", + "target": "nginx_config_reader_nginxconfigreader_extract_server_names", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L92", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", + "source": "nginx_config_reader_nginxconfigreader", + "target": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L102", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", + "source": "nginx_config_reader_nginxconfigreader", + "target": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L110", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader", + "_tgt": "nginx_config_reader_nginxconfigreader_check_gzip_enabled", + "source": "nginx_config_reader_nginxconfigreader", + "target": "nginx_config_reader_nginxconfigreader_check_gzip_enabled", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L119", + "weight": 1.0, + "_src": "nginx_config_reader_get_nginx_status", + "_tgt": "nginx_config_reader_nginxconfigreader", + "source": "nginx_config_reader_nginxconfigreader", + "target": "nginx_config_reader_get_nginx_status", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L8", + "weight": 1.0, + "_src": "nginx_config_reader_rationale_8", + "_tgt": "nginx_config_reader_nginxconfigreader", + "source": "nginx_config_reader_nginxconfigreader", + "target": "nginx_config_reader_rationale_8", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L11", + "weight": 1.0, + "_src": "nginx_config_reader_rationale_11", + "_tgt": "nginx_config_reader_nginxconfigreader_init", + "source": "nginx_config_reader_nginxconfigreader_init", + "target": "nginx_config_reader_rationale_11", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L37", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader_get_status", + "_tgt": "nginx_config_reader_nginxconfigreader_check_ssl_enabled", + "source": "nginx_config_reader_nginxconfigreader_get_status", + "target": "nginx_config_reader_nginxconfigreader_check_ssl_enabled", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L38", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader_get_status", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_http_ports", + "source": "nginx_config_reader_nginxconfigreader_get_status", + "target": "nginx_config_reader_nginxconfigreader_extract_http_ports", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L39", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader_get_status", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_https_ports", + "source": "nginx_config_reader_nginxconfigreader_get_status", + "target": "nginx_config_reader_nginxconfigreader_extract_https_ports", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L40", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader_get_status", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", + "source": "nginx_config_reader_nginxconfigreader_get_status", + "target": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L41", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader_get_status", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_server_names", + "source": "nginx_config_reader_nginxconfigreader_get_status", + "target": "nginx_config_reader_nginxconfigreader_extract_server_names", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L42", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader_get_status", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", + "source": "nginx_config_reader_nginxconfigreader_get_status", + "target": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L43", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader_get_status", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", + "source": "nginx_config_reader_nginxconfigreader_get_status", + "target": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L44", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader_get_status", + "_tgt": "nginx_config_reader_nginxconfigreader_check_gzip_enabled", + "source": "nginx_config_reader_nginxconfigreader_get_status", + "target": "nginx_config_reader_nginxconfigreader_check_gzip_enabled", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L120", + "weight": 1.0, + "_src": "nginx_config_reader_get_nginx_status", + "_tgt": "nginx_config_reader_nginxconfigreader_get_status", + "source": "nginx_config_reader_nginxconfigreader_get_status", + "target": "nginx_config_reader_get_nginx_status", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L25", + "weight": 1.0, + "_src": "nginx_config_reader_rationale_25", + "_tgt": "nginx_config_reader_nginxconfigreader_get_status", + "source": "nginx_config_reader_nginxconfigreader_get_status", + "target": "nginx_config_reader_rationale_25", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L48", + "weight": 1.0, + "_src": "nginx_config_reader_rationale_48", + "_tgt": "nginx_config_reader_nginxconfigreader_check_ssl_enabled", + "source": "nginx_config_reader_nginxconfigreader_check_ssl_enabled", + "target": "nginx_config_reader_rationale_48", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L54", + "weight": 1.0, + "_src": "nginx_config_reader_rationale_54", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_http_ports", + "source": "nginx_config_reader_nginxconfigreader_extract_http_ports", + "target": "nginx_config_reader_rationale_54", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L62", + "weight": 1.0, + "_src": "nginx_config_reader_rationale_62", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_https_ports", + "source": "nginx_config_reader_nginxconfigreader_extract_https_ports", + "target": "nginx_config_reader_rationale_62", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L70", + "weight": 1.0, + "_src": "nginx_config_reader_rationale_70", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", + "source": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", + "target": "nginx_config_reader_rationale_70", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L75", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", + "_tgt": "group_group", + "source": "nginx_config_reader_nginxconfigreader_extract_upstream_servers", + "target": "group_group" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L81", + "weight": 1.0, + "_src": "nginx_config_reader_rationale_81", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_server_names", + "source": "nginx_config_reader_nginxconfigreader_extract_server_names", + "target": "nginx_config_reader_rationale_81", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L93", + "weight": 1.0, + "_src": "nginx_config_reader_rationale_93", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", + "source": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", + "target": "nginx_config_reader_rationale_93", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L99", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", + "_tgt": "group_group", + "source": "nginx_config_reader_nginxconfigreader_extract_ssl_protocols", + "target": "group_group" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L103", + "weight": 1.0, + "_src": "nginx_config_reader_rationale_103", + "_tgt": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", + "source": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", + "target": "nginx_config_reader_rationale_103", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L108", + "weight": 1.0, + "_src": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", + "_tgt": "group_group", + "source": "nginx_config_reader_nginxconfigreader_extract_client_max_body_size", + "target": "group_group" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L111", + "weight": 1.0, + "_src": "nginx_config_reader_rationale_111", + "_tgt": "nginx_config_reader_nginxconfigreader_check_gzip_enabled", + "source": "nginx_config_reader_nginxconfigreader_check_gzip_enabled", + "target": "nginx_config_reader_rationale_111", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/nginx_config_reader.py", + "source_location": "L118", + "weight": 1.0, + "_src": "nginx_config_reader_rationale_118", + "_tgt": "nginx_config_reader_get_nginx_status", + "source": "nginx_config_reader_get_nginx_status", + "target": "nginx_config_reader_rationale_118", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", + "source_location": "L9", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_background_tasks_py", + "_tgt": "background_tasks_run_background_task", + "source": "home_scheianu_digiserver_v2_app_utils_background_tasks_py", + "target": "background_tasks_run_background_task", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", + "source_location": "L29", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_utils_background_tasks_py", + "_tgt": "background_tasks_background_player_deployment", + "source": "home_scheianu_digiserver_v2_app_utils_background_tasks_py", + "target": "background_tasks_background_player_deployment", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", + "source_location": "L1", + "weight": 1.0, + "_src": "background_tasks_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_utils_background_tasks_py", + "source": "home_scheianu_digiserver_v2_app_utils_background_tasks_py", + "target": "background_tasks_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", + "source_location": "L10", + "weight": 1.0, + "_src": "background_tasks_rationale_10", + "_tgt": "background_tasks_run_background_task", + "source": "background_tasks_run_background_task", + "target": "background_tasks_rationale_10", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/utils/background_tasks.py", + "source_location": "L43", + "weight": 1.0, + "_src": "background_tasks_rationale_43", + "_tgt": "background_tasks_background_player_deployment", + "source": "background_tasks_background_player_deployment", + "target": "background_tasks_rationale_43", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L8", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_player_feedback_py", + "_tgt": "player_feedback_playerfeedback", + "source": "home_scheianu_digiserver_v2_app_models_player_feedback_py", + "target": "player_feedback_playerfeedback", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L42", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_player_feedback_py", + "_tgt": "player_feedback_is_error", + "source": "home_scheianu_digiserver_v2_app_models_player_feedback_py", + "target": "player_feedback_is_error", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L47", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_player_feedback_py", + "_tgt": "player_feedback_age_seconds", + "source": "home_scheianu_digiserver_v2_app_models_player_feedback_py", + "target": "player_feedback_age_seconds", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L53", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_player_feedback_py", + "_tgt": "player_feedback_get_latest_for_player", + "source": "home_scheianu_digiserver_v2_app_models_player_feedback_py", + "target": "player_feedback_get_latest_for_player", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L1", + "weight": 1.0, + "_src": "player_feedback_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_models_player_feedback_py", + "source": "home_scheianu_digiserver_v2_app_models_player_feedback_py", + "target": "player_feedback_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L37", + "weight": 1.0, + "_src": "player_feedback_playerfeedback", + "_tgt": "player_feedback_playerfeedback_repr", + "source": "player_feedback_playerfeedback", + "target": "player_feedback_playerfeedback_repr", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L9", + "weight": 1.0, + "_src": "player_feedback_rationale_9", + "_tgt": "player_feedback_playerfeedback", + "source": "player_feedback_playerfeedback", + "target": "player_feedback_rationale_9", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_feedback.py", + "source_location": "L38", + "weight": 1.0, + "_src": "player_feedback_rationale_38", + "_tgt": "player_feedback_playerfeedback_repr", + "source": "player_feedback_playerfeedback_repr", + "target": "player_feedback_rationale_38", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L8", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_https_config_py", + "_tgt": "https_config_httpsconfig", + "source": "home_scheianu_digiserver_v2_app_models_https_config_py", + "target": "https_config_httpsconfig", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L43", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_https_config_py", + "_tgt": "https_config_get_config", + "source": "home_scheianu_digiserver_v2_app_models_https_config_py", + "target": "https_config_get_config", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L52", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_https_config_py", + "_tgt": "https_config_create_or_update", + "source": "home_scheianu_digiserver_v2_app_models_https_config_py", + "target": "https_config_create_or_update", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L1", + "weight": 1.0, + "_src": "https_config_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_models_https_config_py", + "source": "home_scheianu_digiserver_v2_app_models_https_config_py", + "target": "https_config_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L37", + "weight": 1.0, + "_src": "https_config_httpsconfig", + "_tgt": "https_config_httpsconfig_repr", + "source": "https_config_httpsconfig", + "target": "https_config_httpsconfig_repr", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L87", + "weight": 1.0, + "_src": "https_config_httpsconfig", + "_tgt": "https_config_httpsconfig_to_dict", + "source": "https_config_httpsconfig", + "target": "https_config_httpsconfig_to_dict", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L9", + "weight": 1.0, + "_src": "https_config_rationale_9", + "_tgt": "https_config_httpsconfig", + "source": "https_config_httpsconfig", + "target": "https_config_rationale_9", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L38", + "weight": 1.0, + "_src": "https_config_rationale_38", + "_tgt": "https_config_httpsconfig_repr", + "source": "https_config_httpsconfig_repr", + "target": "https_config_rationale_38", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L70", + "weight": 1.0, + "_src": "https_config_create_or_update", + "_tgt": "https_config_get_config", + "source": "https_config_get_config", + "target": "https_config_create_or_update", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/https_config.py", + "source_location": "L88", + "weight": 1.0, + "_src": "https_config_rationale_88", + "_tgt": "https_config_httpsconfig_to_dict", + "source": "https_config_httpsconfig_to_dict", + "target": "https_config_rationale_88", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L10", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_user_py", + "_tgt": "user_user", + "source": "home_scheianu_digiserver_v2_app_models_user_py", + "target": "user_user", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L37", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_user_py", + "_tgt": "user_is_admin", + "source": "home_scheianu_digiserver_v2_app_models_user_py", + "target": "user_is_admin", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L1", + "weight": 1.0, + "_src": "user_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_models_user_py", + "source": "home_scheianu_digiserver_v2_app_models_user_py", + "target": "user_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L10", + "weight": 1.0, + "_src": "user_user", + "_tgt": "usermixin", + "source": "user_user", + "target": "usermixin", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L32", + "weight": 1.0, + "_src": "user_user", + "_tgt": "user_user_repr", + "source": "user_user", + "target": "user_user_repr", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L41", + "weight": 1.0, + "_src": "user_user", + "_tgt": "user_user_update_last_login", + "source": "user_user", + "target": "user_user_update_last_login", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L11", + "weight": 1.0, + "_src": "user_rationale_11", + "_tgt": "user_user", + "source": "user_user", + "target": "user_rationale_11", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L33", + "weight": 1.0, + "_src": "user_rationale_33", + "_tgt": "user_user_repr", + "source": "user_user_repr", + "target": "user_rationale_33", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/user.py", + "source_location": "L42", + "weight": 1.0, + "_src": "user_rationale_42", + "_tgt": "user_user_update_last_login", + "source": "user_user_update_last_login", + "target": "user_rationale_42", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L8", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_player_py", + "_tgt": "player_player", + "source": "home_scheianu_digiserver_v2_app_models_player_py", + "target": "player_player", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L60", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_player_py", + "_tgt": "player_is_online", + "source": "home_scheianu_digiserver_v2_app_models_player_py", + "target": "player_is_online", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L121", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_player_py", + "_tgt": "player_authenticate", + "source": "home_scheianu_digiserver_v2_app_models_player_py", + "target": "player_authenticate", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L1", + "weight": 1.0, + "_src": "player_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_models_player_py", + "source": "home_scheianu_digiserver_v2_app_models_player_py", + "target": "player_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L55", + "weight": 1.0, + "_src": "player_player", + "_tgt": "player_player_repr", + "source": "player_player", + "target": "player_player_repr", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L67", + "weight": 1.0, + "_src": "player_player", + "_tgt": "player_player_update_status", + "source": "player_player", + "target": "player_player_update_status", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L76", + "weight": 1.0, + "_src": "player_player", + "_tgt": "player_player_set_password", + "source": "player_player", + "target": "player_player_set_password", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L85", + "weight": 1.0, + "_src": "player_player", + "_tgt": "player_player_check_password", + "source": "player_player", + "target": "player_player_check_password", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L97", + "weight": 1.0, + "_src": "player_player", + "_tgt": "player_player_set_quickconnect_code", + "source": "player_player", + "target": "player_player_set_quickconnect_code", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L106", + "weight": 1.0, + "_src": "player_player", + "_tgt": "player_player_check_quickconnect_code", + "source": "player_player", + "target": "player_player_check_quickconnect_code", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L9", + "weight": 1.0, + "_src": "player_rationale_9", + "_tgt": "player_player", + "source": "player_player", + "target": "player_rationale_9", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L56", + "weight": 1.0, + "_src": "player_rationale_56", + "_tgt": "player_player_repr", + "source": "player_player_repr", + "target": "player_rationale_56", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L68", + "weight": 1.0, + "_src": "player_rationale_68", + "_tgt": "player_player_update_status", + "source": "player_player_update_status", + "target": "player_rationale_68", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L77", + "weight": 1.0, + "_src": "player_rationale_77", + "_tgt": "player_player_set_password", + "source": "player_player_set_password", + "target": "player_rationale_77", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L137", + "weight": 1.0, + "_src": "player_authenticate", + "_tgt": "player_player_check_password", + "source": "player_player_check_password", + "target": "player_authenticate", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L86", + "weight": 1.0, + "_src": "player_rationale_86", + "_tgt": "player_player_check_password", + "source": "player_player_check_password", + "target": "player_rationale_86", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L98", + "weight": 1.0, + "_src": "player_rationale_98", + "_tgt": "player_player_set_quickconnect_code", + "source": "player_player_set_quickconnect_code", + "target": "player_rationale_98", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L141", + "weight": 1.0, + "_src": "player_authenticate", + "_tgt": "player_player_check_quickconnect_code", + "source": "player_player_check_quickconnect_code", + "target": "player_authenticate", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player.py", + "source_location": "L107", + "weight": 1.0, + "_src": "player_rationale_107", + "_tgt": "player_player_check_quickconnect_code", + "source": "player_player_check_quickconnect_code", + "target": "player_rationale_107", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L8", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_server_log_py", + "_tgt": "server_log_serverlog", + "source": "home_scheianu_digiserver_v2_app_models_server_log_py", + "target": "server_log_serverlog", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L30", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_server_log_py", + "_tgt": "server_log_log_info", + "source": "home_scheianu_digiserver_v2_app_models_server_log_py", + "target": "server_log_log_info", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L45", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_server_log_py", + "_tgt": "server_log_log_warning", + "source": "home_scheianu_digiserver_v2_app_models_server_log_py", + "target": "server_log_log_warning", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L60", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_server_log_py", + "_tgt": "server_log_log_error", + "source": "home_scheianu_digiserver_v2_app_models_server_log_py", + "target": "server_log_log_error", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L1", + "weight": 1.0, + "_src": "server_log_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_models_server_log_py", + "source": "home_scheianu_digiserver_v2_app_models_server_log_py", + "target": "server_log_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L25", + "weight": 1.0, + "_src": "server_log_serverlog", + "_tgt": "server_log_serverlog_repr", + "source": "server_log_serverlog", + "target": "server_log_serverlog_repr", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L9", + "weight": 1.0, + "_src": "server_log_rationale_9", + "_tgt": "server_log_serverlog", + "source": "server_log_serverlog", + "target": "server_log_rationale_9", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/server_log.py", + "source_location": "L26", + "weight": 1.0, + "_src": "server_log_rationale_26", + "_tgt": "server_log_serverlog_repr", + "source": "server_log_serverlog_repr", + "target": "server_log_rationale_26", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L7", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_player_user_py", + "_tgt": "player_user_playeruser", + "source": "home_scheianu_digiserver_v2_app_models_player_user_py", + "target": "player_user_playeruser", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L1", + "weight": 1.0, + "_src": "player_user_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_models_player_user_py", + "source": "home_scheianu_digiserver_v2_app_models_player_user_py", + "target": "player_user_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L25", + "weight": 1.0, + "_src": "player_user_playeruser", + "_tgt": "player_user_playeruser_repr", + "source": "player_user_playeruser", + "target": "player_user_playeruser_repr", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L29", + "weight": 1.0, + "_src": "player_user_playeruser", + "_tgt": "player_user_playeruser_to_dict", + "source": "player_user_playeruser", + "target": "player_user_playeruser_to_dict", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L8", + "weight": 1.0, + "_src": "player_user_rationale_8", + "_tgt": "player_user_playeruser", + "source": "player_user_playeruser", + "target": "player_user_rationale_8", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L26", + "weight": 1.0, + "_src": "player_user_rationale_26", + "_tgt": "player_user_playeruser_repr", + "source": "player_user_playeruser_repr", + "target": "player_user_rationale_26", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_user.py", + "source_location": "L30", + "weight": 1.0, + "_src": "player_user_rationale_30", + "_tgt": "player_user_playeruser_to_dict", + "source": "player_user_playeruser_to_dict", + "target": "player_user_rationale_30", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L15", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_group_py", + "_tgt": "group_group", + "source": "home_scheianu_digiserver_v2_app_models_group_py", + "target": "group_group", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L45", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_group_py", + "_tgt": "group_content_count", + "source": "home_scheianu_digiserver_v2_app_models_group_py", + "target": "group_content_count", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L1", + "weight": 1.0, + "_src": "group_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_models_group_py", + "source": "home_scheianu_digiserver_v2_app_models_group_py", + "target": "group_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L38", + "weight": 1.0, + "_src": "group_group", + "_tgt": "group_group_repr", + "source": "group_group", + "target": "group_group_repr", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L49", + "weight": 1.0, + "_src": "group_group", + "_tgt": "group_group_add_player", + "source": "group_group", + "target": "group_group_add_player", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L58", + "weight": 1.0, + "_src": "group_group", + "_tgt": "group_group_remove_player", + "source": "group_group", + "target": "group_group_remove_player", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L16", + "weight": 1.0, + "_src": "group_rationale_16", + "_tgt": "group_group", + "source": "group_group", + "target": "group_rationale_16", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L61", + "weight": 1.0, + "_src": "blueprint_groups_create_group", + "_tgt": "group_group", + "source": "group_group", + "target": "blueprint_groups_create_group" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L39", + "weight": 1.0, + "_src": "group_rationale_39", + "_tgt": "group_group_repr", + "source": "group_group_repr", + "target": "group_rationale_39", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L50", + "weight": 1.0, + "_src": "group_rationale_50", + "_tgt": "group_group_add_player", + "source": "group_group_add_player", + "target": "group_rationale_50", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/group.py", + "source_location": "L59", + "weight": 1.0, + "_src": "group_rationale_59", + "_tgt": "group_group_remove_player", + "source": "group_group_remove_player", + "target": "group_rationale_59", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L8", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_content_py", + "_tgt": "content_content", + "source": "home_scheianu_digiserver_v2_app_models_content_py", + "target": "content_content", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L49", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_content_py", + "_tgt": "content_file_size_mb", + "source": "home_scheianu_digiserver_v2_app_models_content_py", + "target": "content_file_size_mb", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L56", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_content_py", + "_tgt": "content_group_count", + "source": "home_scheianu_digiserver_v2_app_models_content_py", + "target": "content_group_count", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L104", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_content_py", + "_tgt": "content_original_display_name", + "source": "home_scheianu_digiserver_v2_app_models_content_py", + "target": "content_original_display_name", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L109", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_content_py", + "_tgt": "content_original_media_path", + "source": "home_scheianu_digiserver_v2_app_models_content_py", + "target": "content_original_media_path", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L78", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_content_py", + "_tgt": "content_current_media_path", + "source": "home_scheianu_digiserver_v2_app_models_content_py", + "target": "content_current_media_path", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L99", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_content_py", + "_tgt": "content_has_player_edits", + "source": "home_scheianu_digiserver_v2_app_models_content_py", + "target": "content_has_player_edits", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L44", + "weight": 1.0, + "_src": "content_content", + "_tgt": "content_content_repr", + "source": "content_content", + "target": "content_content_repr", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L82", + "weight": 1.0, + "_src": "content_content", + "_tgt": "content_content_is_image", + "source": "content_content", + "target": "content_content_is_image", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L86", + "weight": 1.0, + "_src": "content_content", + "_tgt": "content_content_is_video", + "source": "content_content", + "target": "content_content_is_video", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L90", + "weight": 1.0, + "_src": "content_content", + "_tgt": "content_content_is_pdf", + "source": "content_content", + "target": "content_content_is_pdf", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L94", + "weight": 1.0, + "_src": "content_content", + "_tgt": "content_content_is_weblink", + "source": "content_content", + "target": "content_content_is_weblink", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L9", + "weight": 1.0, + "_src": "content_rationale_9", + "_tgt": "content_content", + "source": "content_content", + "target": "content_rationale_9", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L103", + "weight": 0.8, + "_src": "playlist_playlist", + "_tgt": "content_content", + "source": "content_content", + "target": "playlist_playlist", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L103", + "weight": 0.8, + "_src": "playlist_rationale_20", + "_tgt": "content_content", + "source": "content_content", + "target": "playlist_rationale_20", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L103", + "weight": 0.8, + "_src": "playlist_rationale_49", + "_tgt": "content_content", + "source": "content_content", + "target": "playlist_rationale_49", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L103", + "weight": 0.8, + "_src": "playlist_rationale_54", + "_tgt": "content_content", + "source": "content_content", + "target": "playlist_rationale_54", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L103", + "weight": 0.8, + "_src": "playlist_rationale_59", + "_tgt": "content_content", + "source": "content_content", + "target": "playlist_rationale_59", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L103", + "weight": 0.8, + "_src": "playlist_rationale_64", + "_tgt": "content_content", + "source": "content_content", + "target": "playlist_rationale_64", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L103", + "weight": 0.8, + "_src": "playlist_rationale_71", + "_tgt": "content_content", + "source": "content_content", + "target": "playlist_rationale_71", + "confidence_score": 0.5 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L103", + "weight": 0.8, + "_src": "playlist_rationale_76", + "_tgt": "content_content", + "source": "content_content", + "target": "playlist_rationale_76", + "confidence_score": 0.5 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L45", + "weight": 1.0, + "_src": "content_rationale_45", + "_tgt": "content_content_repr", + "source": "content_content_repr", + "target": "content_rationale_45", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L83", + "weight": 1.0, + "_src": "content_rationale_83", + "_tgt": "content_content_is_image", + "source": "content_content_is_image", + "target": "content_rationale_83", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L87", + "weight": 1.0, + "_src": "content_rationale_87", + "_tgt": "content_content_is_video", + "source": "content_content_is_video", + "target": "content_rationale_87", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L91", + "weight": 1.0, + "_src": "content_rationale_91", + "_tgt": "content_content_is_pdf", + "source": "content_content_is_pdf", + "target": "content_rationale_91", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/content.py", + "source_location": "L95", + "weight": 1.0, + "_src": "content_rationale_95", + "_tgt": "content_content_is_weblink", + "source": "content_content_is_weblink", + "target": "content_rationale_95", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L8", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_player_edit_py", + "_tgt": "player_edit_playeredit", + "source": "home_scheianu_digiserver_v2_app_models_player_edit_py", + "target": "player_edit_playeredit", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L1", + "weight": 1.0, + "_src": "player_edit_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_app_models_player_edit_py", + "source": "home_scheianu_digiserver_v2_app_models_player_edit_py", + "target": "player_edit_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L42", + "weight": 1.0, + "_src": "player_edit_playeredit", + "_tgt": "player_edit_playeredit_repr", + "source": "player_edit_playeredit", + "target": "player_edit_playeredit_repr", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L46", + "weight": 1.0, + "_src": "player_edit_playeredit", + "_tgt": "player_edit_playeredit_to_dict", + "source": "player_edit_playeredit", + "target": "player_edit_playeredit_to_dict", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L9", + "weight": 1.0, + "_src": "player_edit_rationale_9", + "_tgt": "player_edit_playeredit", + "source": "player_edit_playeredit", + "target": "player_edit_rationale_9", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L43", + "weight": 1.0, + "_src": "player_edit_rationale_43", + "_tgt": "player_edit_playeredit_repr", + "source": "player_edit_playeredit_repr", + "target": "player_edit_rationale_43", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/player_edit.py", + "source_location": "L47", + "weight": 1.0, + "_src": "player_edit_rationale_47", + "_tgt": "player_edit_playeredit_to_dict", + "source": "player_edit_playeredit_to_dict", + "target": "player_edit_rationale_47", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L19", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_playlist_py", + "_tgt": "playlist_playlist", + "source": "home_scheianu_digiserver_v2_app_models_playlist_py", + "target": "playlist_playlist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L53", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_playlist_py", + "_tgt": "playlist_player_count", + "source": "home_scheianu_digiserver_v2_app_models_playlist_py", + "target": "playlist_player_count", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L58", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_playlist_py", + "_tgt": "playlist_content_count", + "source": "home_scheianu_digiserver_v2_app_models_playlist_py", + "target": "playlist_content_count", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L63", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_app_models_playlist_py", + "_tgt": "playlist_total_duration", + "source": "home_scheianu_digiserver_v2_app_models_playlist_py", + "target": "playlist_total_duration", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L48", + "weight": 1.0, + "_src": "playlist_playlist", + "_tgt": "playlist_playlist_repr", + "source": "playlist_playlist", + "target": "playlist_playlist_repr", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L70", + "weight": 1.0, + "_src": "playlist_playlist", + "_tgt": "playlist_playlist_increment_version", + "source": "playlist_playlist", + "target": "playlist_playlist_increment_version", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L75", + "weight": 1.0, + "_src": "playlist_playlist", + "_tgt": "playlist_playlist_get_content_ordered", + "source": "playlist_playlist", + "target": "playlist_playlist_get_content_ordered", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L20", + "weight": 1.0, + "_src": "playlist_rationale_20", + "_tgt": "playlist_playlist", + "source": "playlist_playlist", + "target": "playlist_rationale_20", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L49", + "weight": 1.0, + "_src": "playlist_rationale_49", + "_tgt": "playlist_playlist_repr", + "source": "playlist_playlist_repr", + "target": "playlist_rationale_49", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L71", + "weight": 1.0, + "_src": "playlist_rationale_71", + "_tgt": "playlist_playlist_increment_version", + "source": "playlist_playlist_increment_version", + "target": "playlist_rationale_71", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/app/models/playlist.py", + "source_location": "L76", + "weight": 1.0, + "_src": "playlist_rationale_76", + "_tgt": "playlist_playlist_get_content_ordered", + "source": "playlist_playlist_get_content_ordered", + "target": "playlist_rationale_76", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/fix_player_user_schema.py", + "source_location": "L10", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_fix_player_user_schema_py", + "_tgt": "fix_player_user_schema_main", + "source": "home_scheianu_digiserver_v2_old_code_documentation_fix_player_user_schema_py", + "target": "fix_player_user_schema_main", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", + "source_location": "L19", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py", + "_tgt": "test_edit_media_simple_test_edit_media_endpoint", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_simple_py", + "target": "test_edit_media_simple_test_edit_media_endpoint", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_simple.py", + "source_location": "L20", + "weight": 1.0, + "_src": "test_edit_media_simple_rationale_20", + "_tgt": "test_edit_media_simple_test_edit_media_endpoint", + "source": "test_edit_media_simple_test_edit_media_endpoint", + "target": "test_edit_media_simple_rationale_20", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L14", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "_tgt": "test_edit_media_api_colors", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "target": "test_edit_media_api_colors", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L25", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "_tgt": "test_edit_media_api_print_section", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "target": "test_edit_media_api_print_section", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L31", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "_tgt": "test_edit_media_api_print_success", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "target": "test_edit_media_api_print_success", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L34", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "_tgt": "test_edit_media_api_print_error", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "target": "test_edit_media_api_print_error", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L37", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "_tgt": "test_edit_media_api_print_info", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "target": "test_edit_media_api_print_info", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L40", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "_tgt": "test_edit_media_api_print_warning", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "target": "test_edit_media_api_print_warning", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L43", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "_tgt": "test_edit_media_api_test_server_health", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "target": "test_edit_media_api_test_server_health", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L65", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "_tgt": "test_edit_media_api_test_endpoint_exists", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "target": "test_edit_media_api_test_endpoint_exists", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L97", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "_tgt": "test_edit_media_api_get_player_auth_code", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "target": "test_edit_media_api_get_player_auth_code", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L137", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "_tgt": "test_edit_media_api_get_sample_content", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "target": "test_edit_media_api_get_sample_content", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L171", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "_tgt": "test_edit_media_api_test_authentication", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "target": "test_edit_media_api_test_authentication", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L202", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "_tgt": "test_edit_media_api_test_full_upload", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "target": "test_edit_media_api_test_full_upload", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L271", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "_tgt": "test_edit_media_api_check_database_integrity", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "target": "test_edit_media_api_check_database_integrity", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L309", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "_tgt": "test_edit_media_api_main", + "source": "home_scheianu_digiserver_v2_old_code_documentation_test_edit_media_api_py", + "target": "test_edit_media_api_main", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L45", + "weight": 1.0, + "_src": "test_edit_media_api_test_server_health", + "_tgt": "test_edit_media_api_print_section", + "source": "test_edit_media_api_print_section", + "target": "test_edit_media_api_test_server_health", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L67", + "weight": 1.0, + "_src": "test_edit_media_api_test_endpoint_exists", + "_tgt": "test_edit_media_api_print_section", + "source": "test_edit_media_api_print_section", + "target": "test_edit_media_api_test_endpoint_exists", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L99", + "weight": 1.0, + "_src": "test_edit_media_api_get_player_auth_code", + "_tgt": "test_edit_media_api_print_section", + "source": "test_edit_media_api_print_section", + "target": "test_edit_media_api_get_player_auth_code", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L139", + "weight": 1.0, + "_src": "test_edit_media_api_get_sample_content", + "_tgt": "test_edit_media_api_print_section", + "source": "test_edit_media_api_print_section", + "target": "test_edit_media_api_get_sample_content", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L173", + "weight": 1.0, + "_src": "test_edit_media_api_test_authentication", + "_tgt": "test_edit_media_api_print_section", + "source": "test_edit_media_api_print_section", + "target": "test_edit_media_api_test_authentication", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L204", + "weight": 1.0, + "_src": "test_edit_media_api_test_full_upload", + "_tgt": "test_edit_media_api_print_section", + "source": "test_edit_media_api_print_section", + "target": "test_edit_media_api_test_full_upload", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L273", + "weight": 1.0, + "_src": "test_edit_media_api_check_database_integrity", + "_tgt": "test_edit_media_api_print_section", + "source": "test_edit_media_api_print_section", + "target": "test_edit_media_api_check_database_integrity", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L383", + "weight": 1.0, + "_src": "test_edit_media_api_main", + "_tgt": "test_edit_media_api_print_section", + "source": "test_edit_media_api_print_section", + "target": "test_edit_media_api_main", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L26", + "weight": 1.0, + "_src": "test_edit_media_api_rationale_26", + "_tgt": "test_edit_media_api_print_section", + "source": "test_edit_media_api_print_section", + "target": "test_edit_media_api_rationale_26", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L50", + "weight": 1.0, + "_src": "test_edit_media_api_test_server_health", + "_tgt": "test_edit_media_api_print_success", + "source": "test_edit_media_api_print_success", + "target": "test_edit_media_api_test_server_health", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L76", + "weight": 1.0, + "_src": "test_edit_media_api_test_endpoint_exists", + "_tgt": "test_edit_media_api_print_success", + "source": "test_edit_media_api_print_success", + "target": "test_edit_media_api_test_endpoint_exists", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L113", + "weight": 1.0, + "_src": "test_edit_media_api_get_player_auth_code", + "_tgt": "test_edit_media_api_print_success", + "source": "test_edit_media_api_print_success", + "target": "test_edit_media_api_get_player_auth_code", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L162", + "weight": 1.0, + "_src": "test_edit_media_api_get_sample_content", + "_tgt": "test_edit_media_api_print_success", + "source": "test_edit_media_api_print_success", + "target": "test_edit_media_api_get_sample_content", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L188", + "weight": 1.0, + "_src": "test_edit_media_api_test_authentication", + "_tgt": "test_edit_media_api_print_success", + "source": "test_edit_media_api_print_success", + "target": "test_edit_media_api_test_authentication", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L246", + "weight": 1.0, + "_src": "test_edit_media_api_test_full_upload", + "_tgt": "test_edit_media_api_print_success", + "source": "test_edit_media_api_print_success", + "target": "test_edit_media_api_test_full_upload", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L303", + "weight": 1.0, + "_src": "test_edit_media_api_check_database_integrity", + "_tgt": "test_edit_media_api_print_success", + "source": "test_edit_media_api_print_success", + "target": "test_edit_media_api_check_database_integrity", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L56", + "weight": 1.0, + "_src": "test_edit_media_api_test_server_health", + "_tgt": "test_edit_media_api_print_error", + "source": "test_edit_media_api_print_error", + "target": "test_edit_media_api_test_server_health", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L80", + "weight": 1.0, + "_src": "test_edit_media_api_test_endpoint_exists", + "_tgt": "test_edit_media_api_print_error", + "source": "test_edit_media_api_print_error", + "target": "test_edit_media_api_test_endpoint_exists", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L126", + "weight": 1.0, + "_src": "test_edit_media_api_get_player_auth_code", + "_tgt": "test_edit_media_api_print_error", + "source": "test_edit_media_api_print_error", + "target": "test_edit_media_api_get_player_auth_code", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L168", + "weight": 1.0, + "_src": "test_edit_media_api_get_sample_content", + "_tgt": "test_edit_media_api_print_error", + "source": "test_edit_media_api_print_error", + "target": "test_edit_media_api_get_sample_content", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L184", + "weight": 1.0, + "_src": "test_edit_media_api_test_authentication", + "_tgt": "test_edit_media_api_print_error", + "source": "test_edit_media_api_print_error", + "target": "test_edit_media_api_test_authentication", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L207", + "weight": 1.0, + "_src": "test_edit_media_api_test_full_upload", + "_tgt": "test_edit_media_api_print_error", + "source": "test_edit_media_api_print_error", + "target": "test_edit_media_api_test_full_upload", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L306", + "weight": 1.0, + "_src": "test_edit_media_api_check_database_integrity", + "_tgt": "test_edit_media_api_print_error", + "source": "test_edit_media_api_print_error", + "target": "test_edit_media_api_check_database_integrity", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L336", + "weight": 1.0, + "_src": "test_edit_media_api_main", + "_tgt": "test_edit_media_api_print_error", + "source": "test_edit_media_api_print_error", + "target": "test_edit_media_api_main", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L70", + "weight": 1.0, + "_src": "test_edit_media_api_test_endpoint_exists", + "_tgt": "test_edit_media_api_print_info", + "source": "test_edit_media_api_print_info", + "target": "test_edit_media_api_test_endpoint_exists", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L114", + "weight": 1.0, + "_src": "test_edit_media_api_get_player_auth_code", + "_tgt": "test_edit_media_api_print_info", + "source": "test_edit_media_api_print_info", + "target": "test_edit_media_api_get_player_auth_code", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L220", + "weight": 1.0, + "_src": "test_edit_media_api_test_full_upload", + "_tgt": "test_edit_media_api_print_info", + "source": "test_edit_media_api_print_info", + "target": "test_edit_media_api_test_full_upload", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L284", + "weight": 1.0, + "_src": "test_edit_media_api_check_database_integrity", + "_tgt": "test_edit_media_api_print_info", + "source": "test_edit_media_api_print_info", + "target": "test_edit_media_api_check_database_integrity", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L324", + "weight": 1.0, + "_src": "test_edit_media_api_main", + "_tgt": "test_edit_media_api_print_info", + "source": "test_edit_media_api_print_info", + "target": "test_edit_media_api_main", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L83", + "weight": 1.0, + "_src": "test_edit_media_api_test_endpoint_exists", + "_tgt": "test_edit_media_api_print_warning", + "source": "test_edit_media_api_print_warning", + "target": "test_edit_media_api_test_endpoint_exists", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L131", + "weight": 1.0, + "_src": "test_edit_media_api_get_player_auth_code", + "_tgt": "test_edit_media_api_print_warning", + "source": "test_edit_media_api_print_warning", + "target": "test_edit_media_api_get_player_auth_code", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L153", + "weight": 1.0, + "_src": "test_edit_media_api_get_sample_content", + "_tgt": "test_edit_media_api_print_warning", + "source": "test_edit_media_api_print_warning", + "target": "test_edit_media_api_get_sample_content", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L195", + "weight": 1.0, + "_src": "test_edit_media_api_test_authentication", + "_tgt": "test_edit_media_api_print_warning", + "source": "test_edit_media_api_print_warning", + "target": "test_edit_media_api_test_authentication", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L401", + "weight": 1.0, + "_src": "test_edit_media_api_main", + "_tgt": "test_edit_media_api_print_warning", + "source": "test_edit_media_api_print_warning", + "target": "test_edit_media_api_main", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L332", + "weight": 1.0, + "_src": "test_edit_media_api_main", + "_tgt": "test_edit_media_api_test_server_health", + "source": "test_edit_media_api_test_server_health", + "target": "test_edit_media_api_main", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L44", + "weight": 1.0, + "_src": "test_edit_media_api_rationale_44", + "_tgt": "test_edit_media_api_test_server_health", + "source": "test_edit_media_api_test_server_health", + "target": "test_edit_media_api_rationale_44", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L340", + "weight": 1.0, + "_src": "test_edit_media_api_main", + "_tgt": "test_edit_media_api_test_endpoint_exists", + "source": "test_edit_media_api_test_endpoint_exists", + "target": "test_edit_media_api_main", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L66", + "weight": 1.0, + "_src": "test_edit_media_api_rationale_66", + "_tgt": "test_edit_media_api_test_endpoint_exists", + "source": "test_edit_media_api_test_endpoint_exists", + "target": "test_edit_media_api_rationale_66", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L348", + "weight": 1.0, + "_src": "test_edit_media_api_main", + "_tgt": "test_edit_media_api_get_player_auth_code", + "source": "test_edit_media_api_get_player_auth_code", + "target": "test_edit_media_api_main", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L98", + "weight": 1.0, + "_src": "test_edit_media_api_rationale_98", + "_tgt": "test_edit_media_api_get_player_auth_code", + "source": "test_edit_media_api_get_player_auth_code", + "target": "test_edit_media_api_rationale_98", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L364", + "weight": 1.0, + "_src": "test_edit_media_api_main", + "_tgt": "test_edit_media_api_get_sample_content", + "source": "test_edit_media_api_get_sample_content", + "target": "test_edit_media_api_main", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L138", + "weight": 1.0, + "_src": "test_edit_media_api_rationale_138", + "_tgt": "test_edit_media_api_get_sample_content", + "source": "test_edit_media_api_get_sample_content", + "target": "test_edit_media_api_rationale_138", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L357", + "weight": 1.0, + "_src": "test_edit_media_api_main", + "_tgt": "test_edit_media_api_test_authentication", + "source": "test_edit_media_api_test_authentication", + "target": "test_edit_media_api_main", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L172", + "weight": 1.0, + "_src": "test_edit_media_api_rationale_172", + "_tgt": "test_edit_media_api_test_authentication", + "source": "test_edit_media_api_test_authentication", + "target": "test_edit_media_api_rationale_172", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L369", + "weight": 1.0, + "_src": "test_edit_media_api_main", + "_tgt": "test_edit_media_api_test_full_upload", + "source": "test_edit_media_api_test_full_upload", + "target": "test_edit_media_api_main", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L203", + "weight": 1.0, + "_src": "test_edit_media_api_rationale_203", + "_tgt": "test_edit_media_api_test_full_upload", + "source": "test_edit_media_api_test_full_upload", + "target": "test_edit_media_api_rationale_203", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L377", + "weight": 1.0, + "_src": "test_edit_media_api_main", + "_tgt": "test_edit_media_api_check_database_integrity", + "source": "test_edit_media_api_check_database_integrity", + "target": "test_edit_media_api_main", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L272", + "weight": 1.0, + "_src": "test_edit_media_api_rationale_272", + "_tgt": "test_edit_media_api_check_database_integrity", + "source": "test_edit_media_api_check_database_integrity", + "target": "test_edit_media_api_rationale_272", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/test_edit_media_api.py", + "source_location": "L310", + "weight": 1.0, + "_src": "test_edit_media_api_rationale_310", + "_tgt": "test_edit_media_api_main", + "source": "test_edit_media_api_main", + "target": "test_edit_media_api_rationale_310", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L16", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "_tgt": "blueprint_groups_groups_list", + "source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "target": "blueprint_groups_groups_list", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L38", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "_tgt": "blueprint_groups_create_group", + "source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "target": "blueprint_groups_create_group", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L90", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "_tgt": "blueprint_groups_edit_group", + "source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "target": "blueprint_groups_edit_group", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L148", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "_tgt": "blueprint_groups_delete_group", + "source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "target": "blueprint_groups_delete_group", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L175", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "_tgt": "blueprint_groups_manage_group", + "source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "target": "blueprint_groups_manage_group", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L214", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "_tgt": "blueprint_groups_group_fullscreen", + "source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "target": "blueprint_groups_group_fullscreen", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L239", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "_tgt": "blueprint_groups_add_player_to_group", + "source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "target": "blueprint_groups_add_player_to_group", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L269", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "_tgt": "blueprint_groups_remove_player_from_group", + "source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "target": "blueprint_groups_remove_player_from_group", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L298", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "_tgt": "blueprint_groups_add_content_to_group", + "source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "target": "blueprint_groups_add_content_to_group", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L335", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "_tgt": "blueprint_groups_remove_content_from_group", + "source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "target": "blueprint_groups_remove_content_from_group", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L365", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "_tgt": "blueprint_groups_reorder_group_content", + "source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "target": "blueprint_groups_reorder_group_content", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L394", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "_tgt": "blueprint_groups_group_stats", + "source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "target": "blueprint_groups_group_stats", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L1", + "weight": 1.0, + "_src": "blueprint_groups_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "source": "home_scheianu_digiserver_v2_old_code_documentation_blueprint_groups_py", + "target": "blueprint_groups_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L17", + "weight": 1.0, + "_src": "blueprint_groups_rationale_17", + "_tgt": "blueprint_groups_groups_list", + "source": "blueprint_groups_groups_list", + "target": "blueprint_groups_rationale_17", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L176", + "weight": 1.0, + "_src": "blueprint_groups_rationale_176", + "_tgt": "blueprint_groups_manage_group", + "source": "blueprint_groups_manage_group", + "target": "blueprint_groups_rationale_176", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L215", + "weight": 1.0, + "_src": "blueprint_groups_rationale_215", + "_tgt": "blueprint_groups_group_fullscreen", + "source": "blueprint_groups_group_fullscreen", + "target": "blueprint_groups_rationale_215", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L240", + "weight": 1.0, + "_src": "blueprint_groups_rationale_240", + "_tgt": "blueprint_groups_add_player_to_group", + "source": "blueprint_groups_add_player_to_group", + "target": "blueprint_groups_rationale_240", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L270", + "weight": 1.0, + "_src": "blueprint_groups_rationale_270", + "_tgt": "blueprint_groups_remove_player_from_group", + "source": "blueprint_groups_remove_player_from_group", + "target": "blueprint_groups_rationale_270", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L299", + "weight": 1.0, + "_src": "blueprint_groups_rationale_299", + "_tgt": "blueprint_groups_add_content_to_group", + "source": "blueprint_groups_add_content_to_group", + "target": "blueprint_groups_rationale_299", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L336", + "weight": 1.0, + "_src": "blueprint_groups_rationale_336", + "_tgt": "blueprint_groups_remove_content_from_group", + "source": "blueprint_groups_remove_content_from_group", + "target": "blueprint_groups_rationale_336", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L366", + "weight": 1.0, + "_src": "blueprint_groups_rationale_366", + "_tgt": "blueprint_groups_reorder_group_content", + "source": "blueprint_groups_reorder_group_content", + "target": "blueprint_groups_rationale_366", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/blueprint_groups.py", + "source_location": "L395", + "weight": 1.0, + "_src": "blueprint_groups_rationale_395", + "_tgt": "blueprint_groups_group_stats", + "source": "blueprint_groups_group_stats", + "target": "blueprint_groups_rationale_395", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", + "source_location": "L6", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_add_muted_column_py", + "_tgt": "add_muted_column_add_muted_column", + "source": "home_scheianu_digiserver_v2_old_code_documentation_add_muted_column_py", + "target": "add_muted_column_add_muted_column", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/add_muted_column.py", + "source_location": "L7", + "weight": 1.0, + "_src": "add_muted_column_rationale_7", + "_tgt": "add_muted_column_add_muted_column", + "source": "add_muted_column_add_muted_column", + "target": "add_muted_column_rationale_7", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", + "source_location": "L7", + "weight": 1.0, + "_src": "home_scheianu_digiserver_v2_old_code_documentation_migrate_add_edit_enabled_py", + "_tgt": "migrate_add_edit_enabled_migrate", + "source": "home_scheianu_digiserver_v2_old_code_documentation_migrate_add_edit_enabled_py", + "target": "migrate_add_edit_enabled_migrate", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", + "source_location": "L1", + "weight": 1.0, + "_src": "migrate_add_edit_enabled_rationale_1", + "_tgt": "home_scheianu_digiserver_v2_old_code_documentation_migrate_add_edit_enabled_py", + "source": "home_scheianu_digiserver_v2_old_code_documentation_migrate_add_edit_enabled_py", + "target": "migrate_add_edit_enabled_rationale_1", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "/home/scheianu/digiserver-v2/old_code_documentation/migrate_add_edit_enabled.py", + "source_location": "L8", + "weight": 1.0, + "_src": "migrate_add_edit_enabled_rationale_8", + "_tgt": "migrate_add_edit_enabled_migrate", + "source": "migrate_add_edit_enabled_migrate", + "target": "migrate_add_edit_enabled_rationale_8", + "confidence_score": 1.0 + } + ], + "hyperedges": [] +} \ No newline at end of file diff --git a/graphify-out/intelligence.json b/graphify-out/intelligence.json new file mode 100644 index 0000000..eddc28e --- /dev/null +++ b/graphify-out/intelligence.json @@ -0,0 +1,36 @@ +{ + "hotspots": [ + { + "label": "receive_edited_media()", + "risk": 0.62, + "type": "FUNCTION" + }, + { + "label": "deploy_player_to_host()", + "risk": 0.614, + "type": "FUNCTION" + }, + { + "label": "add_player()", + "risk": 0.592, + "type": "FUNCTION" + }, + { + "label": "upload_media()", + "risk": 0.537, + "type": "FUNCTION" + }, + { + "label": "manage_player()", + "risk": 0.429, + "type": "FUNCTION" + } + ], + "blast_radius": { + "log_action()": 116, + "PlayerEdit": 99, + "PlayerUser": 74, + "Playlist": 33, + "CaddyConfigGenerator": 31 + } +} \ No newline at end of file diff --git a/graphify-out/metadata.json b/graphify-out/metadata.json new file mode 100644 index 0000000..40ce697 --- /dev/null +++ b/graphify-out/metadata.json @@ -0,0 +1,159 @@ +{ + "projectName": "digiserver-v2", + "communityLabels": { + "0": "Community 0", + "1": "Community 1", + "2": "Community 2", + "3": "Community 3", + "4": "Community 4", + "5": "Community 5", + "6": "Community 6", + "7": "Community 7", + "8": "Community 8", + "9": "Community 9", + "10": "Community 10", + "11": "Community 11", + "12": "Community 12", + "13": "Community 13", + "14": "Community 14", + "15": "Community 15", + "16": "Community 16", + "17": "Community 17", + "18": "Community 18", + "19": "Community 19", + "20": "Community 20", + "21": "Community 21", + "22": "Community 22", + "23": "Community 23", + "24": "Community 24", + "25": "Community 25", + "26": "Community 26", + "27": "Community 27", + "28": "Community 28", + "29": "Community 29", + "30": "Community 30", + "31": "Community 31", + "32": "Community 32", + "33": "Community 33", + "34": "Community 34", + "35": "Community 35", + "36": "Community 36", + "37": "Community 37", + "38": "Community 38", + "39": "Community 39", + "40": "Community 40" + }, + "communitySummaries": { + "0": "", + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", + "6": "", + "7": "", + "8": "", + "9": "", + "10": "", + "11": "", + "12": "", + "13": "", + "14": "", + "15": "", + "16": "", + "17": "", + "18": "", + "19": "", + "20": "", + "21": "", + "22": "", + "23": "", + "24": "", + "25": "", + "26": "", + "27": "", + "28": "", + "29": "", + "30": "", + "31": "", + "32": "", + "33": "", + "34": "", + "35": "", + "36": "", + "37": "", + "38": "", + "39": "", + "40": "" + }, + "communityLinks": { + "1": { + "11": 3, + "0": 21, + "4": 1, + "6": 5, + "10": 1, + "3": 27 + }, + "11": { + "0": 1, + "1": 2, + "3": 1 + }, + "0": { + "9": 2, + "4": 1, + "10": 1, + "7": 2 + }, + "4": {}, + "6": { + "7": 1, + "5": 1, + "0": 14, + "11": 1, + "1": 16, + "10": 1, + "3": 16 + }, + "10": { + "6": 1, + "11": 1 + }, + "3": { + "0": 14, + "5": 5, + "7": 1, + "1": 25, + "10": 1, + "2": 1 + }, + "9": { + "0": 5, + "5": 1 + }, + "5": { + "3": 9, + "4": 1, + "7": 1, + "0": 2, + "1": 1, + "6": 3, + "2": 1 + }, + "2": { + "7": 2, + "3": 25, + "5": 6, + "0": 25 + }, + "7": { + "0": 3, + "3": 2, + "8": 1, + "6": 1, + "1": 1 + }, + "8": {} + } +} \ No newline at end of file diff --git a/graphify-out/suggestions.json b/graphify-out/suggestions.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/graphify-out/suggestions.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/graphify-out/wiki/CaddyConfigGenerator.md b/graphify-out/wiki/CaddyConfigGenerator.md new file mode 100644 index 0000000..1e32df2 --- /dev/null +++ b/graphify-out/wiki/CaddyConfigGenerator.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_0.md b/graphify-out/wiki/Community_0.md new file mode 100644 index 0000000..fb1248f --- /dev/null +++ b/graphify-out/wiki/Community_0.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_1.md b/graphify-out/wiki/Community_1.md new file mode 100644 index 0000000..2619a53 --- /dev/null +++ b/graphify-out/wiki/Community_1.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_10.md b/graphify-out/wiki/Community_10.md new file mode 100644 index 0000000..9d8e888 --- /dev/null +++ b/graphify-out/wiki/Community_10.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_11.md b/graphify-out/wiki/Community_11.md new file mode 100644 index 0000000..632fa08 --- /dev/null +++ b/graphify-out/wiki/Community_11.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_12.md b/graphify-out/wiki/Community_12.md new file mode 100644 index 0000000..26a2f1b --- /dev/null +++ b/graphify-out/wiki/Community_12.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_13.md b/graphify-out/wiki/Community_13.md new file mode 100644 index 0000000..8ecaa75 --- /dev/null +++ b/graphify-out/wiki/Community_13.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_14.md b/graphify-out/wiki/Community_14.md new file mode 100644 index 0000000..00048ac --- /dev/null +++ b/graphify-out/wiki/Community_14.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_15.md b/graphify-out/wiki/Community_15.md new file mode 100644 index 0000000..e946843 --- /dev/null +++ b/graphify-out/wiki/Community_15.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_16.md b/graphify-out/wiki/Community_16.md new file mode 100644 index 0000000..4478f8b --- /dev/null +++ b/graphify-out/wiki/Community_16.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_17.md b/graphify-out/wiki/Community_17.md new file mode 100644 index 0000000..e65ff79 --- /dev/null +++ b/graphify-out/wiki/Community_17.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_18.md b/graphify-out/wiki/Community_18.md new file mode 100644 index 0000000..e6af22b --- /dev/null +++ b/graphify-out/wiki/Community_18.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_19.md b/graphify-out/wiki/Community_19.md new file mode 100644 index 0000000..afd9def --- /dev/null +++ b/graphify-out/wiki/Community_19.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_2.md b/graphify-out/wiki/Community_2.md new file mode 100644 index 0000000..13269ad --- /dev/null +++ b/graphify-out/wiki/Community_2.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_20.md b/graphify-out/wiki/Community_20.md new file mode 100644 index 0000000..922c876 --- /dev/null +++ b/graphify-out/wiki/Community_20.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_21.md b/graphify-out/wiki/Community_21.md new file mode 100644 index 0000000..5cce09d --- /dev/null +++ b/graphify-out/wiki/Community_21.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_22.md b/graphify-out/wiki/Community_22.md new file mode 100644 index 0000000..4839473 --- /dev/null +++ b/graphify-out/wiki/Community_22.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_23.md b/graphify-out/wiki/Community_23.md new file mode 100644 index 0000000..35a7c96 --- /dev/null +++ b/graphify-out/wiki/Community_23.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_24.md b/graphify-out/wiki/Community_24.md new file mode 100644 index 0000000..ab86e6a --- /dev/null +++ b/graphify-out/wiki/Community_24.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_25.md b/graphify-out/wiki/Community_25.md new file mode 100644 index 0000000..0025a6a --- /dev/null +++ b/graphify-out/wiki/Community_25.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_26.md b/graphify-out/wiki/Community_26.md new file mode 100644 index 0000000..b9409a0 --- /dev/null +++ b/graphify-out/wiki/Community_26.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_27.md b/graphify-out/wiki/Community_27.md new file mode 100644 index 0000000..5f300fe --- /dev/null +++ b/graphify-out/wiki/Community_27.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_28.md b/graphify-out/wiki/Community_28.md new file mode 100644 index 0000000..1b546f7 --- /dev/null +++ b/graphify-out/wiki/Community_28.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_29.md b/graphify-out/wiki/Community_29.md new file mode 100644 index 0000000..857214f --- /dev/null +++ b/graphify-out/wiki/Community_29.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_3.md b/graphify-out/wiki/Community_3.md new file mode 100644 index 0000000..66383b4 --- /dev/null +++ b/graphify-out/wiki/Community_3.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_30.md b/graphify-out/wiki/Community_30.md new file mode 100644 index 0000000..5cc1487 --- /dev/null +++ b/graphify-out/wiki/Community_30.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_31.md b/graphify-out/wiki/Community_31.md new file mode 100644 index 0000000..de31209 --- /dev/null +++ b/graphify-out/wiki/Community_31.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_32.md b/graphify-out/wiki/Community_32.md new file mode 100644 index 0000000..e2e182b --- /dev/null +++ b/graphify-out/wiki/Community_32.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_33.md b/graphify-out/wiki/Community_33.md new file mode 100644 index 0000000..cda8d0a --- /dev/null +++ b/graphify-out/wiki/Community_33.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_34.md b/graphify-out/wiki/Community_34.md new file mode 100644 index 0000000..75ddeae --- /dev/null +++ b/graphify-out/wiki/Community_34.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_35.md b/graphify-out/wiki/Community_35.md new file mode 100644 index 0000000..6ef1fb9 --- /dev/null +++ b/graphify-out/wiki/Community_35.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_36.md b/graphify-out/wiki/Community_36.md new file mode 100644 index 0000000..3c3e849 --- /dev/null +++ b/graphify-out/wiki/Community_36.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_37.md b/graphify-out/wiki/Community_37.md new file mode 100644 index 0000000..b71bce5 --- /dev/null +++ b/graphify-out/wiki/Community_37.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_38.md b/graphify-out/wiki/Community_38.md new file mode 100644 index 0000000..adb30ba --- /dev/null +++ b/graphify-out/wiki/Community_38.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_39.md b/graphify-out/wiki/Community_39.md new file mode 100644 index 0000000..99d2f85 --- /dev/null +++ b/graphify-out/wiki/Community_39.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_4.md b/graphify-out/wiki/Community_4.md new file mode 100644 index 0000000..3f4188e --- /dev/null +++ b/graphify-out/wiki/Community_4.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_40.md b/graphify-out/wiki/Community_40.md new file mode 100644 index 0000000..6339e8f --- /dev/null +++ b/graphify-out/wiki/Community_40.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_5.md b/graphify-out/wiki/Community_5.md new file mode 100644 index 0000000..1428af7 --- /dev/null +++ b/graphify-out/wiki/Community_5.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_6.md b/graphify-out/wiki/Community_6.md new file mode 100644 index 0000000..b49b9d8 --- /dev/null +++ b/graphify-out/wiki/Community_6.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_7.md b/graphify-out/wiki/Community_7.md new file mode 100644 index 0000000..9d87856 --- /dev/null +++ b/graphify-out/wiki/Community_7.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_8.md b/graphify-out/wiki/Community_8.md new file mode 100644 index 0000000..f414110 --- /dev/null +++ b/graphify-out/wiki/Community_8.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Community_9.md b/graphify-out/wiki/Community_9.md new file mode 100644 index 0000000..816bd87 --- /dev/null +++ b/graphify-out/wiki/Community_9.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Content.md b/graphify-out/wiki/Content.md new file mode 100644 index 0000000..30bae35 --- /dev/null +++ b/graphify-out/wiki/Content.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/HTTPSConfig.md b/graphify-out/wiki/HTTPSConfig.md new file mode 100644 index 0000000..4af251a --- /dev/null +++ b/graphify-out/wiki/HTTPSConfig.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Models_package_for_digiserver-v2..md b/graphify-out/wiki/Models_package_for_digiserver-v2..md new file mode 100644 index 0000000..167fd9c --- /dev/null +++ b/graphify-out/wiki/Models_package_for_digiserver-v2..md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/PlayerEdit.md b/graphify-out/wiki/PlayerEdit.md new file mode 100644 index 0000000..6c9ef12 --- /dev/null +++ b/graphify-out/wiki/PlayerEdit.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/PlayerUser.md b/graphify-out/wiki/PlayerUser.md new file mode 100644 index 0000000..724bb38 --- /dev/null +++ b/graphify-out/wiki/PlayerUser.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/Playlist.md b/graphify-out/wiki/Playlist.md new file mode 100644 index 0000000..742af8b --- /dev/null +++ b/graphify-out/wiki/Playlist.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/User.md b/graphify-out/wiki/User.md new file mode 100644 index 0000000..f9a8711 --- /dev/null +++ b/graphify-out/wiki/User.md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/create_app().md b/graphify-out/wiki/create_app().md new file mode 100644 index 0000000..4d2ebdc --- /dev/null +++ b/graphify-out/wiki/create_app().md @@ -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.* \ No newline at end of file diff --git a/graphify-out/wiki/index.md b/graphify-out/wiki/index.md new file mode 100644 index 0000000..f637e38 --- /dev/null +++ b/graphify-out/wiki/index.md @@ -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)* \ No newline at end of file diff --git a/graphify-out/wiki/log_action().md b/graphify-out/wiki/log_action().md new file mode 100644 index 0000000..ead2bd9 --- /dev/null +++ b/graphify-out/wiki/log_action().md @@ -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.* \ No newline at end of file diff --git a/migrations/add_original_filename_to_content.py b/migrations/add_original_filename_to_content.py new file mode 100644 index 0000000..870e498 --- /dev/null +++ b/migrations/add_original_filename_to_content.py @@ -0,0 +1,69 @@ +"""Add original_filename column to content table. + +This preserves the pristine uploaded filename even after a player edits the +content (which repoints content.filename at the edited_media//... file). +Without it the original image appears "overwritten" because the UI can no +longer tell which file was the original upload. +""" +import sys +sys.path.insert(0, '/app') + +from app.app import create_app +from app.extensions import db +from sqlalchemy import text + +app = create_app() + +with app.app_context(): + print("Adding 'original_filename' column to content table...") + try: + db.session.execute(text("ALTER TABLE content ADD COLUMN original_filename VARCHAR(255)")) + db.session.commit() + print("✓ 'original_filename' column added to content table.") + except Exception as e: + if 'duplicate column' in str(e).lower() or 'already exists' in str(e).lower(): + print("✓ 'original_filename' column already exists, skipping.") + else: + print(f"✗ Error: {e}") + raise + + # Backfill: for content whose filename already points at an edited_media/... + # file, recover the pristine original from the first (v1) PlayerEdit record. + print("Backfilling original_filename from PlayerEdit v1 records...") + try: + db.session.execute(text(""" + UPDATE content + SET original_filename = ( + SELECT pe.original_name + FROM player_edit pe + WHERE pe.content_id = content.id + ORDER BY pe.version ASC, pe.created_at ASC + LIMIT 1 + ) + WHERE original_filename IS NULL + AND filename LIKE 'edited_media/%' + AND EXISTS (SELECT 1 FROM player_edit pe2 WHERE pe2.content_id = content.id) + """)) + db.session.commit() + print("✓ Backfilled original_filename from PlayerEdit records.") + except Exception as e: + print(f"✗ Backfill error (non-fatal): {e}") + db.session.rollback() + + # Backfill fallback: any remaining content with a plain filename is itself + # the original. + print("Backfilling original_filename = filename for remaining content...") + try: + db.session.execute(text(""" + UPDATE content + SET original_filename = filename + WHERE original_filename IS NULL + AND filename NOT LIKE 'edited_media/%' + """)) + db.session.commit() + print("✓ Backfilled original_filename = filename.") + except Exception as e: + print(f"✗ Backfill error (non-fatal): {e}") + db.session.rollback() + + print("Migration complete.")