ci / build-test (push) Canceled after 0s
SaaS-мониторинг Telegram: ядро (модули Cards/Kanban/Pipeline/Tenants/Settings/ Discovery, Api, Infrastructure), сервисы telegram/ai/ml/storage, фронт Vue, контракты и grpc-hosting, деплой-конфиги (dev/prod/observability/CI-раннер), Gitea Actions CI, документация (ТЗ, техдок, api-map, код-стайл, планы, бэклог). Текущее состояние: все этапы роадмапа 0–12 закрыты, сборка 5 sln 0/0, тесты 1340/130/52/38/9 зелёные.
31 lines
1.2 KiB
C#
31 lines
1.2 KiB
C#
namespace Deal.Modules.Pipeline.Application.Parse;
|
|
|
|
// Расширения строк для разбора текста сообщений.
|
|
internal static class StringExtensions
|
|
{
|
|
private static readonly string[] FooterHintsArray =
|
|
{
|
|
"откликнуться через", "runello", "больше вакансий", "teletype", "при отклике укажите",
|
|
"больше заявок", "узнать подробнее", "написать в лс", "пишите в лс",
|
|
};
|
|
|
|
/// <summary>
|
|
/// Содержит ли текст служебный футер-хинт.
|
|
/// </summary>
|
|
/// <param name="text">Текст (в любом регистре; null трактуется как пустая строка).</param>
|
|
/// <returns>True — текст похож на футер агрегатора/служебную строку.</returns>
|
|
public static bool ContainsFooterHint(this string text)
|
|
{
|
|
string lower = text.ToLowerInvariant();
|
|
foreach (string hint in FooterHintsArray)
|
|
{
|
|
if (lower.Contains(hint, StringComparison.Ordinal))
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|