Files
jobtrackingapp/JobTrackerApi/Services/JobImport/Plugins/NavPlugin.cs
T
cesnimda 988a91a151
CI and Deploy / test (push) Successful in 2m34s
CI and Deploy / deploy (push) Successful in 56s
feat: persist job source and market
2026-07-30 23:38:22 +02:00

32 lines
1.1 KiB
C#

using System;
namespace JobTrackerApi.Services.JobImport.Plugins;
public sealed class NavPlugin : IJobSitePlugin
{
public bool CanHandle(string url)
=> url.Contains("arbeidsplassen.nav.no", StringComparison.OrdinalIgnoreCase) ||
url.Contains("nav.no", StringComparison.OrdinalIgnoreCase);
public JobImportResult Parse(string html, string url)
{
var meta = HtmlExtract.ReadMeta(html);
var title = meta.TryGetValue("og:title", out var t) ? t : HtmlExtract.ReadTitle(html);
var desc = meta.TryGetValue("og:description", out var d) ? d : null;
var siteName = meta.TryGetValue("og:site_name", out var sn) ? sn : null;
return new JobImportResult
{
SourceUrl = url,
Title = title,
Company = siteName, // better than nothing; universal parser often gets this anyway.
Description = HtmlExtract.ToPlainText(desc),
Parser = "nav",
Source = "nav",
CountryCode = "NO",
Success = !string.IsNullOrWhiteSpace(title) && !string.IsNullOrWhiteSpace(desc),
};
}
}