Commit graph

349 commits

Author SHA1 Message Date
Simon Ser 76599232dc
Add a Lua API to set template filters 2019-12-09 17:54:24 +01:00
Simon Ser f42cb45457
Change Lua API to koushin.on_render 2019-12-09 17:25:02 +01:00
Simon Ser 9617b412e8
Make render data static
This makes sure fields filled by vanilla koushin keep the right type. A
new Extra field allows plugins to attach their own data.

This also makes it easier to write Go plugins, which would have trouble
working with interface{}.
2019-12-09 16:17:36 +01:00
Simon Ser 4f74722c14
Add basic support for plugins 2019-12-09 16:05:40 +01:00
Simon Ser a176409933
Drop define in templates
Just use the full filename instead, this is simpler and more explicit.
2019-12-09 15:00:01 +01:00
Simon Ser 61ffc105fd
Use imap.BodyStructure.Filename and imap.Address.Address
The former fixes encoding issues in filenames. The latter is just for
brevity.
2019-12-09 13:45:15 +01:00
Simon Ser d1d4380957
Extract HTTP handlers in separate file 2019-12-04 20:55:08 +01:00
Simon Ser 7c0b906092
Add .gitignore 2019-12-04 18:36:59 +01:00
Simon Ser e94b1311de
Add basic theme support
References: https://todo.sr.ht/~sircmpwn/koushin/1
2019-12-04 18:30:01 +01:00
Simon Ser 4ab5fb7f65
Make message view's Back link set the mailbox page
This allows to go back and forth between the mailbox view and the
message view.

References: https://todo.sr.ht/~sircmpwn/koushin/22
2019-12-03 20:06:43 +01:00
Simon Ser a2349050d0
Add separator between Prev and Next links 2019-12-03 19:51:44 +01:00
Simon Ser 8de93c50d2
Add basic pagination to message list
References: https://todo.sr.ht/~sircmpwn/koushin/22
2019-12-03 19:49:04 +01:00
Simon Ser 6344806755
Fix missing OutgoingMessage.InReplyTo assignment 2019-12-03 18:54:04 +01:00
Simon Ser e90d4579ae
Add basic support for multiple recipients 2019-12-03 18:46:18 +01:00
Simon Ser a103309935
Add support for replying to a message 2019-12-03 18:41:23 +01:00
Simon Ser b386d1c2bb
Fix mailbox view when empty
This fixes the second part of #14.

References: https://todo.sr.ht/~sircmpwn/koushin/14
2019-12-03 17:52:56 +01:00
Simon Ser b7be271560
Add empty CSS stylesheet
References: https://todo.sr.ht/~sircmpwn/koushin/19
2019-12-03 17:42:33 +01:00
Simon Ser c3fd390b1a
Set imap.CharsetReader
This adds support for additional charsets when parsing e.g. subject
lines.
2019-12-03 17:35:04 +01:00
Simon Ser a4729060be
Escape mailbox names in URLs
Closes: https://todo.sr.ht/~sircmpwn/koushin/14
2019-12-03 17:31:53 +01:00
Simon Ser 48d6d5d227
Add session lock
HTTP requests can be processed in parallel, but we only have one IMAP
connection per session.

Closes: https://todo.sr.ht/~sircmpwn/koushin/12
2019-12-03 17:18:17 +01:00
Simon Ser ec03c60dff
Import go-message charsets package
Enables support for non-UTF8 charsets.

Closes: https://todo.sr.ht/~sircmpwn/koushin/18
2019-12-03 17:03:57 +01:00
Simon Ser 36923a0dc2
Pre-fill composer with sender address 2019-12-03 16:46:03 +01:00
Simon Ser 89cebfd819
Add basic SMTP support 2019-12-03 16:27:49 +01:00
Simon Ser 702719c072
Save username/password in session
This is required for authenticating with the SMTP server when composing
a new message.
2019-12-03 15:44:24 +01:00
Simon Ser ae79f99876
Parse SMTP URL from CLI 2019-12-03 15:21:59 +01:00
Simon Ser 1194b98e54
Fix EOF on message view 2019-12-03 15:06:29 +01:00
Simon Ser 2d3cce64da
Fix format string 2019-12-03 14:48:43 +01:00
Simon Ser 96646c8324
Add context to errors 2019-12-03 14:48:11 +01:00
Simon Ser 9f6b086f62
Add compose view 2019-12-03 14:34:15 +01:00
Drew DeVault e62b48caa8 Correct license ownership 2019-12-03 07:48:25 -05:00
Simon Ser 4c52849539
Show last 50 messages in mailbox view 2019-12-03 13:25:35 +01:00
Simon Ser f4808eb4c5
Add logout route 2019-12-03 13:24:46 +01:00
Simon Ser 23e3e85251
Set HTTP error handler 2019-12-03 13:17:51 +01:00
Simon Ser be14524c33
Display & download any message part 2019-12-03 13:07:25 +01:00
Simon Ser 33b8679f1c
Extract string conversion functions 2019-12-03 11:54:43 +01:00
Simon Ser ed50cef3cf
Linkify message part tree 2019-12-03 11:36:53 +01:00
Simon Ser 4cbe2fde9d
go fmt 2019-12-03 11:12:26 +01:00
Simon Ser 61f2f3e139
Print body structure tree 2019-12-03 11:11:49 +01:00
Simon Ser 80eeaeeb1e
Add missing public/message.html 2019-12-02 19:55:52 +01:00
Simon Ser 25c63d0530
Add basic message view 2019-12-02 19:53:09 +01:00
Simon Ser fce17c9733
Linkify mailbox list 2019-12-02 18:29:06 +01:00
Simon Ser 39629b0740
Add basic message list 2019-12-02 18:21:45 +01:00
Simon Ser e9d31b0940
Extract IMAP functions into separate file 2019-12-02 17:58:19 +01:00
Simon Ser 594bb2ec19
Add synchronization to connection pool 2019-12-02 17:40:53 +01:00
Simon Ser 85f8530fd3
Evict connection pool entry on logout 2019-12-02 17:36:43 +01:00
Simon Ser c62703985e
readme: add IMAP URL to usage 2019-12-02 17:32:44 +01:00
Simon Ser 640bd49731
List mailboxes 2019-12-02 17:31:34 +01:00
Simon Ser 8b84d81f9b
Add initial login logic 2019-12-02 17:24:19 +01:00
Simon Ser a1a067e6de
Add HTTP server boilerplate 2019-12-02 15:31:00 +01:00