From 168cce8a935de864eef95f423f128a7bf49aafda Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Sun, 3 May 2020 00:41:36 +0200 Subject: Update support for IMAP --- internal/msg/msg.go | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 internal/msg/msg.go (limited to 'internal/msg/msg.go') diff --git a/internal/msg/msg.go b/internal/msg/msg.go new file mode 100644 index 0000000..c71ddaf --- /dev/null +++ b/internal/msg/msg.go @@ -0,0 +1,64 @@ +package msg + +import ( + "fmt" + + "github.com/Necoro/feed2imap-go/internal/imap" + "github.com/Necoro/feed2imap-go/pkg/log" +) + +// headers +const ( + VersionHeader = "X-Feed2Imap-Version" + ReasonHeader = "X-Feed2Imap-Reason" + IdHeader = "X-Feed2Imap-Item" +) + +type Messages []Message + +type Message struct { + Content string + IsUpdate bool + ID string +} + +func (m Messages) Upload(client *imap.Client, folder imap.Folder, reupload bool) error { + toStore := make([]string, 0, len(m)) + + msgs := make(chan Message, 5) + ok := make(chan bool) + go func() { + errHappened := false + for msg := range msgs { + if err := client.Replace(folder, IdHeader, msg.ID, msg.Content, reupload); err != nil { + log.Errorf("Error while updating mail with id '%s' in folder '%s'. Skipping.: %s", + msg.ID, folder, err) + errHappened = true + } + } + + ok <- errHappened + }() + + for _, msg := range m { + if !msg.IsUpdate { + toStore = append(toStore, msg.Content) + } else { + msgs <- msg + } + } + + close(msgs) + + putErr := client.PutMessages(folder, toStore) + updOk := <-ok + + if putErr != nil { + return putErr + } + if updOk { + return fmt.Errorf("Errors during updating mails.") + } + + return nil +} -- cgit v1.2.3-54-g00ecf low=1'>diff
path: root/portato/dependency.py (unfollow)
Commit message (Expand)AuthorFilesLines
2008-03-26Disabled find_version plugin until it works when started as rootRené 'Necoro' Neumann2-2/+8
2008-03-26Added menu entry for new-version-finder; made the plugin a daemonRené 'Necoro' Neumann2-1/+7
2008-03-26Fixed after_startup hookRené 'Necoro' Neumann1-2/+1
2008-03-26Fixed after_startup hookRené 'Necoro' Neumann1-1/+3
2008-03-26Added find_version pluginRené 'Necoro' Neumann3-0/+43
2008-03-25Removed just another expanding bugRené 'Necoro' Neumann1-121/+121
2008-03-25Really remove text under buttonsRené 'Necoro' Neumann1-119/+120
2008-03-25Removed GTK section in configRené 'Necoro' Neumann3-13/+8
2008-03-25Added hpaned between category and packageRené 'Necoro' Neumann3-128/+138
2008-03-25Added option to disable console title updateRené 'Necoro' Neumann4-99/+117
2008-03-25New package header layoutRené 'Necoro' Neumann1-122/+128
2008-03-25Updated translationRené 'Necoro' Neumann2-789/+777
2008-03-25Changed from svn to bzr in TRANSLATINGRené 'Necoro' Neumann1-1/+1
2008-03-24Removed the nasty 'expand' bugRené 'Necoro' Neumann1-98/+98
2008-03-24Removed button labels in the package notebookRené 'Necoro' Neumann1-102/+96
2008-03-19install dbus_init pluginRené 'Necoro' Neumann1-1/+1
2008-03-19Init dbus threads using a pluginRené 'Necoro' Neumann3-1/+20
2008-03-19Make logger thread-safeRené 'Necoro' Neumann1-3/+6
2008-03-18Fixed new_use_flag creation errorRené 'Necoro' Neumann1-3/+3
2008-03-18keep i18n up2dateRené 'Necoro' Neumann3-326/+366
2008-03-18corrected header commentRené 'Necoro' Neumann1-2/+2
2008-03-18Removed gtk subdirRené 'Necoro' Neumann21-134/+79
2008-03-18Removed wrapperRené 'Necoro' Neumann2-238/+184
2008-03-18Split and renamed gui_helperRené 'Necoro' Neumann4-249/+266
2008-03-18Splitted windows.pyRené 'Necoro' Neumann10-424/+549
2008-03-12Moved get_dependencies to top package classRené 'Necoro' Neumann4-50/+85
2008-03-11improved performance by caching the use_expand queriesRené 'Necoro' Neumann1-5/+14
2008-03-11use catapult varsRené 'Necoro' Neumann2-4/+6
2008-03-11Updated catapult stuffRené 'Necoro' Neumann5-56/+108
2008-03-10Generate correct KeyNotFoundExceptionRené 'Necoro' Neumann1-2/+2
2008-03-09Small changesRené 'Necoro' Neumann3-1/+4
2008-03-07Better session handlingRené 'Necoro' Neumann1-5/+54
2008-03-07Small changesRené 'Necoro' Neumann1-1/+4
2008-03-07Updated shm module to 1.2René 'Necoro' Neumann1-8/+21
2008-03-07Update TODORené 'Necoro' Neumann1-3/+1
2008-03-07hmm ... yesRené 'Necoro' Neumann1-1/+1
2008-03-06Used better exceptions for configuration parserRené 'Necoro' Neumann1-26/+114
2008-03-06Update translationRené 'Necoro' Neumann2-349/+393
2008-03-06Update createpot.shRené 'Necoro' Neumann1-3/+2
2008-03-06Use 'nofork' instead of 'nolistener'René 'Necoro' Neumann1-3/+3
2008-03-05Install glade files into template dir and not data dirRené 'Necoro' Neumann2-2/+1
2008-03-05Added dependency listRené 'Necoro' Neumann3-117/+237