Merge branch 'dev'
CI/CD / deploy (push) Has been cancelled Details

This commit is contained in:
Jeff Emmett 2026-04-10 17:27:16 -04:00
commit b9351cf5d6
3 changed files with 53 additions and 3 deletions

View File

@ -25,7 +25,7 @@ export const metadata: Metadata = {
metadataBase: new URL("https://jefflix.com"), metadataBase: new URL("https://jefflix.com"),
title: "Jefflix - Seize the Streams of Production", title: "Jefflix - Seize the Streams of Production",
description: "A revolutionary approach to media consumption. Free from subscriptions, owned by the people.", description: "A revolutionary approach to media consumption. Free from subscriptions, owned by the people.",
generator: "v0.app", manifest: "/manifest.json",
icons: { icons: {
icon: [ icon: [
{ {

49
public/manifest.json Normal file
View File

@ -0,0 +1,49 @@
{
"name": "Jefflix",
"short_name": "Jefflix",
"description": "Self-hosted media streaming — movies, TV, music, and world radio",
"start_url": "/",
"display": "standalone",
"background_color": "#0a0a0a",
"theme_color": "#0a0a0a",
"orientation": "any",
"scope": "/",
"icons": [
{
"src": "/icon-light-32x32.png",
"sizes": "32x32",
"type": "image/png"
},
{
"src": "/apple-icon.png",
"sizes": "180x180",
"type": "image/png"
},
{
"src": "/icon.svg",
"sizes": "any",
"type": "image/svg+xml"
}
],
"shortcuts": [
{
"name": "Music",
"short_name": "Music",
"url": "/music",
"icons": [{ "src": "/icon.svg", "sizes": "any" }]
},
{
"name": "World Radio",
"short_name": "Radio",
"url": "/radio",
"icons": [{ "src": "/icon.svg", "sizes": "any" }]
},
{
"name": "Offline Library",
"short_name": "Offline",
"url": "/offline",
"icons": [{ "src": "/icon.svg", "sizes": "any" }]
}
],
"categories": ["entertainment", "music"]
}

View File

@ -1,6 +1,6 @@
/// <reference lib="webworker" /> /// <reference lib="webworker" />
const CACHE_NAME = 'soulsync-shell-v1' const CACHE_NAME = 'soulsync-shell-v2'
const DB_NAME = 'soulsync-offline' const DB_NAME = 'soulsync-offline'
const AUDIO_STORE = 'audio-blobs' const AUDIO_STORE = 'audio-blobs'
@ -8,6 +8,7 @@ const AUDIO_STORE = 'audio-blobs'
const SHELL_FILES = [ const SHELL_FILES = [
'/', '/',
'/music', '/music',
'/radio',
'/offline', '/offline',
] ]
@ -27,7 +28,7 @@ self.addEventListener('install', (event) => {
self.addEventListener('activate', (event) => { self.addEventListener('activate', (event) => {
event.waitUntil( event.waitUntil(
caches.keys().then((keys) => caches.keys().then((keys) =>
Promise.all(keys.filter((k) => k !== CACHE_NAME).map((k) => caches.delete(k))) Promise.all(keys.filter((k) => k !== CACHE_NAME && k.startsWith('soulsync-')).map((k) => caches.delete(k)))
) )
) )
self.clients.claim() self.clients.claim()