chore: specify files/directories to exclude from git archives (#2184)

Co-authored-by: Danshil Kokil Mungur <me@danshilm.com>
pull/3650/head
TheCatLady 7 months ago committed by GitHub
parent 3ea5076053
commit e2771a3011
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

21
.gitattributes vendored

@ -24,3 +24,24 @@
*.woff binary *.woff binary
*.pyc binary *.pyc binary
*.pdf binary *.pdf binary
#
## Theses files/directories should be excluded from git archives
#
.husky export-ignore
.vscode export-ignore
docs export-ignore
.git* export-ignore
*ignore export-ignore
*.md export-ignore
.all-contributorsrc export-ignore
.editorconfig export-ignore
Dockerfile.local export-ignore
docker-compose.yml export-ignore
stylelint.config.js export-ignore
public/os_logo_filled.png export-ignore
public/preview.jpg export-ignore

@ -3,147 +3,147 @@
"vapidPrivate": "tmnslaO8ZWN6bNbSEv_rolPeBTlNxOwCCAHrM9oZz3M", "vapidPrivate": "tmnslaO8ZWN6bNbSEv_rolPeBTlNxOwCCAHrM9oZz3M",
"vapidPublic": "BK_EpP8NDm9waor2zn6_S28o3ZYv4kCkJOfYpO3pt3W6jnPmxrgTLANUBNbbyaNatPnSQ12De9CeqSYQrqWzHTs", "vapidPublic": "BK_EpP8NDm9waor2zn6_S28o3ZYv4kCkJOfYpO3pt3W6jnPmxrgTLANUBNbbyaNatPnSQ12De9CeqSYQrqWzHTs",
"main": { "main": {
"apiKey": "testkey", "apiKey": "testkey",
"applicationTitle": "Overseerr", "applicationTitle": "Overseerr",
"applicationUrl": "", "applicationUrl": "",
"csrfProtection": false, "csrfProtection": false,
"cacheImages": false, "cacheImages": false,
"defaultPermissions": 32, "defaultPermissions": 32,
"defaultQuotas": { "defaultQuotas": {
"movie": {}, "movie": {},
"tv": {} "tv": {}
}, },
"hideAvailable": false, "hideAvailable": false,
"localLogin": true, "localLogin": true,
"newPlexLogin": true, "newPlexLogin": true,
"region": "", "region": "",
"originalLanguage": "", "originalLanguage": "",
"trustProxy": false, "trustProxy": false,
"partialRequestsEnabled": true, "partialRequestsEnabled": true,
"locale": "en" "locale": "en"
}, },
"plex": { "plex": {
"name": "Seerr", "name": "Seerr",
"ip": "192.168.1.1", "ip": "192.168.1.1",
"port": 32400, "port": 32400,
"useSsl": false, "useSsl": false,
"libraries": [ "libraries": [
{ {
"id": "1", "id": "1",
"name": "Movies", "name": "Movies",
"enabled": true, "enabled": true,
"type": "movie" "type": "movie"
} }
], ],
"machineId": "test" "machineId": "test"
}, },
"tautulli": {}, "tautulli": {},
"radarr": [], "radarr": [],
"sonarr": [], "sonarr": [],
"public": { "public": {
"initialized": true "initialized": true
}, },
"notifications": { "notifications": {
"agents": { "agents": {
"email": { "email": {
"enabled": false, "enabled": false,
"options": { "options": {
"emailFrom": "", "emailFrom": "",
"smtpHost": "", "smtpHost": "",
"smtpPort": 587, "smtpPort": 587,
"secure": false, "secure": false,
"ignoreTls": false, "ignoreTls": false,
"requireTls": false, "requireTls": false,
"allowSelfSigned": false, "allowSelfSigned": false,
"senderName": "Overseerr" "senderName": "Overseerr"
} }
}, },
"discord": { "discord": {
"enabled": false, "enabled": false,
"types": 0, "types": 0,
"options": { "options": {
"webhookUrl": "", "webhookUrl": "",
"enableMentions": true "enableMentions": true
} }
}, },
"lunasea": { "lunasea": {
"enabled": false, "enabled": false,
"types": 0, "types": 0,
"options": { "options": {
"webhookUrl": "" "webhookUrl": ""
} }
}, },
"slack": { "slack": {
"enabled": false, "enabled": false,
"types": 0, "types": 0,
"options": { "options": {
"webhookUrl": "" "webhookUrl": ""
} }
}, },
"telegram": { "telegram": {
"enabled": false, "enabled": false,
"types": 0, "types": 0,
"options": { "options": {
"botAPI": "", "botAPI": "",
"chatId": "", "chatId": "",
"sendSilently": false "sendSilently": false
} }
},
"pushbullet": {
"enabled": false,
"types": 0,
"options": {
"accessToken": ""
}
},
"pushover": {
"enabled": false,
"types": 0,
"options": {
"accessToken": "",
"userToken": ""
}
},
"webhook": {
"enabled": false,
"types": 0,
"options": {
"webhookUrl": "",
"jsonPayload": "IntcbiAgICBcIm5vdGlmaWNhdGlvbl90eXBlXCI6IFwie3tub3RpZmljYXRpb25fdHlwZX19XCIsXG4gICAgXCJldmVudFwiOiBcInt7ZXZlbnR9fVwiLFxuICAgIFwic3ViamVjdFwiOiBcInt7c3ViamVjdH19XCIsXG4gICAgXCJtZXNzYWdlXCI6IFwie3ttZXNzYWdlfX1cIixcbiAgICBcImltYWdlXCI6IFwie3tpbWFnZX19XCIsXG4gICAgXCJ7e21lZGlhfX1cIjoge1xuICAgICAgICBcIm1lZGlhX3R5cGVcIjogXCJ7e21lZGlhX3R5cGV9fVwiLFxuICAgICAgICBcInRtZGJJZFwiOiBcInt7bWVkaWFfdG1kYmlkfX1cIixcbiAgICAgICAgXCJ0dmRiSWRcIjogXCJ7e21lZGlhX3R2ZGJpZH19XCIsXG4gICAgICAgIFwic3RhdHVzXCI6IFwie3ttZWRpYV9zdGF0dXN9fVwiLFxuICAgICAgICBcInN0YXR1czRrXCI6IFwie3ttZWRpYV9zdGF0dXM0a319XCJcbiAgICB9LFxuICAgIFwie3tyZXF1ZXN0fX1cIjoge1xuICAgICAgICBcInJlcXVlc3RfaWRcIjogXCJ7e3JlcXVlc3RfaWR9fVwiLFxuICAgICAgICBcInJlcXVlc3RlZEJ5X2VtYWlsXCI6IFwie3tyZXF1ZXN0ZWRCeV9lbWFpbH19XCIsXG4gICAgICAgIFwicmVxdWVzdGVkQnlfdXNlcm5hbWVcIjogXCJ7e3JlcXVlc3RlZEJ5X3VzZXJuYW1lfX1cIixcbiAgICAgICAgXCJyZXF1ZXN0ZWRCeV9hdmF0YXJcIjogXCJ7e3JlcXVlc3RlZEJ5X2F2YXRhcn19XCJcbiAgICB9LFxuICAgIFwie3tpc3N1ZX19XCI6IHtcbiAgICAgICAgXCJpc3N1ZV9pZFwiOiBcInt7aXNzdWVfaWR9fVwiLFxuICAgICAgICBcImlzc3VlX3R5cGVcIjogXCJ7e2lzc3VlX3R5cGV9fVwiLFxuICAgICAgICBcImlzc3VlX3N0YXR1c1wiOiBcInt7aXNzdWVfc3RhdHVzfX1cIixcbiAgICAgICAgXCJyZXBvcnRlZEJ5X2VtYWlsXCI6IFwie3tyZXBvcnRlZEJ5X2VtYWlsfX1cIixcbiAgICAgICAgXCJyZXBvcnRlZEJ5X3VzZXJuYW1lXCI6IFwie3tyZXBvcnRlZEJ5X3VzZXJuYW1lfX1cIixcbiAgICAgICAgXCJyZXBvcnRlZEJ5X2F2YXRhclwiOiBcInt7cmVwb3J0ZWRCeV9hdmF0YXJ9fVwiXG4gICAgfSxcbiAgICBcInt7Y29tbWVudH19XCI6IHtcbiAgICAgICAgXCJjb21tZW50X21lc3NhZ2VcIjogXCJ7e2NvbW1lbnRfbWVzc2FnZX19XCIsXG4gICAgICAgIFwiY29tbWVudGVkQnlfZW1haWxcIjogXCJ7e2NvbW1lbnRlZEJ5X2VtYWlsfX1cIixcbiAgICAgICAgXCJjb21tZW50ZWRCeV91c2VybmFtZVwiOiBcInt7Y29tbWVudGVkQnlfdXNlcm5hbWV9fVwiLFxuICAgICAgICBcImNvbW1lbnRlZEJ5X2F2YXRhclwiOiBcInt7Y29tbWVudGVkQnlfYXZhdGFyfX1cIlxuICAgIH0sXG4gICAgXCJ7e2V4dHJhfX1cIjogW11cbn0i"
}
},
"webpush": {
"enabled": false,
"options": {}
},
"gotify": {
"enabled": false,
"types": 0,
"options": {
"url": "",
"token": ""
}
}
}
},
"jobs": {
"plex-recently-added-scan": {
"schedule": "0 */5 * * * *"
}, },
"pushbullet": { "plex-full-scan": {
"enabled": false, "schedule": "0 0 3 * * *"
"types": 0,
"options": {
"accessToken": ""
}
}, },
"pushover": { "radarr-scan": {
"enabled": false, "schedule": "0 0 4 * * *"
"types": 0,
"options": {
"accessToken": "",
"userToken": ""
}
}, },
"webhook": { "sonarr-scan": {
"enabled": false, "schedule": "0 30 4 * * *"
"types": 0,
"options": {
"webhookUrl": "",
"jsonPayload": "IntcbiAgICBcIm5vdGlmaWNhdGlvbl90eXBlXCI6IFwie3tub3RpZmljYXRpb25fdHlwZX19XCIsXG4gICAgXCJldmVudFwiOiBcInt7ZXZlbnR9fVwiLFxuICAgIFwic3ViamVjdFwiOiBcInt7c3ViamVjdH19XCIsXG4gICAgXCJtZXNzYWdlXCI6IFwie3ttZXNzYWdlfX1cIixcbiAgICBcImltYWdlXCI6IFwie3tpbWFnZX19XCIsXG4gICAgXCJ7e21lZGlhfX1cIjoge1xuICAgICAgICBcIm1lZGlhX3R5cGVcIjogXCJ7e21lZGlhX3R5cGV9fVwiLFxuICAgICAgICBcInRtZGJJZFwiOiBcInt7bWVkaWFfdG1kYmlkfX1cIixcbiAgICAgICAgXCJ0dmRiSWRcIjogXCJ7e21lZGlhX3R2ZGJpZH19XCIsXG4gICAgICAgIFwic3RhdHVzXCI6IFwie3ttZWRpYV9zdGF0dXN9fVwiLFxuICAgICAgICBcInN0YXR1czRrXCI6IFwie3ttZWRpYV9zdGF0dXM0a319XCJcbiAgICB9LFxuICAgIFwie3tyZXF1ZXN0fX1cIjoge1xuICAgICAgICBcInJlcXVlc3RfaWRcIjogXCJ7e3JlcXVlc3RfaWR9fVwiLFxuICAgICAgICBcInJlcXVlc3RlZEJ5X2VtYWlsXCI6IFwie3tyZXF1ZXN0ZWRCeV9lbWFpbH19XCIsXG4gICAgICAgIFwicmVxdWVzdGVkQnlfdXNlcm5hbWVcIjogXCJ7e3JlcXVlc3RlZEJ5X3VzZXJuYW1lfX1cIixcbiAgICAgICAgXCJyZXF1ZXN0ZWRCeV9hdmF0YXJcIjogXCJ7e3JlcXVlc3RlZEJ5X2F2YXRhcn19XCJcbiAgICB9LFxuICAgIFwie3tpc3N1ZX19XCI6IHtcbiAgICAgICAgXCJpc3N1ZV9pZFwiOiBcInt7aXNzdWVfaWR9fVwiLFxuICAgICAgICBcImlzc3VlX3R5cGVcIjogXCJ7e2lzc3VlX3R5cGV9fVwiLFxuICAgICAgICBcImlzc3VlX3N0YXR1c1wiOiBcInt7aXNzdWVfc3RhdHVzfX1cIixcbiAgICAgICAgXCJyZXBvcnRlZEJ5X2VtYWlsXCI6IFwie3tyZXBvcnRlZEJ5X2VtYWlsfX1cIixcbiAgICAgICAgXCJyZXBvcnRlZEJ5X3VzZXJuYW1lXCI6IFwie3tyZXBvcnRlZEJ5X3VzZXJuYW1lfX1cIixcbiAgICAgICAgXCJyZXBvcnRlZEJ5X2F2YXRhclwiOiBcInt7cmVwb3J0ZWRCeV9hdmF0YXJ9fVwiXG4gICAgfSxcbiAgICBcInt7Y29tbWVudH19XCI6IHtcbiAgICAgICAgXCJjb21tZW50X21lc3NhZ2VcIjogXCJ7e2NvbW1lbnRfbWVzc2FnZX19XCIsXG4gICAgICAgIFwiY29tbWVudGVkQnlfZW1haWxcIjogXCJ7e2NvbW1lbnRlZEJ5X2VtYWlsfX1cIixcbiAgICAgICAgXCJjb21tZW50ZWRCeV91c2VybmFtZVwiOiBcInt7Y29tbWVudGVkQnlfdXNlcm5hbWV9fVwiLFxuICAgICAgICBcImNvbW1lbnRlZEJ5X2F2YXRhclwiOiBcInt7Y29tbWVudGVkQnlfYXZhdGFyfX1cIlxuICAgIH0sXG4gICAgXCJ7e2V4dHJhfX1cIjogW11cbn0i"
}
}, },
"webpush": { "download-sync": {
"enabled": false, "schedule": "0 * * * * *"
"options": {}
}, },
"gotify": { "download-sync-reset": {
"enabled": false, "schedule": "0 0 1 * * *"
"types": 0,
"options": {
"url": "",
"token": ""
}
} }
}
},
"jobs": {
"plex-recently-added-scan": {
"schedule": "0 */5 * * * *"
},
"plex-full-scan": {
"schedule": "0 0 3 * * *"
},
"radarr-scan": {
"schedule": "0 0 4 * * *"
},
"sonarr-scan": {
"schedule": "0 30 4 * * *"
},
"download-sync": {
"schedule": "0 * * * * *"
},
"download-sync-reset": {
"schedule": "0 0 1 * * *"
}
} }
} }

