Files
hamkadr/src/JobsMedical.Web/Services/Scraping/IListingSource.cs
T

18 lines
708 B
C#
Raw Normal View History

using JobsMedical.Web.Models;
namespace JobsMedical.Web.Services.Scraping;
/// <summary>One raw post pulled from a source (a Telegram message, a Divar ad, etc.).</summary>
public record ScrapedItem(string Source, string RawText, string? SourceUrl = null);
/// <summary>
/// A pluggable source the ingestion engine pulls from. Configuration (enabled, channels, tokens)
/// comes from the DB-backed <see cref="AppSetting"/> passed in — set in the admin panel, not env.
/// A disabled/unconfigured source returns an empty list.
/// </summary>
public interface IListingSource
{
string Name { get; }
Task<IReadOnlyList<ScrapedItem>> FetchAsync(AppSetting settings, CancellationToken ct = default);
}