Files
digiserver-v2/docs/graphify-out/cache/00c752d7501e4f21c01d224dc9502e315268839584af12a578a8cd601e89352a.json
ske087 46602f1933 Sanitize codebase, reorganize docs, and add missing deploy files
Remove dead code identified in docs/SANITIZATION-REVIEW.md:
- app/blueprints/content_old.py and app/blueprints/playlist.py
- app/models/group.py, app/utils/nginx_config_reader.py
- orphaned templates (content_list, edit_content, upload_content,
  player_page) and the related group/Template references

Result: 6 blueprints, 82 routes, no dead modules or orphan templates.

Add files that deploy.sh and docker-entrypoint.sh already require but
which were never tracked:
- https_manager.py       (referenced by deploy.sh, migrate_network.sh,
                          docker-entrypoint.sh)
- Caddyfile.example      (seeded by deploy.sh; its absence aborts deploy)

Relocate generated Graphify artifacts from graphify-out/ to
docs/graphify-out/ (110 files, no content change) and archive the
superseded docs under docs/.

Ignore hygiene:
- ignore ad-hoc .env backups (.env.bak*) — they contain live secrets
- keep the pre-sanitization snapshots (docs/legacy code/,
  docs/old_code_documentation/) on disk but out of the repo

Fix .env.example: drop a duplicated config block, genericize the
hardcoded host IP, and document HOSTNAME_INTERNAL.
2026-09-11 12:18:34 +03:00

1 line
12 KiB
JSON

{"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"}]}