- New modern audio wave 'A' logo (192x192 and 512x512 icons) - PWA service worker for offline support and installability - Wake Lock API for background audio on FiiO/Android devices - Visibility change handling to prevent audio pause on screen off - Updated manifest.json with music categories and proper PWA config - Media Session API lock screen controls (already present) - Renamed app to 'Audiophile Web Player'
51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
import subprocess
|
|
import logging
|
|
from apscheduler.schedulers.background import BackgroundScheduler
|
|
from apscheduler.triggers.interval import IntervalTrigger
|
|
|
|
# Configure logging
|
|
logging.basicConfig(level=logging.INFO)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
def update_ytdlp():
|
|
"""
|
|
Check for and install the latest version of yt-dlp.
|
|
"""
|
|
logger.info("Scheduler: Checking for yt-dlp updates...")
|
|
try:
|
|
# Run pip install --upgrade yt-dlp
|
|
result = subprocess.run(
|
|
["pip", "install", "--upgrade", "yt-dlp"],
|
|
capture_output=True,
|
|
text=True,
|
|
check=True
|
|
)
|
|
logger.info(f"Scheduler: yt-dlp update completed.\n{result.stdout}")
|
|
except subprocess.CalledProcessError as e:
|
|
logger.error(f"Scheduler: Failed to update yt-dlp.\nError: {e.stderr}")
|
|
except Exception as e:
|
|
logger.error(f"Scheduler: Unexpected error during update: {str(e)}")
|
|
|
|
def start_scheduler():
|
|
"""
|
|
Initialize and start the background scheduler.
|
|
"""
|
|
scheduler = BackgroundScheduler()
|
|
|
|
# Schedule yt-dlp update every 24 hours
|
|
trigger = IntervalTrigger(days=1)
|
|
scheduler.add_job(
|
|
update_ytdlp,
|
|
trigger=trigger,
|
|
id="update_ytdlp_job",
|
|
name="Update yt-dlp daily",
|
|
replace_existing=True
|
|
)
|
|
|
|
scheduler.start()
|
|
logger.info("Scheduler: Started background scheduler. yt-dlp will update every 24 hours.")
|
|
|
|
# Run once on startup to ensure we are up to date immediately
|
|
# update_ytdlp() # Optional: Uncomment if we want strict enforcement on boot
|
|
|
|
return scheduler
|