Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Export Context.SetSession, unexport Session.Token | Simon Ser | 2019-12-11 | 3 | -10/+10 | |
| | | | | | | | I'm uneasy exposing the token to plugins, I prefer to hide it if possible to prevent mis-use. This change allows plugins to logout users. | |||||
* | Export Context | Simon Ser | 2019-12-11 | 3 | -29/+34 | |
| | | | | This allows plugins to access it. | |||||
* | Add plugins/ to .gitignore | Simon Ser | 2019-12-10 | 1 | -0/+1 | |
| | ||||||
* | go fmt | Simon Ser | 2019-12-10 | 3 | -17/+17 | |
| | ||||||
* | Introduce GlobalRenderData and RenderData | Simon Ser | 2019-12-10 | 2 | -7/+40 | |
| | | | | | | | | GlobalRenderData contains some global metadata that can be obtained from any template. RenderData is a base type for template data. It contains a Global field with global metadata and an Extra field for plugins. | |||||
* | Load all themes on startup | Simon Ser | 2019-12-10 | 1 | -13/+54 | |
| | | | | This is the first step to allow each user to have a different theme. | |||||
* | readme: add link to mailing list & issue tracker | Simon Ser | 2019-12-10 | 1 | -0/+5 | |
| | ||||||
* | Rename Plugin.Render to Plugin.Inject | Simon Ser | 2019-12-10 | 3 | -3/+3 | |
| | | | | | This function doesn't render anything, it just adds extra data to the template data. | |||||
* | Extract Lua plugin logic into separate file | Simon Ser | 2019-12-10 | 2 | -151/+158 | |
| | ||||||
* | Allow plugins to add new routes | Simon Ser | 2019-12-10 | 3 | -0/+40 | |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/6 | |||||
* | Reconnect to IMAP server when logged out | Simon Ser | 2019-12-09 | 3 | -20/+90 | |
| | | | | | | | | | | | | | | | The session manager has been upgraded to deal with reconnections. Each session has its own expiration timer. Each time a request is received, the expiration timer is reset. A session can be closed (this is used when the user wants to logout). When the IMAP connection is closed by the server, it's set to nil in the session. The next time an IMAP command needs to be issued, the connection is re-established. Closes: https://todo.sr.ht/~sircmpwn/koushin/30 | |||||
* | Make SessionManager create the IMAP client | Simon Ser | 2019-12-09 | 4 | -23/+46 | |
| | | | | | This will allow SessionManager to re-connect when the IMAP server logs the user out. | |||||
* | Rename ConnPool to SessionManager | Simon Ser | 2019-12-09 | 3 | -20/+20 | |
| | ||||||
* | readme: sync with new Lua API | Simon Ser | 2019-12-09 | 1 | -2/+5 | |
| | ||||||
* | Add a Lua API to set template filters | Simon Ser | 2019-12-09 | 3 | -10/+49 | |
| | ||||||
* | Change Lua API to koushin.on_render | Simon Ser | 2019-12-09 | 1 | -7/+27 | |
| | ||||||
* | Make render data static | Simon Ser | 2019-12-09 | 1 | -14/+39 | |
| | | | | | | | | 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{}. | |||||
* | Add basic support for plugins | Simon Ser | 2019-12-09 | 6 | -1/+115 | |
| | ||||||
* | Drop define in templates | Simon Ser | 2019-12-09 | 6 | -12/+8 | |
| | | | | Just use the full filename instead, this is simpler and more explicit. | |||||
* | Use imap.BodyStructure.Filename and imap.Address.Address | Simon Ser | 2019-12-09 | 4 | -6/+5 | |
| | | | | | The former fixes encoding issues in filenames. The latter is just for brevity. | |||||
* | Extract HTTP handlers in separate file | Simon Ser | 2019-12-04 | 2 | -263/+277 | |
| | ||||||
* | Add .gitignore | Simon Ser | 2019-12-04 | 1 | -0/+2 | |
| | ||||||
* | Add basic theme support | Simon Ser | 2019-12-04 | 5 | -25/+75 | |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/1 | |||||
* | Make message view's Back link set the mailbox page | Simon Ser | 2019-12-03 | 3 | -6/+9 | |
| | | | | | | | This allows to go back and forth between the mailbox view and the message view. References: https://todo.sr.ht/~sircmpwn/koushin/22 | |||||
* | Add separator between Prev and Next links | Simon Ser | 2019-12-03 | 1 | -0/+1 | |
| | ||||||
* | Add basic pagination to message list | Simon Ser | 2019-12-03 | 7 | -20/+60 | |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/22 | |||||
* | Fix missing OutgoingMessage.InReplyTo assignment | Simon Ser | 2019-12-03 | 1 | -9/+5 | |
| | ||||||
* | Add basic support for multiple recipients | Simon Ser | 2019-12-03 | 2 | -3/+10 | |
| | ||||||
* | Add support for replying to a message | Simon Ser | 2019-12-03 | 5 | -12/+103 | |
| | ||||||
* | Fix mailbox view when empty | Simon Ser | 2019-12-03 | 2 | -9/+15 | |
| | | | | | | This fixes the second part of #14. References: https://todo.sr.ht/~sircmpwn/koushin/14 | |||||
* | Add empty CSS stylesheet | Simon Ser | 2019-12-03 | 3 | -1/+3 | |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/19 | |||||
* | Set imap.CharsetReader | Simon Ser | 2019-12-03 | 1 | -1/+5 | |
| | | | | | This adds support for additional charsets when parsing e.g. subject lines. | |||||
* | Escape mailbox names in URLs | Simon Ser | 2019-12-03 | 4 | -5/+17 | |
| | | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/14 | |||||
* | Add session lock | Simon Ser | 2019-12-03 | 3 | -16/+45 | |
| | | | | | | | HTTP requests can be processed in parallel, but we only have one IMAP connection per session. Closes: https://todo.sr.ht/~sircmpwn/koushin/12 | |||||
* | Import go-message charsets package | Simon Ser | 2019-12-03 | 1 | -0/+1 | |
| | | | | | | Enables support for non-UTF8 charsets. Closes: https://todo.sr.ht/~sircmpwn/koushin/18 | |||||
* | Pre-fill composer with sender address | Simon Ser | 2019-12-03 | 3 | -22/+30 | |
| | ||||||
* | Add basic SMTP support | Simon Ser | 2019-12-03 | 5 | -7/+196 | |
| | ||||||
* | Save username/password in session | Simon Ser | 2019-12-03 | 2 | -13/+26 | |
| | | | | | This is required for authenticating with the SMTP server when composing a new message. | |||||
* | Parse SMTP URL from CLI | Simon Ser | 2019-12-03 | 3 | -11/+57 | |
| | ||||||
* | Fix EOF on message view | Simon Ser | 2019-12-03 | 1 | -2/+10 | |
| | ||||||
* | Fix format string | Simon Ser | 2019-12-03 | 1 | -1/+1 | |
| | ||||||
* | Add context to errors | Simon Ser | 2019-12-03 | 2 | -14/+14 | |
| | ||||||
* | Add compose view | Simon Ser | 2019-12-03 | 4 | -2/+38 | |
| | ||||||
* | Correct license ownership | Drew DeVault | 2019-12-03 | 1 | -1/+1 | |
| | ||||||
* | Show last 50 messages in mailbox view | Simon Ser | 2019-12-03 | 1 | -1/+1 | |
| | ||||||
* | Add logout route | Simon Ser | 2019-12-03 | 2 | -0/+11 | |
| | ||||||
* | Set HTTP error handler | Simon Ser | 2019-12-03 | 1 | -0/+11 | |
| | ||||||
* | Display & download any message part | Simon Ser | 2019-12-03 | 5 | -55/+142 | |
| | ||||||
* | Extract string conversion functions | Simon Ser | 2019-12-03 | 3 | -32/+37 | |
| | ||||||
* | Linkify message part tree | Simon Ser | 2019-12-03 | 2 | -8/+52 | |
| |