diff --git a/IntroSkipper/Configuration/PluginConfiguration.cs b/IntroSkipper/Configuration/PluginConfiguration.cs
index 0a2eb74..e3a4c72 100644
--- a/IntroSkipper/Configuration/PluginConfiguration.cs
+++ b/IntroSkipper/Configuration/PluginConfiguration.cs
@@ -248,12 +248,17 @@ public class PluginConfiguration : BasePluginConfiguration
public string AutoSkipCreditsNotificationText { get; set; } = "Credits skipped";
///
- /// Gets or sets the number of threads for an ffmpeg process.
+ /// Gets or sets the number of threads for a ffmpeg process.
///
public int ProcessThreads { get; set; }
///
- /// Gets or sets the relative priority for an ffmpeg process.
+ /// Gets or sets the relative priority for a ffmpeg process.
///
public ProcessPriorityClass ProcessPriority { get; set; } = ProcessPriorityClass.BelowNormal;
+
+ ///
+ /// Gets or sets a value indicating whether the ManifestUrl is self-managed, e.g. for mainland China.
+ ///
+ public bool OverrideManifestUrl { get; set; }
}
diff --git a/IntroSkipper/Plugin.cs b/IntroSkipper/Plugin.cs
index 8a738f9..95e1a23 100644
--- a/IntroSkipper/Plugin.cs
+++ b/IntroSkipper/Plugin.cs
@@ -92,8 +92,6 @@ public class Plugin : BasePlugin, IHasWebPages
XmlSerializationHelper.MigrateXML(_introPath);
XmlSerializationHelper.MigrateXML(_creditsPath);
- MigrateRepoUrl(serverConfiguration);
-
var oldConfigFile = Path.Join(applicationPaths.PluginConfigurationsPath, "ConfusedPolarBear.Plugin.IntroSkipper.xml");
if (File.Exists(oldConfigFile))
@@ -124,6 +122,8 @@ public class Plugin : BasePlugin, IHasWebPages
}
}
+ MigrateRepoUrl(serverConfiguration);
+
// TODO: remove when https://github.com/jellyfin/jellyfin-meta/discussions/30 is complete
try
{
@@ -458,16 +458,16 @@ public class Plugin : BasePlugin, IHasWebPages
var config = serverConfiguration.Configuration;
// Get the list of current plugin repositories
- var pluginRepositories = config.PluginRepositories?.ToList() ?? [];
+ var pluginRepositories = config.PluginRepositories.ToList();
// check if old plugins exits
- if (pluginRepositories.Exists(repo => repo != null && repo.Url != null && oldRepos.Contains(repo.Url)))
+ if (pluginRepositories.Exists(repo => repo.Url != null && oldRepos.Contains(repo.Url)))
{
// remove all old plugins
- pluginRepositories.RemoveAll(repo => repo != null && repo.Url != null && oldRepos.Contains(repo.Url));
+ pluginRepositories.RemoveAll(repo => repo.Url != null && oldRepos.Contains(repo.Url));
- // Add repository only if it does not exit
- if (!pluginRepositories.Exists(repo => repo.Url == "https://manifest.intro-skipper.org/manifest.json"))
+ // Add repository only if it does not exit and the OverideManifestUrl Option is activated
+ if (!pluginRepositories.Exists(repo => repo.Url == "https://manifest.intro-skipper.org/manifest.json") && Instance!.Configuration.OverrideManifestUrl)
{
// Add the new repository to the list
pluginRepositories.Add(new RepositoryInfo
@@ -500,8 +500,7 @@ public class Plugin : BasePlugin, IHasWebPages
string searchPattern = "dashboard-dashboard.*.chunk.js";
string[] filePaths = Directory.GetFiles(webPath, searchPattern, SearchOption.TopDirectoryOnly);
string pattern = @"buildVersion""\)\.innerText=""(?\d+\.\d+\.\d+)"",.*?webVersion""\)\.innerText=""(?\d+\.\d+\.\d+)";
- string buildVersionString = "unknow";
- string webVersionString = "unknow";
+ string webVersionString = "unknown";
// Create a Regex object
Regex regex = new Regex(pattern);
@@ -514,14 +513,13 @@ public class Plugin : BasePlugin, IHasWebPages
// search for buildVersion and webVersion
if (match.Success)
{
- buildVersionString = match.Groups["buildVersion"].Value;
webVersionString = match.Groups["webVersion"].Value;
_logger.LogInformation("Found jellyfin-web <{WebVersion}>", webVersionString);
break;
}
}
- if (webVersionString != "unknow")
+ if (webVersionString != "unknown")
{
// append Revision
webVersionString += ".0";
@@ -565,12 +563,17 @@ public class Plugin : BasePlugin, IHasWebPages
if (!Instance!.Configuration.SkipButtonEnabled)
{
pattern = @"";
// Only inject the script tag once