diff --git a/src/OrchardCoreContrib.Gravatar/GravatarOptions.cs b/src/OrchardCoreContrib.Gravatar/GravatarOptions.cs index cf77fae7..451c3956 100644 --- a/src/OrchardCoreContrib.Gravatar/GravatarOptions.cs +++ b/src/OrchardCoreContrib.Gravatar/GravatarOptions.cs @@ -1,5 +1,4 @@ -using System; -using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations; namespace OrchardCoreContrib.Gravatar; diff --git a/src/OrchardCoreContrib.Gravatar/Liquid/GravatarFilter.cs b/src/OrchardCoreContrib.Gravatar/Liquid/GravatarFilter.cs index f122f212..5b60402b 100644 --- a/src/OrchardCoreContrib.Gravatar/Liquid/GravatarFilter.cs +++ b/src/OrchardCoreContrib.Gravatar/Liquid/GravatarFilter.cs @@ -2,26 +2,18 @@ using Fluid.Values; using OrchardCore.Liquid; using OrchardCoreContrib.Gravatar.Services; -using System.Threading.Tasks; namespace OrchardCoreContrib.Gravatar.Liquid; -public class GravatarFilter : ILiquidFilter +public class GravatarFilter(IGravatarService gravatarService) : ILiquidFilter { - private readonly IGravatarService _gravatarService; - - public GravatarFilter(IGravatarService gravatarService) - { - _gravatarService = gravatarService; - } - public ValueTask ProcessAsync(FluidValue input, FilterArguments arguments, LiquidTemplateContext context) { var email = input.ToStringValue(); if (input.IsNil()) { - return NilValue.Empty; + return NilValue.Instance; } else { @@ -31,7 +23,7 @@ public ValueTask ProcessAsync(FluidValue input, FilterArguments argu size = (int)arguments["size"].ToNumberValue(); } - var gravatarUrl = _gravatarService.GetAvatarUrl(email, size); + var gravatarUrl = gravatarService.GetAvatarUrl(email, size); return FluidValue.Create(gravatarUrl, context.Options); } diff --git a/src/OrchardCoreContrib.Gravatar/Manifest.cs b/src/OrchardCoreContrib.Gravatar/Manifest.cs index 5a37a699..19db16b2 100644 --- a/src/OrchardCoreContrib.Gravatar/Manifest.cs +++ b/src/OrchardCoreContrib.Gravatar/Manifest.cs @@ -5,8 +5,8 @@ Name = "Gravatar", Author = ManifestConstants.Author, Website = ManifestConstants.Website, - Version = "1.4.1", + Version = "1.6.0", Category = "Profile", Description = "The gravatar module enables user avatar using gravatar service.", - Dependencies = new[] { "OrchardCore.Users" } + Dependencies = new[] { "OrchardCore.Liquid", "OrchardCore.Users" } )] diff --git a/src/OrchardCoreContrib.Gravatar/OrchardCoreContrib.Gravatar.csproj b/src/OrchardCoreContrib.Gravatar/OrchardCoreContrib.Gravatar.csproj index a68dbea7..bef0900b 100644 --- a/src/OrchardCoreContrib.Gravatar/OrchardCoreContrib.Gravatar.csproj +++ b/src/OrchardCoreContrib.Gravatar/OrchardCoreContrib.Gravatar.csproj @@ -4,10 +4,11 @@ net8.0 true true - 1.5.0 + 1.6.0 The Orchard Core Contrib Team Displays a user avatar using gravatar service. + README.md BSD-3-Clause https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules/tree/main/src/OrchardCoreContrib.Gravtar/README.md https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules @@ -28,6 +29,7 @@ + diff --git a/src/OrchardCoreContrib.Gravatar/README.md b/src/OrchardCoreContrib.Gravatar/README.md index 7c411446..be40c6cd 100644 --- a/src/OrchardCoreContrib.Gravatar/README.md +++ b/src/OrchardCoreContrib.Gravatar/README.md @@ -4,7 +4,7 @@ This module enables user avatar using gravatar service. ## Version -1.4.1 +1.6.0 ## Category @@ -14,7 +14,7 @@ Profile | Product | Module | |-------------|-----------------------------| -| OrchardCore | Users (`OrchardCore.Users`) | +| OrchardCore | Liquid (`OrchardCore.Liquid`), Users (`OrchardCore.Users`) | ## Features @@ -22,12 +22,13 @@ Profile |------------------|---------------------------------------------| | **Name** | Gravatar (`OrchardCoreContrib.Gravatar`) | | **Description** | Displays the user avatar on the admin menu. | -| **Dependencies** | `OrchardCore.Users` | +| **Dependencies** | `OrchardCore.Liquid`, `OrchardCore.Users` | ## NuGet Packages | Name | Version | |---------------------------------------------------------------------------------------------------|---------| +| [`OrchardCoreContrib.Gravatar`](https://www.nuget.org/packages/OrchardCoreContrib.Gravatar/1.6.0) | 1.6.0 | | [`OrchardCoreContrib.Gravatar`](https://www.nuget.org/packages/OrchardCoreContrib.Gravatar/1.5.0) | 1.5.0 | | [`OrchardCoreContrib.Gravatar`](https://www.nuget.org/packages/OrchardCoreContrib.Gravatar/1.4.1) | 1.4.1 | | [`OrchardCoreContrib.Gravatar`](https://www.nuget.org/packages/OrchardCoreContrib.Gravatar/1.4.0) | 1.4.0 | diff --git a/src/OrchardCoreContrib.Gravatar/Services/GravatarService.cs b/src/OrchardCoreContrib.Gravatar/Services/GravatarService.cs index bc9fa7da..ef24d3d1 100644 --- a/src/OrchardCoreContrib.Gravatar/Services/GravatarService.cs +++ b/src/OrchardCoreContrib.Gravatar/Services/GravatarService.cs @@ -1,21 +1,15 @@ using Microsoft.Extensions.Options; -using System; using System.ComponentModel.DataAnnotations; using System.Security.Cryptography; using System.Text; namespace OrchardCoreContrib.Gravatar.Services; -public class GravatarService : IGravatarService +public class GravatarService(IOptions gravatarOptions) : IGravatarService { private const string GravatarUrl = "http://www.gravatar.com/avatar/"; - private readonly GravatarOptions _gravatarOptions; - - public GravatarService(IOptions gravatarOptions) - { - _gravatarOptions = gravatarOptions.Value; - } + private readonly GravatarOptions _gravatarOptions = gravatarOptions.Value; public string GetAvatarUrl(string email, [Range(1, 512)] int size = GravatarConstants.DefaultSize) { @@ -38,9 +32,8 @@ public string GetAvatarUrl(string email, [Range(1, 512)] int size = GravatarCons private static string ComputeHash(string email) { - var md5 = MD5.Create(); var bytes = Encoding.ASCII.GetBytes(email); - var hash = md5.ComputeHash(bytes); + var hash = MD5.HashData(bytes); var sb = new StringBuilder(); for (var i = 0; i < hash.Length; i++) diff --git a/src/OrchardCoreContrib.Gravatar/Startup.cs b/src/OrchardCoreContrib.Gravatar/Startup.cs index d7a06755..90236713 100644 --- a/src/OrchardCoreContrib.Gravatar/Startup.cs +++ b/src/OrchardCoreContrib.Gravatar/Startup.cs @@ -11,15 +11,8 @@ namespace OrchardCoreContrib.Gravatar; /// /// Represents an entry point to register the user avatar required services. /// -public class Startup : StartupBase +public class Startup(IShellConfiguration shellConfiguration) : StartupBase { - private readonly IShellConfiguration _shellConfiguration; - - public Startup(IShellConfiguration shellConfiguration) - { - _shellConfiguration = shellConfiguration; - } - /// public override void ConfigureServices(IServiceCollection services) { @@ -29,6 +22,6 @@ public override void ConfigureServices(IServiceCollection services) services.AddLiquidFilter("gravatar_url"); - services.Configure(_shellConfiguration.GetSection("OrchardCoreContrib_Gravatar")); + services.Configure(shellConfiguration.GetSection("OrchardCoreContrib_Gravatar")); } } diff --git a/src/OrchardCoreContrib.Gravatar/TagHelpers/GravatarTagHelper.cs b/src/OrchardCoreContrib.Gravatar/TagHelpers/GravatarTagHelper.cs index c6096390..3eebed1e 100644 --- a/src/OrchardCoreContrib.Gravatar/TagHelpers/GravatarTagHelper.cs +++ b/src/OrchardCoreContrib.Gravatar/TagHelpers/GravatarTagHelper.cs @@ -1,20 +1,12 @@ using Microsoft.AspNetCore.Razor.TagHelpers; using OrchardCoreContrib.Gravatar.Services; -using System; using System.ComponentModel.DataAnnotations; namespace OrchardCoreContrib.Gravatar.TagHelpers; [HtmlTargetElement("gravatar", TagStructure = TagStructure.NormalOrSelfClosing)] -public class GravatarTagHelper : TagHelper +public class GravatarTagHelper(IGravatarService gravatarService) : TagHelper { - private readonly IGravatarService _gravatarService; - - public GravatarTagHelper(IGravatarService gravatarService) - { - _gravatarService = gravatarService; - } - public string Email { get; set; } [Range(1, 512)] @@ -24,7 +16,7 @@ public override void Process(TagHelperContext context, TagHelperOutput output) { output.TagName = "img"; - var avatarUrl = _gravatarService.GetAvatarUrl(Email, Size); + var avatarUrl = gravatarService.GetAvatarUrl(Email, Size); output.Attributes.Add("src", avatarUrl); }