mirror of
https://github.com/jeremyd/ergo.git
synced 2026-05-29 23:49:28 -07:00
upgrade message-tags to non-draft version
This commit is contained in:
@@ -1,27 +0,0 @@
|
||||
// Copyright (c) 2016-2017 Daniel Oaks <daniel@danieloaks.net>
|
||||
// released under the MIT license
|
||||
|
||||
package utils
|
||||
|
||||
import "github.com/goshuirc/irc-go/ircmsg"
|
||||
|
||||
// GetClientOnlyTags takes a tag map and returns a map containing just the client-only tags from it.
|
||||
func GetClientOnlyTags(tags map[string]ircmsg.TagValue) *map[string]ircmsg.TagValue {
|
||||
if len(tags) < 1 {
|
||||
return nil
|
||||
}
|
||||
|
||||
clientOnlyTags := make(map[string]ircmsg.TagValue)
|
||||
|
||||
for name, value := range tags {
|
||||
if len(name) > 1 && name[0] == '+' {
|
||||
clientOnlyTags[name] = value
|
||||
}
|
||||
}
|
||||
|
||||
if len(clientOnlyTags) < 1 {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &clientOnlyTags
|
||||
}
|
||||
@@ -50,17 +50,32 @@ func WordWrap(text string, lineWidth int) []string {
|
||||
return lines
|
||||
}
|
||||
|
||||
// SplitMessage represents a message that's been split for sending.
|
||||
type SplitMessage struct {
|
||||
Original string
|
||||
Wrapped []string // if this is nil, Original didn't need wrapping and can be sent to anyone
|
||||
type MessagePair struct {
|
||||
Message string
|
||||
Msgid string
|
||||
}
|
||||
|
||||
func MakeSplitMessage(original string, origIs512 bool) (result SplitMessage) {
|
||||
result.Original = original
|
||||
// SplitMessage represents a message that's been split for sending.
|
||||
type SplitMessage struct {
|
||||
MessagePair
|
||||
Wrapped []MessagePair // if this is nil, `Message` didn't need wrapping and can be sent to anyone
|
||||
}
|
||||
|
||||
if !origIs512 {
|
||||
result.Wrapped = WordWrap(original, 400)
|
||||
const defaultLineWidth = 400
|
||||
|
||||
func MakeSplitMessage(original string, origIs512 bool) (result SplitMessage) {
|
||||
result.Message = original
|
||||
result.Msgid = GenerateSecretToken()
|
||||
|
||||
if !origIs512 && defaultLineWidth < len(original) {
|
||||
wrapped := WordWrap(original, defaultLineWidth)
|
||||
result.Wrapped = make([]MessagePair, len(wrapped))
|
||||
for i, wrappedMessage := range wrapped {
|
||||
result.Wrapped[i] = MessagePair{
|
||||
Message: wrappedMessage,
|
||||
Msgid: GenerateSecretToken(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user