Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | plugins/base: add icons for attachments/re/fwd/starred | Simon Ser | 2020-02-05 | 1 | -7/+13 |
| | |||||
* | plugins/base/imap: disable full-text search for now | Simon Ser | 2020-02-05 | 1 | -2/+27 |
| | | | | | | It's too slow on servers where indexes aren't enabled. References: https://todo.sr.ht/~sircmpwn/koushin/23 | ||||
* | Update echo to 504f39abaf320 | Simon Ser | 2020-02-03 | 2 | -14/+16 |
| | | | | | | This fixes an OpenBSD issue. Closes: https://todo.sr.ht/~sircmpwn/koushin/50 | ||||
* | readme: add short description | Simon Ser | 2020-01-30 | 1 | -0/+2 |
| | | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/59 | ||||
* | plugins/base: add settings page | Simon Ser | 2020-01-28 | 5 | -7/+100 |
| | | | | | Add a settings page where the user can change the number of messages displayed per page. | ||||
* | koushin: add Store interface | Simon Ser | 2020-01-28 | 5 | -3/+161 |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/5 | ||||
* | koushin: rename Session.locker to imapLocker | Simon Ser | 2020-01-28 | 1 | -10/+10 |
| | |||||
* | plugins/base: support attachments in drafts | Simon Ser | 2020-01-28 | 4 | -6/+143 |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/16 | ||||
* | plugins/base: use BodyStructure.Walk instead of custom logic | Simon Ser | 2020-01-28 | 1 | -46/+20 |
| | |||||
* | Add .editorconfig | Simon Ser | 2020-01-24 | 6 | -152/+161 |
| | |||||
* | plugins/base: delete previous draft | Simon Ser | 2020-01-24 | 2 | -5/+34 |
| | |||||
* | plugins/base: edit drafts | Simon Ser | 2020-01-24 | 3 | -63/+145 |
| | | | | Note that attachments will be lost. This is a TODO. | ||||
* | plugins/base: add fallback if SPECIAL-USE is unsupported | Simon Ser | 2020-01-24 | 1 | -20/+36 |
| | |||||
* | plugins/base: save message as draft | Simon Ser | 2020-01-24 | 4 | -45/+98 |
| | |||||
* | Update docs with new RegisterPluginLoader function | Simon Ser | 2020-01-21 | 1 | -2/+2 |
| | |||||
* | readme: fix example usage | Simon Ser | 2020-01-21 | 1 | -1/+1 |
| | |||||
* | Use %q to quote values in format strings | Simon Ser | 2020-01-20 | 1 | -6/+6 |
| | |||||
* | Rename template.go to renderer.go | Simon Ser | 2020-01-20 | 1 | -0/+0 |
| | |||||
* | Extract Lua infrastructure into a plugin | Simon Ser | 2020-01-20 | 7 | -24/+32 |
| | |||||
* | Add Server.Logger | Simon Ser | 2020-01-20 | 1 | -0/+5 |
| | |||||
* | Introduce PluginLoaderFunc | Simon Ser | 2020-01-20 | 4 | -8/+26 |
| | | | | | | | 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 | ||||
* | go fmt | Simon Ser | 2020-01-20 | 1 | -39/+39 |
| | |||||
* | plugins/base: append outgoing messages to Sent mailbox | Simon Ser | 2020-01-20 | 4 | -4/+85 |
| | | | | | | And mark original message as answered. Closes: https://todo.sr.ht/~sircmpwn/koushin/15 | ||||
* | Check IMAP/SMTP servers on startup | Simon Ser | 2020-01-20 | 1 | -0/+12 |
| | | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/46 | ||||
* | plugins/base: remove external resources URLs, sanitize CSS | Simon Ser | 2020-01-20 | 4 | -9/+198 |
| | |||||
* | Disable DNS prefetching | Simon Ser | 2020-01-20 | 1 | -0/+2 |
| | |||||
* | Make the text/* part content a []byte | Simon Ser | 2020-01-20 | 2 | -6/+5 |
| | |||||
* | Extract HTML sanitizer to its own file | Simon Ser | 2020-01-20 | 2 | -7/+19 |
| | |||||
* | Add polyfill for browsers not supporting srcdoc | Simon Ser | 2020-01-20 | 2 | -1/+10 |
| | |||||
* | Open e-mail links in new tab | Simon Ser | 2020-01-20 | 2 | -1/+3 |
| | |||||
* | Resize e-mail iframe with content | Simon Ser | 2020-01-20 | 4 | -1/+14 |
| | |||||
* | Add support for HTML parts | Simon Ser | 2020-01-20 | 5 | -3/+27 |
| | |||||
* | Update dependencies | Simon Ser | 2020-01-20 | 2 | -26/+25 |
| | |||||
* | Fix dangling goroutine on session expiration | Simon Ser | 2020-01-20 | 1 | -3/+1 |
| | | | | | | | | 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. | ||||
* | go fmt | Simon Ser | 2020-01-20 | 3 | -3/+3 |
| | |||||
* | Auto-discover upstream SMTP and IMAP servers | Simon Ser | 2020-01-20 | 3 | -4/+90 |
| | | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/49 | ||||
* | Generalize upstream server URLs | Simon Ser | 2020-01-20 | 2 | -36/+89 |
| | | | | | | | | | koushin now takes a list of upstream URLs instead of an IMAP and SMTP URL. This allows to specify upstream server URLs for plugins. In the future, this will allow for auto-discovering upstream servers based on a single domain name. References: https://todo.sr.ht/~sircmpwn/koushin/49 | ||||
* | Hide echo banner | Reto Brunner | 2020-01-17 | 1 | -0/+1 |
| | |||||
* | Add current path to the global context | Dejan Strbac | 2020-01-16 | 1 | -0/+4 |
| | |||||
* | Include flags when fetching items over IMAP | Dejan Strbac | 2020-01-16 | 1 | -1/+1 |
| | |||||
* | Add Session.SetHTTPBasicAuth | Simon Ser | 2020-01-10 | 1 | -0/+8 |
| | | | | | This is not 100% idiot-proof, but still makes it mroe difficult for plugins to steal credentials. | ||||
* | Fix panic when injecting a template with nil data | Simon Ser | 2020-01-10 | 1 | -1/+12 |
| | |||||
* | Redirect to original URL after login | Simon Ser | 2020-01-10 | 2 | -7/+23 |
| | |||||
* | Close Lua plugins on reload | Simon Ser | 2020-01-10 | 1 | -2/+11 |
| | |||||
* | cmd/koushin: add -addr flag | Simon Ser | 2020-01-08 | 1 | -1/+3 |
| | |||||
* | readme: document hot reload | Simon Ser | 2020-01-08 | 1 | -0/+6 |
| | |||||
* | Implement plugin/template reload on SIGUSR1 | Simon Ser | 2020-01-08 | 3 | -39/+60 |
| | | | | | | | | There's no way around having a global mutex, because we need to update the HTTP routes when reloading plugins. During reload we need to lock the whole server. Closes: https://todo.sr.ht/~sircmpwn/koushin/43 | ||||
* | cmd/koushin: reload on SIGUSR1 | Simon Ser | 2020-01-08 | 1 | -1/+16 |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/43 | ||||
* | Add Server.Reload | Simon Ser | 2020-01-08 | 3 | -16/+36 |
| | | | | | This only reloads templates for now. In the future it'll also reload Lua plugins. | ||||
* | Make New return the Server | Simon Ser | 2020-01-08 | 2 | -6/+7 |
| | | | | This will be useful to implement hot reload. |