using System.Text; namespace Deal.Telegram.Dialogs; /// /// Детерминированный цвет диалога из палитры DIALOG_HUES. /// public static class DialogHue { private static readonly string[] Palette = [ "#3b82f6", "#38bdf8", "#f472b6", "#f59e0b", "#a78bfa", "#34d399", "#fb7185", "#22c55e", ]; /// /// Цвет источника по id диалога и имени /// /// Подписанный id диалога. /// Отображаемое имя (title/first_name); пустое — как в. /// Цвет палитры, hex "#rrggbb". 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]; } }