pull/3848/head
Jamie Rees 4 years ago
parent 96abeb5861
commit 7f9652ba4e

@ -11,12 +11,14 @@ namespace Ombi.Helpers.Tests
[TestCaseSource(nameof(UrlData))] [TestCaseSource(nameof(UrlData))]
public string TestUrl(string mediaId, string url, string serverId) public string TestUrl(string mediaId, string url, string serverId)
{ {
// http://192.168.68.X:8096/web/index.html#!/item?id=17980&serverId=4e7a85e6ed0b49b9a6d6d15e739a566b
return EmbyHelper.GetEmbyMediaUrl(mediaId, serverId, url); return EmbyHelper.GetEmbyMediaUrl(mediaId, serverId, url);
} }
[TestCaseSource(nameof(JellyfinUrlData))] [TestCaseSource(nameof(JellyfinUrlData))]
public string TestJellyfinUrl(string mediaId, string url, string serverId) public string TestJellyfinUrl(string mediaId, string url, string serverId)
{ {
// http://192.168.68.X:8097/web/index.html#!/details?id=7ffe222498445d5ebfddb31bc4fa9a6d&serverId=50cce67f0baa425093d189b3017331fb
return EmbyHelper.GetEmbyMediaUrl(mediaId, serverId, url, true); return EmbyHelper.GetEmbyMediaUrl(mediaId, serverId, url, true);
} }
@ -25,10 +27,10 @@ namespace Ombi.Helpers.Tests
get get
{ {
var mediaId = 1; var mediaId = 1;
yield return new TestCaseData(mediaId.ToString(), "http://google.com", "1").Returns($"http://google.com/#!/item?id={mediaId}&serverId=1").SetName("EmbyHelper_GetMediaUrl_WithCustomDomain_WithoutTrailingSlash"); yield return new TestCaseData(mediaId.ToString(), "http://google.com", "1").Returns($"http://google.com/web/index.html#!/item?id={mediaId}&serverId=1").SetName("EmbyHelper_GetMediaUrl_WithCustomDomain_WithoutTrailingSlash");
yield return new TestCaseData(mediaId.ToString(), "http://google.com/", "1").Returns($"http://google.com/#!/item?id={mediaId}&serverId=1").SetName("EmbyHelper_GetMediaUrl_WithCustomDomain"); yield return new TestCaseData(mediaId.ToString(), "http://google.com/", "1").Returns($"http://google.com/web/index.html#!/item?id={mediaId}&serverId=1").SetName("EmbyHelper_GetMediaUrl_WithCustomDomain");
yield return new TestCaseData(mediaId.ToString(), "https://google.com/", "1").Returns($"https://google.com/#!/item?id={mediaId}&serverId=1").SetName("EmbyHelper_GetMediaUrl_WithCustomDomain_Https"); yield return new TestCaseData(mediaId.ToString(), "https://google.com/", "1").Returns($"https://google.com/web/index.html#!/item?id={mediaId}&serverId=1").SetName("EmbyHelper_GetMediaUrl_WithCustomDomain_Https");
yield return new TestCaseData(mediaId.ToString(), string.Empty, "1").Returns($"https://app.emby.media/#!/item?id={mediaId}&serverId=1").SetName("EmbyHelper_GetMediaUrl_WithOutCustomDomain"); yield return new TestCaseData(mediaId.ToString(), string.Empty, "1").Returns($"https://app.emby.media/web/index.html#!/item?id={mediaId}&serverId=1").SetName("EmbyHelper_GetMediaUrl_WithOutCustomDomain");
} }
} }
@ -37,9 +39,9 @@ namespace Ombi.Helpers.Tests
get get
{ {
var mediaId = 1; var mediaId = 1;
yield return new TestCaseData(mediaId.ToString(), "http://google.com", "1").Returns($"http://google.com/#!/itemdetails.html?id={mediaId}&serverId=1").SetName("EmbyHelperJellyfin_GetMediaUrl_WithCustomDomain_WithoutTrailingSlash"); yield return new TestCaseData(mediaId.ToString(), "http://google.com", "1").Returns($"http://google.com/web/index.html#!/details?id={mediaId}&serverId=1").SetName("EmbyHelperJellyfin_GetMediaUrl_WithCustomDomain_WithoutTrailingSlash");
yield return new TestCaseData(mediaId.ToString(), "http://google.com/", "1").Returns($"http://google.com/#!/itemdetails.html?id={mediaId}&serverId=1").SetName("EmbyHelperJellyfin_GetMediaUrl_WithCustomDomain"); yield return new TestCaseData(mediaId.ToString(), "http://google.com/", "1").Returns($"http://google.com/web/index.html#!/details?id={mediaId}&serverId=1").SetName("EmbyHelperJellyfin_GetMediaUrl_WithCustomDomain");
yield return new TestCaseData(mediaId.ToString(), "https://google.com/", "1").Returns($"https://google.com/#!/itemdetails.html?id={mediaId}&serverId=1").SetName("EmbyHelperJellyfin_GetMediaUrl_WithCustomDomain_Https"); yield return new TestCaseData(mediaId.ToString(), "https://google.com/", "1").Returns($"https://google.com/web/index.html#!/details?id={mediaId}&serverId=1").SetName("EmbyHelperJellyfin_GetMediaUrl_WithCustomDomain_Https");
} }
} }
} }

