16 lines
605 B
C#
16 lines
605 B
C#
|
|
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. Implement once per channel/site.
|
||
|
|
/// `Enabled` lets a source be present but dormant until it's configured with credentials.
|
||
|
|
/// </summary>
|
||
|
|
public interface IListingSource
|
||
|
|
{
|
||
|
|
string Name { get; }
|
||
|
|
bool Enabled { get; }
|
||
|
|
Task<IReadOnlyList<ScrapedItem>> FetchAsync(CancellationToken ct = default);
|
||
|
|
}
|