- If checked, auto skip will ignore introduction in the first episode of a season.
+ If checked, auto skip will play the introduction of the first episode in a season.
+
+
+
+
+
+
+
+
+ If checked, credits will be automatically skipped. If you access Jellyfin through a
+ reverse proxy, it must be configured to proxy web
+ sockets.
@@ -455,6 +469,16 @@
Message shown after automatically skipping an introduction. Leave blank to disable notification.
+
+
+
+
+
+ Message shown after automatically skipping credits. Leave blank to disable notification.
+
+
@@ -511,9 +535,9 @@
-
-
-
+
+
+
Fingerprint Visualizer
@@ -524,8 +548,8 @@
-
Key
-
Function
+
Key
+
Function
@@ -631,7 +655,8 @@
// UI customization
"SkipButtonIntroText",
"SkipButtonEndCreditsText",
- "AutoSkipNotificationText"
+ "AutoSkipNotificationText",
+ "AutoSkipCreditsNotificationText"
]
var booleanConfigurationFields = [
@@ -642,6 +667,7 @@
"UseChromaprint",
"CacheFingerprints",
"AutoSkip",
+ "AutoSkipCredits",
"SkipFirstEpisode",
"PersistSkipButton",
"SkipButtonVisible"
@@ -666,6 +692,8 @@
var autoSkip = document.querySelector("input#AutoSkip");
var skipFirstEpisode = document.querySelector("div#divSkipFirstEpisode");
var autoSkipNotificationText = document.querySelector("div#divAutoSkipNotificationText");
+ var autoSkipCredits = document.querySelector("input#AutoSkipCredits");
+ var autoSkipCreditsNotificationText = document.querySelector("div#divAutoSkipCreditsNotificationText");
async function autoSkipChanged() {
if (autoSkip.checked) {
@@ -679,6 +707,16 @@
autoSkip.addEventListener("change", autoSkipChanged);
+ async function autoSkipCreditsChanged() {
+ if (autoSkipCredits.checked) {
+ autoSkipCreditsNotificationText.style.display = 'unset';
+ } else {
+ autoSkipCreditsNotificationText.style.display = 'none';
+ }
+ }
+
+ autoSkipCredits.addEventListener("change", autoSkipCreditsChanged);
+
var persistSkip = document.querySelector("input#PersistSkipButton");
var showAdjustment = document.querySelector("div#divShowPromptAdjustment");
var hideAdjustment = document.querySelector("div#divHidePromptAdjustment");
@@ -879,16 +917,16 @@
// make an authenticated GET to the server and parse the response as JSON
async function getJson(url) {
return await fetchWithAuth(url, "GET")
- .then(r => {
- if (r.ok) {
- return r.json();
- } else {
- return null;
- }
- })
- .catch(err => {
- console.debug(err);
- });
+ .then(r => {
+ if (r.ok) {
+ return r.json();
+ } else {
+ return null;
+ }
+ })
+ .catch(err => {
+ console.debug(err);
+ });
}
// make an authenticated fetch to the server
@@ -1018,6 +1056,7 @@
}
autoSkipChanged();
+ autoSkipCreditsChanged();
persistSkipChanged();
Dashboard.hideLoadingMsg();
diff --git a/ConfusedPolarBear.Plugin.IntroSkipper/PluginServiceRegistrator.cs b/ConfusedPolarBear.Plugin.IntroSkipper/PluginServiceRegistrator.cs
index 2f3459a..d3e45d5 100644
--- a/ConfusedPolarBear.Plugin.IntroSkipper/PluginServiceRegistrator.cs
+++ b/ConfusedPolarBear.Plugin.IntroSkipper/PluginServiceRegistrator.cs
@@ -13,6 +13,7 @@ namespace ConfusedPolarBear.Plugin.IntroSkipper
public void RegisterServices(IServiceCollection serviceCollection, IServerApplicationHost applicationHost)
{
serviceCollection.AddHostedService();
+ serviceCollection.AddHostedService();
serviceCollection.AddHostedService();
}
}