示例#1
0
        private bool TryMatchTagsInner(string input, ProxyTag tag, out string inner)
        {
            inner = "";

            // Normalize null tags to empty strings
            var prefix = tag.Prefix ?? "";
            var suffix = tag.Suffix ?? "";

            // Check if our input starts/ends with the tags
            var isMatch = input.Length >= prefix.Length + suffix.Length &&
                          input.StartsWith(prefix) && input.EndsWith(suffix);

            // Special case: image-only proxies + proxy tags with spaces
            // Trim everything, then see if we have a "contentless tag pair" (normally disallowed, but OK if we have an attachment)
            // Note `input` is still "", even if there are spaces between
            if (!isMatch && input.Trim() == prefix.TrimEnd() + suffix.TrimStart())
            {
                return(true);
            }
            if (!isMatch)
            {
                return(false);
            }

            // We got a match, extract inner text
            inner = input.Substring(prefix.Length, input.Length - prefix.Length - suffix.Length);

            // (see https://github.com/xSke/PluralKit/pull/181)
            return(inner.Trim() != "\U0000fe0f");
        }
示例#2
0
 public static PKError LegacyAlreadyHasProxyTag(ProxyTag requested, PKMember member) => new PKError($"This member already has more than one proxy tag set: {member.ProxyTagsString()}\nConsider using the {$"pk;member {member.Reference()} proxy add {requested.ProxyString}".AsCode()} command instead.");
示例#3
0
 public static PKError ProxyTagAlreadyExists(ProxyTag tagToAdd, PKMember member) => new PKError($"That member already has the proxy tag {tagToAdd.ProxyString.AsCode()}. The member currently has these tags: {member.ProxyTagsString()}");
示例#4
0
 public static PKError ProxyTagDoesNotExist(ProxyTag tagToRemove, PKMember member) => new PKError($"That member does not have the proxy tag {tagToRemove.ProxyString.AsCode()}. The member currently has these tags: {member.ProxyTagsString()}");
示例#5
0
 public static PKError ProxyTagDoesNotExist(ProxyTag tagToRemove, PKMember member) => new PKError($"That member does not have the proxy tag `{tagToRemove.ProxyString.SanitizeMentions()}`. The member currently has these tags: {member.ProxyTagsString().SanitizeMentions()}");
示例#6
0
 public static PKError LegacyAlreadyHasProxyTag(ProxyTag requested, PKMember member) => new PKError($"This member already has more than one proxy tag set: {member.ProxyTagsString().SanitizeMentions()}\nConsider using the `pk;member {member.Hid} proxy add {requested.ProxyString.SanitizeMentions()}` command instead.");
示例#7
0
 public static PKError ProxyTagAlreadyExists(ProxyTag tagToAdd, PKMember member) => new PKError($"That member already has the proxy tag `{tagToAdd.ProxyString.SanitizeMentions()}`. The member currently has these tags: {member.ProxyTagsString().SanitizeMentions()}");
示例#8
0
 public static PKError LegacyAlreadyHasProxyTag(ProxyTag requested, PKMember member) => new PKError($"This member already has more than one proxy tag set: {member.ProxyTagsString()}\nConsider using the ``pk;member {member.Hid} proxy add {requested.ProxyString.EscapeBacktickPair()}`` command instead.");
示例#9
0
 public static PKError ProxyTagDoesNotExist(ProxyTag tagToRemove, PKMember member) => new PKError($"That member does not have the proxy tag ``{tagToRemove.ProxyString.EscapeBacktickPair()}``. The member currently has these tags: {member.ProxyTagsString()}");
示例#10
0
 public static PKError ProxyTagAlreadyExists(ProxyTag tagToAdd, PKMember member) => new PKError($"That member already has the proxy tag ``{tagToAdd.ProxyString.EscapeBacktickPair()}``. The member currently has these tags: {member.ProxyTagsString()}");
示例#11
0
 public bool Equals(ProxyTag other) => Prefix == other.Prefix && Suffix == other.Suffix;