@ -4,22 +4,23 @@
{ {
public static string GetEmbyMediaUrl(string mediaId, string serverId, string customerServerUrl = null, bool isJellyfin = false) public static string GetEmbyMediaUrl(string mediaId, string serverId, string customerServerUrl = null, bool isJellyfin = false)
{ {
//web/index.html#!/details|item
string path = "item"; string path = "item";
if (isJellyfin) if (isJellyfin)
{ {
path = "itemdetails.html"; path = "details";
} }
if (customerServerUrl.HasValue()) if (customerServerUrl.HasValue())
{ {
if (!customerServerUrl.EndsWith("/")) if (!customerServerUrl.EndsWith("/"))
{ {
return $"{customerServerUrl}/#!/{path}?id={mediaId}&serverId={serverId}"; return $"{customerServerUrl}/web/index.html#!/{path}?id={mediaId}&serverId={serverId}";
} }
return $"{customerServerUrl}#!/{path}?id={mediaId}&serverId={serverId}"; return $"{customerServerUrl}web/index.html#!/{path}?id={mediaId}&serverId={serverId}";
} }
else else
{ {
return $"https://app.emby.media/#!/{path}?id={mediaId}&serverId={serverId}"; return $"https://app.emby.media/web/index.html#!/{path}?id={mediaId}&serverId={serverId}";
} }
} }
} }

@ -30,12 +30,6 @@
<input matInput placeholder="Server Name" [(ngModel)]="server.name" value="{{server.name}}"> <input matInput placeholder="Server Name" [(ngModel)]="server.name" value="{{server.name}}">
</mat-form-field> </mat-form-field>
</div> </div>
<div class="md-form-field">
<mat-form-field appearance="outline" floatLabel=auto>
<mat-label>Server ID</mat-label>
<input matInput placeholder="Server Id" [(ngModel)]="server.serverId" value="{{server.serverId}}">
</mat-form-field>
</div>
<div class="md-form-field"> <div class="md-form-field">
<mat-form-field appearance="outline" floatLabel=auto> <mat-form-field appearance="outline" floatLabel=auto>
@ -43,6 +37,12 @@
<input matInput placeholder="Hostname or IP" [(ngModel)]="server.ip" value="{{server.ip}}"> <input matInput placeholder="Hostname or IP" [(ngModel)]="server.ip" value="{{server.ip}}">
</mat-form-field> </mat-form-field>
<div class="md-form-field">
<mat-form-field appearance="outline" floatLabel=auto>
<mat-label>Server ID</mat-label>
<input disabled matInput placeholder="Server Id" [(ngModel)]="server.serverId" value="{{server.serverId}}">
</mat-form-field>
</div>
<mat-form-field appearance="outline" floatLabel=auto> <mat-form-field appearance="outline" floatLabel=auto>
<mat-label>Port</mat-label> <mat-label>Port</mat-label>
<input matInput placeholder="Port" [(ngModel)]="server.port" value="{{server.port}}"> <input matInput placeholder="Port" [(ngModel)]="server.port" value="{{server.port}}">

Loading…
Cancel
Save