diff options
| -rw-r--r-- | Dockerfile | 13 | ||||
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | walrss/internal/http/http.go | 2 | ||||
| -rw-r--r-- | walrss/internal/http/testEmail.go | 30 | ||||
| -rw-r--r-- | walrss/internal/http/views/main.qtpl.html | 2 | ||||
| -rw-r--r-- | walrss/internal/http/views/main.qtpl.html.go | 4 | ||||
| -rw-r--r-- | walrss/internal/http/views/page.qtpl.html | 4 | ||||
| -rw-r--r-- | walrss/internal/http/views/page.qtpl.html.go | 15 | ||||
| -rw-r--r-- | walrss/internal/urls/urls.go | 2 |
9 files changed, 59 insertions, 17 deletions
diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2072089 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +FROM golang:1-alpine as builder + +RUN mkdir /build +ADD . /build/ +WORKDIR /build +RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags '-extldflags "-static" -s -w' -o main github.com/codemicro/walrss/walrss + +FROM alpine +COPY --from=builder /build/main / +WORKDIR /run + +ENV WALRSS_DIR /run +CMD ["../main"]
\ No newline at end of file @@ -1,6 +1,6 @@ .PHONY: prebuild fmt -build: templates writeVersionNumber +build: templates mkdir -p bin go build -o bin/walrss github.com/codemicro/walrss/walrss @@ -12,4 +12,4 @@ fmt: go fmt github.com/codemicro/walrss/... templates: - qtc -skipLineComments -ext qtpl.html -dir walrss/internal/http/views
\ No newline at end of file + qtc -skipLineComments -ext qtpl.html -dir walrss/internal/http/views diff --git a/walrss/internal/http/http.go b/walrss/internal/http/http.go index 67be3c2..72a8634 100644 --- a/walrss/internal/http/http.go +++ b/walrss/internal/http/http.go @@ -89,6 +89,8 @@ func (s *Server) registerHandlers() { s.app.Get(urls.NewFeedItem, s.newFeedItem) s.app.Post(urls.NewFeedItem, s.newFeedItem) + s.app.Post(urls.SendTestEmail, s.sendTestEmail) + s.app.Use(urls.Statics, static.NewHandler()) } diff --git a/walrss/internal/http/testEmail.go b/walrss/internal/http/testEmail.go new file mode 100644 index 0000000..1aab514 --- /dev/null +++ b/walrss/internal/http/testEmail.go @@ -0,0 +1,30 @@ +package http + +import ( + "github.com/codemicro/walrss/walrss/internal/core" + "github.com/codemicro/walrss/walrss/internal/rss" + "github.com/codemicro/walrss/walrss/internal/urls" + "github.com/gofiber/fiber/v2" + "github.com/rs/zerolog/log" +) + +func (s *Server) sendTestEmail(ctx *fiber.Ctx) error { + currentUserID := getCurrentUserID(ctx) + if currentUserID == "" { + return requestFragmentSignIn(ctx, urls.Index) + } + + user, err := core.GetUserByID(s.state, currentUserID) + if err != nil { + return err + } + + go func() { + if err := rss.ProcessUserFeed(s.state, user); err != nil { + log.Error().Err(err).Str("location", "test email").Str("user", user.ID).Send() + } + }() + + fragmentEmitSuccess(ctx) + return nil +} diff --git a/walrss/internal/http/views/main.qtpl.html b/walrss/internal/http/views/main.qtpl.html index c9ab30f..47e1d54 100644 --- a/walrss/internal/http/views/main.qtpl.html +++ b/walrss/internal/http/views/main.qtpl.html @@ -282,7 +282,7 @@ </div> </form> - <button hx-post="{%s= urls.TestEmail %}">Send test email</button> + <button class="mt-2 btn btn-primary btn-sm" hx-post="{%s= urls.SendTestEmail %}" hx-swap="none">Send test email</button> </div> </div> diff --git a/walrss/internal/http/views/main.qtpl.html.go b/walrss/internal/http/views/main.qtpl.html.go index 83ddd03..9ff4393 100644 --- a/walrss/internal/http/views/main.qtpl.html.go +++ b/walrss/internal/http/views/main.qtpl.html.go @@ -497,6 +497,10 @@ func (p *MainPage) StreamRenderScheduleCard(qw422016 *qt422016.Writer) { </div> </form> + <button class="mt-2 btn btn-primary btn-sm" hx-post="`) + qw422016.N().S(urls.SendTestEmail) + qw422016.N().S(`" hx-swap="none">Send test email</button> + </div> </div> `) diff --git a/walrss/internal/http/views/page.qtpl.html b/walrss/internal/http/views/page.qtpl.html index 2f35937..dd993f2 100644 --- a/walrss/internal/http/views/page.qtpl.html +++ b/walrss/internal/http/views/page.qtpl.html @@ -1,5 +1,3 @@ -{% import "github.com/codemicro/walrss/walrss/internal/urls" %} - {% interface Page { Title() @@ -71,7 +69,7 @@ Page prints a page implementing Page interface. PolyPage is used to create a basic page dynamically using Daz. {% code type PolyPage struct { - BasePageuuu + BasePage TitleString string BodyContent string ExtraHeadContent string diff --git a/walrss/internal/http/views/page.qtpl.html.go b/walrss/internal/http/views/page.qtpl.html.go index 926ee88..2c9a6ca 100644 --- a/walrss/internal/http/views/page.qtpl.html.go +++ b/walrss/internal/http/views/page.qtpl.html.go @@ -3,8 +3,6 @@ package views -import "github.com/codemicro/walrss/walrss/internal/urls" - import ( qtio422016 "io" @@ -39,16 +37,11 @@ func StreamRenderPage(qw422016 *qt422016.Writer, p Page) { qw422016.N().S(makePageTitle(p)) qw422016.N().S(`</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <script src="`) - qw422016.N().S(urls.Statics) - qw422016.N().S(`/htmx.min.js"></script> - <link href="`) - qw422016.N().S(urls.Statics) - qw422016.N().S(`/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> + <script src="https://unpkg.com/htmx.org@1.7.0"></script> + <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.1/font/bootstrap-icons.css"> - <script src="`) - qw422016.N().S(urls.Statics) - qw422016.N().S(`/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script> + <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script> + <style> [disabled] { cursor: not-allowed; diff --git a/walrss/internal/urls/urls.go b/walrss/internal/urls/urls.go index 87fb45c..2edcc2e 100644 --- a/walrss/internal/urls/urls.go +++ b/walrss/internal/urls/urls.go @@ -21,6 +21,8 @@ const ( New = "/new" NewFeedItem = New + "/feed" + SendTestEmail = "/send/test" + Statics = "/statics" ) |
