Subject: [sup-devel] Turn Turnsole into a generic mail client

From: Vivien Didelot <[email-masked]>
Date: Sun, 19 Jun 2011 16:44:09 -0400

Hi William and others,

As Turnsole is a great mail interface, I was thinking about having it
generic to multiple servers or mail sources, to fit many use cases.

Explicitely, the Turnsole::Client class (
https://github.com/wmorgan/turnsole/blob/master/lib/turnsole/client.rb)
could be turned into a Turnsole::Client module instead,
which implements the necessary abstract methods for the interface, and which
needs to be included in every client adapters (like DataMapper adapters are
working for instance).
Built-in Turnsole adapters would be in lib/turnsole/client/. That way, we
could easily implement Turnsole adapters for many sources, such as:
Heliotrope (for sure, the official adapter),
IMAP (direct connection),
Gmail (simpler adapter using the IMAP adapter),
Maildir/Mbox,
NotMuchMail (which is a great Sup-like email back-end),
upasfs,
etc.

The main reason why I'm posting that, is that I really like the Turnsole
ncurses based interface,
but sometimes I'd like to check emails directly from imap (when not on my
computer for instance).
I also know that NotMuch is missing a good ncurses-based client (that's why
I've Cc'd them).

What do you think? Is there limitations I didn't think about?

-- 
Vivien Didelot,
vivien.didelot.org
_______________________________________________
Sup-devel mailing list
[email-masked]
http://rubyforge.org/mailman/listinfo/sup-devel

---

From: William Morgan <[email-masked]>
Date: Tue, 21 Jun 2011 20:33:15 +0000

Reformatted excerpts from Vivien Didelot's message of 2011-06-21:
> I'm suggesting the make the Turnsole interface modulable to several
> mail sources.

Oh, I see. Yes, to the extent that you can mimic what's in
Turnsole::Client, it will be possible. But that class is a pretty thin
wrapper around the Heliotrope protocol, so mimicking it will feel a lot
like writing a Heliotrope compatibility layer.

I'm not personally interested in doing this, since Heliotrope is the One
True Mailstore as far as I'm concerned, but I'll try to be helpful if
you attempt it.
-- 
William <[email-masked]>
_______________________________________________
Sup-devel mailing list
[email-masked]
http://rubyforge.org/mailman/listinfo/sup-devel

---

From: Vivien Didelot <[email-masked]>
Date: Tue, 21 Jun 2011 13:16:45 -0400

Hi William,

I'm not suggesting to make Heliotrope supports several clients (what it
already does via  provinding JSON),
I'm suggesting the make the Turnsole interface modulable to several mail
sources.
And its default and official one will be the Heliotrope client for sure.

I hope it is clearer.

On Sun, Jun 19, 2011 at 6:01 PM, William Morgan <[email-masked]>wrote:

> Hi Vivien,
>
> Reformatted excerpts from Vivien Didelot's message of 2011-06-19:
> The server portion of turnsole, heliotrope, is explicitly designed to
> support multiple clients and provides a JSON-over-HTTP interface for
> that purpose.
>
> The specifics of the protocol are still subject to change, but see e.g.
> https://github.com/wmorgan/heliotrope/blob/master/lib/heliotrope-client.rb
> for the ruby client that turnsole uses to communicate with the server.
> --

---

From: William Morgan <[email-masked]>
Date: Sun, 19 Jun 2011 22:01:55 +0000

Hi Vivien,