gemmail

package
v0.0.0-...-40f4ec1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 12, 2024 License: BSD-3-Clause Imports: 5 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GemMail

type GemMail struct {
	ID           string              // MD5 Hash of timestamp and orig. sender
	Subject      GemMailLineHeading1 // First level-1 heading of gemmail body (not included in the GemtextLines array)
	Senders      []GemMailLineSender
	Receivers    map[string]struct{}
	Timestamps   []GemMailLineTimestamp
	GemtextLines []GemMailLine // NOTE: Does not include first level-1 heading (the Subject)
	Tags         map[string]Tag
}

func CreateGemMailFromBody

func CreateGemMailFromBody(body string) GemMail

Create gemmail from body. After setting timestamp and sender, run gemmail.SetID() if you intend to add the message to a gembox or store it in memory.

func ParseGemMail_MisfinB

func ParseGemMail_MisfinB(gemmail string) GemMail

func ParseGemMail_MisfinC

func ParseGemMail_MisfinC(gemmail string) GemMail

When using the new Misfin(C) format, where the first 3 lines are set as senders, recipients, and timestamps

func (*GemMail) AddReceiver

func (gemmail *GemMail) AddReceiver(address string)

func (*GemMail) AddTag

func (gemmail *GemMail) AddTag(tag string)

func (*GemMail) AppendSender

func (gemmail *GemMail) AppendSender(address string, blurb string)

Appends sender to header information, just below the last sender line

func (*GemMail) AppendTimestamp

func (gemmail *GemMail) AppendTimestamp(timestamp time.Time)

Appends timestamp to header information

func (*GemMail) Clone

func (gemmail *GemMail) Clone(cloneTags bool) GemMail

Clones gemmail. This is necessary if you want to make modifications only within a specific scope (particularly for loops)

func (*GemMail) ContainsSender

func (gemmail *GemMail) ContainsSender(address string) bool

func (*GemMail) HasTag

func (gemmail *GemMail) HasTag(tag string) bool

Whether gemmail has tag and it's enabled.

func (*GemMail) MessageBodyString

func (gemmail *GemMail) MessageBodyString() string

func (*GemMail) PrependSender

func (gemmail *GemMail) PrependSender(address string, blurb string)

Prepends sender to header information as first sender line of file

func (*GemMail) PrependTimestamp

func (gemmail *GemMail) PrependTimestamp(timestamp time.Time)

Prepends timestamp to header information

func (*GemMail) RemoveReceiver

func (gemmail *GemMail) RemoveReceiver(address string)

func (*GemMail) RemoveSender

func (gemmail *GemMail) RemoveSender(address string)

func (*GemMail) RemoveTag

func (gemmail *GemMail) RemoveTag(tag string)

func (*GemMail) SetGemTextBody

func (gemmail *GemMail) SetGemTextBody(gemtext string)

func (*GemMail) SetID

func (gemmail *GemMail) SetID()

func (*GemMail) SetTag

func (gemmail *GemMail) SetTag(tag string, value bool, last_modification_timestamp time.Time)

func (*GemMail) String

func (gemmail *GemMail) String() string

Convert GemMail struct to string Always uses Misfin(C) format, where first three lines is always senders, recipients, timestamps. If nothing is located in any one, then they are blank lines

func (*GemMail) String_MisfinB

func (gemmail *GemMail) String_MisfinB() string

Convert GemMail struct to string

type GemMailLine

type GemMailLine interface {
	String() string
	// contains filtered or unexported methods
}

type GemMailLineHeading1

type GemMailLineHeading1 string

LineHeading1 is a first-level heading line. This is equivalent to the gemmail's Subject

func (*GemMailLineHeading1) Clone

func (heading1 *GemMailLineHeading1) Clone() GemMailLineHeading1

func (GemMailLineHeading1) String

func (l GemMailLineHeading1) String() string

type GemMailLineHeading2

type GemMailLineHeading2 string

LineHeading2 is a second-level heading line.

func (*GemMailLineHeading2) Clone

func (heading2 *GemMailLineHeading2) Clone() GemMailLineHeading2

func (GemMailLineHeading2) String

func (l GemMailLineHeading2) String() string

type GemMailLineHeading3

type GemMailLineHeading3 string

LineHeading3 is a third-level heading line.

func (*GemMailLineHeading3) Clone

func (heading3 *GemMailLineHeading3) Clone() GemMailLineHeading3

func (GemMailLineHeading3) String

func (l GemMailLineHeading3) String() string
type GemMailLineLink struct {
	URL  string
	Name string
}

LineLink is a link line.

func (*GemMailLineLink) Clone

func (link *GemMailLineLink) Clone() GemMailLineLink

func (GemMailLineLink) String

func (l GemMailLineLink) String() string

type GemMailLineListItem

type GemMailLineListItem string

LineListItem is an unordered list item line.

func (*GemMailLineListItem) Clone

func (listItem *GemMailLineListItem) Clone() GemMailLineListItem

func (GemMailLineListItem) String

func (l GemMailLineListItem) String() string

type GemMailLinePreformattedText

type GemMailLinePreformattedText string

LinePreformattedText is a preformatted text line.

func (*GemMailLinePreformattedText) Clone

func (preformattedText *GemMailLinePreformattedText) Clone() GemMailLinePreformattedText

func (GemMailLinePreformattedText) String

type GemMailLinePreformattingToggle

type GemMailLinePreformattingToggle string

LinePreformattingToggle is a preformatting toggle line.

func (*GemMailLinePreformattingToggle) Clone

func (GemMailLinePreformattingToggle) String

type GemMailLineQuote

type GemMailLineQuote string

LineQuote is a quote line.

func (*GemMailLineQuote) Clone

func (quote *GemMailLineQuote) Clone() GemMailLineQuote

func (GemMailLineQuote) String

func (l GemMailLineQuote) String() string

type GemMailLineSender

type GemMailLineSender struct {
	Address string
	Blurb   string
}

func (*GemMailLineSender) Clone

func (sender *GemMailLineSender) Clone() GemMailLineSender

func (GemMailLineSender) String

func (l GemMailLineSender) String() string

type GemMailLineText

type GemMailLineText string

LineText is a text line.

func (*GemMailLineText) Clone

func (lineText *GemMailLineText) Clone() GemMailLineText

func (GemMailLineText) String

func (l GemMailLineText) String() string

type GemMailLineTimestamp

type GemMailLineTimestamp struct {
	Value time.Time
}

type GemMailLineReceivers []string // Array of addresses

func (GemMailLineTimestamp) String

func (l GemMailLineTimestamp) String() string
func (l GemMailLineReceivers) String() string {
	var builder strings.Builder
	fmt.Fprintf(&builder, ":")
	for _, r := range l {
		fmt.Fprintf(&builder, " %s", r)
	}
	return builder.String()
}

type Tag

type Tag struct {
	Name                        string
	Value                       bool // whether tag is enabled or disabled
	Last_modification_timestamp time.Time
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL