~sircmpwn/aerc

95875b13f829919b3453763628d1dda97371fab0 — Drew DeVault 2 years ago 27b2517
Rename FetchMessageBodies to FetchFullMessages
M commands/account/pipe.go => commands/account/pipe.go +1 -1
@@ 22,7 22,7 @@ func Pipe(aerc *widgets.Aerc, args []string) error {
	acct := aerc.SelectedAccount()
	store := acct.Messages().Store()
	msg := acct.Messages().Selected()
	store.FetchBodies([]uint32{msg.Uid}, func(reader io.Reader) {
	store.FetchFull([]uint32{msg.Uid}, func(reader io.Reader) {
		cmd := exec.Command(args[1], args[2:]...)
		pipe, err := cmd.StdinPipe()
		if err != nil {

M lib/msgstore.go => lib/msgstore.go +2 -2
@@ 66,7 66,7 @@ func (store *MessageStore) FetchHeaders(uids []uint32,
	}
}

func (store *MessageStore) FetchBodies(uids []uint32, cb func(io.Reader)) {
func (store *MessageStore) FetchFull(uids []uint32, cb func(io.Reader)) {
	// TODO: this could be optimized by pre-allocating toFetch and trimming it
	// at the end. In practice we expect to get most messages back in one frame.
	var toFetch imap.SeqSet


@@ 84,7 84,7 @@ func (store *MessageStore) FetchBodies(uids []uint32, cb func(io.Reader)) {
		}
	}
	if !toFetch.Empty() {
		store.worker.PostAction(&types.FetchMessageBodies{Uids: toFetch}, nil)
		store.worker.PostAction(&types.FetchFullMessages{Uids: toFetch}, nil)
	}
}


M worker/imap/fetch.go => worker/imap/fetch.go +10 -10
@@ 21,15 21,6 @@ func (imapw *IMAPWorker) handleFetchMessageHeaders(
	imapw.handleFetchMessages(msg, &msg.Uids, items)
}

func (imapw *IMAPWorker) handleFetchMessageBodies(
	msg *types.FetchMessageBodies) {

	imapw.worker.Logger.Printf("Fetching message bodies")
	section := &imap.BodySectionName{}
	items := []imap.FetchItem{section.FetchItem()}
	imapw.handleFetchMessages(msg, &msg.Uids, items)
}

func (imapw *IMAPWorker) handleFetchMessageBodyPart(
	msg *types.FetchMessageBodyPart) {



@@ 42,6 33,15 @@ func (imapw *IMAPWorker) handleFetchMessageBodyPart(
	imapw.handleFetchMessages(msg, &uids, items)
}

func (imapw *IMAPWorker) handleFetchFullMessages(
	msg *types.FetchFullMessages) {

	imapw.worker.Logger.Printf("Fetching full messages")
	section := &imap.BodySectionName{}
	items := []imap.FetchItem{section.FetchItem()}
	imapw.handleFetchMessages(msg, &msg.Uids, items)
}

func (imapw *IMAPWorker) handleFetchMessages(
	msg types.WorkerMessage, uids *imap.SeqSet, items []imap.FetchItem) {



@@ 64,7 64,7 @@ func (imapw *IMAPWorker) handleFetchMessages(
						InternalDate:  _msg.InternalDate,
						Uid:           _msg.Uid,
					}, nil)
				case *types.FetchMessageBodies:
				case *types.FetchFullMessages:
					reader := _msg.GetBody(section)
					imapw.worker.PostMessage(&types.MessageBody{
						Reader: reader,

M worker/imap/worker.go => worker/imap/worker.go +2 -2
@@ 158,10 158,10 @@ func (w *IMAPWorker) handleMessage(msg types.WorkerMessage) error {
		w.handleFetchDirectoryContents(msg)
	case *types.FetchMessageHeaders:
		w.handleFetchMessageHeaders(msg)
	case *types.FetchMessageBodies:
		w.handleFetchMessageBodies(msg)
	case *types.FetchMessageBodyPart:
		w.handleFetchMessageBodyPart(msg)
	case *types.FetchFullMessages:
		w.handleFetchFullMessages(msg)
	case *types.DeleteMessages:
		w.handleDeleteMessages(msg)
	default:

M worker/types/messages.go => worker/types/messages.go +2 -2
@@ 81,7 81,7 @@ type FetchMessageHeaders struct {
	Uids imap.SeqSet
}

type FetchMessageBodies struct {
type FetchFullMessages struct {
	Message
	Uids imap.SeqSet
}


@@ 134,7 134,7 @@ type MessageInfo struct {
	Uid           uint32
}

type MessageBody struct {
type FullMessage struct {
	Message
	Reader io.Reader
	Uid    uint32