Merge pull request #51 from NicolasConstant/develop

0.8.0 PR
This commit is contained in:
Nicolas Constant 2021-01-15 23:32:58 +01:00 committed by GitHub
commit 9729af9d17
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 43 additions and 40 deletions

View file

@ -4,5 +4,6 @@
{ {
public string Domain { get; set; } public string Domain { get; set; }
public string AdminEmail { get; set; } public string AdminEmail { get; set; }
public bool ResolveMentionsInProfiles { get; set; }
} }
} }

View file

@ -43,7 +43,7 @@ namespace BirdsiteLive.Domain
var to = $"{actorUrl}/followers"; var to = $"{actorUrl}/followers";
var apPublic = "https://www.w3.org/ns/activitystreams#Public"; var apPublic = "https://www.w3.org/ns/activitystreams#Public";
var extractedTags = _statusExtractor.ExtractTags(tweet.MessageContent); var extractedTags = _statusExtractor.Extract(tweet.MessageContent);
_statisticsHandler.ExtractedStatus(extractedTags.tags.Count(x => x.type == "Mention")); _statisticsHandler.ExtractedStatus(extractedTags.tags.Count(x => x.type == "Mention"));
string inReplyTo = null; string inReplyTo = null;

View file

@ -8,7 +8,7 @@ namespace BirdsiteLive.Domain.Tools
{ {
public interface IStatusExtractor public interface IStatusExtractor
{ {
(string content, Tag[] tags) ExtractTags(string messageContent); (string content, Tag[] tags) Extract(string messageContent, bool extractMentions = true);
} }
public class StatusExtractor : IStatusExtractor public class StatusExtractor : IStatusExtractor
@ -36,7 +36,7 @@ namespace BirdsiteLive.Domain.Tools
} }
#endregion #endregion
public (string content, Tag[] tags) ExtractTags(string messageContent) public (string content, Tag[] tags) Extract(string messageContent, bool extractMentions = true)
{ {
var tags = new List<Tag>(); var tags = new List<Tag>();
messageContent = $" {messageContent} "; messageContent = $" {messageContent} ";
@ -102,6 +102,8 @@ namespace BirdsiteLive.Domain.Tools
} }
// Extract Mentions // Extract Mentions
if (extractMentions)
{
var mentionMatch = OrderByLength(_mentionRegex.Matches(messageContent)); var mentionMatch = OrderByLength(_mentionRegex.Matches(messageContent));
foreach (Match m in mentionMatch.OrderByDescending(x => x.Length)) foreach (Match m in mentionMatch.OrderByDescending(x => x.Length))
{ {
@ -119,6 +121,7 @@ namespace BirdsiteLive.Domain.Tools
messageContent = Regex.Replace(messageContent, m.ToString(), messageContent = Regex.Replace(messageContent, m.ToString(),
$@" <span class=""h-card""><a href=""https://{_instanceSettings.Domain}/@{mention}"" class=""u-url mention"">@<span>{mention}</span></a></span>"); $@" <span class=""h-card""><a href=""https://{_instanceSettings.Domain}/@{mention}"" class=""u-url mention"">@<span>{mention}</span></a></span>");
} }
}
// Clean up return lines // Clean up return lines
messageContent = Regex.Replace(messageContent, @"<p> ", "<p>"); messageContent = Regex.Replace(messageContent, @"<p> ", "<p>");

View file

@ -59,7 +59,7 @@ namespace BirdsiteLive.Domain
var description = twitterUser.Description; var description = twitterUser.Description;
if (!string.IsNullOrWhiteSpace(description)) if (!string.IsNullOrWhiteSpace(description))
{ {
var extracted = _statusExtractor.ExtractTags(description); var extracted = _statusExtractor.Extract(description, _instanceSettings.ResolveMentionsInProfiles);
description = extracted.content; description = extracted.content;
_statisticsHandler.ExtractedDescription(extracted.tags.Count(x => x.type == "Mention")); _statisticsHandler.ExtractedDescription(extracted.tags.Count(x => x.type == "Mention"));

View file

@ -36,6 +36,7 @@ namespace BirdsiteLive.Pipeline.Processors
catch (Exception e) catch (Exception e)
{ {
Console.WriteLine(e); Console.WriteLine(e);
//TODO handle error
} }
await Task.Delay(SyncPeriod * 1000 * 60, ct); await Task.Delay(SyncPeriod * 1000 * 60, ct);

View file

@ -4,7 +4,7 @@
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>netcoreapp3.1</TargetFramework>
<UserSecretsId>d21486de-a812-47eb-a419-05682bb68856</UserSecretsId> <UserSecretsId>d21486de-a812-47eb-a419-05682bb68856</UserSecretsId>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS> <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<Version>0.7.0</Version> <Version>0.8.0</Version>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -126,9 +126,6 @@ namespace BirdsiteLive.Controllers
// Do something // Do something
var signature = r.Headers["Signature"].First(); var signature = r.Headers["Signature"].First();
Console.WriteLine(body);
Console.WriteLine();
switch (activity?.type) switch (activity?.type)
{ {
case "Follow": case "Follow":

View file

@ -11,7 +11,8 @@
"AllowedHosts": "*", "AllowedHosts": "*",
"Instance": { "Instance": {
"Domain": "domain.name", "Domain": "domain.name",
"AdminEmail": "me@domain.name" "AdminEmail": "me@domain.name",
"ResolveMentionsInProfiles": true
}, },
"Db": { "Db": {
"Type": "postgres", "Type": "postgres",

View file

@ -30,7 +30,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.IsTrue(result.content.Contains("Bla.")); Assert.IsTrue(result.content.Contains("Bla."));
@ -46,7 +46,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.IsTrue(result.content.Contains("Bla.")); Assert.IsTrue(result.content.Contains("Bla."));
@ -62,7 +62,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(0, result.tags.Length); Assert.AreEqual(0, result.tags.Length);
@ -80,7 +80,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(0, result.tags.Length); Assert.AreEqual(0, result.tags.Length);
@ -98,7 +98,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(0, result.tags.Length); Assert.AreEqual(0, result.tags.Length);
@ -116,7 +116,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(0, result.tags.Length); Assert.AreEqual(0, result.tags.Length);
@ -136,7 +136,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(1, result.tags.Length); Assert.AreEqual(1, result.tags.Length);
@ -157,7 +157,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(1, result.tags.Length); Assert.AreEqual(1, result.tags.Length);
@ -178,7 +178,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(1, result.tags.Length); Assert.AreEqual(1, result.tags.Length);
@ -199,7 +199,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(4, result.tags.Length); Assert.AreEqual(4, result.tags.Length);
@ -219,7 +219,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(1, result.tags.Length); Assert.AreEqual(1, result.tags.Length);
@ -240,7 +240,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(1, result.tags.Length); Assert.AreEqual(1, result.tags.Length);
@ -261,7 +261,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(1, result.tags.Length); Assert.AreEqual(1, result.tags.Length);
@ -282,7 +282,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(4, result.tags.Length); Assert.AreEqual(4, result.tags.Length);
@ -302,7 +302,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(5, result.tags.Length); Assert.AreEqual(5, result.tags.Length);
@ -325,7 +325,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(1, result.tags.Length); Assert.AreEqual(1, result.tags.Length);
@ -345,7 +345,7 @@ namespace BirdsiteLive.Domain.Tests.Tools
#endregion #endregion
var service = new StatusExtractor(_settings); var service = new StatusExtractor(_settings);
var result = service.ExtractTags(message); var result = service.Extract(message);
#region Validations #region Validations
Assert.AreEqual(1, result.tags.Length); Assert.AreEqual(1, result.tags.Length);