Move ingestion + Telegram/Bale/Divar config to DB-backed admin settings
- AppSetting gains source config: AutoIngestEnabled, IngestIntervalMinutes, Telegram/Bale/Divar enabled+channels/token/queries - IListingSource.FetchAsync(AppSetting) — sources read config from DB, not IOptions/appsettings; sample source dev-only - IngestionWorker reads AutoIngest+interval from DB each cycle (toggle at runtime, no redeploy) - /Admin/Settings gets a 'منابع جمعآوری' section; removed Ingestion env/appsettings + compose env vars - ENV_FILE shrinks to HOST_PORT + POSTGRES_* + ADMIN_PHONE (AI + sources are all in-admin); migration Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -28,14 +28,6 @@ builder.Services.AddHttpClient("scrape", c =>
|
||||
c.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (compatible; HamkadrBot/1.0)");
|
||||
});
|
||||
builder.Services.AddHttpClient("ai");
|
||||
builder.Services.Configure<JobsMedical.Web.Services.Scraping.IngestionOptions>(
|
||||
builder.Configuration.GetSection("Ingestion"));
|
||||
builder.Services.Configure<JobsMedical.Web.Services.Scraping.TelegramOptions>(
|
||||
builder.Configuration.GetSection("Ingestion:Telegram"));
|
||||
builder.Services.Configure<JobsMedical.Web.Services.Scraping.BaleOptions>(
|
||||
builder.Configuration.GetSection("Ingestion:Bale"));
|
||||
builder.Services.Configure<JobsMedical.Web.Services.Scraping.DivarOptions>(
|
||||
builder.Configuration.GetSection("Ingestion:Divar"));
|
||||
builder.Services.AddSingleton<JobsMedical.Web.Services.Scraping.ListingValidator>();
|
||||
builder.Services.AddSingleton<JobsMedical.Web.Services.Scraping.IAiAuditor,
|
||||
JobsMedical.Web.Services.Scraping.OpenAiCompatibleAuditor>();
|
||||
|
||||
Reference in New Issue
Block a user