aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2020-05-13 14:07:44 +0200
committerSimon Ser <contact@emersion.fr>2020-05-13 14:07:44 +0200
commitb891a95fcf4a3d4b64100911dae49fb28904a7fd (patch)
treefe07b29d6f2443047b7f740c79d86b3c499cc9e9 /plugins
parent4cf5ad68afd80f27512c464843b0d917182ef0c2 (diff)
downloadalps-b891a95fcf4a3d4b64100911dae49fb28904a7fd.tar.gz
alps-b891a95fcf4a3d4b64100911dae49fb28904a7fd.zip
Rename project to alps
Diffstat (limited to 'plugins')
-rwxr-xr-xplugins/base/imap.go2
-rw-r--r--plugins/base/plugin.go8
-rw-r--r--plugins/base/public/compose.html2
-rw-r--r--plugins/base/public/head.html2
-rw-r--r--plugins/base/public/login.html2
-rw-r--r--plugins/base/public/mailbox.html2
-rw-r--r--plugins/base/public/message.html2
-rw-r--r--plugins/base/public/settings.html2
-rw-r--r--plugins/base/routes.go68
-rw-r--r--plugins/base/smtp.go2
-rw-r--r--plugins/base/strconv.go2
-rw-r--r--plugins/base/template.go2
-rw-r--r--plugins/base/viewer.go8
-rw-r--r--plugins/caldav/caldav.go10
-rw-r--r--plugins/caldav/plugin.go14
-rw-r--r--plugins/caldav/public/calendar.html2
-rw-r--r--plugins/caldav/public/event.html2
-rw-r--r--plugins/caldav/routes.go18
-rw-r--r--plugins/carddav/carddav.go8
-rw-r--r--plugins/carddav/plugin.go26
-rw-r--r--plugins/carddav/public/address-book.html2
-rw-r--r--plugins/carddav/public/address-object.html2
-rw-r--r--plugins/carddav/public/update-address-object.html2
-rw-r--r--plugins/carddav/routes.go22
-rw-r--r--plugins/lua/lua.go18
-rw-r--r--plugins/lua/plugin.go6
-rw-r--r--plugins/viewhtml/plugin.go16
-rw-r--r--plugins/viewhtml/sanitize.go6
-rw-r--r--plugins/viewhtml/viewer.go12
-rw-r--r--plugins/viewtext/plugin.go8
-rw-r--r--plugins/viewtext/viewer.go12
31 files changed, 145 insertions, 145 deletions
diff --git a/plugins/base/imap.go b/plugins/base/imap.go
index 14409eb..cf028da 100755
--- a/plugins/base/imap.go
+++ b/plugins/base/imap.go
@@ -1,4 +1,4 @@
-package koushinbase
+package alpsbase
import (
"bufio"
diff --git a/plugins/base/plugin.go b/plugins/base/plugin.go
index 5743977..0e39b85 100644
--- a/plugins/base/plugin.go
+++ b/plugins/base/plugin.go
@@ -1,14 +1,14 @@
-package koushinbase
+package alpsbase
import (
- "git.sr.ht/~emersion/koushin"
+ "git.sr.ht/~emersion/alps"
)
func init() {
- p := koushin.GoPlugin{Name: "base"}
+ p := alps.GoPlugin{Name: "base"}
p.TemplateFuncs(templateFuncs)
registerRoutes(&p)
- koushin.RegisterPluginLoader(p.Loader())
+ alps.RegisterPluginLoader(p.Loader())
}
diff --git a/plugins/base/public/compose.html b/plugins/base/public/compose.html
index dd3c7aa..2deb24a 100644
--- a/plugins/base/public/compose.html
+++ b/plugins/base/public/compose.html
@@ -1,6 +1,6 @@
{{template "head.html"}}
-<h1>koushin</h1>
+<h1>alps</h1>
<p>
<a href="/mailbox/INBOX">Back</a>
diff --git a/plugins/base/public/head.html b/plugins/base/public/head.html
index bb47cfc..0bcaa9c 100644
--- a/plugins/base/public/head.html
+++ b/plugins/base/public/head.html
@@ -2,6 +2,6 @@
<html lang="en">
<head>
<meta charset="utf-8">
- <title>koushin</title>
+ <title>alps</title>
</head>
<body>
diff --git a/plugins/base/public/login.html b/plugins/base/public/login.html
index 94f1b23..0391ed1 100644
--- a/plugins/base/public/login.html
+++ b/plugins/base/public/login.html
@@ -1,6 +1,6 @@
{{template "head.html"}}
-<h1>koushin</h1>
+<h1>alps</h1>
<form method="post" action="">
<label for="username">Username:</label>
diff --git a/plugins/base/public/mailbox.html b/plugins/base/public/mailbox.html
index 2ef640a..1e376ba 100644
--- a/plugins/base/public/mailbox.html
+++ b/plugins/base/public/mailbox.html
@@ -1,6 +1,6 @@
{{template "head.html"}}
-<h1>koushin</h1>
+<h1>alps</h1>
<p>
<a href="/logout">Logout</a>
diff --git a/plugins/base/public/message.html b/plugins/base/public/message.html
index ed2b1a2..4d5edfa 100644
--- a/plugins/base/public/message.html
+++ b/plugins/base/public/message.html
@@ -1,6 +1,6 @@
{{template "head.html"}}
-<h1>koushin</h1>
+<h1>alps</h1>
<p>
<a href="/mailbox/{{.Mailbox.Name | pathescape}}?page={{.MailboxPage}}">
diff --git a/plugins/base/public/settings.html b/plugins/base/public/settings.html
index c0d715c..6a7f8ba 100644
--- a/plugins/base/public/settings.html
+++ b/plugins/base/public/settings.html
@@ -1,6 +1,6 @@
{{template "head.html"}}
-<h1>koushin</h1>
+<h1>alps</h1>
<p>
<a href="/mailbox/INBOX">Back</a>
diff --git a/plugins/base/routes.go b/plugins/base/routes.go
index e75573f..70764e6 100644
--- a/plugins/base/routes.go
+++ b/plugins/base/routes.go
@@ -1,4 +1,4 @@
-package koushinbase
+package alpsbase
import (
"bytes"
@@ -11,7 +11,7 @@ import (
"strconv"
"strings"
- "git.sr.ht/~emersion/koushin"
+ "git.sr.ht/~emersion/alps"
"github.com/emersion/go-imap"
imapmove "github.com/emersion/go-imap-move"
imapclient "github.com/emersion/go-imap/client"
@@ -21,18 +21,18 @@ import (
"github.com/labstack/echo/v4"
)
-func registerRoutes(p *koushin.GoPlugin) {
- p.GET("/", func(ctx *koushin.Context) error {
+func registerRoutes(p *alps.GoPlugin) {
+ p.GET("/", func(ctx *alps.Context) error {
return ctx.Redirect(http.StatusFound, "/mailbox/INBOX")
})
p.GET("/mailbox/:mbox", handleGetMailbox)
p.POST("/mailbox/:mbox", handleGetMailbox)
- p.GET("/message/:mbox/:uid", func(ctx *koushin.Context) error {
+ p.GET("/message/:mbox/:uid", func(ctx *alps.Context) error {
return handleGetPart(ctx, false)
})
- p.GET("/message/:mbox/:uid/raw", func(ctx *koushin.Context) error {
+ p.GET("/message/:mbox/:uid/raw", func(ctx *alps.Context) error {
return handleGetPart(ctx, true)
})
@@ -64,7 +64,7 @@ func registerRoutes(p *koushin.GoPlugin) {
}
type MailboxRenderData struct {
- koushin.BaseRenderData
+ alps.BaseRenderData
Mailbox *MailboxStatus
Mailboxes []MailboxInfo
Messages []IMAPMessage
@@ -72,7 +72,7 @@ type MailboxRenderData struct {
Query string
}
-func handleGetMailbox(ctx *koushin.Context) error {
+func handleGetMailbox(ctx *alps.Context) error {
mboxName, err := url.PathUnescape(ctx.Param("mbox"))
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, err)
@@ -136,7 +136,7 @@ func handleGetMailbox(ctx *koushin.Context) error {
}
return ctx.Render(http.StatusOK, "mailbox.html", &MailboxRenderData{
- BaseRenderData: *koushin.NewBaseRenderData(ctx),
+ BaseRenderData: *alps.NewBaseRenderData(ctx),
Mailbox: mbox,
Mailboxes: mailboxes,
Messages: msgs,
@@ -146,13 +146,13 @@ func handleGetMailbox(ctx *koushin.Context) error {
})
}
-func handleLogin(ctx *koushin.Context) error {
+func handleLogin(ctx *alps.Context) error {
username := ctx.FormValue("username")
password := ctx.FormValue("password")
if username != "" && password != "" {
s, err := ctx.Server.Sessions.Put(username, password)
if err != nil {
- if _, ok := err.(koushin.AuthError); ok {
+ if _, ok := err.(alps.AuthError); ok {
return ctx.Render(http.StatusOK, "login.html", nil)
}
return fmt.Errorf("failed to put connection in pool: %v", err)
@@ -165,17 +165,17 @@ func handleLogin(ctx *koushin.Context) error {
return ctx.Redirect(http.StatusFound, "/mailbox/INBOX")
}
- return ctx.Render(http.StatusOK, "login.html", koushin.NewBaseRenderData(ctx))
+ return ctx.Render(http.StatusOK, "login.html", alps.NewBaseRenderData(ctx))
}
-func handleLogout(ctx *koushin.Context) error {
+func handleLogout(ctx *alps.Context) error {
ctx.Session.Close()
ctx.SetSession(nil)
return ctx.Redirect(http.StatusFound, "/login")
}
type MessageRenderData struct {
- koushin.BaseRenderData
+ alps.BaseRenderData
Mailboxes []MailboxInfo
Mailbox *MailboxStatus
Message *IMAPMessage
@@ -185,7 +185,7 @@ type MessageRenderData struct {
Flags map[string]bool
}
-func handleGetPart(ctx *koushin.Context, raw bool) error {
+func handleGetPart(ctx *alps.Context, raw bool) error {
mboxName, uid, err := parseMboxAndUid(ctx.Param("mbox"), ctx.Param("uid"))
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, err)
@@ -271,7 +271,7 @@ func handleGetPart(ctx *koushin.Context, raw bool) error {
}
return ctx.Render(http.StatusOK, "message.html", &MessageRenderData{
- BaseRenderData: *koushin.NewBaseRenderData(ctx),
+ BaseRenderData: *alps.NewBaseRenderData(ctx),
Mailboxes: mailboxes,
Mailbox: mbox,
Message: msg,
@@ -283,7 +283,7 @@ func handleGetPart(ctx *koushin.Context, raw bool) error {
}
type ComposeRenderData struct {
- koushin.BaseRenderData
+ alps.BaseRenderData
Message *OutgoingMessage
}
@@ -300,12 +300,12 @@ type composeOptions struct {
// Send message, append it to the Sent mailbox, mark the original message as
// answered
-func submitCompose(ctx *koushin.Context, msg *OutgoingMessage, options *composeOptions) error {
+func submitCompose(ctx *alps.Context, msg *OutgoingMessage, options *composeOptions) error {
err := ctx.Session.DoSMTP(func(c *smtp.Client) error {
return sendMessage(c, msg)
})
if err != nil {
- if _, ok := err.(koushin.AuthError); ok {
+ if _, ok := err.(alps.AuthError); ok {
return echo.NewHTTPError(http.StatusForbidden, err)
}
return fmt.Errorf("failed to send message: %v", err)
@@ -338,7 +338,7 @@ func submitCompose(ctx *koushin.Context, msg *OutgoingMessage, options *composeO
return ctx.Redirect(http.StatusFound, "/mailbox/INBOX")
}
-func handleCompose(ctx *koushin.Context, msg *OutgoingMessage, options *composeOptions) error {
+func handleCompose(ctx *alps.Context, msg *OutgoingMessage, options *composeOptions) error {
if msg.From == "" && strings.ContainsRune(ctx.Session.Username(), '@') {
msg.From = ctx.Session.Username()
}
@@ -438,12 +438,12 @@ func handleCompose(ctx *koushin.Context, msg *OutgoingMessage, options *composeO
}
return ctx.Render(http.StatusOK, "compose.html", &ComposeRenderData{
- BaseRenderData: *koushin.NewBaseRenderData(ctx),
+ BaseRenderData: *alps.NewBaseRenderData(ctx),
Message: msg,
})
}
-func handleComposeNew(ctx *koushin.Context) error {
+func handleComposeNew(ctx *alps.Context) error {
// These are common mailto URL query parameters
// TODO: cc, bcc
return handleCompose(ctx, &OutgoingMessage{
@@ -462,7 +462,7 @@ func unwrapIMAPAddressList(addrs []*imap.Address) []string {
return l
}
-func handleReply(ctx *koushin.Context) error {
+func handleReply(ctx *alps.Context) error {
var inReplyToPath messagePath
var err error
inReplyToPath.Mailbox, inReplyToPath.Uid, err = parseMboxAndUid(ctx.Param("mbox"), ctx.Param("uid"))
@@ -521,7 +521,7 @@ func handleReply(ctx *koushin.Context) error {
return handleCompose(ctx, &msg, &composeOptions{InReplyTo: &inReplyToPath})
}
-func handleForward(ctx *koushin.Context) error {
+func handleForward(ctx *alps.Context) error {
var sourcePath messagePath
var err error
sourcePath.Mailbox, sourcePath.Uid, err = parseMboxAndUid(ctx.Param("mbox"), ctx.Param("uid"))
@@ -585,7 +585,7 @@ func handleForward(ctx *koushin.Context) error {
return handleCompose(ctx, &msg, &composeOptions{Forward: &sourcePath})
}
-func handleEdit(ctx *koushin.Context) error {
+func handleEdit(ctx *alps.Context) error {
var sourcePath messagePath
var err error
sourcePath.Mailbox, sourcePath.Uid, err = parseMboxAndUid(ctx.Param("mbox"), ctx.Param("uid"))
@@ -653,14 +653,14 @@ func handleEdit(ctx *koushin.Context) error {
return handleCompose(ctx, &msg, &composeOptions{Draft: &sourcePath})
}
-func formOrQueryParam(ctx *koushin.Context, k string) string {
+func formOrQueryParam(ctx *alps.Context, k string) string {
if v := ctx.FormValue(k); v != "" {
return v
}
return ctx.QueryParam(k)
}
-func handleMove(ctx *koushin.Context) error {
+func handleMove(ctx *alps.Context) error {
mboxName, err := url.PathUnescape(ctx.Param("mbox"))
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, err)
@@ -706,7 +706,7 @@ func handleMove(ctx *koushin.Context) error {
return ctx.Redirect(http.StatusFound, fmt.Sprintf("/mailbox/%v", url.PathEscape(to)))
}
-func handleDelete(ctx *koushin.Context) error {
+func handleDelete(ctx *alps.Context) error {
mboxName, err := url.PathUnescape(ctx.Param("mbox"))
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, err)
@@ -757,7 +757,7 @@ func handleDelete(ctx *koushin.Context) error {
return ctx.Redirect(http.StatusFound, fmt.Sprintf("/mailbox/%v", url.PathEscape(mboxName)))
}
-func handleSetFlags(ctx *koushin.Context) error {
+func handleSetFlags(ctx *alps.Context) error {
mboxName, err := url.PathUnescape(ctx.Param("mbox"))
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, err)
@@ -840,11 +840,11 @@ type Settings struct {
MessagesPerPage int
}
-func loadSettings(s koushin.Store) (*Settings, error) {
+func loadSettings(s alps.Store) (*Settings, error) {
settings := &Settings{
MessagesPerPage: 50,
}
- if err := s.Get(settingsKey, settings); err != nil && err != koushin.ErrNoStoreEntry {
+ if err := s.Get(settingsKey, settings); err != nil && err != alps.ErrNoStoreEntry {
return nil, err
}
if err := settings.check(); err != nil {
@@ -861,11 +861,11 @@ func (s *Settings) check() error {
}
type SettingsRenderData struct {
- koushin.BaseRenderData
+ alps.BaseRenderData
Settings *Settings
}
-func handleSettings(ctx *koushin.Context) error {
+func handleSettings(ctx *alps.Context) error {
settings, err := loadSettings(ctx.Session.Store())
if err != nil {
return fmt.Errorf("failed to load settings: %v", err)
@@ -888,7 +888,7 @@ func handleSettings(ctx *koushin.Context) error {
}
return ctx.Render(http.StatusOK, "settings.html", &SettingsRenderData{
- BaseRenderData: *koushin.NewBaseRenderData(ctx),
+ BaseRenderData: *alps.NewBaseRenderData(ctx),
Settings: settings,
})
}
diff --git a/plugins/base/smtp.go b/plugins/base/smtp.go
index 489a6a1..19c9e0b 100644
--- a/plugins/base/smtp.go
+++ b/plugins/base/smtp.go
@@ -1,4 +1,4 @@
-package koushinbase
+package alpsbase
import (
"bufio"
diff --git a/plugins/base/strconv.go b/plugins/base/strconv.go
index 9efa4cd..b423f13 100644
--- a/plugins/base/strconv.go
+++ b/plugins/base/strconv.go
@@ -1,4 +1,4 @@
-package koushinbase
+package alpsbase
import (
"fmt"
diff --git a/plugins/base/template.go b/plugins/base/template.go
index d867ff3..482674a 100644
--- a/plugins/base/template.go
+++ b/plugins/base/template.go
@@ -1,4 +1,4 @@
-package koushinbase
+package alpsbase
import (
"html/template"
diff --git a/plugins/base/viewer.go b/plugins/base/viewer.go
index a76ecf9..f9b24a2 100644
--- a/plugins/base/viewer.go
+++ b/plugins/base/viewer.go
@@ -1,9 +1,9 @@
-package koushinbase
+package alpsbase
import (
"fmt"
- "git.sr.ht/~emersion/koushin"
+ "git.sr.ht/~emersion/alps"
"github.com/emersion/go-message"
)
@@ -16,7 +16,7 @@ type Viewer interface {
// ViewMessagePart renders a message part. The returned value is displayed
// in a template. ErrViewUnsupported is returned if the message part isn't
// supported.
- ViewMessagePart(*koushin.Context, *IMAPMessage, *message.Entity) (interface{}, error)
+ ViewMessagePart(*alps.Context, *IMAPMessage, *message.Entity) (interface{}, error)
}
var viewers []Viewer
@@ -26,7 +26,7 @@ func RegisterViewer(viewer Viewer) {
viewers = append(viewers, viewer)
}
-func viewMessagePart(ctx *koushin.Context, msg *IMAPMessage, part *message.Entity) (interface{}, error) {
+func viewMessagePart(ctx *alps.Context, msg *IMAPMessage, part *message.Entity) (interface{}, error) {
for _, viewer := range viewers {
v, err := viewer.ViewMessagePart(ctx, msg, part)
if err == ErrViewUnsupported {
diff --git a/plugins/caldav/caldav.go b/plugins/caldav/caldav.go
index 1c043e9..906e747 100644
--- a/plugins/caldav/caldav.go
+++ b/plugins/caldav/caldav.go
@@ -1,11 +1,11 @@
-package koushincaldav
+package alpscaldav
import (
"fmt"
"net/http"
"net/url"
- "git.sr.ht/~emersion/koushin"
+ "git.sr.ht/~emersion/alps"
"github.com/emersion/go-webdav/caldav"
)
@@ -13,7 +13,7 @@ var errNoCalendar = fmt.Errorf("caldav: no calendar found")
type authRoundTripper struct {
upstream http.RoundTripper
- session *koushin.Session
+ session *alps.Session
}
func (rt *authRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
@@ -21,7 +21,7 @@ func (rt *authRoundTripper) RoundTrip(req *http.Request) (*http.Response, error)
return rt.upstream.RoundTrip(req)
}
-func newClient(u *url.URL, session *koushin.Session) (*caldav.Client, error) {
+func newClient(u *url.URL, session *alps.Session) (*caldav.Client, error) {
rt := authRoundTripper{
upstream: http.DefaultTransport,
session: session,
@@ -34,7 +34,7 @@ func newClient(u *url.URL, session *koushin.Session) (*caldav.Client, error) {
return c, nil
}
-func getCalendar(u *url.URL, session *koushin.Session) (*caldav.Client, *caldav.Calendar, error) {
+func getCalendar(u *url.URL, session *alps.Session) (*caldav.Client, *caldav.Calendar, error) {
c, err := newClient(u, session)
if err != nil {
return nil, nil, err
diff --git a/plugins/caldav/plugin.go b/plugins/caldav/plugin.go
index 27c5663..68de6cf 100644
--- a/plugins/caldav/plugin.go
+++ b/plugins/caldav/plugin.go
@@ -1,11 +1,11 @@
-package koushincaldav
+package alpscaldav
import (
"fmt"
"net/http"
"net/url"
- "git.sr.ht/~emersion/koushin"
+ "git.sr.ht/~emersion/alps"
)
func sanityCheckURL(u *url.URL) error {
@@ -27,9 +27,9 @@ func sanityCheckURL(u *url.URL) error {
return nil
}
-func newPlugin(srv *koushin.Server) (koushin.Plugin, error) {
+func newPlugin(srv *alps.Server) (alps.Plugin, error) {
u, err := srv.Upstream("caldavs", "caldav+insecure", "https", "http+insecure")
- if _, ok := err.(*koushin.NoUpstreamError); ok {
+ if _, ok := err.(*alps.NoUpstreamError); ok {
return nil, nil
} else if err != nil {
return nil, fmt.Errorf("caldav: failed to parse upstream caldav server: %v", err)
@@ -53,7 +53,7 @@ func newPlugin(srv *koushin.Server) (koushin.Plugin, error) {
srv.Logger().Printf("Configured upstream CalDAV server: %v", u)
- p := koushin.GoPlugin{Name: "caldav"}
+ p := alps.GoPlugin{Name: "caldav"}
registerRoutes(&p, u)
@@ -61,7 +61,7 @@ func newPlugin(srv *koushin.Server) (koushin.Plugin, error) {
}
func init() {
- koushin.RegisterPluginLoader(func(s *koushin.Server) ([]koushin.Plugin, error) {
+ alps.RegisterPluginLoader(func(s *alps.Server) ([]alps.Plugin, error) {
p, err := newPlugin(s)
if err != nil {
return nil, err
@@ -69,6 +69,6 @@ func init() {
if p == nil {
return nil, nil
}
- return []koushin.Plugin{p}, err
+ return []alps.Plugin{p}, err
})
}
diff --git a/plugins/caldav/public/calendar.html b/plugins/caldav/public/calendar.html
index 6715258..7787bb1 100644
--- a/plugins/caldav/public/calendar.html
+++ b/plugins/caldav/public/calendar.html
@@ -1,6 +1,6 @@
{{template "head.html"}}
-<h1>koushin</h1>
+<h1>alps</h1>
<p>
<a href="/">Back</a>
diff --git a/plugins/caldav/public/event.html b/plugins/caldav/public/event.html
index 8c88833..a07f663 100644
--- a/plugins/caldav/public/event.html
+++ b/plugins/caldav/public/event.html
@@ -1,6 +1,6 @@
{{template "head.html"}}
-<h1>koushin</h1>
+<h1>alps</h1>
<p>
<a href="/calendar">Back</a>
diff --git a/plugins/caldav/routes.go b/plugins/caldav/routes.go
index 51a9490..ee18574 100644
--- a/plugins/caldav/routes.go
+++ b/plugins/caldav/routes.go
@@ -1,4 +1,4 @@
-package koushincaldav
+package alpscaldav
import (
"fmt"
@@ -6,12 +6,12 @@ import (
"net/url"
"time"
- "git.sr.ht/~emersion/koushin"
+ "git.sr.ht/~emersion/alps"
"github.com/emersion/go-webdav/caldav"
)
type CalendarRenderData struct {
- koushin.BaseRenderData
+ alps.BaseRenderData
Time time.Time
Calendar *caldav.Calendar
Events []caldav.CalendarObject
@@ -19,15 +19,15 @@ type CalendarRenderData struct {
}
type EventRenderData struct {
- koushin.BaseRenderData
+ alps.BaseRenderData
Calendar *caldav.Calendar
Event *caldav.CalendarObject
}
var monthPageLayout = "2006-01"
-func registerRoutes(p *koushin.GoPlugin, u *url.URL) {
- p.GET("/calendar", func(ctx *koushin.Context) error {
+func registerRoutes(p *alps.GoPlugin, u *url.URL) {
+ p.GET("/calendar", func(ctx *alps.Context) error {
var start time.Time
if s := ctx.QueryParam("month"); s != "" {
var err error
@@ -77,7 +77,7 @@ func registerRoutes(p *koushin.GoPlugin, u *url.URL) {
}
return ctx.Render(http.StatusOK, "calendar.html", &CalendarRenderData{
- BaseRenderData: *koushin.NewBaseRenderData(ctx),
+ BaseRenderData: *alps.NewBaseRenderData(ctx),
Time: start,
Calendar: calendar,
Events: events,
@@ -86,7 +86,7 @@ func registerRoutes(p *koushin.GoPlugin, u *url.URL) {
})
})
- p.GET("/calendar/:uid", func(ctx *koushin.Context) error {
+ p.GET("/calendar/:uid", func(ctx *alps.Context) error {
uid := ctx.Param("uid")
c, calendar, err := getCalendar(u, ctx.Session)
@@ -131,7 +131,7 @@ func registerRoutes(p *koushin.GoPlugin, u *url.URL) {
event := &events[0]
return ctx.Render(http.StatusOK, "event.html", &EventRenderData{
- BaseRenderData: *koushin.NewBaseRenderData(ctx),
+ BaseRenderData: *alps.NewBaseRenderData(ctx),
Calendar: calendar,
Event: event,
})
diff --git a/plugins/carddav/carddav.go b/plugins/carddav/carddav.go
index 2509872..b863827 100644
--- a/plugins/carddav/carddav.go
+++ b/plugins/carddav/carddav.go
@@ -1,11 +1,11 @@
-package koushincarddav
+package alpscarddav
import (
"fmt"
"net/http"
"net/url"
- "git.sr.ht/~emersion/koushin"
+ "git.sr.ht/~emersion/alps"
"github.com/emersion/go-webdav/carddav"
)
@@ -13,7 +13,7 @@ var errNoAddressBook = fmt.Errorf("carddav: no address book found")
type authRoundTripper struct {
upstream http.RoundTripper
- session *koushin.Session
+ session *alps.Session
}
func (rt *authRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
@@ -21,7 +21,7 @@ func (rt *authRoundTripper) RoundTrip(req *http.Request) (*http.Response, error)
return rt.upstream.RoundTrip(req)
}
-func newClient(u *url.URL, session *koushin.Session) (*carddav.Client, error) {
+func newClient(u *url.URL, session *alps.Session) (*carddav.Client, error) {
rt := authRoundTripper{
upstream: http.DefaultTransport,
session: session,
diff --git a/plugins/carddav/plugin.go b/plugins/carddav/plugin.go
index 3002da1..225c98f 100644
--- a/plugins/carddav/plugin.go
+++ b/plugins/carddav/plugin.go
@@ -1,4 +1,4 @@
-package koushincarddav
+package alpscarddav
import (
"fmt"
@@ -6,8 +6,8 @@ import (
"net/url"
"strings"
- "git.sr.ht/~emersion/koushin"
- koushinbase "git.sr.ht/~emersion/koushin/plugins/base"
+ "git.sr.ht/~emersion/alps"
+ alpsbase "git.sr.ht/~emersion/alps/plugins/base"
"github.com/emersion/go-vcard"
"github.com/emersion/go-webdav/carddav"
)
@@ -32,16 +32,16 @@ func sanityCheckURL(u *url.URL) error {
}
type plugin struct {
- koushin.GoPlugin
+ alps.GoPlugin
url *url.URL
homeSetCache map[string]string
}
-func (p *plugin) client(session *koushin.Session) (*carddav.Client, error) {
+func (p *plugin) client(session *alps.Session) (*carddav.Client, error) {
return newClient(p.url, session)
}
-func (p *plugin) clientWithAddressBook(session *koushin.Session) (*carddav.Client, *carddav.AddressBook, error) {
+func (p *plugin) clientWithAddressBook(session *alps.Session) (*carddav.Client, *carddav.AddressBook, error) {
c, err := newClient(p.url, session)
if err != nil {
return nil, nil, fmt.Errorf("failed to create CardDAV client: %v", err)
@@ -73,9 +73,9 @@ func (p *plugin) clientWithAddressBook(session *koushin.Session) (*carddav.Clien
return c, &addressBooks[0], nil
}
-func newPlugin(srv *koushin.Server) (koushin.Plugin, error) {
+func newPlugin(srv *alps.Server) (alps.Plugin, error) {
u, err := srv.Upstream("carddavs", "carddav+insecure", "https", "http+insecure")
- if _, ok := err.(*koushin.NoUpstreamError); ok {
+ if _, ok := err.(*alps.NoUpstreamError); ok {
return nil, nil
} else if err != nil {
return nil, fmt.Errorf("carddav: failed to parse upstream CardDAV server: %v", err)
@@ -105,7 +105,7 @@ func newPlugin(srv *koushin.Server) (koushin.Plugin, error) {
srv.Logger().Printf("Configured upstream CardDAV server: %v", u)
p := &plugin{
- GoPlugin: koushin.GoPlugin{Name: "carddav"},
+ GoPlugin: alps.GoPlugin{Name: "carddav"},
url: u,
homeSetCache: make(map[string]string),
}
@@ -118,8 +118,8 @@ func newPlugin(srv *koushin.Server) (koushin.Plugin, error) {
},
})
- p.Inject("compose.html", func(ctx *koushin.Context, _data koushin.RenderData) error {
- data := _data.(*koushinbase.ComposeRenderData)
+ p.Inject("compose.html", func(ctx *alps.Context, _data alps.RenderData) error {
+ data := _data.(*alpsbase.ComposeRenderData)
c, addressBook, err := p.clientWithAddressBook(ctx.Session)
if err == errNoAddressBook {
@@ -156,7 +156,7 @@ func newPlugin(srv *koushin.Server) (koushin.Plugin, error) {
}
func init() {
- koushin.RegisterPluginLoader(func(s *koushin.Server) ([]koushin.Plugin, error) {
+ alps.RegisterPluginLoader(func(s *alps.Server) ([]alps.Plugin, error) {
p, err := newPlugin(s)
if err != nil {
return nil, err
@@ -164,6 +164,6 @@ func init() {
if p == nil {
return nil, nil
}
- return []koushin.Plugin{p}, err
+ return []alps.Plugin{p}, err
})
}
diff --git a/plugins/carddav/public/address-book.html b/plugins/carddav/public/address-book.html
index d4e13b9..a9ab9c5 100644
--- a/plugins/carddav/public/address-book.html
+++ b/plugins/carddav/public/address-book.html
@@ -1,6 +1,6 @@
{{template "head.html"}}
-<h1>koushin</h1>
+<h1>alps</h1>
<p>
<a href="/">Back</a> ยท <a href="/contacts/create">Create new contact</a>
diff --git a/plugins/carddav/public/address-object.html b/plugins/carddav/public/address-object.html
index e4ec135..b6e731e 100644
--- a/plugins/carddav/public/address-object.html
+++ b/plugins/carddav/public/address-object.html
@@ -1,6 +1,6 @@
{{template "head.html"}}
-<h1>koushin</h1>
+<h1>alps</h1>
<p>
<a href="/contacts">Back</a>
diff --git a/plugins/carddav/public/update-address-object.html b/plugins/carddav/public/update-address-object.html
index 82adf8e..4769e97 100644
--- a/plugins/carddav/public/update-address-object.html
+++ b/plugins/carddav/public/update-address-object.html
@@ -1,6 +1,6 @@
{{template "head.html"}}
-<h1>koushin</h1>
+<h1>alps</h1>
<p>
<a href="/contacts">Back</a>
diff --git a/plugins/carddav/routes.go b/plugins/carddav/routes.go
index ccc053c..78fe1eb 100644
--- a/plugins/carddav/routes.go
+++ b/plugins/carddav/routes.go
@@ -1,4 +1,4 @@
-package koushincarddav
+package alpscarddav
import (
"fmt"
@@ -7,7 +7,7 @@ import (
"path"
"strings"
- "git.sr.ht/~emersion/koushin"
+ "git.sr.ht/~emersion/alps"
"github.com/emersion/go-vcard"
"github.com/emersion/go-webdav/carddav"
"github.com/google/uuid"
@@ -15,19 +15,19 @@ import (
)
type AddressBookRenderData struct {
- koushin.BaseRenderData
+ alps.BaseRenderData
AddressBook *carddav.AddressBook
AddressObjects []AddressObject
Query string
}
type AddressObjectRenderData struct {
- koushin.BaseRenderData
+ alps.BaseRenderData
AddressObject AddressObject
}
type UpdateAddressObjectRenderData struct {
- koushin.BaseRenderData
+ alps.BaseRenderData
AddressObject *carddav.AddressObject // nil if creating a new contact
Card vcard.Card
}
@@ -42,7 +42,7 @@ func parseObjectPath(s string) (string, error) {
}
func registerRoutes(p *plugin) {
- p.GET("/contacts", func(ctx *koushin.Context) error {
+ p.GET("/contacts", func(ctx *alps.Context) error {
queryText := ctx.QueryParam("query")
c, addressBook, err := p.clientWithAddressBook(ctx.Session)
@@ -82,14 +82,14 @@ func registerRoutes(p *plugin) {
}
return ctx.Render(http.StatusOK, "address-book.html", &AddressBookRenderData{
- BaseRenderData: *koushin.NewBaseRenderData(ctx),
+ BaseRenderData: *alps.NewBaseRenderData(ctx),
AddressBook: addressBook,
AddressObjects: newAddressObjectList(aos),
Query: queryText,
})
})
- p.GET("/contacts/:path", func(ctx *koushin.Context) error {
+ p.GET("/contacts/:path", func(ctx *alps.Context) error {
path, err := parseObjectPath(ctx.Param("path"))
if err != nil {
return err
@@ -119,12 +119,12 @@ func registerRoutes(p *plugin) {
ao := &aos[0]
return ctx.Render(http.StatusOK, "address-object.html", &AddressObjectRenderData{
- BaseRenderData: *koushin.NewBaseRenderData(ctx),
+ BaseRenderData: *alps.NewBaseRenderData(ctx),
AddressObject: AddressObject{ao},
})
})
- updateContact := func(ctx *koushin.Context) error {
+ updateContact := func(ctx *alps.Context) error {
addressObjectPath, err := parseObjectPath(ctx.Param("path"))
if err != nil {
return err
@@ -200,7 +200,7 @@ func registerRoutes(p *plugin) {
}
return ctx.Render(http.StatusOK, "update-address-object.html", &UpdateAddressObjectRenderData{
- BaseRenderData: *koushin.NewBaseRenderData(ctx),
+ BaseRenderData: *alps.NewBaseRenderData(ctx),
AddressObject: ao,
Card: card,
})
diff --git a/plugins/lua/lua.go b/plugins/lua/lua.go
index d236702..451c884 100644
--- a/plugins/lua/lua.go
+++ b/plugins/lua/lua.go
@@ -1,11 +1,11 @@
-package koushinlua
+package alpslua
import (
"fmt"
"html/template"
"path/filepath"
- "git.sr.ht/~emersion/koushin"
+ "git.sr.ht/~emersion/alps"
"github.com/labstack/echo/v4"
"github.com/yuin/gopher-lua"
"layeh.com/gopher-luar"
@@ -69,7 +69,7 @@ func (p *luaPlugin) setRoute(l *lua.LState) int {
return 0
}
-func (p *luaPlugin) inject(name string, data koushin.RenderData) error {
+func (p *luaPlugin) inject(name string, data alps.RenderData) error {
f, ok := p.renderCallbacks[name]
if !ok {
return nil
@@ -87,7 +87,7 @@ func (p *luaPlugin) inject(name string, data koushin.RenderData) error {
return nil
}
-func (p *luaPlugin) Inject(ctx *koushin.Context, name string, data koushin.RenderData) error {
+func (p *luaPlugin) Inject(ctx *alps.Context, name string, data alps.RenderData) error {
if err := p.inject("*", data); err != nil {
return err
}
@@ -144,8 +144,8 @@ func loadLuaPlugin(filename string) (*luaPlugin, error) {
filters: make(template.FuncMap),
}
- mt := l.NewTypeMetatable("koushin")
- l.SetGlobal("koushin", mt)
+ mt := l.NewTypeMetatable("alps")
+ l.SetGlobal("alps", mt)
l.SetField(mt, "on_render", l.NewFunction(p.onRender))
l.SetField(mt, "set_filter", l.NewFunction(p.setFilter))
l.SetField(mt, "set_route", l.NewFunction(p.setRoute))
@@ -158,15 +158,15 @@ func loadLuaPlugin(filename string) (*luaPlugin, error) {
return p, nil
}
-func loadAllLuaPlugins(s *koushin.Server) ([]koushin.Plugin, error) {
+func loadAllLuaPlugins(s *alps.Server) ([]alps.Plugin, error) {
log := s.Logger()
- filenames, err := filepath.Glob(koushin.PluginDir + "/*/main.lua")
+ filenames, err := filepath.Glob(alps.PluginDir + "/*/main.lua")
if err != nil {
return nil, fmt.Errorf("filepath.Glob failed: %v", err)
}
- plugins := make([]koushin.Plugin, 0, len(filenames))
+ plugins := make([]alps.Plugin, 0, len(filenames))
for _, filename := range filenames {
log.Printf("Loading Lua plugin %q", filename)
diff --git a/plugins/lua/plugin.go b/plugins/lua/plugin.go
index dbfee6d..aaf5597 100644
--- a/plugins/lua/plugin.go
+++ b/plugins/lua/plugin.go
@@ -1,9 +1,9 @@
-package koushinlua
+package alpslua
import (
- "git.sr.ht/~emersion/koushin"
+ "git.sr.ht/~emersion/alps"
)
func init() {
- koushin.RegisterPluginLoader(loadAllLuaPlugins)
+ alps.RegisterPluginLoader(loadAllLuaPlugins)
}
diff --git a/plugins/viewhtml/plugin.go b/plugins/viewhtml/plugin.go
index 1007d4a..a121d92 100644
--- a/plugins/viewhtml/plugin.go
+++ b/plugins/viewhtml/plugin.go
@@ -1,4 +1,4 @@
-package koushinviewhtml
+package alpsviewhtml
import (
"io"
@@ -8,8 +8,8 @@ import (
"strconv"
"strings"
- "git.sr.ht/~emersion/koushin"
- koushinbase "git.sr.ht/~emersion/koushin/plugins/base"
+ "git.sr.ht/~emersion/alps"
+ alpsbase "git.sr.ht/~emersion/alps/plugins/base"
"github.com/labstack/echo/v4"
)
@@ -19,10 +19,10 @@ var (
)
func init() {
- p := koushin.GoPlugin{Name: "viewhtml"}
+ p := alps.GoPlugin{Name: "viewhtml"}
- p.Inject("message.html", func(ctx *koushin.Context, _data koushin.RenderData) error {
- data := _data.(*koushinbase.MessageRenderData)
+ p.Inject("message.html", func(ctx *alps.Context, _data alps.RenderData) error {
+ data := _data.(*alpsbase.MessageRenderData)
data.Extra["RemoteResourcesAllowed"] = ctx.QueryParam("allow-remote-resources") == "1"
hasRemoteResources := false
if v := ctx.Get("viewhtml.hasRemoteResources"); v != nil {
@@ -32,7 +32,7 @@ func init() {
return nil
})
- p.GET("/proxy", func(ctx *koushin.Context) error {
+ p.GET("/proxy", func(ctx *alps.Context) error {
if !proxyEnabled {
return echo.NewHTTPError(http.StatusForbidden, "proxy disabled")
}
@@ -67,5 +67,5 @@ func init() {
return ctx.Stream(http.StatusOK, mediaType, &lr)
})
- koushin.RegisterPluginLoader(p.Loader())
+ alps.RegisterPluginLoader(p.Loader())
}
diff --git a/plugins/viewhtml/sanitize.go b/plugins/viewhtml/sanitize.go
index ba2aca9..61a011d 100644
--- a/plugins/viewhtml/sanitize.go
+++ b/plugins/viewhtml/sanitize.go
@@ -1,4 +1,4 @@
-package koushinviewhtml
+package alpsviewhtml
import (
"bytes"
@@ -7,7 +7,7 @@ import (
"regexp"
"strings"
- koushinbase "git.sr.ht/~emersion/koushin/plugins/base"
+ alpsbase "git.sr.ht/~emersion/alps/plugins/base"
"github.com/aymerick/douceur/css"
cssparser "github.com/chris-ramon/douceur/parser"
"github.com/microcosm-cc/bluemonday"
@@ -71,7 +71,7 @@ var allowedStyles = map[string]bool{
}
type sanitizer struct {
- msg *koushinbase.IMAPMessage
+ msg *alpsbase.IMAPMessage
allowRemoteResources bool
hasRemoteResources bool
}
diff --git a/plugins/viewhtml/viewer.go b/plugins/viewhtml/viewer.go
index abc9f2d..de6ee4a 100644
--- a/plugins/viewhtml/viewer.go
+++ b/plugins/viewhtml/viewer.go
@@ -1,4 +1,4 @@
-package koushinviewhtml
+package alpsviewhtml
import (
"bytes"
@@ -7,8 +7,8 @@ import (
"io/ioutil"
"strings"
- "git.sr.ht/~emersion/koushin"
- koushinbase "git.sr.ht/~emersion/koushin/plugins/base"
+ "git.sr.ht/~emersion/alps"
+ alpsbase "git.sr.ht/~emersion/alps/plugins/base"
"github.com/emersion/go-message"
)
@@ -24,7 +24,7 @@ var tpl = template.Must(template.New("view-html.html").Parse(tplSrc))
type viewer struct{}
-func (viewer) ViewMessagePart(ctx *koushin.Context, msg *koushinbase.IMAPMessage, part *message.Entity) (interface{}, error) {
+func (viewer) ViewMessagePart(ctx *alps.Context, msg *alpsbase.IMAPMessage, part *message.Entity) (interface{}, error) {
allowRemoteResources := ctx.QueryParam("allow-remote-resources") == "1"
mimeType, _, err := part.Header.ContentType()
@@ -32,7 +32,7 @@ func (viewer) ViewMessagePart(ctx *koushin.Context, msg *koushinbase.IMAPMessage
return nil, err
}
if !strings.EqualFold(mimeType, "text/html") {
- return nil, koushinbase.ErrViewUnsupported
+ return nil, alpsbase.ErrViewUnsupported
}
body, err := ioutil.ReadAll(part.Body)
@@ -61,5 +61,5 @@ func (viewer) ViewMessagePart(ctx *koushin.Context, msg *koushinbase.IMAPMessage
}
func init() {
- koushinbase.RegisterViewer(viewer{})
+ alpsbase.RegisterViewer(viewer{})
}
diff --git a/plugins/viewtext/plugin.go b/plugins/viewtext/plugin.go
index c7a2bcc..1454a93 100644
--- a/plugins/viewtext/plugin.go
+++ b/plugins/viewtext/plugin.go
@@ -1,10 +1,10 @@
-package koushinviewtext
+package alpsviewtext
import (
- "git.sr.ht/~emersion/koushin"
+ "git.sr.ht/~emersion/alps"
)
func init() {
- p := koushin.GoPlugin{Name: "viewtext"}
- koushin.RegisterPluginLoader(p.Loader())
+ p := alps.GoPlugin{Name: "viewtext"}
+ alps.RegisterPluginLoader(p.Loader())
}
diff --git a/plugins/viewtext/viewer.go b/plugins/viewtext/viewer.go
index 9a91f08..a03f272 100644
--- a/plugins/viewtext/viewer.go
+++ b/plugins/viewtext/viewer.go
@@ -1,4 +1,4 @@
-package koushinviewtext
+package alpsviewtext
import (
"bufio"
@@ -7,8 +7,8 @@ import (
"net/url"
"strings"
- "git.sr.ht/~emersion/koushin"
- koushinbase "git.sr.ht/~emersion/koushin/plugins/base"
+ "git.sr.ht/~emersion/alps"
+ alpsbase "git.sr.ht/~emersion/alps/plugins/base"
"github.com/emersion/go-message"
"gitlab.com/golang-commonmark/linkify"
)
@@ -53,13 +53,13 @@ func executeTemplate(name string, data interface{}) (template.HTML, error) {
type viewer struct{}
-func (viewer) ViewMessagePart(ctx *koushin.Context, msg *koushinbase.IMAPMessage, part *message.Entity) (interface{}, error) {
+func (viewer) ViewMessagePart(ctx *alps.Context, msg *alpsbase.IMAPMessage, part *message.Entity) (interface{}, error) {
mimeType, _, err := part.Header.ContentType()
if err != nil {
return nil, err
}
if !strings.EqualFold(mimeType, "text/plain") {
- return nil, koushinbase.ErrViewUnsupported
+ return nil, alpsbase.ErrViewUnsupported
}
var tokens []interface{}
@@ -114,5 +114,5 @@ func (viewer) ViewMessagePart(ctx *koushin.Context, msg *koushinbase.IMAPMessage
}
func init() {
- koushinbase.RegisterViewer(viewer{})
+ alpsbase.RegisterViewer(viewer{})
}