Информация об изменениях

Сообщение Re: Алгоритм сокращения ников от 01.10.2016 4:04

Изменено 01.10.2016 4:05 Vladek

Здравствуйте, Vladek, Вы писали:

V>А где можно увидеть актуальный алгоритм сокращения ников при цитировании?


V>Тут увидел только формирование заголовка сообщения: https://github.com/rsdn/janus/blob/master/Janus/Core/JanusProtocolSupport/JanusFormatMessage.cs (метод ReSubj)


Пока сделал так, думаю сойдёт:
private static string ShortUsername(string username)
{
    if (username.Length <= 3)
        return username;

    if (username.Any(Char.IsSeparator) == false)
        return String.Concat(username.Where(Char.IsUpper).Take(3));

    return String.Concat(username
        .Where((ch, i) => Char.IsSeparator(ch) == false && (i == 0 || Char.IsSeparator(username[i - 1])))
        .Take(3));
}
Здравствуйте, Vladek, Вы писали:

V>А где можно увидеть актуальный алгоритм сокращения ников при цитировании?


V>Тут увидел только формирование заголовка сообщения: https://github.com/rsdn/janus/blob/master/Janus/Core/JanusProtocolSupport/JanusFormatMessage.cs (метод ReSubj)


Пока сделал так, думаю сойдёт:
private static string ShortUsername(string username)
{
    if (username.Length <= 3)
        return String.Concat(username.Where(ch => Char.IsSeparator(ch) == false));

    if (username.Any(Char.IsSeparator) == false)
        return String.Concat(username.Where(Char.IsUpper).Take(3));

    return String.Concat(username
        .Where((ch, i) => Char.IsSeparator(ch) == false && (i == 0 || Char.IsSeparator(username[i - 1])))
        .Take(3));
}