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:
@@ -20,6 +20,16 @@ public class SettingsModel : PageModel
|
||||
[BindProperty] public string? AiModel { get; set; }
|
||||
[BindProperty] public string AiSystemPrompt { get; set; } = "";
|
||||
[BindProperty] public bool AiAutoApprove { get; set; }
|
||||
// Channel scraping sources
|
||||
[BindProperty] public bool AutoIngestEnabled { get; set; }
|
||||
[BindProperty] public int IngestIntervalMinutes { get; set; } = 30;
|
||||
[BindProperty] public bool TelegramEnabled { get; set; }
|
||||
[BindProperty] public string? TelegramChannels { get; set; }
|
||||
[BindProperty] public bool BaleEnabled { get; set; }
|
||||
[BindProperty] public string? BaleBotToken { get; set; }
|
||||
[BindProperty] public bool DivarEnabled { get; set; }
|
||||
[BindProperty] public string? DivarCity { get; set; }
|
||||
[BindProperty] public string? DivarQueries { get; set; }
|
||||
[TempData] public string? Saved { get; set; }
|
||||
|
||||
public async Task OnGetAsync()
|
||||
@@ -33,6 +43,15 @@ public class SettingsModel : PageModel
|
||||
AiModel = s.AiModel;
|
||||
AiSystemPrompt = s.AiSystemPrompt;
|
||||
AiAutoApprove = s.AiAutoApprove;
|
||||
AutoIngestEnabled = s.AutoIngestEnabled;
|
||||
IngestIntervalMinutes = s.IngestIntervalMinutes;
|
||||
TelegramEnabled = s.TelegramEnabled;
|
||||
TelegramChannels = s.TelegramChannels;
|
||||
BaleEnabled = s.BaleEnabled;
|
||||
BaleBotToken = s.BaleBotToken;
|
||||
DivarEnabled = s.DivarEnabled;
|
||||
DivarCity = s.DivarCity;
|
||||
DivarQueries = s.DivarQueries;
|
||||
}
|
||||
|
||||
public async Task<IActionResult> OnPostAsync()
|
||||
@@ -47,6 +66,15 @@ public class SettingsModel : PageModel
|
||||
AiModel = AiModel,
|
||||
AiSystemPrompt = AiSystemPrompt,
|
||||
AiAutoApprove = AiAutoApprove,
|
||||
AutoIngestEnabled = AutoIngestEnabled,
|
||||
IngestIntervalMinutes = IngestIntervalMinutes,
|
||||
TelegramEnabled = TelegramEnabled,
|
||||
TelegramChannels = TelegramChannels,
|
||||
BaleEnabled = BaleEnabled,
|
||||
BaleBotToken = BaleBotToken,
|
||||
DivarEnabled = DivarEnabled,
|
||||
DivarCity = DivarCity,
|
||||
DivarQueries = DivarQueries,
|
||||
});
|
||||
Saved = "تنظیمات ذخیره شد.";
|
||||
return RedirectToPage();
|
||||
|
||||
Reference in New Issue
Block a user