Don't let a failed index.html backup block the injection
On linuxserver/jellyfin the web folder belongs to root, so copying index.html to index.html.sharelinks.bak threw even when index.html itself was writable, and the ShareLink action never got injected. The backup is best-effort now. Bump to 1.0.7.0.
Cette révision appartient à :
@@ -6,9 +6,9 @@
|
|||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
<RootNamespace>Jellyfin.Plugin.ShareLinks</RootNamespace>
|
<RootNamespace>Jellyfin.Plugin.ShareLinks</RootNamespace>
|
||||||
<AssemblyName>Jellyfin.Plugin.ShareLinks</AssemblyName>
|
<AssemblyName>Jellyfin.Plugin.ShareLinks</AssemblyName>
|
||||||
<Version>1.0.6.0</Version>
|
<Version>1.0.7.0</Version>
|
||||||
<AssemblyVersion>1.0.6.0</AssemblyVersion>
|
<AssemblyVersion>1.0.7.0</AssemblyVersion>
|
||||||
<FileVersion>1.0.6.0</FileVersion>
|
<FileVersion>1.0.7.0</FileVersion>
|
||||||
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
||||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||||
<ImplicitUsings>disable</ImplicitUsings>
|
<ImplicitUsings>disable</ImplicitUsings>
|
||||||
|
|||||||
@@ -70,11 +70,7 @@ public sealed class WebInjectionHostedService : IHostedService
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var backup = path + ".sharelinks.bak";
|
TryBackup(path, path + ".sharelinks.bak");
|
||||||
if (!File.Exists(backup))
|
|
||||||
{
|
|
||||||
File.Copy(path, backup);
|
|
||||||
}
|
|
||||||
|
|
||||||
var snippet = "\n" + Begin + "\n<script src=\"/ShareLinks/ClientScript\" defer></script>\n" + End + "\n";
|
var snippet = "\n" + Begin + "\n<script src=\"/ShareLinks/ClientScript\" defer></script>\n" + End + "\n";
|
||||||
var bodyIndex = html.LastIndexOf("</body>", StringComparison.OrdinalIgnoreCase);
|
var bodyIndex = html.LastIndexOf("</body>", StringComparison.OrdinalIgnoreCase);
|
||||||
@@ -84,4 +80,21 @@ public sealed class WebInjectionHostedService : IHostedService
|
|||||||
_logger.LogInformation("ShareLinks: injected client script into {Path}.", path);
|
_logger.LogInformation("ShareLinks: injected client script into {Path}.", path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void TryBackup(string path, string backup)
|
||||||
|
{
|
||||||
|
// The backup is only a convenience. Some images (linuxserver) make the
|
||||||
|
// web folder root-owned while index.html itself is writable, so a
|
||||||
|
// failed copy must not stop the injection.
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!File.Exists(backup))
|
||||||
|
{
|
||||||
|
File.Copy(path, backup);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex) when (ex is UnauthorizedAccessException or IOException)
|
||||||
|
{
|
||||||
|
_logger.LogDebug(ex, "ShareLinks: could not back up {Path}, injecting without a backup.", path);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"guid": "68540b76-ee74-436d-85ff-2abc884bbea6",
|
"guid": "68540b76-ee74-436d-85ff-2abc884bbea6",
|
||||||
"name": "ShareLinks",
|
"name": "ShareLinks",
|
||||||
"version": "1.0.6.0",
|
"version": "1.0.7.0",
|
||||||
"targetAbi": "10.11.0.0",
|
"targetAbi": "10.11.0.0",
|
||||||
"framework": "net9.0",
|
"framework": "net9.0",
|
||||||
"owner": "Franciskid",
|
"owner": "Franciskid",
|
||||||
"overview": "Secure expiring guest-share links for Jellyfin items.",
|
"overview": "Secure expiring guest-share links for Jellyfin items.",
|
||||||
"description": "Adds secure, expiring share links for Jellyfin items with JSON-backed storage, token hashing, and cleanup scaffolding.",
|
"description": "Adds secure, expiring share links for Jellyfin items with JSON-backed storage, token hashing, and cleanup scaffolding.",
|
||||||
"category": "General",
|
"category": "General",
|
||||||
"timestamp": "2026-09-18T12:00:00.0000000Z"
|
"timestamp": "2026-09-18T14:00:00.0000000Z"
|
||||||
}
|
}
|
||||||
|
|||||||
Référencer dans un nouveau ticket
Bloquer un utilisateur