diff --git a/src/BirdsiteLive/BirdsiteLive.csproj b/src/BirdsiteLive/BirdsiteLive.csproj index 43dedc9..3fb2e68 100644 --- a/src/BirdsiteLive/BirdsiteLive.csproj +++ b/src/BirdsiteLive/BirdsiteLive.csproj @@ -11,8 +11,6 @@ - - diff --git a/src/BirdsiteLive/Component/NodeInfoViewComponent.cs b/src/BirdsiteLive/Component/NodeInfoViewComponent.cs index 1f0a8c6..ff1d67d 100644 --- a/src/BirdsiteLive/Component/NodeInfoViewComponent.cs +++ b/src/BirdsiteLive/Component/NodeInfoViewComponent.cs @@ -7,7 +7,6 @@ using BirdsiteLive.Domain.Repository; using BirdsiteLive.Services; using BirdsiteLive.Statistics.Domain; using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Razor.Language.Intermediate; namespace BirdsiteLive.Component { diff --git a/src/BirdsiteLive/Controllers/UsersController.cs b/src/BirdsiteLive/Controllers/UsersController.cs index b6f9f19..6a91b89 100644 --- a/src/BirdsiteLive/Controllers/UsersController.cs +++ b/src/BirdsiteLive/Controllers/UsersController.cs @@ -138,28 +138,37 @@ namespace BirdsiteLive.Controllers public async Task Tweet(string id, string statusId) { var acceptHeaders = Request.Headers["Accept"]; + if (!long.TryParse(statusId, out var parsedStatusId)) + return NotFound(); + + var tweet = await _twitterTweetService.GetTweetAsync(parsedStatusId); + if (tweet == null) + return NotFound(); + + var user = await _twitterUserService.GetUserAsync(id); + + var status = _statusService.GetStatus(id, tweet); + if (acceptHeaders.Any()) { var r = acceptHeaders.First(); + if (r.Contains("application/activity+json")) { - if (!long.TryParse(statusId, out var parsedStatusId)) - return NotFound(); - - var tweet = await _twitterTweetService.GetTweetAsync(parsedStatusId); - if (tweet == null) - return NotFound(); - - //var user = _twitterService.GetUser(id); - //if (user == null) return NotFound(); - - var status = _statusService.GetStatus(id, tweet); var jsonApUser = JsonConvert.SerializeObject(status); return Content(jsonApUser, "application/activity+json; charset=utf-8"); } } - return Redirect($"https://twitter.com/{id}/status/{statusId}"); + //return Redirect($"https://twitter.com/{id}/status/{statusId}"); + var displayTweet = new DisplayTweet + { + Text = status.content, + OgUrl = $"https://twitter.com/{id}/status/{statusId}", + UserProfileImage = user.ProfileImageUrl, + UserName = user.Name, + }; + return View(displayTweet); } [Route("/users/{id}/inbox")] diff --git a/src/BirdsiteLive/Models/DisplayTweet.cs b/src/BirdsiteLive/Models/DisplayTweet.cs new file mode 100644 index 0000000..b96a111 --- /dev/null +++ b/src/BirdsiteLive/Models/DisplayTweet.cs @@ -0,0 +1,10 @@ +namespace BirdsiteLive.Models +{ + public class DisplayTweet + { + public string Text { get; set; } + public string OgUrl { get; set; } + public string UserProfileImage { get; set; } + public string UserName { get; set; } + } +} \ No newline at end of file diff --git a/src/BirdsiteLive/Views/About/Blacklisting.cshtml b/src/BirdsiteLive/Views/About/Blacklisting.cshtml deleted file mode 100644 index 148b0aa..0000000 --- a/src/BirdsiteLive/Views/About/Blacklisting.cshtml +++ /dev/null @@ -1,27 +0,0 @@ -@using BirdsiteLive.Domain.Repository -@model BirdsiteLive.Controllers.ModerationStatus -@{ - ViewData["Title"] = "Blacklisting"; -} - -
-

Blacklisting

- - @if (Model.Followers == ModerationTypeEnum.BlackListing) - { -


This node is blacklisting some instances and/or Fediverse users.

- } - - @if (Model.TwitterAccounts == ModerationTypeEnum.BlackListing) - { -


This node is blacklisting some twitter users.

- } - - @if (Model.Followers != ModerationTypeEnum.BlackListing && Model.TwitterAccounts != ModerationTypeEnum.BlackListing) - { -


This node is not using blacklisting.

- } - - @*

FAQ

-

TODO

*@ -
\ No newline at end of file diff --git a/src/BirdsiteLive/Views/About/Whitelisting.cshtml b/src/BirdsiteLive/Views/About/Whitelisting.cshtml deleted file mode 100644 index bdd00bc..0000000 --- a/src/BirdsiteLive/Views/About/Whitelisting.cshtml +++ /dev/null @@ -1,27 +0,0 @@ -@using BirdsiteLive.Domain.Repository -@model BirdsiteLive.Controllers.ModerationStatus -@{ - ViewData["Title"] = "Whitelisting"; -} - -
-

Whitelisting

- - @if (Model.Followers == ModerationTypeEnum.WhiteListing) - { -


This node is whitelisting some instances and/or Fediverse users.

- } - - @if (Model.TwitterAccounts == ModerationTypeEnum.WhiteListing) - { -


This node is whitelisting some twitter users.

- } - - @if (Model.Followers != ModerationTypeEnum.WhiteListing && Model.TwitterAccounts != ModerationTypeEnum.WhiteListing) - { -


This node is not using whitelisting.

- } - - @*

FAQ

-

TODO

*@ -
\ No newline at end of file diff --git a/src/BirdsiteLive/Views/Shared/_Layout.cshtml b/src/BirdsiteLive/Views/Shared/_Layout.cshtml index 86aba81..adf54de 100644 --- a/src/BirdsiteLive/Views/Shared/_Layout.cshtml +++ b/src/BirdsiteLive/Views/Shared/_Layout.cshtml @@ -6,6 +6,24 @@ @Configuration.GetSection("Instance")["Name"] - @ViewData["Title"] + @if(ViewData["AlternateLink"] != null) + { + + + } + @if(ViewData["MetaDescription"] != null) + { + + + } + @if(ViewData["MetaTitle"] != null) + { + + } + @if(ViewData["MetaImage"] != null) + { + + } diff --git a/src/BirdsiteLive/Views/Users/Tweet.cshtml b/src/BirdsiteLive/Views/Users/Tweet.cshtml index a1aa7fe..223c94b 100644 --- a/src/BirdsiteLive/Views/Users/Tweet.cshtml +++ b/src/BirdsiteLive/Views/Users/Tweet.cshtml @@ -1,8 +1,14 @@ -@{ +@using Microsoft.AspNetCore.Http.Extensions +@model DisplayTweet +@{ ViewData["Title"] = "Tweet"; + ViewData["AlternateLink"] = Context.Request.GetDisplayUrl(); + ViewData["MetaDescription"] = ViewData.Model.Text; + ViewData["MetaImage"] = ViewData.Model.UserProfileImage; + ViewData["MetaTitle"] = ViewData.Model.UserName; }
- +
\ No newline at end of file