# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# Virtual Environment
.venv/
venv/
ENV/
env/

# Kivy
*.pyc

# Media files (optional - remove if you want to track media)
#
# Coverage matters here: `media/*.mp4` matches files directly in media/, but NOT
# media/edited_media/1/foo.jpg. Playlist content is downloaded per-site and must
# never be committed, so the whole tree is ignored and only the directory
# structure (via .gitkeep) is tracked.
media/*.jpg
media/*.jpeg
media/*.png
media/*.gif
media/*.bmp
media/*.mp4
media/*.avi
media/*.mkv
media/*.mov
media/*.webm
media/**/*.jpg
media/**/*.jpeg
media/**/*.png
media/**/*.gif
media/**/*.bmp
media/**/*.mp4
media/**/*.avi
media/**/*.mkv
media/**/*.mov
media/**/*.webm

# Playlist cache (auto-generated from the server per device)
playlists/server_playlist_*.json
playlists/server_playlist.json

# Logs
*.log
.kivy/

# IDE
.vscode/
.idea/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

.player_heartbear

# NOTE: the line above is a long-standing typo for `.player_heartbeat` and is
# kept only so nothing changes for existing clones. The correct patterns are
# below — without them the player's runtime state files get committed (they
# change every 10 seconds, which would create endless noise and merge conflicts).
.player_heartbeat
.player_stop_requested
logs/startup_marker.txt
logs/startup_crash.log
logs/console_out.txt
logs/console_err.txt
logs/watchdog_test_*.txt

# Player credentials — live auth_code/player_id/server_url. Never commit these:
# a bundled copy made fresh builds boot "already authenticated" against an old
# server and play a stale playlist.
player_auth.json
src/player_auth.json
working_files/player_auth.json

# Runtime browser profile (cache, not source). The player launches Chromium with
# a dedicated --user-data-dir so it never touches the operator's own profile.
# The wildcard covers probe/test profiles (e.g. .kiosk-profile-probe), which
# otherwise get picked up as untracked files and are several MB of cache each.
.kiosk-profile/
.kiosk-profile-*/
.webview2-profile/

# Monitoring output (generated per run, not source)
logs/monitor*.csv
logs/monitor*.log
