Files
Deal/src/telegram-service/Deal.Telegram/Dialogs/DialogHue.cs
T
Rustam Khalimov 713d554dc2 Нормализовать переводы строк в LF
Решение по TD-STYLE-ANALYZERS: LF — инструменты проекта (Python/Node) пишут LF,
CRLF-.sh не работают на Linux CI (sh scripts/ci.sh), большинство файлов уже были
LF. Добавлен .gitattributes (* text=auto eol=lf, бинарные исключения),
.editorconfig переведён на lf, 1029 файлов конвертированы, git add --renormalize.
Из индекса убраны закравшиеся archive/**/__pycache__/*.pyc.
2026-09-11 19:01:42 +03:00

39 lines
1.0 KiB
C#

using System.Text;
namespace Deal.Telegram.Dialogs;
/// <summary>
/// Детерминированный цвет диалога из палитры DIALOG_HUES.
/// </summary>
public static class DialogHue
{
private static readonly string[] Palette =
[
"#3b82f6",
"#38bdf8",
"#f472b6",
"#f59e0b",
"#a78bfa",
"#34d399",
"#fb7185",
"#22c55e",
];
/// <summary>
/// Цвет источника по id диалога и имени
/// </summary>
/// <param name="dialogId">Подписанный id диалога.</param>
/// <param name="name">Отображаемое имя (title/first_name); пустое — как в.</param>
/// <returns>Цвет палитры, hex "#rrggbb".</returns>
public static string Compute(string dialogId, string name)
{
int hash = 0;
foreach (Rune rune in (dialogId + name).EnumerateRunes())
{
hash = (hash * 31 + rune.Value) % Palette.Length;
}
return Palette[hash];
}
}