@ -17,7 +17,7 @@
} }
h1 { h1 {
color: #6366F1; color: #6366f1;
} }
p { p {
@ -37,7 +37,7 @@
<!-- Inline the page's JavaScript file. --> <!-- Inline the page's JavaScript file. -->
<script> <script>
// Manual reload feature. // Manual reload feature.
document.querySelector("button").addEventListener("click", () => { document.querySelector('button').addEventListener('click', () => {
window.location.reload(); window.location.reload();
}); });

@ -4,30 +4,30 @@
// This variable is intentionally declared and unused. // This variable is intentionally declared and unused.
// eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line @typescript-eslint/no-unused-vars
const OFFLINE_VERSION = 3; const OFFLINE_VERSION = 3;
const CACHE_NAME = "offline"; const CACHE_NAME = 'offline';
// Customize this with a different URL if needed. // Customize this with a different URL if needed.
const OFFLINE_URL = "/offline.html"; const OFFLINE_URL = '/offline.html';
self.addEventListener("install", (event) => { self.addEventListener('install', (event) => {
event.waitUntil( event.waitUntil(
(async () => { (async () => {
const cache = await caches.open(CACHE_NAME); const cache = await caches.open(CACHE_NAME);
// Setting {cache: 'reload'} in the new request will ensure that the // Setting {cache: 'reload'} in the new request will ensure that the
// response isn't fulfilled from the HTTP cache; i.e., it will be from // response isn't fulfilled from the HTTP cache; i.e., it will be from
// the network. // the network.
await cache.add(new Request(OFFLINE_URL, { cache: "reload" })); await cache.add(new Request(OFFLINE_URL, { cache: 'reload' }));
})() })()
); );
// Force the waiting service worker to become the active service worker. // Force the waiting service worker to become the active service worker.
self.skipWaiting(); self.skipWaiting();
}); });
self.addEventListener("activate", (event) => { self.addEventListener('activate', (event) => {
event.waitUntil( event.waitUntil(
(async () => { (async () => {
// Enable navigation preload if it's supported. // Enable navigation preload if it's supported.
// See https://developers.google.com/web/updates/2017/02/navigation-preload // See https://developers.google.com/web/updates/2017/02/navigation-preload
if ("navigationPreload" in self.registration) { if ('navigationPreload' in self.registration) {
await self.registration.navigationPreload.enable(); await self.registration.navigationPreload.enable();
} }
})() })()
@ -37,10 +37,10 @@ self.addEventListener("activate", (event) => {
clients.claim(); clients.claim();
}); });
self.addEventListener("fetch", (event) => { self.addEventListener('fetch', (event) => {
// We only want to call event.respondWith() if this is a navigation request // We only want to call event.respondWith() if this is a navigation request
// for an HTML page. // for an HTML page.
if (event.request.mode === "navigate") { if (event.request.mode === 'navigate') {
event.respondWith( event.respondWith(
(async () => { (async () => {
try { try {
@ -59,7 +59,7 @@ self.addEventListener("fetch", (event) => {
// If fetch() returns a valid HTTP response with a response code in // If fetch() returns a valid HTTP response with a response code in
// the 4xx or 5xx range, the catch() will NOT be called. // the 4xx or 5xx range, the catch() will NOT be called.
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.log("Fetch failed; returning offline page instead.", error); console.log('Fetch failed; returning offline page instead.', error);
const cache = await caches.open(CACHE_NAME); const cache = await caches.open(CACHE_NAME);
const cachedResponse = await cache.match(OFFLINE_URL); const cachedResponse = await cache.match(OFFLINE_URL);
@ -85,15 +85,13 @@ self.addEventListener('push', (event) => {
requestId: payload.requestId, requestId: payload.requestId,
}, },
actions: [], actions: [],
} };
if (payload.actionUrl){ if (payload.actionUrl) {
options.actions.push( options.actions.push({
{ action: 'view',
action: 'view', title: payload.actionUrlTitle ?? 'View',
title: payload.actionUrlTitle ?? 'View', });
}
);
} }
if (payload.notificationType === 'MEDIA_PENDING') { if (payload.notificationType === 'MEDIA_PENDING') {
@ -109,27 +107,29 @@ self.addEventListener('push', (event) => {
); );
} }
event.waitUntil( event.waitUntil(self.registration.showNotification(payload.subject, options));
self.registration.showNotification(payload.subject, options)
);
}); });
self.addEventListener('notificationclick', (event) => { self.addEventListener(
const notificationData = event.notification.data; 'notificationclick',
(event) => {
const notificationData = event.notification.data;
event.notification.close(); event.notification.close();
if (event.action === 'approve') { if (event.action === 'approve') {
fetch(`/api/v1/request/${notificationData.requestId}/approve`, { fetch(`/api/v1/request/${notificationData.requestId}/approve`, {
method: 'POST', method: 'POST',
}); });
} else if (event.action === 'decline') { } else if (event.action === 'decline') {
fetch(`/api/v1/request/${notificationData.requestId}/decline`, { fetch(`/api/v1/request/${notificationData.requestId}/decline`, {
method: 'POST', method: 'POST',
}); });
} }
if (notificationData.actionUrl) { if (notificationData.actionUrl) {
clients.openWindow(notificationData.actionUrl); clients.openWindow(notificationData.actionUrl);
} }
}, false); },
false
);

Loading…
Cancel
Save