From f7882392fd1def3b627f9c76ebc8205b21682a36 Mon Sep 17 00:00:00 2001 From: estrogen elf <87099578+BlossomiShymae@users.noreply.github.com> Date: Wed, 18 Jun 2025 01:40:07 -0500 Subject: [PATCH] feat: add HextechDocs posts carousel --- Needlework.Net/Assets/bg-event-pass.jpg | Bin 0 -> 81272 bytes Needlework.Net/Models/HextechDocsPost.cs | 13 +++++ Needlework.Net/Needlework.Net.csproj | 1 + Needlework.Net/Program.cs | 2 + .../Services/HextechDocsPostService.cs | 41 ++++++++++++++ .../Pages/Home/HextechDocsPostViewModel.cs | 15 +++++ .../ViewModels/Pages/Home/HomeViewModel.cs | 53 ++++++++++++++++-- .../Pages/Home/HextechDocsPostView.axaml | 37 ++++++++++++ .../Pages/Home/HextechDocsPostView.axaml.cs | 11 ++++ .../Views/Pages/Home/HomeView.axaml | 14 +++++ 10 files changed, 183 insertions(+), 4 deletions(-) create mode 100644 Needlework.Net/Assets/bg-event-pass.jpg create mode 100644 Needlework.Net/Models/HextechDocsPost.cs create mode 100644 Needlework.Net/Services/HextechDocsPostService.cs create mode 100644 Needlework.Net/ViewModels/Pages/Home/HextechDocsPostViewModel.cs create mode 100644 Needlework.Net/Views/Pages/Home/HextechDocsPostView.axaml create mode 100644 Needlework.Net/Views/Pages/Home/HextechDocsPostView.axaml.cs diff --git a/Needlework.Net/Assets/bg-event-pass.jpg b/Needlework.Net/Assets/bg-event-pass.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3f2ba5b0dc64a98b250cf4ea7e5a8783695771a7 GIT binary patch literal 81272 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 literal 0 HcmV?d00001 diff --git a/Needlework.Net/Models/HextechDocsPost.cs b/Needlework.Net/Models/HextechDocsPost.cs new file mode 100644 index 0000000..2b464b0 --- /dev/null +++ b/Needlework.Net/Models/HextechDocsPost.cs @@ -0,0 +1,13 @@ +namespace Needlework.Net.Models +{ + public class HextechDocsPost + { + public required string Path { get; init; } + + public required string Title { get; init; } + + public required string Excerpt { get; init; } + + public string Url => $"https://hextechdocs.dev{Path}"; + } +} diff --git a/Needlework.Net/Needlework.Net.csproj b/Needlework.Net/Needlework.Net.csproj index abe7683..636e0c1 100644 --- a/Needlework.Net/Needlework.Net.csproj +++ b/Needlework.Net/Needlework.Net.csproj @@ -17,6 +17,7 @@ + diff --git a/Needlework.Net/Program.cs b/Needlework.Net/Program.cs index 2e600ad..84119d7 100644 --- a/Needlework.Net/Program.cs +++ b/Needlework.Net/Program.cs @@ -87,6 +87,7 @@ class Program // HOME locator.Register(() => new HomeView()); locator.Register(() => new LibraryView()); + locator.Register(() => new HextechDocsPostView()); // SCHEMAS locator.Register(() => new SchemasView()); locator.Register(() => new Views.Pages.Schemas.SchemaSearchDetailsView()); @@ -103,6 +104,7 @@ class Program builder.AddSingleton(); builder.AddSingleton(); builder.AddSingleton(); + builder.AddSingleton(); builder.AddSingleton(new FlurlClientCache() .Add("GithubClient", "https://api.github.com") .Add("GithubUserContentClient", "https://raw.githubusercontent.com") diff --git a/Needlework.Net/Services/HextechDocsPostService.cs b/Needlework.Net/Services/HextechDocsPostService.cs new file mode 100644 index 0000000..962d815 --- /dev/null +++ b/Needlework.Net/Services/HextechDocsPostService.cs @@ -0,0 +1,41 @@ +using AngleSharp; +using FastCache; +using Needlework.Net.Models; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Needlework.Net.Services +{ + public class HextechDocsPostService + { + private readonly IBrowsingContext _context = BrowsingContext.New(Configuration.Default.WithDefaultLoader()); + + public async Task> GetPostsAsync() + { + if (Cached>.TryGet(nameof(GetPostsAsync), out var cached)) + { + return cached; + } + + var document = await _context.OpenAsync("https://hextechdocs.dev/tag/lcu/"); + var elements = document.QuerySelectorAll("article.post-card"); + var posts = new List(); + foreach (var element in elements) + { + var path = element.QuerySelector("a.post-card-content-link")!.GetAttribute("href")!; + var title = element.QuerySelector(".post-card-title")!.TextContent; + var excerpt = element.QuerySelector(".post-card-excerpt > p")!.TextContent; + var post = new HextechDocsPost() + { + Path = path, + Title = title, + Excerpt = excerpt, + }; + posts.Add(post); + } + + return cached.Save(posts, TimeSpan.FromMinutes(60)); + } + } +} diff --git a/Needlework.Net/ViewModels/Pages/Home/HextechDocsPostViewModel.cs b/Needlework.Net/ViewModels/Pages/Home/HextechDocsPostViewModel.cs new file mode 100644 index 0000000..ff0e674 --- /dev/null +++ b/Needlework.Net/ViewModels/Pages/Home/HextechDocsPostViewModel.cs @@ -0,0 +1,15 @@ +using CommunityToolkit.Mvvm.ComponentModel; +using Needlework.Net.Models; + +namespace Needlework.Net.ViewModels.Pages.Home +{ + public partial class HextechDocsPostViewModel : ObservableObject + { + public HextechDocsPostViewModel(HextechDocsPost hextechDocsPost) + { + HextechDocsPost = hextechDocsPost; + } + + public HextechDocsPost HextechDocsPost { get; } + } +} diff --git a/Needlework.Net/ViewModels/Pages/Home/HomeViewModel.cs b/Needlework.Net/ViewModels/Pages/Home/HomeViewModel.cs index 0b262ae..bf32152 100644 --- a/Needlework.Net/ViewModels/Pages/Home/HomeViewModel.cs +++ b/Needlework.Net/ViewModels/Pages/Home/HomeViewModel.cs @@ -1,18 +1,44 @@ using Avalonia; using Avalonia.Platform; +using Avalonia.Threading; using CommunityToolkit.Mvvm.ComponentModel; +using Needlework.Net.Extensions; using Needlework.Net.Models; +using Needlework.Net.Services; using System; using System.Collections.Generic; using System.Linq; +using System.Reactive; +using System.Reactive.Linq; using System.Text.Json; using System.Threading.Tasks; namespace Needlework.Net.ViewModels.Pages.Home; -public partial class HomeViewModel : PageBase +public partial class HomeViewModel : PageBase, IEnableLogger { - public HomeViewModel() : base("Home", "fa-solid fa-house", int.MinValue) { } + private readonly HextechDocsPostService _hextechDocsPostService; + + private readonly IDisposable _carouselNextDisposable; + + public HomeViewModel(HextechDocsPostService hextechDocsPostService) : base("Home", "fa-solid fa-house", int.MinValue) + { + _hextechDocsPostService = hextechDocsPostService; + + _carouselNextDisposable = Observable.Timer(TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(5)) + .Select(time => Unit.Default) + .Subscribe(_ => + { + if (SelectedHextechDocsPostsIndex == HextechDocsPosts.Count - 1) + { + SelectedHextechDocsPostsIndex = 0; + } + else + { + SelectedHextechDocsPostsIndex += 1; + } + }); + } public List Libraries { get; } = JsonSerializer.Deserialize>(AssetLoader.Open(new Uri($"avares://NeedleworkDotNet/Assets/libraries.json"))) !.Where(library => library.Tags.Contains("lcu") || library.Tags.Contains("ingame")) @@ -22,8 +48,27 @@ public partial class HomeViewModel : PageBase [ObservableProperty] private Vector _librariesOffset = new(); - public override Task InitializeAsync() + [ObservableProperty] + private List _hextechDocsPosts = []; + + [ObservableProperty] + private int _selectedHextechDocsPostsIndex; + + public override async Task InitializeAsync() { - return Task.CompletedTask; + try + { + var posts = await _hextechDocsPostService.GetPostsAsync(); + var hextechDocsPosts = posts.Select(post => new HextechDocsPostViewModel(post)).ToList(); + Dispatcher.UIThread.Invoke(() => + { + HextechDocsPosts = hextechDocsPosts; + }); + } + catch (Exception ex) + { + this.Log() + .Error(ex, "Failed to get posts from HextechDocs."); + } } } diff --git a/Needlework.Net/Views/Pages/Home/HextechDocsPostView.axaml b/Needlework.Net/Views/Pages/Home/HextechDocsPostView.axaml new file mode 100644 index 0000000..e188d0b --- /dev/null +++ b/Needlework.Net/Views/Pages/Home/HextechDocsPostView.axaml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + diff --git a/Needlework.Net/Views/Pages/Home/HextechDocsPostView.axaml.cs b/Needlework.Net/Views/Pages/Home/HextechDocsPostView.axaml.cs new file mode 100644 index 0000000..ad07aef --- /dev/null +++ b/Needlework.Net/Views/Pages/Home/HextechDocsPostView.axaml.cs @@ -0,0 +1,11 @@ +using Avalonia.Controls; + +namespace Needlework.Net.Views.Pages.Home; + +public partial class HextechDocsPostView : UserControl +{ + public HextechDocsPostView() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/Needlework.Net/Views/Pages/Home/HomeView.axaml b/Needlework.Net/Views/Pages/Home/HomeView.axaml index eac1300..e8aca1d 100644 --- a/Needlework.Net/Views/Pages/Home/HomeView.axaml +++ b/Needlework.Net/Views/Pages/Home/HomeView.axaml @@ -40,6 +40,20 @@ Get started with LCU or Game Client development by clicking on the endpoints tab in the left panel. + + + + + + + + + + + THE PROGRAM IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT, OR OF FITNESS FOR A PARTICULAR PURPOSE. LICENSOR DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE PROGRAM WILL MEET YOUR REQUIREMENTS OR THAT OPERATION WILL BE UNINTERRUPTED OR ERROR FREE. LICENSOR MAKES NO WARRANTIES RESPECTING ANY HARM THAT MAY BE CAUSED BY MALICIOUS USE OF THIS SOFTWARE. LICENSOR FURTHER EXPRESSLY DISCLAIMS ANY WARRANTY OR REPRESENTATION TO AUTHORIZED USERS OR TO ANY THIRD PARTY.