Compare commits

...
25 Commits
Author SHA1 Message Date
DarkFighterLuke 1a8f3b1aa7 Update build.yaml 2024-05-14 19:32:41 +02:00
DarkFighterLuke 59bfaa077e Use master branch as ref in checkout 2024-05-14 19:23:05 +02:00
DarkFighterLuke 9635a49c06 Fix pull parameter 2024-05-14 19:18:01 +02:00
DarkFighterLuke 00eeff552c Fix pull parameter 2024-05-14 19:14:48 +02:00
DarkFighterLuke 4294e7d138 Add pull parameter 2024-05-14 19:13:04 +02:00
DarkFighterLuke b2c7ba6509 Add fetch paramter 2024-05-14 19:09:22 +02:00
DarkFighterLuke 81895dadab Fix parameter for push 2024-05-14 19:04:06 +02:00
DarkFighterLuke 59710b2aba Fix parameter for push 2024-05-14 19:01:00 +02:00
DarkFighterLuke f34db507b0 Add parameter for push 2024-05-14 18:59:39 +02:00
DarkFighterLuke a2432beaa2 Replace action to commit manifest 2024-05-14 18:56:57 +02:00
DarkFighterLuke c908ea5b9c Update action commit 2024-05-14 18:46:15 +02:00
DarkFighterLuke e61beea66b Update action commit 2024-05-14 18:41:28 +02:00
DarkFighterLuke 61b3849406 Update action commit 2024-05-14 17:25:58 +02:00
DarkFighterLuke cb9f79b3fa Update action commit 2024-05-14 17:23:08 +02:00
DarkFighterLuke cf7cdb1ab3 Set as string 2024-05-14 17:16:13 +02:00
DarkFighterLuke f202240fe6 Remove comment 2024-05-14 17:13:16 +02:00
DarkFighterLuke b9d0aeeb05 Update action commit 2024-05-14 17:11:43 +02:00
DarkFighterLuke 46ac3cfdfa Merge branch 'master' of github.com:DarkFighterLuke/TubeArchivistMetadata
build.yaml
2024-05-14 17:05:48 +02:00
DarkFighterLuke a00060ca9c Use DarkFighterLuke jprm fork 2024-05-14 17:01:31 +02:00
DarkFighterLuke c3f5248c80 Merge branch 'master' of github.com:tubearchivist/tubearchivist-jf-plugin 2024-05-09 23:56:08 +02:00
DarkFighterLukeandGitHub 9921dd2308 Update manifest.json 2024-05-09 23:52:37 +02:00
DarkFighterLukeandGitHub 1fcbbba49f Update manifest.json 2024-05-09 23:37:43 +02:00
DarkFighterLukeandGitHub 4557ab6efd Update manifest.json 2024-05-09 23:33:53 +02:00
DarkFighterLuke 9febfef12a Ping TubeArchivist API when saving configuration and at boot 2024-05-09 22:53:56 +02:00
DarkFighterLuke 8842a5fdf9 Add a second line for testing 2024-05-09 10:17:57 +02:00
7 changed files with 144 additions and 20 deletions
+10 -9
View File
@@ -14,9 +14,9 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
ref: master
fetch-depth: 0
- name: Get release version
@@ -51,11 +51,12 @@ jobs:
- name: Build Jellyfin Plugin
uses: oddstr13/jellyfin-plugin-repository-manager@843260fcdfda7cba229c5abd77bdd9c6fc4e850b # v1.1.0
uses: DarkFighterLuke/jellyfin-plugin-repository-manager@f99da255f4e907df607db19f181258d137aa7a17
id: jprm
with:
dotnet-target: net6.0
version: ${VERSION}
update-manifest: "true"
- name: Create release
uses: ncipollo/release-action@v1
@@ -67,10 +68,10 @@ jobs:
tag: ${{ steps.newtag.outputs.tag }}
allowUpdates: true
- name: Update manifest.json
uses: stefanzweifel/git-auto-commit-action@v4
- name: Commit manifest.json
uses: EndBug/add-and-commit@v9
with:
branch: master
commit_message: "Update manifest.json"
file_pattern: manifest.json
skip_fetch: true
add: manifest.json
commit: --signoff
message: "Update manifest.json"
pull: "--no-rebase -X ours origin master"
@@ -13,6 +13,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration
{
private ILogger _logger;
private string _tubeArchivistUrl;
private string _tubeArchivistApiKey;
/// <summary>
/// Initializes a new instance of the <see cref="PluginConfiguration"/> class.
@@ -30,7 +31,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration
CollectionTitle = string.Empty;
_tubeArchivistUrl = string.Empty;
TubeArchivistApiKey = string.Empty;
_tubeArchivistApiKey = string.Empty;
MaxDescriptionLength = 500;
}
@@ -60,13 +61,27 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Configuration
_logger.LogInformation("{Message}", "Given TubeArchivist URL contains no schema. Adding http://...");
_tubeArchivistUrl = Utils.SanitizeUrl("http://" + value);
}
Plugin.Instance?.LogTAApiConnectionStatus();
}
}
/// <summary>
/// Gets or sets TubeArchivist API key.
/// </summary>
public string TubeArchivistApiKey { get; set; }
public string TubeArchivistApiKey
{
get
{
return _tubeArchivistApiKey;
}
set
{
_tubeArchivistApiKey = value;
Plugin.Instance?.LogTAApiConnectionStatus();
}
}
/// <summary>
/// Gets or sets maximum series and episodes overviews length.
@@ -2,7 +2,9 @@ using System;
using System.Collections.Generic;
using System.Globalization;
using System.Net.Http;
using System.Threading.Tasks;
using Jellyfin.Plugin.TubeArchivistMetadata.Configuration;
using Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Plugins;
using MediaBrowser.Model.Plugins;
@@ -34,6 +36,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata
HttpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Token", Instance?.Configuration.TubeArchivistApiKey);
logger.LogInformation("{Message}", "Collection display name: " + Instance?.Configuration.CollectionTitle);
logger.LogInformation("{Message}", "TubeArchivist API URL: " + Instance?.Configuration.TubeArchivistUrl);
logger.LogInformation("{Message}", "Pinging TubeArchivist API...");
}
/// <inheritdoc />
@@ -66,5 +69,28 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata
EmbeddedResourcePath = string.Format(CultureInfo.InvariantCulture, "{0}.Configuration.configPage.html", GetType().Namespace)
}
};
/// <summary>
/// Logs the TubeArchivist API connection status.
/// </summary>
public void LogTAApiConnectionStatus()
{
Logger.LogInformation("{Message}", "Ping...");
var api = TubeArchivistApi.GetInstance();
Task.Run(() => api.Ping()).ContinueWith(
task =>
{
if (task.Result != null)
{
Logger.LogInformation("{Message}", "TubeArchivist API said: " + task.Result.Response + "!");
}
else
{
Logger.LogCritical("{Message}", "TubeArchivist API was unreachable!");
}
},
TaskScheduler.Default);
}
}
}
@@ -0,0 +1,44 @@
using Newtonsoft.Json;
namespace Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist
{
/// <summary>
/// A class representing TubeArchivist API ping response data.
/// </summary>
public class PingResponse
{
/// <summary>
/// Initializes a new instance of the <see cref="PingResponse"/> class.
/// </summary>
/// <param name="response">Response from the API ("pong").</param>
/// <param name="user">TubeArchivist user id.</param>
/// <param name="version">TubeArchivist version.</param>
public PingResponse(
string response,
int user,
string version)
{
this.Response = response;
this.User = user;
this.Version = version;
}
/// <summary>
/// Gets response to the ping ("pong").
/// </summary>
[JsonProperty(PropertyName = "response")]
public string Response { get; }
/// <summary>
/// Gets user id.
/// </summary>
[JsonProperty(PropertyName = "user")]
public int User { get; }
/// <summary>
/// Gets TubeArchivist version.
/// </summary>
[JsonProperty(PropertyName = "version")]
public string Version { get; }
}
}
@@ -116,5 +116,35 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist
return video?.Data;
}
/// <summary>
/// Validates connection and authentication to TubeArchivist.
/// </summary>
/// <returns>The ping response.</returns>
public async Task<PingResponse?> Ping()
{
PingResponse? pong = null;
var pingEndpoint = "/api/ping/";
var url = new Uri(Utils.SanitizeUrl(Plugin.Instance!.Configuration.TubeArchivistUrl + pingEndpoint));
var response = await client.GetAsync(url).ConfigureAwait(true);
while (response.StatusCode == HttpStatusCode.Moved)
{
url = response.Headers.Location;
_logger.LogInformation("{Message}", "Received redirect to: " + url);
response = await client.GetAsync(url).ConfigureAwait(true);
}
_logger.LogInformation("{Message}", url + ": " + response.StatusCode);
if (response.IsSuccessStatusCode)
{
string rawData = await response.Content.ReadAsStringAsync().ConfigureAwait(true);
pong = JsonConvert.DeserializeObject<PingResponse>(rawData);
}
return pong;
}
}
}
+2 -2
View File
@@ -2,7 +2,7 @@
name: "TubeArchivistMetadata"
guid: "dc97d0c6-28b0-4242-afb4-5833ae1b3715"
imageUrl: https://raw.githubusercontent.com/tubearchivist/tubearchivist-jf-plugin/master/images/logo.png
version: "1.2.4.0"
version: "1.2.5.0"
targetAbi: "10.8.0.0"
framework: "net6.0"
overview: "Metadata for your TubeArchivist library on Jellyfin"
@@ -14,4 +14,4 @@ owner: "DarkFighterLuke"
artifacts:
- "Jellyfin.Plugin.TubeArchivistMetadata.dll"
changelog: >
Fix issues with directory separators
Ping the TA API to validate connection
+15 -7
View File
@@ -8,11 +8,19 @@
"overview": "Metadata for your TubeArchivist library on Jellyfin",
"imageUrl": "https://raw.githubusercontent.com/tubearchivist/tubearchivist-jf-plugin/master/images/logo.png",
"versions": [
{
"version": "1.2.4.0",
"changelog": "Fix issues with directory separators\n",
"targetAbi": "10.8.0.0",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.4/tubearchivistmetadata_1.2.4.0.zip",
"checksum": "b418a46d458fe28354580d70748b1ced",
"timestamp": "2024-05-09 15:41:00"
},
{
"version": "1.2.3.0",
"changelog": "Add fix for unclosed HTML breaks\n",
"targetAbi": "10.8.0.0",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.3/TubeArchivistMetadata-1.2.3.zip",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.3/tubearchivistmetadata_1.2.3.0.zip",
"checksum": "f5328a662444739eaa7c59855bfcb203",
"timestamp": "2024-04-18 21:45:00"
},
@@ -20,7 +28,7 @@
"version": "1.2.2.0",
"changelog": "Fix bug on description length substringing\n",
"targetAbi": "10.8.0.0",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.2/TubeArchivistMetadata-1.2.2.zip",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.2/tubearchivistmetadata_1.2.2.0.zip",
"checksum": "82d04546916e1ba76d56de28e648447a",
"timestamp": "2024-03-15 10:12:00"
},
@@ -28,7 +36,7 @@
"version": "1.2.1.0",
"changelog": "Make maximum description length configurable\nTruncate descriptions to 500 characters\n",
"targetAbi": "10.8.0.0",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.1/TubeArchivistMetadata-1.2.1.zip",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.1/tubearchivistmetadata_1.2.1.0.zip",
"checksum": "cf68d169956f166a6ee68a06192651c2",
"timestamp": "2024-03-14 21:50:00"
},
@@ -36,7 +44,7 @@
"version": "1.2.0.0",
"changelog": "Add episodes and series overview\n",
"targetAbi": "10.8.0.0",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.0/TubeArchivistMetadata-1.2.0.zip",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.0/tubearchivistmetadata_1.2.0.0.zip",
"checksum": "75812a4464bf68c43fb9dcdb74d924e3",
"timestamp": "2024-03-14 20:00:00"
},
@@ -44,7 +52,7 @@
"version": "1.1.1.0",
"changelog": "Handle empty tags for videos and channels\nFix URL by removing trailing slash for images\n",
"targetAbi": "10.8.0.0",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.1.1/TubeArchivistMetadata-1.1.1.zip",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.1.1/tubearchivistmetadata_1.1.1.0.zip",
"checksum": "84ce752ce662e834690512c88ba48664",
"timestamp": "2024-03-14 16:35:00"
},
@@ -52,7 +60,7 @@
"version": "1.1.0.0",
"changelog": "Fix field name and add placeholders\nFix URL in logs after redirection\nAdd schema to TubeArchivist URL if not present in settings\nFix a particular case\nLog configuration settings at initialization\nSanitize URLs\n",
"targetAbi": "10.8.0.0",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.1.0/TubeArchivistMetadata-1.1.0.zip",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.1.0/tubearchivistmetadata_1.1.0.0.zip",
"checksum": "de4b6562973b7f75b6afe3a441bb0e19",
"timestamp": "2024-03-13 15:02:00"
},
@@ -60,7 +68,7 @@
"version": "1.0.0.0",
"changelog": "First release\n",
"targetAbi": "10.8.0.0",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.0.0/TubeArchivistMetadata-1.0.0.zip",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.0.0/tubearchivistmetadata_1.0.0.0.zip",
"checksum": "444f8980671de494b1875ee7d1657bcf",
"timestamp": "2024-03-11 16:02:00"
}