From 7f4fc59b56759a7d0877b11f4913069031cf359d Mon Sep 17 00:00:00 2001 From: Hafiz Adewuyi Date: Mon, 2 Sep 2024 16:14:21 +0300 Subject: [PATCH] Deploy YP-67: Social media sharing (#105) * Prevent name posting service from crashing. (#99): Composing the tweet has a big potential to fail since it involves a call to the database. * Fix social media sharing tags. (#102) * Replace Task.Delay with PeriodicTimer(). (#101) --- Infrastructure/Configuration/TwitterConfig.cs | 2 +- Infrastructure/Services/NamePostingService.cs | 29 ++++++++++-------- Website/Pages/Shared/BasePageModel.cshtml.cs | 6 +++- Website/Pages/Shared/_Layout.cshtml | 16 +++++----- Website/Pages/SingleEntry.cshtml | 4 +-- Website/Pages/SingleEntry.cshtml.cs | 7 +++-- Website/wwwroot/img/yn-logo-drum-only.png | Bin 0 -> 37210 bytes 7 files changed, 37 insertions(+), 27 deletions(-) create mode 100644 Website/wwwroot/img/yn-logo-drum-only.png diff --git a/Infrastructure/Configuration/TwitterConfig.cs b/Infrastructure/Configuration/TwitterConfig.cs index 3c814e7..5b46604 100644 --- a/Infrastructure/Configuration/TwitterConfig.cs +++ b/Infrastructure/Configuration/TwitterConfig.cs @@ -7,7 +7,7 @@ public record TwitterConfig( string AccessTokenSecret, string NameUrlPrefix, string TweetTemplate, - decimal TweetIntervalSeconds) + double TweetIntervalSeconds) { public TwitterConfig() : this("", "", "", "", "", "", default) { } } diff --git a/Infrastructure/Services/NamePostingService.cs b/Infrastructure/Services/NamePostingService.cs index 37d785c..772e574 100644 --- a/Infrastructure/Services/NamePostingService.cs +++ b/Infrastructure/Services/NamePostingService.cs @@ -22,20 +22,20 @@ public class NamePostingService( private readonly ILogger _logger = logger; private readonly NameEntryService _nameEntryService = nameEntryService; private readonly TwitterConfig _twitterConfig = twitterConfig.Value; + private readonly PeriodicTimer _postingTimer = new (TimeSpan.FromSeconds(twitterConfig.Value.TweetIntervalSeconds)); protected override async Task ExecuteAsync(CancellationToken stoppingToken) { - var tweetIntervalMs = (int)(_twitterConfig.TweetIntervalSeconds * 1000); - while (!stoppingToken.IsCancellationRequested) + do { - if (!_nameQueue.TryDequeue(out var indexedName)) - { - await Task.Delay(tweetIntervalMs, stoppingToken); - continue; - } - + PostPublishedNameCommand? indexedName = null; try { + if (!_nameQueue.TryDequeue(out indexedName)) + { + continue; + } + string? tweetText = await BuildTweet(indexedName.Name); if (string.IsNullOrWhiteSpace(tweetText)) @@ -43,7 +43,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken) _logger.LogWarning(TweetComposeFailure, indexedName.Name); continue; } - + var tweet = await _twitterApiClient.PostTweet(tweetText); if (tweet != null) { @@ -52,11 +52,15 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken) } catch (Exception ex) { - _logger.LogError(ex, "Failed to tweet name: {name} to Twitter.", indexedName.Name); + _logger.LogError(ex, "Failed to tweet name: `{name}` to Twitter.", indexedName!.Name); } + } while (!stoppingToken.IsCancellationRequested && await _postingTimer.WaitForNextTickAsync(stoppingToken)); + } - await Task.Delay(tweetIntervalMs, stoppingToken); - } + public override async Task StopAsync(CancellationToken stoppingToken) + { + _postingTimer.Dispose(); + await base.StopAsync(stoppingToken); } private async Task BuildTweet(string name) @@ -68,6 +72,5 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken) .Replace("{meaning}", nameEntry.Meaning.TrimEnd('.')) .Replace("{link}", link); } - } } diff --git a/Website/Pages/Shared/BasePageModel.cshtml.cs b/Website/Pages/Shared/BasePageModel.cshtml.cs index c4c0cd7..f6df708 100644 --- a/Website/Pages/Shared/BasePageModel.cshtml.cs +++ b/Website/Pages/Shared/BasePageModel.cshtml.cs @@ -1,6 +1,7 @@ using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.Localization; +using System.Web; using Website.Resources; namespace Website.Pages.Shared @@ -17,9 +18,12 @@ public override void OnPageHandlerExecuting(PageHandlerExecutingContext context) { base.OnPageHandlerExecuting(context); + var host = $"{Request.Scheme}://{Request.Host}"; + // Some of the strings below should be internationalized. ViewData["Description"] = "YorubaNames"; - ViewData["SocialURL"] = "http://www.yorubaname.com"; + ViewData["BaseURL"] = host; + ViewData["SocialPath"] = string.Empty; // HomePage path ViewData["SocialTitle"] = "YorubaNames"; ViewData["SocialDescription"] = "Over 10,000 Yoruba names and still growing..."; } diff --git a/Website/Pages/Shared/_Layout.cshtml b/Website/Pages/Shared/_Layout.cshtml index 02de21b..eaa7c33 100644 --- a/Website/Pages/Shared/_Layout.cshtml +++ b/Website/Pages/Shared/_Layout.cshtml @@ -8,18 +8,18 @@ - + - + - - - - - - + + + + + + diff --git a/Website/Pages/SingleEntry.cshtml b/Website/Pages/SingleEntry.cshtml index b04ab38..9addde1 100644 --- a/Website/Pages/SingleEntry.cshtml +++ b/Website/Pages/SingleEntry.cshtml @@ -31,8 +31,8 @@ @Localizer["improve-entry"] @Localizer["share"] - - + +

diff --git a/Website/Pages/SingleEntry.cshtml.cs b/Website/Pages/SingleEntry.cshtml.cs index f8bbc2e..1de772f 100644 --- a/Website/Pages/SingleEntry.cshtml.cs +++ b/Website/Pages/SingleEntry.cshtml.cs @@ -17,7 +17,6 @@ public class SingleEntryModel( public NameEntryDto Name { get; set; } = new NameEntryDto(); public List Letters { get; private set; } = []; - public string Host { get; set; } = string.Empty; public string[] MostPopularNames { get; set; } = []; @@ -31,9 +30,13 @@ public async Task OnGet(string nameEntry) return Redirect($"/entries?q={HttpUtility.UrlEncode(nameEntry)}"); } + var encodedName = HttpUtility.UrlEncode(name.Name); + ViewData["SocialTitle"] = encodedName; + ViewData["SocialPath"] = $"/entries/{encodedName}"; + ViewData["SocialDescription"] = HttpUtility.UrlEncode(name.Meaning); + Name = name; Letters = YorubaAlphabetService.YorubaAlphabet; - Host = HttpUtility.UrlEncode($"{Request.Scheme}://{Request.Host}"); var searchActivity = await _apiService.GetRecentStats(); MostPopularNames = searchActivity.MostPopular; diff --git a/Website/wwwroot/img/yn-logo-drum-only.png b/Website/wwwroot/img/yn-logo-drum-only.png new file mode 100644 index 0000000000000000000000000000000000000000..4fd1ec29a46a70546b910e08dff7b8eb0fc1bcfe GIT binary patch literal 37210 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 literal 0 HcmV?d00001