diff --git a/.editorconfig b/.editorconfig
index b87ad18..b84e563 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -5,7 +5,6 @@
# Core EditorConfig Options #
###############################
root = true
-
# All files
[*]
indent_style = space
@@ -14,7 +13,7 @@ charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
end_of_line = lf
-max_line_length = 9999
+max_line_length = off
# YAML indentation
[*.{yml,yaml}]
@@ -27,7 +26,6 @@ indent_size = 2
###############################
# .NET Coding Conventions #
###############################
-
[*.{cs,vb}]
# Organize usings
dotnet_sort_system_directives_first = true
@@ -63,7 +61,6 @@ dotnet_style_prefer_conditional_expression_over_return = true:silent
###############################
# Naming Conventions #
###############################
-
# Style Definitions (From Roslyn)
# Non-private static fields are PascalCase
@@ -138,7 +135,6 @@ dotnet_naming_style.pascal_case_style.capitalization = pascal_case
###############################
# C# Coding Conventions #
###############################
-
[*.cs]
# var preferences
csharp_style_var_for_built_in_types = true:silent
@@ -169,7 +165,6 @@ csharp_style_inlined_variable_declaration = true:suggestion
###############################
# C# Formatting Rules #
###############################
-
# New line preferences
csharp_new_line_before_open_brace = all
csharp_new_line_before_else = true
diff --git a/.gitignore b/.gitignore
index 03c9b93..0b72c24 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
bin/
obj/
.vs/
+.idea/
+artifacts
diff --git a/Jellyfin.Plugin.Template/Configuration/PluginConfiguration.cs b/Jellyfin.Plugin.Template/Configuration/PluginConfiguration.cs
index 5ea6277..564e6bf 100644
--- a/Jellyfin.Plugin.Template/Configuration/PluginConfiguration.cs
+++ b/Jellyfin.Plugin.Template/Configuration/PluginConfiguration.cs
@@ -1,28 +1,57 @@
using MediaBrowser.Model.Plugins;
-namespace Jellyfin.Plugin.Template.Configuration
+namespace Jellyfin.Plugin.Template.Configuration;
+
+///
+/// The configuration options.
+///
+public enum SomeOptions
{
- public enum SomeOptions
- {
- OneOption,
- AnotherOption
- }
+ ///
+ /// Option one.
+ ///
+ OneOption,
- public class PluginConfiguration : BasePluginConfiguration
- {
- // store configurable settings your plugin might need
- public bool TrueFalseSetting { get; set; }
- public int AnInteger { get; set; }
- public string AString { get; set; }
- public SomeOptions Options { get; set; }
-
- public PluginConfiguration()
- {
- // set default options here
- Options = SomeOptions.AnotherOption;
- TrueFalseSetting = true;
- AnInteger = 2;
- AString = "string";
- }
- }
+ ///
+ /// Second option.
+ ///
+ AnotherOption
+}
+
+///
+/// Plugin configuration.
+///
+public class PluginConfiguration : BasePluginConfiguration
+{
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public PluginConfiguration()
+ {
+ // set default options here
+ Options = SomeOptions.AnotherOption;
+ TrueFalseSetting = true;
+ AnInteger = 2;
+ AString = "string";
+ }
+
+ ///
+ /// Gets or sets a value indicating whether some true or false setting is enabled..
+ ///
+ public bool TrueFalseSetting { get; set; }
+
+ ///
+ /// Gets or sets an integer setting.
+ ///
+ public int AnInteger { get; set; }
+
+ ///
+ /// Gets or sets a string setting.
+ ///
+ public string AString { get; set; }
+
+ ///
+ /// Gets or sets an enum option.
+ ///
+ public SomeOptions Options { get; set; }
}
diff --git a/Jellyfin.Plugin.Template/Jellyfin.Plugin.Template.csproj b/Jellyfin.Plugin.Template/Jellyfin.Plugin.Template.csproj
index 5e75639..3933e18 100644
--- a/Jellyfin.Plugin.Template/Jellyfin.Plugin.Template.csproj
+++ b/Jellyfin.Plugin.Template/Jellyfin.Plugin.Template.csproj
@@ -1,15 +1,23 @@
- net5.0
+ net6.0
Jellyfin.Plugin.Template
1.0.0.0
1.0.0.0
+ true
+ true
+ enable
+ AllEnabledByDefault
+ ../jellyfin.ruleset
+
+
+
diff --git a/Jellyfin.Plugin.Template/Plugin.cs b/Jellyfin.Plugin.Template/Plugin.cs
index 74ead75..b55d995 100644
--- a/Jellyfin.Plugin.Template/Plugin.cs
+++ b/Jellyfin.Plugin.Template/Plugin.cs
@@ -1,36 +1,51 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using Jellyfin.Plugin.Template.Configuration;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Plugins;
using MediaBrowser.Model.Plugins;
using MediaBrowser.Model.Serialization;
-namespace Jellyfin.Plugin.Template
+namespace Jellyfin.Plugin.Template;
+
+///
+/// The main plugin.
+///
+public class Plugin : BasePlugin, IHasWebPages
{
- public class Plugin : BasePlugin, IHasWebPages
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// Instance of the interface.
+ /// Instance of the interface.
+ public Plugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer)
+ : base(applicationPaths, xmlSerializer)
{
- public override string Name => "Template";
+ Instance = this;
+ }
- public override Guid Id => Guid.Parse("eb5d7894-8eef-4b36-aa6f-5d124e828ce1");
+ ///
+ public override string Name => "Template";
- public Plugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer) : base(applicationPaths, xmlSerializer)
+ ///
+ public override Guid Id => Guid.Parse("eb5d7894-8eef-4b36-aa6f-5d124e828ce1");
+
+ ///
+ /// Gets the current plugin instance.
+ ///
+ public static Plugin? Instance { get; private set; }
+
+ ///
+ public IEnumerable GetPages()
+ {
+ return new[]
{
- Instance = this;
- }
-
- public static Plugin Instance { get; private set; }
-
- public IEnumerable GetPages()
- {
- return new[]
+ new PluginPageInfo
{
- new PluginPageInfo
- {
- Name = this.Name,
- EmbeddedResourcePath = string.Format("{0}.Configuration.configPage.html", GetType().Namespace)
- }
- };
- }
+ Name = this.Name,
+ EmbeddedResourcePath = string.Format(CultureInfo.InvariantCulture, "{0}.Configuration.configPage.html", GetType().Namespace)
+ }
+ };
}
}