feat(News): refactor news service and add sentiment tracking

This commit is contained in:
2026-08-09 21:01:41 +02:00
parent 605e41cfeb
commit aff831cf58
390 changed files with 115094 additions and 9 deletions
@@ -0,0 +1,40 @@
using System.Threading.Tasks;
using Microsoft.Playwright;
namespace FinlyticNews.Adapters.Scraping;
/// <summary>
/// Specialized article detail scraper adapter for Finanznachrichten.de.
/// </summary>
public class FinanznachrichtenScraperAdapter : ArticleScraperAdapter
{
/// <inheritdoc />
public override string Hostname => "finanznachrichten.de";
/// <inheritdoc />
public override string ArticleBodySelector => "#article-content, div.article-text, div.headlineBody";
/// <inheritdoc />
public override async Task<string?> TryResolveRedirectUrlAsync(IPage page)
{
// 1. Bereits auf der Nachricht-Komplett Seite -> Kein Redirect nötig
if (page.Url.Contains("/ext/nachricht-komplett"))
{
return null;
}
// 2. Extraktion der nachrichtid aus dem Rating Widget (sehr zuverlässig bei FN)
var locator = page.Locator("#article--rating-data").First;
if (await locator.CountAsync() > 0)
{
var nachrichtId = await locator.GetAttributeAsync("data-nachrichtid");
if (!string.IsNullOrEmpty(nachrichtId))
{
return $"https://www.finanznachrichten.de/ext/nachricht-komplett-{nachrichtId}-0.htm";
}
}
// 3. Fallback auf Standard "Weiterlesen"-Button Verhalten der Basisklasse
return await base.TryResolveRedirectUrlAsync(page);
}
}