aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Providers/Books/ComicVine/ComicVineExternalId.cs (renamed from MediaBrowser.Providers/Plugins/ComicVine/ComicVineExternalId.cs)2
-rw-r--r--MediaBrowser.Providers/Books/ComicVine/ComicVineExternalUrlProvider.cs (renamed from MediaBrowser.Providers/Plugins/ComicVine/ComicVineExternalUrlProvider.cs)2
-rw-r--r--MediaBrowser.Providers/Books/ComicVine/ComicVinePersonExternalId.cs (renamed from MediaBrowser.Providers/Plugins/ComicVine/ComicVinePersonExternalId.cs)2
-rw-r--r--MediaBrowser.Providers/Books/GoogleBooks/GoogleBooksExternalId.cs (renamed from MediaBrowser.Providers/Plugins/GoogleBooks/GoogleBooksExternalId.cs)2
-rw-r--r--MediaBrowser.Providers/Books/GoogleBooks/GoogleBooksExternalUrlProvider.cs (renamed from MediaBrowser.Providers/Plugins/GoogleBooks/GoogleBooksExternalUrlProvider.cs)2
-rw-r--r--MediaBrowser.Providers/MediaBrowser.Providers.csproj12
-rw-r--r--MediaBrowser.Providers/Plugins/ComicVine/Configuration/PluginConfiguration.cs10
-rw-r--r--MediaBrowser.Providers/Plugins/ComicVine/Plugin.cs45
-rw-r--r--MediaBrowser.Providers/Plugins/ComicVine/jellyfin-plugin-comicvine.svg16
-rw-r--r--MediaBrowser.Providers/Plugins/GoogleBooks/Configuration/PluginConfiguration.cs10
-rw-r--r--MediaBrowser.Providers/Plugins/GoogleBooks/Plugin.cs45
-rw-r--r--MediaBrowser.Providers/Plugins/GoogleBooks/jellyfin-plugin-googlebooks.svg18
-rw-r--r--tests/Jellyfin.Providers.Tests/ExternalId/ComicVineExternalUrlProviderTests.cs2
-rw-r--r--tests/Jellyfin.Providers.Tests/ExternalId/GoogleBooksExternalUrlProviderTests.cs2
14 files changed, 7 insertions, 163 deletions
diff --git a/MediaBrowser.Providers/Plugins/ComicVine/ComicVineExternalId.cs b/MediaBrowser.Providers/Books/ComicVine/ComicVineExternalId.cs
index 8cbd1f89a7..e2e785eaca 100644
--- a/MediaBrowser.Providers/Plugins/ComicVine/ComicVineExternalId.cs
+++ b/MediaBrowser.Providers/Books/ComicVine/ComicVineExternalId.cs
@@ -3,7 +3,7 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers;
-namespace MediaBrowser.Providers.Plugins.ComicVine
+namespace MediaBrowser.Providers.Books.ComicVine
{
/// <inheritdoc />
public class ComicVineExternalId : IExternalId
diff --git a/MediaBrowser.Providers/Plugins/ComicVine/ComicVineExternalUrlProvider.cs b/MediaBrowser.Providers/Books/ComicVine/ComicVineExternalUrlProvider.cs
index 9122399179..a8450ec599 100644
--- a/MediaBrowser.Providers/Plugins/ComicVine/ComicVineExternalUrlProvider.cs
+++ b/MediaBrowser.Providers/Books/ComicVine/ComicVineExternalUrlProvider.cs
@@ -3,7 +3,7 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
-namespace MediaBrowser.Providers.Plugins.ComicVine;
+namespace MediaBrowser.Providers.Books.ComicVine;
/// <inheritdoc/>
public class ComicVineExternalUrlProvider : IExternalUrlProvider
diff --git a/MediaBrowser.Providers/Plugins/ComicVine/ComicVinePersonExternalId.cs b/MediaBrowser.Providers/Books/ComicVine/ComicVinePersonExternalId.cs
index 26b8e11380..f625fb9649 100644
--- a/MediaBrowser.Providers/Plugins/ComicVine/ComicVinePersonExternalId.cs
+++ b/MediaBrowser.Providers/Books/ComicVine/ComicVinePersonExternalId.cs
@@ -3,7 +3,7 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers;
-namespace MediaBrowser.Providers.Plugins.ComicVine
+namespace MediaBrowser.Providers.Books.ComicVine
{
/// <inheritdoc />
public class ComicVinePersonExternalId : IExternalId
diff --git a/MediaBrowser.Providers/Plugins/GoogleBooks/GoogleBooksExternalId.cs b/MediaBrowser.Providers/Books/GoogleBooks/GoogleBooksExternalId.cs
index 02d3b36974..aac8cdff65 100644
--- a/MediaBrowser.Providers/Plugins/GoogleBooks/GoogleBooksExternalId.cs
+++ b/MediaBrowser.Providers/Books/GoogleBooks/GoogleBooksExternalId.cs
@@ -3,7 +3,7 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers;
-namespace MediaBrowser.Providers.Plugins.GoogleBooks
+namespace MediaBrowser.Providers.Books.GoogleBooks
{
/// <inheritdoc />
public class GoogleBooksExternalId : IExternalId
diff --git a/MediaBrowser.Providers/Plugins/GoogleBooks/GoogleBooksExternalUrlProvider.cs b/MediaBrowser.Providers/Books/GoogleBooks/GoogleBooksExternalUrlProvider.cs
index 95047ee83e..0559db2e2b 100644
--- a/MediaBrowser.Providers/Plugins/GoogleBooks/GoogleBooksExternalUrlProvider.cs
+++ b/MediaBrowser.Providers/Books/GoogleBooks/GoogleBooksExternalUrlProvider.cs
@@ -3,7 +3,7 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
-namespace MediaBrowser.Providers.Plugins.GoogleBooks;
+namespace MediaBrowser.Providers.Books.GoogleBooks;
/// <inheritdoc/>
public class GoogleBooksExternalUrlProvider : IExternalUrlProvider
diff --git a/MediaBrowser.Providers/MediaBrowser.Providers.csproj b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
index 181cda3288..1032582900 100644
--- a/MediaBrowser.Providers/MediaBrowser.Providers.csproj
+++ b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
@@ -55,18 +55,6 @@
<EmbeddedResource Include="Plugins\AudioDb\jellyfin-plugin-tadb.svg" />
</ItemGroup>
- <!-- ComicVine -->
- <ItemGroup>
- <None Remove="Plugins\ComicVine\jellyfin-plugin-comicvine.svg" />
- <EmbeddedResource Include="Plugins\ComicVine\jellyfin-plugin-comicvine.svg" />
- </ItemGroup>
-
- <!-- GoogleBooks -->
- <ItemGroup>
- <None Remove="Plugins\GoogleBooks\jellyfin-plugin-googlebooks.svg" />
- <EmbeddedResource Include="Plugins\GoogleBooks\jellyfin-plugin-googlebooks.svg" />
- </ItemGroup>
-
<!-- ListenBrainz -->
<ItemGroup>
<None Remove="Plugins\ListenBrainz\Configuration\config.html" />
diff --git a/MediaBrowser.Providers/Plugins/ComicVine/Configuration/PluginConfiguration.cs b/MediaBrowser.Providers/Plugins/ComicVine/Configuration/PluginConfiguration.cs
deleted file mode 100644
index d35639d7e8..0000000000
--- a/MediaBrowser.Providers/Plugins/ComicVine/Configuration/PluginConfiguration.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using MediaBrowser.Model.Plugins;
-
-namespace MediaBrowser.Providers.Plugins.ComicVine;
-
-/// <summary>
-/// Plugin configuration for the Comic Vine provider.
-/// </summary>
-public class PluginConfiguration : BasePluginConfiguration
-{
-}
diff --git a/MediaBrowser.Providers/Plugins/ComicVine/Plugin.cs b/MediaBrowser.Providers/Plugins/ComicVine/Plugin.cs
deleted file mode 100644
index 101fa103b0..0000000000
--- a/MediaBrowser.Providers/Plugins/ComicVine/Plugin.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System;
-using MediaBrowser.Common.Configuration;
-using MediaBrowser.Common.Plugins;
-using MediaBrowser.Controller.Plugins;
-using MediaBrowser.Model.Serialization;
-
-namespace MediaBrowser.Providers.Plugins.ComicVine;
-
-/// <summary>
-/// ComicVine plugin instance.
-/// </summary>
-public class Plugin : BasePlugin<PluginConfiguration>, IHasEmbeddedImage
-{
- /// <summary>
- /// Initializes a new instance of the <see cref="Plugin"/> class.
- /// </summary>
- /// <param name="applicationPaths">Instance of the <see cref="IApplicationPaths"/> interface.</param>
- /// <param name="xmlSerializer">Instance of the <see cref="IXmlSerializer"/> interface.</param>
- public Plugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer)
- : base(applicationPaths, xmlSerializer)
- {
- Instance = this;
- }
-
- /// <summary>
- /// Gets the current plugin instance.
- /// </summary>
- public static Plugin? Instance { get; private set; }
-
- /// <inheritdoc />
- public override Guid Id => new("3ade6fd1-c76c-4560-b2df-f6bca4c2332f");
-
- /// <inheritdoc />
- public override string Name => "Comic Vine";
-
- /// <inheritdoc />
- public override string Description => "Get external links for comic books from Comic Vine.";
-
- /// <inheritdoc />
- // TODO remove when plugin removed from server.
- public override string ConfigurationFileName => "Jellyfin.Plugin.ComicVine.xml";
-
- /// <inheritdoc />
- public string ImageResourceName => GetType().Namespace + ".jellyfin-plugin-comicvine.svg";
-}
diff --git a/MediaBrowser.Providers/Plugins/ComicVine/jellyfin-plugin-comicvine.svg b/MediaBrowser.Providers/Plugins/ComicVine/jellyfin-plugin-comicvine.svg
deleted file mode 100644
index 81bde53a51..0000000000
--- a/MediaBrowser.Providers/Plugins/ComicVine/jellyfin-plugin-comicvine.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1920" height="1080" viewBox="0 0 508 285.75">
- <defs>
- <radialGradient xlink:href="#a" id="b" cx="125.255" cy="16.735" fx="125.255" fy="16.735" r="254" gradientTransform="matrix(0 1.06475 -1.74952 0 154.532 -61.444)" gradientUnits="userSpaceOnUse"/>
- <linearGradient id="a">
- <stop style="stop-color:#2c3345;stop-opacity:1" offset="0"/>
- <stop style="stop-color:#21252e;stop-opacity:1" offset="1"/>
- </linearGradient>
- <style/>
- </defs>
- <path style="opacity:.98;fill:url(#b);stroke-width:2.64583;fill-opacity:1" d="M0 0h508v285.75H0z"/>
- <path d="m613.85 57.23-.3-.34.3.34c.07-7-3.57-14.41-7.29-18.78-12.55-14.65-35.11-24-66.81-25.72-7.16-.39-26.22-1.48-26.22-1.47q-15-.4-30-.52c-10.1-.08-22 .2-35.27 1 .06 0-15.19 1-15.18 1 .01 0-4.68.34-8.43.65L429.63 0c-61 2.27-69.37 8.85-70.79 9.52-7.38 3.48-13.84 9.81-22.11 16.87a158.82 158.82 0 0 0-13.15 12.71c-2.29-6.3-10.48-28.79-10.49-28.82q-10 2.72-19.9 5.63c-17 4.8-36.78 11-53.6 16.61 0 0-25.42-4.73-46.41-1.38-20.99 3.35-39.37 13.68-54.44 31.2l-.26.33c-14.43-11.32-34.65-14.83-59.87-9-20.67 4.84-38.54 17.09-52.83 36.9a112.31 112.31 0 0 0-17.56 36.67A107.76 107.76 0 0 0 0 166.57l.43 12.11v.61c1.8 20.09 8.24 35.09 19 44.34 12.6 10.73 28.55 11.94 47.78 4.49 21.82-8.45 39.68-23 53.3-43 0 0 1.75-2.59 3.14-4.61a37.91 37.91 0 0 0 3.92 4c12.31 10.44 28.34 12.2 48 6.19a112.78 112.78 0 0 0 10.75-3.89c17.74 41.62-3.32 138.68-3.32 138.72 10.5-6.74 171.69-82.35 361-110.53 1.46-2.77 60-95.9 68.32-109.06 0-.1-26.74.62-44.37 1.46 15.07-7.8 22.53-17.6 22.54-17.56.01.04-20.58-10.73-33.35-17.52 19.68-5.65 56.63-15.59 56.71-15.09zm-.56-.64zm.19.22-.13-.15z" style="fill:#231f20" transform="translate(95.25 58.689) scale(.51723)"/>
- <path d="M89.89 153c-5 7.07-10.78 11.65-17.75 14-6.22 2.06-11.33 1.31-15.67-2.38s-6.48-8.67-7-15.64c0-1.56 0-3.12.07-4.68v-.88c.66-9.82 3.59-18.49 8.75-25.69a38.17 38.17 0 0 1 21.61-15c8.41-2.3 14.43-.35 18.32 5.78l1.44 2.26q17-13.11 34.31-25.41L132.14 83c-10.77-13.23-28.52-17.56-52.38-11.69-15.83 3.93-29.63 13.57-40.83 29-10.89 15-16.53 31.47-17 48.35 0 0 .15 5 .25 8.14 0 1.44.08 2.5.08 2.5 1.27 15.24 6 26.56 14 33.51 8.86 7.62 20.39 8.68 34.47 3.65a84.14 84.14 0 0 0 41.68-32.35l2-3q-11.41-5.23-22.9-10.57z" style="fill:#29cc82" transform="translate(95.25 58.689) scale(.51723)"/>
- <path d="M243.43 79.93a24.43 24.43 0 0 0-.58-4.43 44.5 44.5 0 0 0-2.35-7.58c1.86-1.41 7-5.29 7-5.27l-1.5-1.89c-10.37-12.66-28.06-17.58-52.27-13.41-16.07 2.78-30.29 10.94-42.1 24.55-10.14 11.75-16.21 24.72-18.22 38.29-.27 1.79-.48 3.59-.6 5.4l-.05 9.82c.73 14.09 5.11 24.73 12.93 31.48 8.64 7.4 20.23 8.89 34.58 4.89a83.52 83.52 0 0 0 42.67-27.27A88.58 88.58 0 0 0 242.21 92a68.6 68.6 0 0 0 1.22-12.07zm-32.18 19.68a49 49 0 0 1-9.11 21.74c-5.24 7-11.59 11.37-19.45 13.36-6.33 1.6-11.45.68-15.69-2.92-4.08-3.45-6.21-8.28-6.49-14.7q.13-2.56.28-5.11A45.6 45.6 0 0 1 164 99.27a39.81 39.81 0 0 1 6.46-10.48 38 38 0 0 1 22.27-12.71c7.48-1.48 12.89.13 16.63 4.42-.9.62-5.49 3.88-5.49 3.88l2.25 1.3 1 .58c2.94 1.69 4.43 4.67 4.56 9.11z" style="fill:#2cc982;fill-opacity:1" transform="translate(95.25 58.689) scale(.51723)"/>
- <path d="M384.85 75.67Q387 69 389.09 62.44 396.9 39 404.93 16.17l-4.24.53s-7.61 1-7.63 1c-.02 0-11.91 2.49-11.91 2.51a103 103 0 0 1-10.93 2l-.68.06-.61.29a92.35 92.35 0 0 0-19.55 13.09 160 160 0 0 0-25.08 26.63c-3.26 4.35-6.34 8.84-9.18 13.5a108 108 0 0 0-2.89-12.84c-.65-2.28-1.35-4.6-2.18-7l-9.73-26.7-2.79.84q-15.69 4.57-31.28 9.61l3.93 9c1.61 3.4 1.86 4.94 1.87 5.57 0 0-.19.75-.24 1a367 367 0 0 0-8.46 15.49c-1 2-1.95 3.87-2.76 5.59a294.31 294.31 0 0 0-13.74 33c-3.95 11.86-7.47 23.72-10.46 35.22q-.6 2.29-1.2 4.6 17.29-8 34.75-15.46l.17-1.85c.73-8 3.25-16.95 7.54-26.58 0 0 3.6-8.13 6.45-14.4.1.49.18.82.28 1.39 2.75 14.41 4.14 26.16 4.2 35.1l-.46 7.1 3.82-1.23q14.89-6 29.9-11.64c.16-.47.33-.95.5-1.43 4.53-13.19 9.3-23.46 14.13-30.61 8-11.87 14.09-19.22 18.63-23.89.78-.8 1.52-1.53 2.21-2.19l-1.11 2.56c-1.26 3-2.34 5.62-3.19 7.87 0 0-7.94 20.82-7.92 20.87-5.27 13.39-9.17 24.22-11.66 32-.46 1.43-.92 2.86-1.37 4.31 8.54-3.42 17.11-6.68 25.7-9.88 5.16-1.92 10.32-3.84 15.49-5.67.12-.5.25-1 .37-1.5 1.63-6.77 3.55-13.73 5.69-20.66q2.77-8.93 5.54-17.7zM478 41.59q4.67-9.19 9.38-18.21h-4.26c-9.78 0-21.24.45-34 1.33q-16.39 1.22-32.74 2.83c-.2.5-.4 1-.61 1.5q-4.4 10.35-8.77 20.87s17.55-3 24.45-4c-2.44 3.58-5.57 8.24-5.57 8.25a243.51 243.51 0 0 0-15.46 27.39s-4.14 9.54-4.13 9.56c.01.02-1.34 3.21-2.16 5.22-2.36.38-6.52 1.09-6.52 1.09l-9.73 1.87Q383.43 111 379 122.88l4.54-1.13c20.28-5 33.52-7.63 39.19-8.57 3.48-.55 11.14-1.51 22.78-2.67l2.18-.21q4.89-10.61 9.84-21-8 .76-16 1.61l-4.26.52c1.54-3.73 4.6-11 4.6-11 5.51-12.1 9.92-20.75 13-25.92a96.5 96.5 0 0 1 6.13-9.4l1.2-1.56c6.36-.24 15.07-.47 15.07-.47zM539.6 81a37.74 37.74 0 0 1-19.6 6c-6.55.23-11.65-1.22-15.6-4.52a13.46 13.46 0 0 1-5.25-11.84c.24-1.24.49-2.49.74-3.73a26.53 26.53 0 0 1 11.88-15.58c6.49-4.06 14.22-5.93 23.6-5.77 8.76.16 14.61 2.67 17.84 7.52l1.18 1.78q18.7-5.27 37.53-9.69l-1.6-1.86c-9.32-10.92-26.73-17.59-51.46-18.63-16.42-.67-31.47 3-44.61 11.17-12.79 8-20.47 18.09-23 29.47l-.95 7.3c-.54 10.59 2.91 19.15 10.23 25.29 8.08 6.75 19.68 9.49 34.57 8.65 18.2-1 33.65-5.75 46-13.85l2.4-1.56q-10.95-5.63-22-11.39z" style="fill:#29cc82" transform="translate(95.25 58.689) scale(.51723)"/>
- <path d="M305 154.85q2.24-2.75 4.49-5.48-13.14 3.62-26.22 7.5l-2.94.94-1 .33-.74.81c-5.63 6.33-13.14 17.23-22.76 33.84-4.7 8.09-9 16-13 23.9 1.85-22.39 2.76-38 2.59-46.59-.09-4.42-.4-5.81-.67-6.53l-.81-2.17-2.66 1.21q-14.9 6.78-29.69 14l.72 2.43c.13.44.45 2.27.67 9.78.49 16.17.71 34 .68 53-.07 28.34-.64 33.65-.88 34.59l-1.29 5 4.66-2.68q13.66-8.29 27.44-16.15l.58-.81c4.68-6.68 10.56-16.81 17.53-29.91 0-.18 15.45-29.75 15.49-29.63 0-.12 13-24.64 13.05-24.56A155.79 155.79 0 0 1 305 154.85zm70.42 2.86q4.23-10.78 8.52-21.39l-4.11.7c-9.41 1.61-20.43 3.88-32.72 6.86l-4.43 1.12q-13.5 3.41-26.93 7.08l-.54 1.73q-3.9 11.94-7.73 24s16.21-5.76 23-8l.34-.12-.5 1c-2.15 4.11-4.61 8.88-4.61 8.88a324.05 324.05 0 0 0-14 32.18l-3.67 11s-1.18 3.7-1.91 6c-2.25.78-6.2 2.17-6.2 2.18 0 .01-9.26 3.49-9.26 3.51q-4 13.38-7.84 27l4.3-1.91c19.25-8.47 31.86-13.38 37.26-15.25 3.32-1.14 10.64-3.35 21.77-6.4l2.09-.57q4.39-12.32 8.83-24.43-7.68 2.07-15.35 4.23l-4.08 1.22c1.36-4.28 4.08-12.7 4.08-12.69q4.44-12.63 7.81-21c1.49-3.72 2.82-6.84 4-9.29 2.27-5 4.16-8.74 5.62-11.21l1.11-1.89c6.11-1.26 14.49-2.89 14.49-2.89.19-.5.42-1.07.66-1.65zm119.48-34.98q-12.66 1.79-25.29 3.82l-3 .53-1.54.28-.81 1.05c-11.87 15.58-19.51 27-22.92 33.17l-2.34 4.16a267.16 267.16 0 0 0-8.82-36.7l-.63-2-2.85.83q-15.44 4.54-30.79 9.53l3.49 8c1.45 3 1.63 4.35 1.62 4.91l-.27.87c-5 7.6-8.9 14.12-11.68 19.25-1.8 3.26-3.46 6.4-5 9.42-4 7.78-7.21 14.75-9.55 20.67a509.094 509.094 0 0 0-11.47 32l-1.33 4.19q17.11-8 34.38-15.35l.23-1.67c1-7.15 3.79-15.3 8.32-24.08 0 0 3.8-7.4 6.8-13.11.08.43.14.73.22 1.24 2.14 12.77 3.07 23.21 2.79 31.18l-.7 6.35 3.77-1.26q14.74-6 29.57-11.57 4.71-11.48 9.49-22.75c4.43-10.32 8-17.93 10.73-22.95.73-1.35 1.4-2.56 2-3.53A333.7 333.7 0 0 1 492 126.35zm87.1-4.62q-21.22 1.08-42.38 2.78-19.92 2-39.77 4.59l-.63 1.42q-4.51 9.68-9 19.54s9.55-1.81 13.93-2.58c-2.2 3-4.78 6.59-4.78 6.59-1.66 2.53-3.26 5.05-4.83 7.59-3.86 6.24-7.43 12.48-10.64 18.62-2.72 5.27-5.85 12.07-9.3 20.28-4.6 11.06-4.6 11.67-4.6 12.13 0 .84-.09 1.66-.13 2.49l3.38-.87c20.75-6.29 36.75-9.93 47.35-11.54q9-1.36 18.06-2.61 5.21-9.87 10.49-19.53c0-.1-32.31 4.94-38.88 6.21 2.45-5.56 4.74-10.4 6.8-14.35 3.63-.62 31.61-4.26 31.62-4.18 1.43-2.49 2.87-4.91 4.3-7.39 2-3.4 3.94-6.83 5.93-10.19 0-.06-25.21 2.62-32.05 3.53l1-1.44s6.59-9.71 6.95-10.2c8.1-.92 18.12-1.79 30-2.48q5.47-.32 11-.61 5.24-9.11 10.52-18z" style="fill:#f9e150" transform="translate(95.25 58.689) scale(.51723)"/>
-</svg>
diff --git a/MediaBrowser.Providers/Plugins/GoogleBooks/Configuration/PluginConfiguration.cs b/MediaBrowser.Providers/Plugins/GoogleBooks/Configuration/PluginConfiguration.cs
deleted file mode 100644
index c32f764810..0000000000
--- a/MediaBrowser.Providers/Plugins/GoogleBooks/Configuration/PluginConfiguration.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using MediaBrowser.Model.Plugins;
-
-namespace MediaBrowser.Providers.Plugins.GoogleBooks;
-
-/// <summary>
-/// Plugin configuration for the Google Books provider.
-/// </summary>
-public class PluginConfiguration : BasePluginConfiguration
-{
-}
diff --git a/MediaBrowser.Providers/Plugins/GoogleBooks/Plugin.cs b/MediaBrowser.Providers/Plugins/GoogleBooks/Plugin.cs
deleted file mode 100644
index 645e27f5f9..0000000000
--- a/MediaBrowser.Providers/Plugins/GoogleBooks/Plugin.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System;
-using MediaBrowser.Common.Configuration;
-using MediaBrowser.Common.Plugins;
-using MediaBrowser.Controller.Plugins;
-using MediaBrowser.Model.Serialization;
-
-namespace MediaBrowser.Providers.Plugins.GoogleBooks;
-
-/// <summary>
-/// Google Books plugin instance.
-/// </summary>
-public class Plugin : BasePlugin<PluginConfiguration>, IHasEmbeddedImage
-{
- /// <summary>
- /// Initializes a new instance of the <see cref="Plugin"/> class.
- /// </summary>
- /// <param name="applicationPaths">Instance of the <see cref="IApplicationPaths"/> interface.</param>
- /// <param name="xmlSerializer">Instance of the <see cref="IXmlSerializer"/> interface.</param>
- public Plugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer)
- : base(applicationPaths, xmlSerializer)
- {
- Instance = this;
- }
-
- /// <summary>
- /// Gets the current plugin instance.
- /// </summary>
- public static Plugin? Instance { get; private set; }
-
- /// <inheritdoc />
- public override Guid Id => new("9f97232d-e7f4-432d-92d3-c709ce47e30b");
-
- /// <inheritdoc />
- public override string Name => "Google Books";
-
- /// <inheritdoc />
- public override string Description => "Get external links for books from Google Books.";
-
- /// <inheritdoc />
- // TODO remove when plugin removed from server.
- public override string ConfigurationFileName => "Jellyfin.Plugin.GoogleBooks.xml";
-
- /// <inheritdoc />
- public string ImageResourceName => GetType().Namespace + ".jellyfin-plugin-googlebooks.svg";
-}
diff --git a/MediaBrowser.Providers/Plugins/GoogleBooks/jellyfin-plugin-googlebooks.svg b/MediaBrowser.Providers/Plugins/GoogleBooks/jellyfin-plugin-googlebooks.svg
deleted file mode 100644
index f93ca4a18e..0000000000
--- a/MediaBrowser.Providers/Plugins/GoogleBooks/jellyfin-plugin-googlebooks.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1920" height="1080" viewBox="0 0 508 285.75">
- <defs>
- <radialGradient xlink:href="#a" id="b" cx="125.255" cy="16.735" fx="125.255" fy="16.735" r="254" gradientTransform="matrix(0 1.06475 -1.74952 0 154.532 -61.444)" gradientUnits="userSpaceOnUse"/>
- <linearGradient id="a">
- <stop style="stop-color:#fff;stop-opacity:1" offset="0"/>
- <stop style="stop-color:#f4f4f4;stop-opacity:1" offset="1"/>
- </linearGradient>
- <style/>
- </defs>
- <path style="opacity:.98;fill:url(#b);stroke-width:2.64583;fill-opacity:1" d="M0 0h508v285.75H0z"/>
- <path d="M231.122 145.619c0 15.037-11.764 26.117-26.2 26.117s-26.199-11.08-26.199-26.117c0-15.143 11.763-26.117 26.2-26.117s26.199 10.974 26.199 26.117zm-11.47 0c0-9.396-6.817-15.826-14.73-15.826s-14.73 6.43-14.73 15.826c0 9.302 6.818 15.826 14.73 15.826s14.73-6.535 14.73-15.826z" fill="#ea4335"/>
- <path d="M287.642 145.619c0 15.037-11.764 26.117-26.2 26.117s-26.199-11.08-26.199-26.117c0-15.13 11.763-26.117 26.2-26.117s26.199 10.974 26.199 26.117zm-11.47 0c0-9.396-6.817-15.826-14.73-15.826s-14.73 6.43-14.73 15.826c0 9.302 6.818 15.826 14.73 15.826s14.73-6.535 14.73-15.826z" fill="#fbbc05"/>
- <path d="M341.807 121.08v46.888c0 19.287-11.375 27.165-24.822 27.165-12.658 0-20.277-8.466-23.15-15.39l9.986-4.157c1.778 4.251 6.134 9.267 13.152 9.267 8.608 0 13.942-5.31 13.942-15.307v-3.756h-.4c-2.567 3.167-7.513 5.934-13.754 5.934-13.058 0-25.022-11.374-25.022-26.01 0-14.743 11.964-26.212 25.022-26.212 6.23 0 11.175 2.767 13.753 5.84h.4v-4.25h10.893zm-10.08 24.633c0-9.196-6.134-15.92-13.941-15.92-7.913 0-14.542 6.724-14.542 15.92 0 9.102 6.629 15.732 14.542 15.732 7.807 0 13.941-6.63 13.941-15.732z" fill="#4285f4"/>
- <path d="M359.764 93.597v76.538h-11.187V93.597z" fill="#34a853"/>
- <path d="m403.355 154.215 8.902 5.934c-2.874 4.251-9.797 11.575-21.76 11.575-14.837 0-25.917-11.469-25.917-26.117 0-15.531 11.174-26.117 24.633-26.117 13.553 0 20.182 10.786 22.349 16.615l1.19 2.967-34.914 14.46c2.673 5.24 6.83 7.913 12.658 7.913 5.84 0 9.891-2.873 12.859-7.23zm-27.4-9.397 23.337-9.69c-1.283-3.262-5.145-5.535-9.69-5.535-5.83 0-13.942 5.146-13.648 15.225z" fill="#ea4335"/>
- <path d="M136.38 138.825v-11.08h37.339c.365 1.93.553 4.215.553 6.688 0 8.313-2.273 18.592-9.597 25.917-7.123 7.418-16.226 11.374-28.283 11.374-22.35 0-41.142-18.204-41.142-40.553 0-22.349 18.793-40.553 41.142-40.553 12.364 0 21.171 4.851 27.789 11.174l-7.819 7.82c-4.745-4.452-11.174-7.914-19.982-7.914-16.32 0-29.084 13.153-29.084 29.473s12.764 29.473 29.084 29.473c10.586 0 16.615-4.25 20.477-8.113 3.132-3.132 5.193-7.607 6.005-13.718z" fill="#4285f4"/>
- <path d="M350.508 193.734v-13.5h4.414q2.197 0 3.3.909 1.113.908 1.113 2.688 0 .946-.538 1.678-.537.724-1.465 1.122 1.095.306 1.725 1.168.64.854.64 2.041 0 1.817-1.178 2.855-1.178 1.039-3.329 1.039zm1.78-6.314v4.859h2.94q1.242 0 1.956-.64.723-.649.723-1.78 0-2.439-2.652-2.439zm0-1.428h2.69q1.167 0 1.863-.584.704-.584.704-1.585 0-1.113-.647-1.613-.65-.511-1.976-.511h-2.633zm9.324 2.633q0-1.474.575-2.652.584-1.177 1.613-1.817 1.039-.64 2.364-.64 2.05 0 3.31 1.419 1.271 1.418 1.271 3.773v.12q0 1.465-.565 2.633-.557 1.16-1.605 1.81-1.039.647-2.392.647-2.04 0-3.31-1.418-1.26-1.418-1.26-3.755zm1.725.204q0 1.67.77 2.68.779 1.01 2.076 1.01 1.307 0 2.077-1.02.77-1.029.77-2.873 0-1.652-.788-2.672-.779-1.029-2.078-1.029-1.27 0-2.048 1.012-.779 1.01-.779 2.892zm9.108-.204q0-1.474.575-2.652.584-1.177 1.613-1.817 1.039-.64 2.364-.64 2.05 0 3.31 1.419 1.271 1.418 1.271 3.773v.12q0 1.465-.565 2.633-.557 1.16-1.605 1.81-1.039.647-2.392.647-2.04 0-3.31-1.418-1.26-1.418-1.26-3.755zm1.725.204q0 1.67.77 2.68.779 1.01 2.076 1.01 1.307 0 2.077-1.02.77-1.029.77-2.873 0-1.652-.788-2.672-.779-1.029-2.078-1.029-1.27 0-2.048 1.012-.779 1.01-.779 2.892zm12.358.26-1.075 1.122v3.523h-1.716v-14.24h1.716v8.613l.919-1.104 3.123-3.3h2.086l-3.904 4.19 4.358 5.841h-2.012zm12.682 1.984q0-.695-.529-1.075-.518-.39-1.826-.668-1.298-.279-2.068-.667-.76-.39-1.13-.928-.363-.537-.363-1.28 0-1.232 1.039-2.086 1.048-.852 2.67-.852 1.706 0 2.763.88 1.066.881 1.066 2.253h-1.725q0-.704-.601-1.214-.594-.51-1.503-.51-.936 0-1.465.408-.528.407-.528 1.065 0 .622.49.938.493.314 1.772.603 1.289.287 2.086.685.797.399 1.178.965.388.556.388 1.363 0 1.343-1.075 2.16-1.075.806-2.79.806-1.205 0-2.132-.426-.928-.427-1.456-1.187-.52-.77-.52-1.66h1.716q.047.863.685 1.372.65.5 1.708.5.972 0 1.556-.388.594-.399.594-1.057z" fill="#4285f4" stroke-width=".34"/>
-</svg>
diff --git a/tests/Jellyfin.Providers.Tests/ExternalId/ComicVineExternalUrlProviderTests.cs b/tests/Jellyfin.Providers.Tests/ExternalId/ComicVineExternalUrlProviderTests.cs
index 99604e0933..aaa500b762 100644
--- a/tests/Jellyfin.Providers.Tests/ExternalId/ComicVineExternalUrlProviderTests.cs
+++ b/tests/Jellyfin.Providers.Tests/ExternalId/ComicVineExternalUrlProviderTests.cs
@@ -1,7 +1,7 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Providers.Plugins.ComicVine;
+using MediaBrowser.Providers.Books.ComicVine;
using Xunit;
namespace Jellyfin.Providers.Tests.ExternalId
diff --git a/tests/Jellyfin.Providers.Tests/ExternalId/GoogleBooksExternalUrlProviderTests.cs b/tests/Jellyfin.Providers.Tests/ExternalId/GoogleBooksExternalUrlProviderTests.cs
index eec64ac53f..b9ce895dbc 100644
--- a/tests/Jellyfin.Providers.Tests/ExternalId/GoogleBooksExternalUrlProviderTests.cs
+++ b/tests/Jellyfin.Providers.Tests/ExternalId/GoogleBooksExternalUrlProviderTests.cs
@@ -1,7 +1,7 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Providers.Plugins.GoogleBooks;
+using MediaBrowser.Providers.Books.GoogleBooks;
using Xunit;
namespace Jellyfin.Providers.Tests.ExternalId