Simon Ser
e09a837569
docs: add a basic example Lua plugin
2020-02-11 17:56:15 +01:00
Simon Ser
0a56365672
docs/themes-and-plugins: extract from README
2020-02-11 17:42:10 +01:00
Simon Ser
02b59bc365
docs/cli: new page
2020-02-11 17:40:18 +01:00
Simon Ser
3c391fa81d
contrib: add hotreload script
2020-02-11 17:37:58 +01:00
Simon Ser
82304a78d6
plugins/caldav: add missing event.html template
2020-02-11 17:14:43 +01:00
Simon Ser
19548694e0
themes/sourcehut: sync with latest base plugin
2020-02-11 17:14:01 +01:00
Simon Ser
97eef13db4
Rename Session.connect to Session.connectIMAP
2020-02-10 17:21:34 +01:00
Simon Ser
9fe20a604c
plugins/caldav: add pagination to calendar view
2020-02-05 18:57:16 +01:00
Simon Ser
a1b43cc5a8
plugins/caldav: add basic event view
2020-02-05 18:39:53 +01:00
Simon Ser
5b78cdc104
plugins/caldav: new plugin
...
For now it can only list events for the current month.
References: https://todo.sr.ht/~sircmpwn/koushin/60
2020-02-05 18:14:26 +01:00
Simon Ser
1bd930f043
plugins/carddav: add basic contacts view
2020-02-05 14:58:56 +01:00
Simon Ser
3263a89185
plugins/carddav: accept "carddavs" and "carddav+insecure" URL schemes
2020-02-05 13:56:18 +01:00
Simon Ser
ad256906e0
plugins/carddav: sanity check URL on startup
2020-02-05 13:52:52 +01:00
Simon Ser
6a6ece03e4
plugins/carddav: new plugin
...
A new minimal CardDAV plugin is introduced. It injects a list of e-mail
addresses in the e-mail compose view.
References: https://todo.sr.ht/~sircmpwn/koushin/7
2020-02-05 12:21:54 +01:00
Simon Ser
6ea7cd9134
plugins/base: add icons for attachments/re/fwd/starred
2020-02-05 11:58:53 +01:00
Simon Ser
651872ef7d
plugins/base/imap: disable full-text search for now
...
It's too slow on servers where indexes aren't enabled.
References: https://todo.sr.ht/~sircmpwn/koushin/23
2020-02-05 11:37:01 +01:00
Simon Ser
f08ecb9cef
Update echo to 504f39abaf320
...
This fixes an OpenBSD issue.
Closes: https://todo.sr.ht/~sircmpwn/koushin/50
2020-02-03 19:35:14 +01:00
Simon Ser
6940a826b5
readme: add short description
...
Closes: https://todo.sr.ht/~sircmpwn/koushin/59
2020-01-30 11:20:56 +01:00
Simon Ser
4d68400036
plugins/base: add settings page
...
Add a settings page where the user can change the number of messages
displayed per page.
2020-01-28 20:04:33 +01:00
Simon Ser
bdf1a8b02b
koushin: add Store interface
...
References: https://todo.sr.ht/~sircmpwn/koushin/5
2020-01-28 20:04:18 +01:00
Simon Ser
c0b4998b38
koushin: rename Session.locker to imapLocker
2020-01-28 15:41:18 +01:00
Simon Ser
85c01b87a9
plugins/base: support attachments in drafts
...
References: https://todo.sr.ht/~sircmpwn/koushin/16
2020-01-28 12:30:07 +01:00
Simon Ser
50046b62ac
plugins/base: use BodyStructure.Walk instead of custom logic
2020-01-28 11:15:10 +01:00
Simon Ser
b325933a8b
Add .editorconfig
2020-01-24 20:59:35 +01:00
Simon Ser
3384c39a17
plugins/base: delete previous draft
2020-01-24 20:27:05 +01:00
Simon Ser
d31c56ec98
plugins/base: edit drafts
...
Note that attachments will be lost. This is a TODO.
2020-01-24 20:07:29 +01:00
Simon Ser
2e367efe58
plugins/base: add fallback if SPECIAL-USE is unsupported
2020-01-24 18:01:01 +01:00
Simon Ser
bfc617b702
plugins/base: save message as draft
2020-01-24 17:49:50 +01:00
Simon Ser
267999b6e5
Update docs with new RegisterPluginLoader function
2020-01-21 13:40:55 +01:00
Simon Ser
baae776247
readme: fix example usage
2020-01-21 13:38:47 +01:00
Simon Ser
3347e69480
Use %q to quote values in format strings
2020-01-20 22:06:47 +01:00
Simon Ser
9fdccc3a4b
Rename template.go to renderer.go
2020-01-20 22:05:42 +01:00
Simon Ser
b58c15d121
Extract Lua infrastructure into a plugin
2020-01-20 22:04:50 +01:00
Simon Ser
efa0816333
Add Server.Logger
2020-01-20 22:03:05 +01:00
Simon Ser
01983eb7b5
Introduce PluginLoaderFunc
...
This allows registered plugins to execute code when loaded. This will
also allow the Lua support code to be a plugin.
Closes: https://todo.sr.ht/~sircmpwn/koushin/54
2020-01-20 21:37:28 +01:00
Simon Ser
d19c17c6d5
go fmt
2020-01-20 20:27:49 +01:00
Simon Ser
589b303f9f
plugins/base: append outgoing messages to Sent mailbox
...
And mark original message as answered.
Closes: https://todo.sr.ht/~sircmpwn/koushin/15
2020-01-20 20:25:41 +01:00
Simon Ser
3340fcd63d
Check IMAP/SMTP servers on startup
...
Closes: https://todo.sr.ht/~sircmpwn/koushin/46
2020-01-20 18:46:50 +01:00
Simon Ser
3bf17752ab
plugins/base: remove external resources URLs, sanitize CSS
2020-01-20 18:28:49 +01:00
Simon Ser
b9a180b154
Disable DNS prefetching
2020-01-20 18:26:22 +01:00
Simon Ser
a66ef1059b
Make the text/* part content a []byte
2020-01-20 16:20:16 +01:00
Simon Ser
8d248bc32f
Extract HTML sanitizer to its own file
2020-01-20 16:20:16 +01:00
Simon Ser
d745f98bb7
Add polyfill for browsers not supporting srcdoc
2020-01-20 16:20:15 +01:00
Simon Ser
efaf6fd444
Open e-mail links in new tab
2020-01-20 16:20:15 +01:00
Simon Ser
721c3ce3eb
Resize e-mail iframe with content
2020-01-20 16:20:15 +01:00
Simon Ser
af5ffd12f9
Add support for HTML parts
2020-01-20 16:20:15 +01:00
Simon Ser
577685ca14
Update dependencies
2020-01-20 15:41:37 +01:00
Simon Ser
e6e457e4a7
Fix dangling goroutine on session expiration
...
The timer channel may already have been drained by `case <-timer.C`. In
this case, we need not to drain it again or we'll block forever.
To fix this, stop draining the timer channel. Since we're not going to
use the timer again anyway, it should be fine.
2020-01-20 15:25:46 +01:00
Simon Ser
8b10324ab6
go fmt
2020-01-20 13:22:18 +01:00
Simon Ser
a0800c2436
Auto-discover upstream SMTP and IMAP servers
...
Closes: https://todo.sr.ht/~sircmpwn/koushin/49
2020-01-20 13:08:05 +01:00