Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions src/OrchardCoreContrib.Gravatar/GravatarOptions.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;

namespace OrchardCoreContrib.Gravatar;

Expand Down
14 changes: 3 additions & 11 deletions src/OrchardCoreContrib.Gravatar/Liquid/GravatarFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<FluidValue> ProcessAsync(FluidValue input, FilterArguments arguments, LiquidTemplateContext context)
{
var email = input.ToStringValue();

if (input.IsNil())
{
return NilValue.Empty;
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sebastienros, is this removed somehow?!! I spent almost half an hour before I realized this is the main reason why the filter throws a missing exception

If "Yes", when this has been removed

return NilValue.Instance;
}
else
{
Expand All @@ -31,7 +23,7 @@ public ValueTask<FluidValue> 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);
}
Expand Down
4 changes: 2 additions & 2 deletions src/OrchardCoreContrib.Gravatar/Manifest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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" }
)]
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@
<TargetFramework>net8.0</TargetFramework>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<VersionPrefix>1.5.0</VersionPrefix>
<VersionPrefix>1.6.0</VersionPrefix>
<Authors>The Orchard Core Contrib Team</Authors>
<Company />
<Description>Displays a user avatar using gravatar service.</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageLicenseExpression>BSD-3-Clause</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules/tree/main/src/OrchardCoreContrib.Gravtar/README.md</PackageProjectUrl>
<RepositoryUrl>https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules</RepositoryUrl>
Expand All @@ -28,6 +29,7 @@

<ItemGroup>
<None Include="../../images/icon.png" Pack="true" PackagePath="icon.png" />
<None Include="README.md" Pack="true" PackagePath="\"/>
</ItemGroup>

<ItemGroup>
Expand Down
7 changes: 4 additions & 3 deletions src/OrchardCoreContrib.Gravatar/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This module enables user avatar using gravatar service.

## Version

1.4.1
1.6.0

## Category

Expand All @@ -14,20 +14,21 @@ Profile

| Product | Module |
|-------------|-----------------------------|
| OrchardCore | Users (`OrchardCore.Users`) |
| OrchardCore | Liquid (`OrchardCore.Liquid`), Users (`OrchardCore.Users`) |

## Features

| | |
|------------------|---------------------------------------------|
| **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 |
Expand Down
13 changes: 3 additions & 10 deletions src/OrchardCoreContrib.Gravatar/Services/GravatarService.cs
Original file line number Diff line number Diff line change
@@ -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> gravatarOptions) : IGravatarService
{
private const string GravatarUrl = "http://www.gravatar.com/avatar/";

private readonly GravatarOptions _gravatarOptions;

public GravatarService(IOptions<GravatarOptions> gravatarOptions)
{
_gravatarOptions = gravatarOptions.Value;
}
private readonly GravatarOptions _gravatarOptions = gravatarOptions.Value;

public string GetAvatarUrl(string email, [Range(1, 512)] int size = GravatarConstants.DefaultSize)
{
Expand All @@ -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++)
Expand Down
11 changes: 2 additions & 9 deletions src/OrchardCoreContrib.Gravatar/Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,8 @@ namespace OrchardCoreContrib.Gravatar;
/// <summary>
/// Represents an entry point to register the user avatar required services.
/// </summary>
public class Startup : StartupBase
public class Startup(IShellConfiguration shellConfiguration) : StartupBase
{
private readonly IShellConfiguration _shellConfiguration;

public Startup(IShellConfiguration shellConfiguration)
{
_shellConfiguration = shellConfiguration;
}

/// <inheritdoc/>
public override void ConfigureServices(IServiceCollection services)
{
Expand All @@ -29,6 +22,6 @@ public override void ConfigureServices(IServiceCollection services)

services.AddLiquidFilter<GravatarFilter>("gravatar_url");

services.Configure<GravatarOptions>(_shellConfiguration.GetSection("OrchardCoreContrib_Gravatar"));
services.Configure<GravatarOptions>(shellConfiguration.GetSection("OrchardCoreContrib_Gravatar"));
}
}
12 changes: 2 additions & 10 deletions src/OrchardCoreContrib.Gravatar/TagHelpers/GravatarTagHelper.cs
Original file line number Diff line number Diff line change
@@ -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)]
Expand All @@ -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);
}
Expand Down
Loading