asgard.git

commit c12bcc379003bdadbdd07bc5322f7a579a6d4d6c

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).