Author: Adam Evyčędo <git@apiote.xyz>
fix mimir and hermodr
hermodr/hermodr.go | 2 +- himinbjorg/db.go | 4 ++-- idavollr/mailbox.go | 6 ++++++ mimir/mimir.go | 26 +++++++++++++++-----------
diff --git a/hermodr/hermodr.go b/hermodr/hermodr.go index a378e03f840efb566d330e304ff036f4921cbb3a..5b9164038abaa01f4b1a5804194f0c889585969e 100644 --- a/hermodr/hermodr.go +++ b/hermodr/hermodr.go @@ -171,7 +171,7 @@ mailbox.SetupChannels() r := gott.R[idavollr.AbstractMailbox]{ S: mailbox, }. - Bind(idavollr.Connect). + Bind(idavollr.ConnectInsecure). Tee(idavollr.Login). Bind(idavollr.SelectInbox). Tee(idavollr.CheckEmptyBox). diff --git a/himinbjorg/db.go b/himinbjorg/db.go index e1b05da04c649971f79b7edf2a61878469c42780..95c8ee9ec582448461259e760f5c2a8e364ea712 100644 --- a/himinbjorg/db.go +++ b/himinbjorg/db.go @@ -79,7 +79,7 @@ if err != nil && err.Error() != "table tyr_locks already exists" { return nil, err } - _, err = db.Exec(`create table mimir_archive(message_id text primary key, subject text, body text, date datetime, in_reply_to text, dkim_status bool, sender text, category text, root_id text, raw_message text, foreign key(in_reply_to) references mimir_archive(message_id))`) + _, err = db.Exec(`create table mimir_archive(message_id text primary key, subject text, body text, date datetime, in_reply_to text, dkim_status bool, sender text, category text, root_id text, foreign key(in_reply_to) references mimir_archive(message_id))`) if err != nil && err.Error() != "table mimir_archive already exists" { return nil, err } @@ -206,7 +206,7 @@ return err } } - _, err = db.Exec(`insert into mimir_archive values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, messageID, subject, body, date, inReplyTo, dkim, MakeNameAddress(sender, false), category, rootID, messageBytes) + _, err = db.Exec(`insert into mimir_archive values(?, ?, ?, ?, ?, ?, ?, ?, ?)`, messageID, subject, body, date, inReplyTo, dkim, MakeNameAddress(sender, false), category, rootID) return err } diff --git a/idavollr/mailbox.go b/idavollr/mailbox.go index adade67e4dfba65deeadc0444e208ca3ef479d5c..72d8715f40365c51d1163e5f093c149f18944411 100644 --- a/idavollr/mailbox.go +++ b/idavollr/mailbox.go @@ -105,6 +105,12 @@ m.SetClient(c) return m, err } +func ConnectInsecure(m AbstractMailbox) (AbstractMailbox, error) { + c, err := client.Dial(m.ImapAddress()) + m.SetClient(c) + return m, err +} + func Login(m AbstractMailbox) error { return m.Client().Login(m.ImapUsername(), m.ImapPassword()) } diff --git a/mimir/mimir.go b/mimir/mimir.go index 94cf421633f2d9670c18ca11c31b20bd988613a9..3848ffb56fa2401799048af62328590890aac74a 100644 --- a/mimir/mimir.go +++ b/mimir/mimir.go @@ -93,17 +93,21 @@ mboxName string } func Mimir(db *sql.DB, config jotunheim.Config) error { - r := gott.R[idavollr.AbstractMailbox]{ - S: &MimirMailbox{ - Mailbox: idavollr.Mailbox{ - MboxName: config.Mimir.ImapInbox, - ImapAdr: config.Mimir.ImapAddress, - ImapUser: config.Mimir.ImapUsername, - ImapPass: config.Mimir.ImapPassword, - Conf: config, - }, - db: db, + mailbox := &MimirMailbox{ + Mailbox: idavollr.Mailbox{ + MboxName: config.Mimir.ImapInbox, + ImapAdr: config.Mimir.ImapAddress, + ImapUser: config.Mimir.ImapUsername, + ImapPass: config.Mimir.ImapPassword, + Conf: config, }, + db: db, + } + + mailbox.SetupChannels() + r := gott.R[idavollr.AbstractMailbox]{ + S: mailbox, + LogLevel: gott.Info, }. Bind(getCategories). Bind(prepareCategoryRegexp). @@ -161,7 +165,7 @@ mboxName: m.MboxName, }, }. Bind(getMessageCategory). - Bind(idavollr.ReadBody). + Bind(idavollr.ReadMessageBody). Bind(verifyDkim). Bind(idavollr.ParseMimeMessage). Bind(idavollr.GetBody).